diff -Nru gobby-infinote-0.4.92/aclocal.m4 gobby-infinote-0.4.93/aclocal.m4 --- gobby-infinote-0.4.92/aclocal.m4 2009-04-26 10:57:34.000000000 +0100 +++ gobby-infinote-0.4.93/aclocal.m4 2009-12-19 23:16:14.000000000 +0000 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.10.2 -*- Autoconf -*- +# generated automatically by aclocal 1.10.3 -*- 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(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, -[m4_warning([this file was generated for autoconf 2.63. +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'.])]) @@ -452,6 +452,63 @@ fi]) +dnl Do not call GNOME_DOC_DEFINES directly. It is split out from +dnl GNOME_DOC_INIT to allow gnome-doc-utils to bootstrap off itself. +AC_DEFUN([GNOME_DOC_DEFINES], +[ +AC_ARG_WITH([help-dir], + AC_HELP_STRING([--with-help-dir=DIR], [path to help docs]),, + [with_help_dir='${datadir}/gnome/help']) +HELP_DIR="$with_help_dir" +AC_SUBST(HELP_DIR) + +AC_ARG_WITH([omf-dir], + AC_HELP_STRING([--with-omf-dir=DIR], [path to OMF files]),, + [with_omf_dir='${datadir}/omf']) +OMF_DIR="$with_omf_dir" +AC_SUBST(OMF_DIR) + +AC_ARG_WITH([help-formats], + AC_HELP_STRING([--with-help-formats=FORMATS], [list of formats]),, + [with_help_formats='']) +DOC_USER_FORMATS="$with_help_formats" +AC_SUBST(DOC_USER_FORMATS) + +AC_ARG_ENABLE([scrollkeeper], + [AC_HELP_STRING([--disable-scrollkeeper], + [do not make updates to the scrollkeeper database])],, + enable_scrollkeeper=yes) +AM_CONDITIONAL([ENABLE_SK],[test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"]) + +dnl disable scrollkeeper automatically for distcheck +DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS" +AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) + +AM_CONDITIONAL([HAVE_GNOME_DOC_UTILS],[test "$gdu_cv_have_gdu" = "yes"]) +]) + +# GNOME_DOC_INIT ([MINIMUM-VERSION],[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) +# +AC_DEFUN([GNOME_DOC_INIT], +[AC_REQUIRE([AC_PROG_LN_S])dnl + +ifelse([$1],,[gdu_cv_version_required=0.3.2],[gdu_cv_version_required=$1]) + +AC_MSG_CHECKING([gnome-doc-utils >= $gdu_cv_version_required]) +PKG_CHECK_EXISTS([gnome-doc-utils >= $gdu_cv_version_required], + [gdu_cv_have_gdu=yes],[gdu_cv_have_gdu=no]) + +if test "$gdu_cv_have_gdu" = "yes"; then + AC_MSG_RESULT([yes]) + ifelse([$2],,[:],[$2]) +else + AC_MSG_RESULT([no]) + ifelse([$3],,[AC_MSG_ERROR([gnome-doc-utils >= $gdu_cv_version_required not found])],[$3]) +fi + +GNOME_DOC_DEFINES +]) + dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL @@ -849,7 +906,7 @@ [am__api_version='1.10' 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.2], [], +m4_if([$1], [1.10.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -865,7 +922,7 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.10.2])dnl +[AM_AUTOMAKE_VERSION([1.10.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) @@ -958,14 +1015,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, @@ -1022,6 +1079,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 @@ -1039,7 +1106,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 @@ -1049,19 +1126,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 @@ -1125,59 +1206,61 @@ # 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_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[# Autoconf 2.62 quotes --file arguments for eval, but not when files -# are listed without --file. Let's play safe and only enable the eval -# if we detect the quoting. -case $CONFIG_FILES in -*\'*) eval set x "$CONFIG_FILES" ;; -*) set x $CONFIG_FILES ;; -esac -shift -for mf -do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" +[{ + # 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 @@ -1197,7 +1280,7 @@ # 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, @@ -1271,8 +1354,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. diff -Nru gobby-infinote-0.4.92/AUTHORS gobby-infinote-0.4.93/AUTHORS --- gobby-infinote-0.4.92/AUTHORS 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/AUTHORS 2009-12-19 23:13:03.000000000 +0000 @@ -22,6 +22,7 @@ * Benjamin Herr * Ben Levitt + * Gabríel A. Pétursson Translations: French: @@ -36,5 +37,3 @@ German: * Philipp Kern - * Armin Burgmeier - diff -Nru gobby-infinote-0.4.92/ChangeLog gobby-infinote-0.4.93/ChangeLog --- gobby-infinote-0.4.92/ChangeLog 2009-04-26 10:57:21.000000000 +0100 +++ gobby-infinote-0.4.93/ChangeLog 2009-12-19 23:13:46.000000000 +0000 @@ -1,3 +1,953 @@ +2009-12-19 Armin Burgmeier + + * === Released 0.4.93 === + + * README: + * NEWS: Update for release. + +2009-12-19 Armin Burgmeier + + * code/core/browser.cpp (compare_func): Don't use result when it is + uninitialized. + +2009-12-19 Armin Burgmeier + + * configure.ac: + * Makefile.am: Don't require gnome-doc-utils do be available, build + without documentation if they are not, such as on Windows. + +2009-12-19 Armin Burgmeier + + * code/dialogs/preferences-dialog.cpp: Don't add + GTK_SOURCE_DRAW_SPACES_NBSP when showing flags since this does not + exist in GtkSourceView 2.4.0 yet (which we require). We may it add + later when we bump the GtkSourceView dependency. + +2009-12-19 Armin Burgmeier + + * code/dialogs/password-dialog.hpp: + * code/dialogs/connection-dialog.hpp: Include , to fix + the build with gtkmm 2.12. + +2009-12-19 Armin Burgmeier + + * code/core/browser.cpp: Sort top-level items by name. + +2009-12-18 Armin Burgmeier + + * help/C/gobby.xml: Mention Shift+Ctrl+C shortcut for color reset. + +2009-12-18 Armin Burgmeier + + * code/core/header.hpp: + * code/core/header.cpp: Added a reset user color item to the view + menu. + + * code/commands/view-commands.hpp: + * code/commands/view-commands.cpp: Added corresponding functionality, + using inf_text_gtk_buffer_show_user_colors(). Bug #211. + +2009-12-16 Armin Burgmeier + + * Makefile.am: Added gobby-0.5.desktop.in to EXTRA_DIST. + + * help/C/gobby.xml: Added dummy items for referenced sections, so that + the XML validates. This fixes make distcheck. + +2009-12-16 Armin Burgmeier + + * Makefile.am: Don't install the .desktop file on Windows. + +2009-12-15 Armin Burgmeier + + * code/dialogs/password-dialog.cpp: Fix spacings. + +2009-12-15 Benjamin Herr + + * code/commands/file-commands.hpp: + * code/commands/file-commands.cpp: + * code/core/header.hpp: + * code/core/header.cpp: + * code/dialogs/Makefile.am: Added a File menu action to connect to a + server, equivalent to the existing Direct Connection entry. + +2009-12-15 Benjamin Herr + + * code/commands/Makefile.am: + * code/commands/auth-commands.hpp: + * code/commands/auth-commands.cpp: + * code/core/browser.hpp: + * code/core/browser.cpp: + * code/dialogs/Makefile.am: + * code/dialogs/password-dialog.hpp: + * code/dialogs/password-dialog.cpp: + * code/window.hpp: + * code/window.cpp: Added support for SASL PLAIN authentication, + prompting the user for a password upon connection. + +2009-12-15 Benjamin Herr + + * configure.ac: Enable optional AM_SILENT_RULES. + +2009-12-14 Armin Burgmeier + + * README: Update IRC channel, updated dependencies. + +2009-12-14 Armin Burgmeier + + * code/commands/browser-context-commands.cpp (on_populate_popup): + Don't crash when right-clicking on a browser item whose connection is + currently being established. + +2009-12-14 Armin Burgmeier + + * code/commands/browser-commands.cpp (on_notify_status): Close + network connection when server does not send initial welcome message. + +2009-12-10 Benjamin Herr + + * code/commands/browser-context-commands.cpp: Do not try to create + context menu popup for directories that are not in working order. + Fixes a crash when rightclicking disconnected browser entries. + +2009-12-10 Benjamin Herr + + * code/core/browser.cpp: Use new inf_tcp_connection_new() function + instead of manually creating a GObject. + +2009-12-07 Armin Burgmeier + + * code/commands/browser-commands.hpp: + * code/commands/browser-commands.cpp: Simplified the code a bit using + the new InfcBrowser "status" property. + +2009-12-05 Armin Burgmeier + + * code/core/textundogrouping.hpp: + * code/core/textundogrouping.cpp: + * code/core/Makefile.am: Added a thin wrapper around + InfTextUndoGrouping which also encloses GtkTextBuffer's user actions + into an undo group. + + * code/core/textsessionview.hpp: + * code/core/textsessionview.cpp: Instantiate an undo group when an + active user is set. + + * code/commands/edit-commands.cpp: Undo multiple requests according + to the document's undo grouping. + +2009-12-03 Gabríel A. Pétursson + + * code/commands/help-commands.cpp: Added translator credits. + +2009-12-03 Gabríel A. Pétursson + + * code/dialogs/find-dialog.cpp: Fixed a spelling error. + +2009-12-02 Gabríel A. Pétursson + + * code/window.cpp: + * code/core/statusbar.hpp: + * code/core/statusbar.cpp: Do not show the statusbar's grip handle + while the window is maximized. + +2009-12-02 Armin Burgmeier + + * code/commands/edit-commands.cpp: Adapt to another libinfinity API + change: inf_adopted_session_undo() and inf_adopted_session_redo() have + a new guint parameter. + +2009-12-01 Armin Burgmeier + + * code/core/chattablabel.hpp: + * code/core/chattablabel.cpp: + * code/core/Makefile.am: Added a tab label for the chat tabs. + + * code/core/folder.cpp: Make use of it for new chat sessions. + +2009-12-01 Armin Burgmeier + + * code/core/tablabel.hpp: + * code/core/tablabel.cpp: Removed all text-specific functionality from + TabLabel. + + * code/core/texttablabel.hpp: + * code/core/texttablabel.cpp: + * code/core/Makefile.am: Readded it to TextTagTabel which derives from + TabLabel. + + * code/core/folder.cpp: Create a TextTabLabel for text documents. + +2009-12-01 Gabríel A. Pétursson + + * code/core/statusbar.cpp: Do not display documents' status on the + status bar when there are no documents open. + +2009-12-01 Gabríel A. Pétursson + + * code/core/statusbar.hpp: + * code/core/statusbar.cpp: Display the overwrite status on the status + bar. + +2009-11-30 Armin Burgmeier + + * code/core/noteplugin.cpp: + * code/operations/operation-open.cpp: Adapt to recent API change in + libinfinity: inf_text_session_new() and InfcNotePlugin's session_new() + now take a InfSessionStatus parameter. + +2009-11-30 Armin Burgmeier + + * code/commands/folder-commands.cpp (constructor): Fixed a comparison + of signed vs. unsigned compiler warning. + +2009-11-30 Armin Burgmeier + + * code/commands/subscription-commands.cpp (on_notify_connection): Also + reset the active user for chat sessions. This prevents a crash when + changing to a chat session tab which belongs to a closed chat session. + +2009-11-21 Armin Burgmeier + + * code/core/sessionview.hpp: + * code/core/sessionview.cpp: + * code/core/chatsessionview.hpp: + * code/core/chatsessionview.cpp: + * code/core/textsessionview.hpp: + * code/core/textsessionview.cpp: Moved get_active_user and the + active-user-changed signal to the base class. + + * code/commands/folder-commands.hpp: + * code/commands/folder-commands.cpp: Make this work with chat + sessions. + + * code/dialogs/find-dialog.hpp: + * code/dialogs/find-dialog.cpp: + * code/commands/edit-commands.hpp: + * code/commands/edit-commands.cpp: Adapt for changed + active-user-changed signal signature. + + * code/window.hpp: + * code/window.cpp: Renamed commands member variables to have _commands + as suffix, not as prefix, and added a folder commands for the chat + folder. + +2009-11-21 Philipp Kern + + * help/C/gobby.xml: document Editor settings a bit more + +2009-11-21 Philipp Kern + + * code/dialogs/preferences-dialog.cpp: fix en_UK-ism + +2009-11-21 Philipp Kern + + * help/C/gobby.xml: add shortcuts + +2009-11-17 Philipp Kern + + * help/C/gobby.xml: point to the new IRC channel on Freenode + +2009-11-17 Armin Burgmeier + + * code/window.hpp: + * code/window.cpp: Switch to text when chat pane is hidden while it + had focus, and give it focus if it is shown and nothing else has focus + already. + +2009-11-17 Armin Burgmeier + + * code/core/chatsessionview.hpp: Added get_chat(). + + * code/window.hpp: + * code/window.cpp: Added Ctrl+M and Ctrl+Shift+M shortcuts to easily + jump between chat and document. + +2009-11-17 Armin Burgmeier + + * code/core/closableframe.hpp: + * code/core/closableframe.cpp: Add set_allow_visible(). + + * code/core/preferences.hpp: + * code/core/preferences.cpp: Added settings for chat visibility and + chat userlist visibility and width. + + * code/core/folder.cpp: Use different preference settings for document + userlist visibility and chat userlist visibility. + + * code/core/iconmanager.hpp: + * code/core/iconmanager.cpp: Added stock chat icon. + + * code/core/header.hpp: + * code/core/header.cpp: Added "View Chat" and "View Chat User List" + menu items and actions. + + * code/commands/view-commands.hpp: + * code/commands/view-commands.cpp: Implemented functionality for the + new actions. + + * code/window.hpp: + * code/window.cpp: Pass chat frame and folder to view-commands. + +2009-11-17 Armin Burgmeier + + * code/util/color.hpp: + * code/util/color.cpp: Fixed return type of rgb_to_hsv() and + hsv_to_rgb(). + +2009-11-15 Armin Burgmeier + + * code/core/userlist.hpp: + * code/core/userlist.cpp: Added set_show_disconnected(). + + * code/core/sessionuserview.hpp: + * code/core/sessionuserview.cpp: Added a show_disconnected parameter + in the constructor. + + * code/core/folder.cpp: Don't show disconnected users for chat + sessions. + +2009-11-15 Gabríel A. Pétursson + + * code/commands/help-commands.cpp: Updated the about dialog. + +2009-11-11 Benjamin Herr + + * code/core/textsessionview.hpp: + * code/core/textsessionview.bpp: On style change, use new libinfinity + functionality to adjust user colour saturation/value. The formulas + used might not be optimal, so there is room for improvement. + +2009-11-10 Benjamin Herr + + * code/core/statusbar.cpp: Manually add a "Close" button to the status + bar message dialog because RESPONSE_CLOSE seems to add a "Cancel" + button instead for some people (Gabríel). + +2009-11-10 Gabríel A. Pétursson + + * code/commands/browser-context-commands.hpp: + * code/commands/browser-context-commands.cpp: Fixed an assertion error. + +2009-11-09 Benjamin Herr , Armin Burgmeier + + * code/core/statusbar.hpp: + * code/core/statusbar.cpp: Readded timeout mechanism into status bar + message functions. + + * code/dialogs/find-dialog.cpp: Readded timeout for status bar + messages so that they would actually disappear at some point. + +2009-11-09 Benjamin Herr , Armin Burgmeier + + * code/core/statusbar.cpp: Changed "OK" back to "Close" in status bar + error message popup dialog. + +2009-11-09 Benjamin Herr , Armin Burgmeier + + * code/core/statusbar.cpp: Made status bar error message popup dialog + non-modal. + +2009-11-09 Gabríel A. Pétursson , Armin Burgmeier + + * code/core/preferences.hpp: + * code/core/preferences.cpp: Added scheme_id preference option to + appearance. + + * code/core/textsessionview.hpp: + * code/core/textsessionview.cpp: Set GtkSourceView style scheme + according to selected scheme ID. + + * code/dialogs/preferences-dialog.hpp: + * code/dialogs/preferences-dialog.cpp: Add a list to choose one's + favoured style scheme to the appearance tab. + +2009-11-09 Benjamin Herr + + * code/core/statusbar.cpp: + * code/core/statusbar.hpp: Add hide_message that only removes a + message widget without removing the (then-null) pointer from the + m_list. hide_message can be called multiple times, thus avoiding the + crash when an info message was removed twice. + +2009-11-09 Benjamin Herr + + * code/core/statusbar.cpp: + * code/core/statusbar.hpp: Minor refactoring to the status bar message + change. Also made more stuff a detail of StatusBar::Message. + +2009-11-08 Armin Burgmeier + + * code/commands/browser-commands.hpp: + * code/commands/browser-commands.cpp: Initiate a subscription to a + server's chat upon connection. + + * code/commands/subscription-commands.hpp: + * code/commands/subscription-commands.cpp: Create a ChatSessionView in + the bottom pane in case of a chat subscription. + + * code/commands/user-join-commands.cpp: Do a chat user join for chat + sessions. + + * code/core/folder.hpp: + * code/core/folder.cpp: Added a hide_single_tab option. + + * code/window.cpp: Adapt to changed folder and browser-commands + constructors. + +2009-11-08 Armin Burgmeier + + * code/commands/subscription-commands.hpp: + * code/commands/subscription-commands.cpp: New class handling session + subscriptions. + + * code/commands/synchronization-commands.hpp: + * code/commands/synchronization-commands.cpp: New class handling + session synchronization. + + * code/commands/user-join-commands.hpp: + * code/commands/user-join-commands.cpp: New class handling user join. + + * code/commands/browser-commands.hpp: + * code/commands/browser-commands.cpp: Removed the functionality that + has been moved to the classes mentioned above. + + * code/commands/Makfile.am: Add the new files to the build. + + * code/window.hpp: + * code/window.cpp: Instantiante the new classes. + +2009-11-08 Armin Burgmeier + + * code/core/chatsessionview.hpp: + * code/core/chatsessionview.cpp: Added a SessionView-deriving class to + show a chat session. + + * code/core/Makefile.am: Added the new files to the build. + + * code/core/folder.hpp: + * code/core/folder.cpp: Added add_chat_session, renamed add_document + to add_text_session. + + * code/commands/browser-commands.cpp: Use add_text_session instead of + add_document. + + * code/window.hpp: + * code/window.cpp: Added a bottom pane for the chat. + +2009-10-25 Armin Burgmeier + + * code/core/textsessionview.hpp: + * code/core/textsessionview.cpp: Added TextSessionView, a + SessionView-deriving class showing a InfTextSession. + + * code/core/docwindow.hpp: + * code/core/docwindow.cpp: Removed. + + * code/core/Makefile.am: Adapted the build. + + * code/core/sessionview.hpp: + * code/core/sessionview.cpp: Added path & hostname to SessionView. + + * code/core/folder.hpp: + * code/core/folder.cpp: + * code/core/statusbar.hpp: + * code/core/statusbar.cpp: + * code/core/tablabel.hpp: + * code/core/tablabel.cpp: + * code/core/titlebar.hpp: + * code/core/titlebar.cpp: + * code/core/userlist.cpp: + + * code/dialogs/find-dialog.hpp: + * code/dialogs/find-dialog.cpp: + * code/dialogs/goto-dialog.hpp: + * code/dialogs/goto-dialog.cpp: + + * code/operations/operation-export-html.hpp: + * code/operations/operation-export-html.cpp: + * code/operations/operation-save.hpp: + * code/operations/operation-save.cpp: + * code/operations/operations.hpp: + * code/operations/operations.cpp: + + * code/commands/autosave-commands.hpp: + * code/commands/autosave-commands.cpp: + * code/commands/browser-commands.cpp: + * code/commands/edit-commands.hpp: + * code/commands/edit-commands.cpp: + * code/commands/file-commands.hpp: + * code/commands/file-commands.cpp: + * code/commands/folder-commands.hpp: + * code/commands/folder-commands.cpp: + * code/commands/view-commands.hpp: + * code/commands/view-commands.cpp: + * code/commands/file-tasks/task-export-html.hpp: + * code/commands/file-tasks/task-export-html.cpp: + * code/commands/file-tasks/task-save-all.hpp: + * code/commands/file-tasks/task-save-all.cpp: + * code/commands/file-tasks/task-save.hpp: + * code/commands/file-tasks/task-save.cpp: + + * code/window.cpp: Adapt for the DocWindow->TextSessionView API + change. + +2009-10-18 Armin Burgmeier + + * code/core/sessionview.hpp: + * code/core/sessionview.cpp: Added SessionView base class which will + replace DocWindow soon. + + * code/core/sessionuserview.hpp: + * code/core/sessionuserview.cpp: Added SessionUserView, a wrapper + around SessionView with a userlist next to it. + + * code/core/Makefile.am: Added the new files to the build. + +2009-10-23 Armin Burgmeier + + * code/core/userlist.hpp: + * code/core/userlist.cpp: Made UserList work with non-InfText users. + + * code/core/docwindow.cpp: Only pass InfUserTable to the userlist, not + the whole session. + +2009-11-09 Gabríel A. Pétursson + + * code/commands/browser-commands.cpp: + * code/commands/file-tasks/task-open.cpp: + * code/core/browser.cpp: + * code/core/statusbar.cpp: + * code/core/statusbar.hpp: + * code/dialogs/find-dialog.cpp: + * code/operations/operation-delete.cpp: + * code/operations/operation-export-html.cpp: + * code/operations/operation-new.cpp: + * code/operations/operation-open-multiple.cpp: + * code/operations/operation-open.cpp: + * code/operations/operation-save.cpp: Minor refactoring. Added detailed + status bar error messages. + +2009-11-07 Armin Burgmeier + + * code/commands/browser-context-commands.cpp (on_open_response): Use + OperationOpenMultiple instead of mulitple OperationOpens, so that the + documents are opened one after the other, not all at once. + +2009-11-07 Gabríel A. Pétursson + + * code/commands/browser-context-commands.cpp: + * code/commands/file-tasks/task-open-file.hpp: + * code/commands/file-tasks/task-open-file.cpp: Added the ability to + upload multiple files simultaneously. + +2009-11-07 Armin Burgmeier + + * AUTHORS: Updated. + +2009-11-07 Gabríel A. Pétursson + + * code/commands/file-commands.cpp: + * code/core/browser.hpp: + * code/core/browser.cpp: Alphabetical sorting of directory and file + names. + +2009-11-06 Armin Burgmeier + + * code/commands/folder-commands.cpp: Avoid a crash if the connection + goes down before the activation timeout fired, i.e. right after + changing a tab. + +2009-11-01 Armin Burgmeier + + * configure.ac: Require glibmm-2.4 >= 2.18.0 and giomm-2.4 >= 2.18.0 + to make sure overwriting files works when saving. See also bug #471. + +2009-11-01 Benjamin Herr + + * code/core/preferences.hpp: + * code/core/preferences.cpp: Added view.whitespace_display option. + + * code/dialogs/preferences-dialog.hpp: + * code/dialogs/preferences-dialog.cpp: Added a corresponding widget to + the View pane in the preferences dialog. + + * code/core/docwindow.hpp: + * code/core/docwindow.cpp: Honor the setting. + + * configure.ac: Require gtksourceview-2.0 >= 2.4 since + gtk_source_view_set_draw_spaces() is available only since this + version. + +2009-10-31 Armin Burgmeier + + * code/Makefile.am: Pass both public and private icon paths to the + code. + + * code/core/iconmanager.cpp: Add both to the icon search path. This + fixes lookup of the application icon if gobby is installed in a + non-standard prefix. + +2009-10-26 Armin Burgmeier + + * code/core/userlist.cpp (sort_func): Sort the user list + case-insensitively. + +2009-10-26 Armin Burgmeier + + * code/operations/operation-open.cpp (constructor): Also disable + GtkSourceView's Undo for sync'ed-in sessions. Otherwise the user was + able to press Ctrl+Z in a newly opened document to trigger + GtkSourceView (global) Undo when local group Undo is not available + (such as right after document creation). + +2009-10-26 Armin Burgmeier + + * code/commands/browser-commands.cpp (on_subscribe_session): Use the + remote-hostname of the InfXmppConnection of the browser instead of the + root entry name of the browser model as hostname passed to the + DocWindow. This is currently used in the exported HTML's footer. + +2009-10-25 Armin Burgmeier , Benjamin Herr + + * code/operations/operation-export-html.hpp: + * code/operations/operation-export-html.cpp: + * code/operations/Makefile.am: Added an operation which exports a + document to a XHTML document. + + * code/operations/operations.hpp: + * code/operations/operations.cpp: Added export_html() functio. + + * code/core/header.hpp: + * code/core/header.cpp: Added a menu entry for exporting a document to + HTML. + + * code/core/folder.hpp: + * code/core/folder.cpp: + * code/core/docwindow.hpp: + * code/core/docwindow.cpp: + * code/commands/browser-commands.cpp: Store path on remote host and + its hostname in the DocWindow. + + * code/commands/file-tasks/task-export-html.hpp: + * code/commands/file-tasks/task-export-html.cpp: + * code/commands/file-tasks/Makefile.am: Added a task for HTML export + showing a file chooser dialog for the user to select a location to + export to. + + * code/commands/file-commands.hpp: + * code/commands/file-commands.cpp: Start the task when the user + activates the corresponding action defined in Header. + +2009-10-24 Armin Burgmeier + + * icons/hicolor/scalable/status/user-color-indicator.svg: Removed + blur, so that rsvg renders it correctly. + + * icons/hicolor/scalable/Makefile.am: + * icons/hicolor/48x48/Makefile.am: + * icons/hicolor/48x48/status/Makefile.am: + * icons/hicolor/scalable/status/Makefile.am: + * configure.ac: Added the new item to the build system. + + * code/util/color.hpp: + * code/util/color.cpp: Added public rgb_to_hsv() and hsv_to_rgb() + functions. + + * code/core/iconmanager.hpp: + * code/core/iconmanager.cpp: Added a stock item for the user color + indicator. + + * code/core/userlist.cpp: Show the user color indicator for the user + color instead of a boring monochromatic square. + +2009-10-24 Benjamin Herr + + * icons/hicolor/48x48/status/user-color-indicator.png: + * icons/hicolor/scalable/status/user-color-indicator.svg: Added + fancier icon to display the user colors in the user list. Not actually + implemented. + +2009-10-06 Armin Burgmeier + + * code/core/docwindow.cpp: Restore the "highlight matching brackets" + option correctly from the preferences. Bug #470. + +2009-09-14 Armin Burgmeier + + * code/commands/file-tasks/task-open-multiple.hpp: Added an include to + fix the build. Bug #469. + +2009-09-09 Armin Burgmeier + + * code/window.cpp (on_message_received): Don't leak the uris vector + when an exception is thrown. + +2009-09-09 Benjamin Herr + + * code/window.cpp: + * code/window.hpp: + * code/main.cpp: Also send hostnames given with --connect to an + already running instance of gobby (via libunique). + +2009-09-08 Benjamin Herr + + * code/core/browser.hpp: + * code/core/browser.cpp: + * code/window.hpp: + * code/window.cpp: + * code/main.cpp: Added --connect=HOSTNAME command line flag to + connect to the given hostnames on startup. + +2009-08-30 Armin Burgmeier + + * configure.ac: Require glib-2.18, as replacing existing files while + saving does not work with lower versions. + + * README: Added the new dependency to the README. + +2009-08-30 Armin Burgmeier + + * README: Updated the text, parts of it were still from when we used + darcs (Nicolás Alvarez). + +2009-08-29 Armin Burgmeier + + * update-potfiles: Fixed path of the desktop file, and use + --binary-file=without-matches instead of a checking for the string + 'matches', so that it also works in non-english environments (Nicolás + Alvarez). + +2009-06-05 Philipp Kern + + * gobby-0.5.desktop.in: fix icon to not specify the extension, which is + discouraged by the icon theme specification + +2009-06-03 Armin Burgmeier + + * code/core/header.cpp: Replace localized section string by a + numerical ID for the action names of the various language sections, to + prevent a crash when starting Gobby on a Japanese system. Based on a + patch by Takahiro Sunaga. + +2009-05-26 Armin Burgmeier + + * code/core/browser.hpp: + * code/core/browser.cpp: Changed the HistoryEntry to a + HistoryComboBoxEntry, so that we have a dropdown list for recently + used hosts. Bug #451. + +2009-05-17 Philipp Kern + + * help/C/gobby.xml: ported content from the old readme to the help file + +2009-05-16 Armin Burgmeier + + * code/commands/file-tasks/task-open.hpp: Include to + make sure Gio::File is known. + + * code/commands/file-tasks/task-open.cpp: Removed an unused variable. + +2009-05-16 Armin Burgmeier + + * docs/: Removed. This was outdated anyway. It should be updated and + merged into the new DocBook help in help/. See also #448. + +2009-05-16 Armin Burgmeier + + * Makefile.am: Don't define EXTRA_DIST twice. + +2009-05-16 Armin Burgmeier + + * help/C/gobby.xml: Fixed Gobby command line invocation instruction: + The executable is called gobby-0.5, not gobby. + +2009-05-16 Armin Burgmeier + + * code/core/tablabel.cpp: Use gdk_color_to_string instead of + Gdk::Color::to_string so that Gobby continues to compile with gtkmm + 2.12. Bug #447 (Philipp Kern). + +2009-05-12 Philipp Kern + + * code/dialogs/initial-dialog.cpp: match menuchoice style with + manual + +2009-05-12 Philipp Kern + + * configure.ac: get rid of WITH_GNOME, as it is currently unused + +2009-05-12 Philipp Kern + + * autogen.sh: let autogen fail if some command is not available + or returns with a failure + +2009-05-11 Philipp Kern + + * code/core/header.cpp: use F1 for HelpContents, instead of the + stock Ctrl-H + +2009-05-11 Philipp Kern + + * code/core/header.hpp: + * code/core/header.cpp: add HelpContents action + * code/commands/help-commands.hpp: + * code/commands/help-commands.cpp: invoke help through gtk_show_uri + +2009-05-10 Philipp Kern + + * help/C/gobby.xml: initial manual draft, still pretty empty + * help/Makefile.am: + * Makefile.am: + * autogen.sh: + * configure.ac: use gnome-doc-utils as specified in their manual + * help/C/figures/main_window.png: + * help/C/figures/preferences_appearance.png: + * help/C/figures/preferences_editor.png: + * help/C/figures/preferences_security.png: + * help/C/figures/preferences_user.png: + * help/C/figures/preferences_view.png: add an initial set of + screenshots (main window and preference panes) + +2009-05-10 Philipp Kern + + * contrib/gobby-0.5.desktop.in: moved to the toplevel + * Makefile.am: install the .desktop file unconditionally (i.e. not + only WITH_GNOME) + * contrib/*: removed + +2009-05-03 Armin Burgmeier , Benjamin Herr + + * configure.ac: Added a --with-unique configure option, require + unique-1.0 if set. + + * code/core/nodewatch.hpp: + * code/core/nodewatch.cpp: Accept a const InfcBrowserIter, and + changed the signature of get_browser_iter() to return the BrowserIter + instead of setting a reference parameter. + + * code/operations/operation-new.cpp: + * code/operations/operation-new.hpp: + * code/operations/operation-open.cpp: + * code/operations/operation-open.hpp: + * code/operations/operation-delete.cpp: + * code/operations/operation-delete.hpp: Accept a const InfcBrowserIter + in the constructor. + + * code/operations/operation-open-multiple.hpp: + * code/operations/operation-open-multiple.cpp: Added an operation + which opens multiple files into the same directory. This is nothing + which can't be achieved by creating multiple OperationOpen operations, + but it creates the documents one-after-the-other, and therefore + does not clutter the statusbar, plus it queries the display name of + a file automatically to use as document name, if no document name is + given explicitely. + + * code/operations/operations.hpp: + * code/operations/operations.cpp: Accept a const InfcBrowserIter for + most operations, added the create_documents() method which creates an + OperationOpenMultiple. + + * code/commands/file-commands.hpp: Make set_task() public. We should + later make a separate class for managing the file tasks. + + * code/dialogs/document-location-dialog.hpp: + * code/dialogs/document-location-dialog.cpp: Added a multiple document + mode to load multiple files. This basically hides the document name + entry. + + * code/commands/file-tasks/task-new.cpp: + * code/commands/file-tasks/task-open.cpp: Explicitely set single + document mode on the document location dialog. + + * code/commands/file-tasks/task-open-multiple.hpp: + * code/commands/file-tasks/task-open-multiple.cpp: Added a new task to + open multiple files. This shows a document location dialog in multiple + document mode and launches an OperationOpenMultiple when the user is + done with the dialog. + + * code/commands/file-tasks/task-save-all.cpp: Added a TODO comment + about splitting parts of this into an OperationSaveAll. + + * code/window.hpp: + * code/window.cpp: Take command line arguments in the constructor, and + open documents passed on the command line using a TaskOpenMultiple. If + unique support is enabled, then react on incoming messages and + activate the application window, or open files received in a message. + + * code/main.cpp: Added a --new-instance command line option. If not + set and compiled with unique support, and if another instance is + already running, then send a message to the running instance and exit. + + * Makefile.am: + * code/Makefile.am: + * code/util/Makefile.am: + * code/core/Makefile.am: + * code/dialogs/Makefile.am: + * code/operations/Makefile.am: + * code/commands/Makefile.am: + * code/commands/file-tasks/Makefile.am: Added compiler and linker + flags for unique, added the new files to the build. + + * code/commands/autosave-commands.cpp: Fixed two compiler warnings. + +2009-05-01 Armin Burgmeier + + * code/core/nodewatch.hpp: + * code/core/nodewatch.cpp: Removed the model from NodeWatch, instead + connect to browser's connection's notify::status to detect + disconnection. + + * code/commands/browser-context-commands.cpp: Adapt. + +2008-05-01 Armin Burgmeier + + * gobby-0.5.xpm: Added a 32x32 XPM of the gobby icon. + * Makefile.am: Distribute it. + +2009-04-28 Benjamin Herr + + * code/commands/file-tasks/task-open.cpp: Do not delay reporting + errors in Gobby::TaskOpen::run() anymore, since signal_finished will + already be connected to. + +2009-04-27 Armin Burgmeier + + * code/dialogs/document-location-dialog.cpp: Removed operator== for + two GtkTextIters, as it is not used anymore. We are forced to compare + TextPaths anyway. + +2009-04-27 Armin Burgmeier + + * code/commands/file-tasks/task-save.cpp: Initialize m_running to + false in constructor, and set m_running to true in run(). + +2009-04-27 Benjamin Herr + + * code/commands/file-commands.cpp: + * code/commands/file-commands.hpp: + * code/commands/file-tasks/task-new.cpp: + * code/commands/file-tasks/task-new.hpp: + * code/commands/file-tasks/task-open-file.cpp: + * code/commands/file-tasks/task-open-file.hpp: + * code/commands/file-tasks/task-open-location.cpp: + * code/commands/file-tasks/task-open-location.hpp: + * code/commands/file-tasks/task-open.cpp: + * code/commands/file-tasks/task-open.hpp: + * code/commands/file-tasks/task-save-all.cpp: + * code/commands/file-tasks/task-save-all.hpp: + * code/commands/file-tasks/task-save.cpp: + * code/commands/file-tasks/task-save.hpp: Split most of all Task + constructors into a separate run() member function that is called by + FileCommands::set_task after resetting its current task. This ensures + that a new task only gets to mess with stuff after the old one's + destructor has been run. + +2009-04-26 Armin Burgmeier + + * README: + * configure.ac: Post-release bump to 0.4.93, require libfinity-0.4. + 2009-04-26 Armin Burgmeier * === Released 0.4.92 === diff -Nru gobby-infinote-0.4.92/code/commands/auth-commands.cpp gobby-infinote-0.4.93/code/commands/auth-commands.cpp --- gobby-infinote-0.4.92/code/commands/auth-commands.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/auth-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,180 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "commands/auth-commands.hpp" +#include "dialogs/password-dialog.hpp" +#include "util/i18n.hpp" + +#include +#include + +#include + +namespace +{ + Glib::ustring prompt_password(Gtk::Window& parent, + InfXmppConnection* xmpp, + unsigned int retry_counter) + { + gchar* remote_id; + g_object_get(G_OBJECT(xmpp), + "remote-hostname", &remote_id, + NULL); + Glib::ustring remote_id_(remote_id); + g_free(remote_id); + Gobby::PasswordDialog dialog(parent, + remote_id_, + retry_counter); + dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); + + dialog.add_button(Gtk::Stock::OK, Gtk::RESPONSE_ACCEPT); + if(dialog.run() != Gtk::RESPONSE_ACCEPT) + return ""; + return dialog.get_password(); + } +} + +Gobby::AuthCommands::AuthCommands(Gtk::Window& parent, + Browser& browser, + StatusBar& statusbar, + const Preferences& preferences): + m_parent(parent), + m_browser(browser), + m_statusbar(statusbar), + m_preferences(preferences) +{ + int gsasl_status = gsasl_init(&m_gsasl); + if(gsasl_status != GSASL_OK) + throw std::runtime_error( + std::string("gsasl error: ") + + gsasl_strerror(gsasl_status)); + gsasl_callback_set(m_gsasl, &AuthCommands::gsasl_callback_static); + gsasl_callback_hook_set(m_gsasl, this); + g_object_set_data_full(G_OBJECT(m_browser.get_store()), + "Gobby::AuthCommands::m_gsasl", + m_gsasl, + reinterpret_cast(gsasl_done)); + m_browser.set_gsasl_context(m_gsasl, "ANONYMOUS PLAIN"); + g_signal_connect( + G_OBJECT(m_browser.get_store()), + "set-browser", + G_CALLBACK(&AuthCommands::set_browser_callback_static), + this); +} + +Gobby::AuthCommands::~AuthCommands() +{ + m_browser.set_gsasl_context(NULL, NULL); + + for(RetryMap::iterator iter = m_retries.begin(); + iter != m_retries.end(); ++iter) + { + g_signal_handler_disconnect(iter->first, iter->second.handle); + } +} + +int Gobby::AuthCommands::gsasl_callback(Gsasl_session* session, + Gsasl_property prop) +{ + Glib::ustring username = m_preferences.user.name; + switch(prop) + { + case GSASL_ANONYMOUS_TOKEN: + gsasl_property_set(session, + GSASL_ANONYMOUS_TOKEN, + username.c_str()); + return GSASL_OK; + case GSASL_AUTHID: + gsasl_property_set(session, + GSASL_AUTHID, + username.c_str()); + return GSASL_OK; + case GSASL_PASSWORD: + { + InfXmppConnection* xmpp = + INF_XMPP_CONNECTION( + gsasl_session_hook_get(session)); + RetryMap::iterator i = m_retries.find(xmpp); + if(i == m_retries.end()) + { + i = m_retries.insert( + std::make_pair(xmpp, + RetryInfo())).first; + i->second.retries = 0; + i->second.handle = g_signal_connect( + G_OBJECT(xmpp), + "notify::status", + G_CALLBACK(on_notify_status_static), + this); + } + RetryInfo& info(i->second); + + Glib::ustring password = + prompt_password(m_parent, xmpp, info.retries); + ++info.retries; + + if(password.empty()) + return GSASL_NO_PASSWORD; + gsasl_property_set(session, + GSASL_PASSWORD, + password.c_str()); + return GSASL_OK; + } + default: + return GSASL_NO_CALLBACK; + } +} + +void Gobby::AuthCommands::set_browser_callback(InfcBrowser* browser) +{ + g_signal_connect( + G_OBJECT(browser), + "error", + G_CALLBACK(browser_error_callback_static), + this); +} + +void Gobby::AuthCommands::browser_error_callback(InfcBrowser* browser, + GError* error) +{ + if(error->domain != inf_gsasl_error_quark()) + return; + + gchar* remote; + InfXmlConnection* connection = infc_browser_get_connection(browser); + g_assert(INF_IS_XMPP_CONNECTION(connection)); + g_object_get(connection, + "remote-hostname", &remote, + NULL); + Glib::ustring short_message(Glib::ustring::compose( + "Authentication failed for \"%1\"", remote)); + g_free(remote); + m_statusbar.add_error_message(short_message, error->message); +} + +void Gobby::AuthCommands::on_notify_status(InfXmppConnection* connection) +{ + InfXmlConnectionStatus status; + g_object_get(G_OBJECT(connection), "status", &status, NULL); + if(status != INF_XML_CONNECTION_OPENING) + { + RetryMap::iterator iter = m_retries.find(connection); + g_signal_handler_disconnect(connection, iter->second.handle); + m_retries.erase(iter); + } +} \ No newline at end of file diff -Nru gobby-infinote-0.4.92/code/commands/auth-commands.hpp gobby-infinote-0.4.93/code/commands/auth-commands.hpp --- gobby-infinote-0.4.92/code/commands/auth-commands.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/auth-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,108 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_AUTH_COMMANDS_HPP_ +#define _GOBBY_AUTH_COMMANDS_HPP_ + +#include "core/browser.hpp" +#include "core/statusbar.hpp" +#include "core/preferences.hpp" + +#include + +#include +#include + +namespace Gobby +{ + +class AuthCommands: public sigc::trackable +{ +public: + AuthCommands(Gtk::Window& parent, + Browser& browser, + StatusBar& statusbar, + const Preferences& preferences); + + ~AuthCommands(); + +protected: + static int gsasl_callback_static(Gsasl* ctx, + Gsasl_session* session, + Gsasl_property prop) + { + AuthCommands* auth = static_cast( + gsasl_callback_hook_get(ctx)); + return auth->gsasl_callback(session, prop); + } + + static void set_browser_callback_static(InfGtkBrowserModel*, + GtkTreePath*, + GtkTreeIter*, + InfcBrowser* browser, + gpointer user_data) + { + AuthCommands* auth = static_cast(user_data); + auth->set_browser_callback(browser); + } + + static void on_notify_status_static(GObject* connection_obj, + GParamSpec*, + gpointer user_data) + { + AuthCommands* auth = static_cast(user_data); + auth->on_notify_status(INF_XMPP_CONNECTION(connection_obj)); + } + + static void browser_error_callback_static(InfcBrowser* browser, + gpointer error_ptr, + gpointer user_data) + { + AuthCommands* auth = static_cast(user_data); + GError* error = static_cast(error_ptr); + + auth->browser_error_callback(browser, error); + } + + int gsasl_callback(Gsasl_session* session, + Gsasl_property prop); + + void set_browser_callback(InfcBrowser* browser); + + void browser_error_callback(InfcBrowser* browser, GError* error); + + void on_notify_status(InfXmppConnection* connection); + + Gtk::Window& m_parent; + Browser& m_browser; + StatusBar& m_statusbar; + const Preferences& m_preferences; + Gsasl* m_gsasl; + + struct RetryInfo { + unsigned int retries; + gulong handle; + }; + + typedef std::map RetryMap; + RetryMap m_retries; +}; + +} + +#endif // _GOBBY_AUTH_COMMANDS_HPP_ diff -Nru gobby-infinote-0.4.92/code/commands/autosave-commands.cpp gobby-infinote-0.4.93/code/commands/autosave-commands.cpp --- gobby-infinote-0.4.92/code/commands/autosave-commands.cpp 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/autosave-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -20,15 +20,17 @@ #include "operations/operation-save.hpp" +#include "core/sessionuserview.hpp" + #include class Gobby::AutosaveCommands::Info { public: - Info(AutosaveCommands& commands, DocWindow& doc): - m_commands(commands), m_document(doc), m_save_op(NULL) + Info(AutosaveCommands& commands, TextSessionView& view): + m_commands(commands), m_view(view), m_save_op(NULL) { - GtkSourceBuffer* buffer = m_document.get_text_buffer(); + GtkSourceBuffer* buffer = m_view.get_text_buffer(); m_modified_changed_handler = g_signal_connect_after( G_OBJECT(buffer), "modified-changed", @@ -41,7 +43,7 @@ Operations& operations = m_commands.m_operations; OperationSave* save_op = - operations.get_save_operation_for_document(doc); + operations.get_save_operation_for_document(view); if(save_op != NULL) begin_save_operation(save_op); else if(gtk_text_buffer_get_modified(GTK_TEXT_BUFFER(buffer))) @@ -50,7 +52,7 @@ ~Info() { - GtkSourceBuffer* buffer = m_document.get_text_buffer(); + GtkSourceBuffer* buffer = m_view.get_text_buffer(); g_signal_handler_disconnect(G_OBJECT(buffer), m_modified_changed_handler); @@ -94,7 +96,7 @@ if(m_save_op == NULL) { GtkTextBuffer* buffer = - GTK_TEXT_BUFFER(m_document.get_text_buffer()); + GTK_TEXT_BUFFER(m_view.get_text_buffer()); if(!gtk_text_buffer_get_modified(buffer)) m_timeout_handler.disconnect(); @@ -119,7 +121,7 @@ // uri yet where to save the document. However, we // automatically retry when the document is assigned an URI, // since the modification flag will change with this anyway. - const std::string& key = m_document.get_info_storage_key(); + const std::string& key = m_view.get_info_storage_key(); const DocumentInfoStorage::Info* info = m_commands.m_info_storage.get_info(key); if(!info || info->uri.empty()) @@ -146,7 +148,7 @@ void on_save_operation_finished(bool success) { GtkTextBuffer* buffer = - GTK_TEXT_BUFFER(m_document.get_text_buffer()); + GTK_TEXT_BUFFER(m_view.get_text_buffer()); if(success) m_sync_time = m_save_op->get_start_time(); @@ -161,7 +163,7 @@ bool on_timeout() { - const std::string& key = m_document.get_info_storage_key(); + const std::string& key = m_view.get_info_storage_key(); const DocumentInfoStorage::Info* info = m_commands.m_info_storage.get_info(key); @@ -170,7 +172,7 @@ if(info != NULL) { m_commands.m_operations.save_document( - m_document, m_commands.m_folder, + m_view, m_commands.m_folder, info->uri, info->encoding, info->eol_style); g_assert(m_save_op != NULL); @@ -194,7 +196,7 @@ } AutosaveCommands& m_commands; - DocWindow& m_document; + TextSessionView& m_view; gulong m_modified_changed_handler; @@ -208,8 +210,8 @@ Operations& operations, const DocumentInfoStorage& storage, const Preferences& preferences): - m_folder(folder), m_info_storage(storage), - m_operations(operations), m_preferences(preferences) + m_folder(folder), m_operations(operations), + m_info_storage(storage), m_preferences(preferences) { m_folder.signal_document_added().connect( sigc::mem_fun(*this, &AutosaveCommands::on_document_added)); @@ -244,36 +246,49 @@ } } -void Gobby::AutosaveCommands::on_document_added(DocWindow& document) +void Gobby::AutosaveCommands::on_document_added(SessionView& view) { if(m_preferences.editor.autosave_enabled) { - g_assert(m_info_map.find(&document) == m_info_map.end()); - m_info_map[&document] = new Info(*this, document); + // We can only save text views: + TextSessionView* text_view = + dynamic_cast(&view); + if(text_view) + { + g_assert(m_info_map.find(text_view) == + m_info_map.end()); + m_info_map[text_view] = new Info(*this, *text_view); + } } } -void Gobby::AutosaveCommands::on_document_removed(DocWindow& document) +void Gobby::AutosaveCommands::on_document_removed(SessionView& view) { if(m_preferences.editor.autosave_enabled) { - InfoMap::iterator iter = m_info_map.find(&document); - g_assert(iter != m_info_map.end()); - delete iter->second; - m_info_map.erase(iter); + TextSessionView* text_view = + dynamic_cast(&view); + + if(text_view) + { + InfoMap::iterator iter = m_info_map.find(text_view); + g_assert(iter != m_info_map.end()); + delete iter->second; + m_info_map.erase(iter); + } } } void Gobby::AutosaveCommands::on_begin_save_operation( OperationSave* operation) { - DocWindow* document = operation->get_document(); + TextSessionView* view = operation->get_view(); // Save operation just started, document must be present - g_assert(document != NULL); + g_assert(view != NULL); if(m_preferences.editor.autosave_enabled) { - InfoMap::iterator iter = m_info_map.find(document); + InfoMap::iterator iter = m_info_map.find(view); g_assert(iter != m_info_map.end()); iter->second->begin_save_operation(operation); @@ -284,11 +299,26 @@ { if(m_preferences.editor.autosave_enabled) { - for(unsigned int i = 0; i < m_folder.get_n_pages(); ++ i) + for(unsigned int i = 0; + i < static_cast(m_folder.get_n_pages()); + ++i) { - DocWindow* document = static_cast( - m_folder.get_nth_page(i)); - m_info_map[document] = new Info(*this, *document); + // TODO: Add convenience API to folder, so that we + // don't need to know here that it actually contains + // SessionUserViews. + SessionUserView* userview = + static_cast( + m_folder.get_nth_page(i)); + + SessionView& view = userview->get_session_view(); + TextSessionView* text_view = + dynamic_cast(&view); + + if(text_view) + { + m_info_map[text_view] = + new Info(*this, *text_view); + } } } else diff -Nru gobby-infinote-0.4.92/code/commands/autosave-commands.hpp gobby-infinote-0.4.93/code/commands/autosave-commands.hpp --- gobby-infinote-0.4.92/code/commands/autosave-commands.hpp 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/autosave-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -39,8 +39,8 @@ ~AutosaveCommands(); protected: - void on_document_added(DocWindow& document); - void on_document_removed(DocWindow& document); + void on_document_added(SessionView& view); + void on_document_removed(SessionView& view); void on_begin_save_operation(OperationSave* operation); void on_autosave_enabled_changed(); @@ -52,7 +52,7 @@ const Preferences& m_preferences; class Info; - typedef std::map InfoMap; + typedef std::map InfoMap; InfoMap m_info_map; }; diff -Nru gobby-infinote-0.4.92/code/commands/browser-commands.cpp gobby-infinote-0.4.93/code/commands/browser-commands.cpp --- gobby-infinote-0.4.92/code/commands/browser-commands.cpp 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/browser-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -16,199 +16,235 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -// TODO: Split this file into multiple smaller files, -// perhaps browser-commands.cpp (basically on_activate) -// synchronization-commands.cpp (basically on_subscribe_session) -// user-join-commands.cpp (basically join_user) - #include "commands/browser-commands.hpp" #include "util/i18n.hpp" -#include -#include - -namespace +class Gobby::BrowserCommands::BrowserInfo { - const char* GOBBY_BROWSER_COMMANDS_SESSION_PROXY = - "GOBBY_BROWSER_COMMANDS_SESSION_PROXY"; - const char* GOBBY_BROWSER_COMMANDS_USER_JOIN_RETRY = - "GOBBY_BROWSER_COMMANDS_USER_JOIN_RETRY"; - - enum ErrorType { - SYNC_ERROR, - USER_JOIN_ERROR - }; - - void set_error_text(Gobby::DocWindow& window, - const Glib::ustring& initial_text, - ErrorType type) +public: + BrowserInfo(BrowserCommands& commands, + InfcBrowser* browser); + + ~BrowserInfo(); + + InfcBrowser* get_browser() { return m_browser; } +private: + static void on_notify_status_static(GObject* object, + GParamSpec* pspec, + gpointer user_data) { - using namespace Gobby; - Glib::ustring type_text; + static_cast(user_data)->on_notify_status( + INFC_BROWSER(object)); + } - switch(type) - { - case SYNC_ERROR: - // Document cannot be used if an error happened - // during synchronization. - type_text = _("This document cannot be used."); - break; - case USER_JOIN_ERROR: - type_text = _("You can still watch others editing " - "the document, but you cannot edit " - "it yourself."); - break; - } + InfcBrowser* m_browser; - const Glib::ustring info_text = - _("If you have an idea what could have caused the " - "problem, then you may attempt to solve it and " - "try again (after having closed this document). " - "Otherwise it is most likely a bug in the " - "software. In that case, please file a bug report " - "at http://gobby.0x539.de/trac/newticket and " - "provide as much information as you can, including " - "what you did when the problem occurred and how to " - "reproduce the problem (if possible) so that we " - "can fix the problem in a later version. " - "Thank you."); + gulong m_notify_status_handler; +}; - window.set_info( - initial_text + "\n\n" + type_text + "\n\n" + - info_text, true); - } +class Gobby::BrowserCommands::RequestInfo +{ +public: + RequestInfo(BrowserCommands& commands, + InfcBrowser* browser, InfcBrowserIter* iter, + InfcNodeRequest* request, StatusBar& status_bar); + ~RequestInfo(); - void retr_local_user_func(InfUser* user, gpointer user_data) +private: + static void on_failed_static(InfcNodeRequest* request, + const GError* error, gpointer user_data) { - (*static_cast(user_data)) = user; + static_cast(user_data)-> + on_failed(request, error); } -} -struct Gobby::BrowserCommands::BrowserNode -{ - BrowserNode(BrowserCommands& commands, InfcBrowser* browser): - m_browser(browser) + static void on_finished_static(InfcNodeRequest* request, + InfcBrowserIter* iter, + gpointer user_data) { - g_object_ref(m_browser); - - m_subscribe_session_handler = g_signal_connect( - G_OBJECT(browser), "subscribe-session", - G_CALLBACK(&on_subscribe_session_static), &commands); + static_cast(user_data)-> + on_finished(request); } - ~BrowserNode() - { - g_signal_handler_disconnect(G_OBJECT(m_browser), - m_subscribe_session_handler); + InfcNodeRequest* m_request; - g_object_unref(m_browser); - } + StatusBar& m_status_bar; + StatusBar::MessageHandle m_handle; - InfcBrowser* m_browser; - gulong m_subscribe_session_handler; + gulong m_failed_handler; + gulong m_finished_handler; }; -// These need default and copy constructors to satisfy the map properties. -// However, we only do copy them as long as they are unset. -Gobby::BrowserCommands::RequestNode::RequestNode(): - commands(NULL) {} - -Gobby::BrowserCommands::RequestNode::RequestNode(const RequestNode& node): - commands(node.commands) +Gobby::BrowserCommands::BrowserInfo::BrowserInfo(BrowserCommands& cmds, + InfcBrowser* browser): + m_browser(browser) { - g_assert(commands == NULL); -} + m_notify_status_handler = g_signal_connect( + m_browser, "notify::status", + G_CALLBACK(on_notify_status_static), &cmds); -Gobby::BrowserCommands::RequestNode::~RequestNode() -{ - if(commands != NULL) - { - commands->m_status_bar.remove_message(handle); - } + g_object_ref(browser); } -Gobby::BrowserCommands::SessionNode::SessionNode(): - proxy(NULL) {} - -Gobby::BrowserCommands::SessionNode::SessionNode(const SessionNode& node): - proxy(node.proxy), status(node.status) +Gobby::BrowserCommands::BrowserInfo::~BrowserInfo() { - g_assert(proxy == NULL); + g_signal_handler_disconnect(m_browser, m_notify_status_handler); + + g_object_unref(m_browser); } -Gobby::BrowserCommands::SessionNode::~SessionNode() +Gobby::BrowserCommands::RequestInfo::RequestInfo(BrowserCommands& commands, + InfcBrowser* browser, + InfcBrowserIter* iter, + InfcNodeRequest* request, + StatusBar& status_bar): + m_request(request), m_status_bar(status_bar) { - if(proxy != NULL) + g_object_ref(request); + + if(iter) { - InfSession* session = infc_session_proxy_get_session(proxy); - g_signal_handler_disconnect(proxy, notify_connection_id); - g_signal_handler_disconnect(session, failed_id); - g_signal_handler_disconnect(session, complete_before_id); - g_signal_handler_disconnect(session, complete_after_id); - g_signal_handler_disconnect(session, progress_id); - g_signal_handler_disconnect(session, close_id); - - g_object_unref(proxy); + m_handle = m_status_bar.add_info_message( + Glib::ustring::compose( + _("Subscribing to %1..."), Glib::ustring( + infc_browser_iter_get_name( + browser, iter)))); + } + else + { + InfXmlConnection* connection = + infc_browser_get_connection(browser); + gchar* remote_hostname; + g_object_get(G_OBJECT(connection), + "remote-id", &remote_hostname, NULL); + m_handle = m_status_bar.add_info_message( + Glib::ustring::compose( + _("Subscribing to chat on %1..."), + remote_hostname)); + g_free(remote_hostname); } + + m_failed_handler = g_signal_connect(request, "failed", + G_CALLBACK(on_failed_static), &commands); + m_finished_handler = g_signal_connect(request, "finished", + G_CALLBACK(on_finished_static), &commands); } -Gobby::BrowserCommands::BrowserCommands(Browser& browser, Folder& folder, - DocumentInfoStorage& info_storage, - StatusBar& status_bar, - const Preferences& preferences): - m_browser(browser), m_folder(folder), m_info_storage(info_storage), - m_status_bar(status_bar), m_preferences(preferences) -{ - InfGtkBrowserModel* model = INF_GTK_BROWSER_MODEL(browser.get_store()); - m_set_browser_handler = - g_signal_connect(G_OBJECT(model), "set-browser", - G_CALLBACK(&on_set_browser_static), this); +Gobby::BrowserCommands::RequestInfo::~RequestInfo() +{ + m_status_bar.remove_message(m_handle); + + g_signal_handler_disconnect(m_request, m_failed_handler); + g_signal_handler_disconnect(m_request, m_finished_handler); + g_object_unref(m_request); +} + +Gobby::BrowserCommands::BrowserCommands(Browser& browser, + Folder& folder, + StatusBar& status_bar): + m_browser(browser), m_folder(folder), m_status_bar(status_bar) +{ m_browser.signal_activate().connect( sigc::mem_fun(*this, &BrowserCommands::on_activate)); + + m_set_browser_handler = g_signal_connect( + browser.get_store(), "set-browser", + G_CALLBACK(on_set_browser_static), this); } Gobby::BrowserCommands::~BrowserCommands() { + for(RequestMap::iterator iter = m_request_map.begin(); + iter != m_request_map.end(); ++ iter) + { + delete iter->second; + } + for(BrowserMap::iterator iter = m_browser_map.begin(); - iter != m_browser_map.end(); ++ iter) + iter != m_browser_map.end(); ++iter) { delete iter->second; } - g_signal_handler_disconnect( - INF_GTK_BROWSER_MODEL(m_browser.get_store()), - m_set_browser_handler); + g_signal_handler_disconnect(m_browser.get_store(), + m_set_browser_handler); } void Gobby::BrowserCommands::on_set_browser(InfGtkBrowserModel* model, GtkTreeIter* iter, InfcBrowser* browser) { + InfcBrowser* old_browser; + gtk_tree_model_get( + GTK_TREE_MODEL(model), iter, + INF_GTK_BROWSER_MODEL_COL_BROWSER, &old_browser, -1); + + if(old_browser != NULL) + { + // Find by browser in case old_browser has it's connection + // reset. + BrowserMap::iterator iter = m_browser_map.find(old_browser); + + g_assert(iter != m_browser_map.end()); + + delete iter->second; + m_browser_map.erase(iter); + + g_object_unref(old_browser); + } + if(browser != NULL) { g_assert(m_browser_map.find(browser) == m_browser_map.end()); - m_browser_map[browser ] = new BrowserNode(*this, browser); + + m_browser_map[browser] = new BrowserInfo(*this, browser); + if(infc_browser_get_status(browser) == INFC_BROWSER_CONNECTED) + if(!infc_browser_get_chat_session(browser)) + subscribe_chat(browser); } - else - { - InfcBrowser* old_browser; - gtk_tree_model_get( - GTK_TREE_MODEL(model), iter, - INF_GTK_BROWSER_MODEL_COL_BROWSER, &old_browser, -1); +} - if(old_browser != NULL) +void Gobby::BrowserCommands::on_notify_status(InfcBrowser* browser) +{ + InfXmlConnection* connection; + InfXmlConnectionStatus status; + + switch(infc_browser_get_status(browser)) + { + case INFC_BROWSER_DISCONNECTED: + // Close connection if browser got disconnected. This for + // example happens when the server does not send an initial + // welcome message. + connection = infc_browser_get_connection(browser); + g_object_get(G_OBJECT(connection), "status", &status, NULL); + if(status != INF_XML_CONNECTION_CLOSED && + status != INF_XML_CONNECTION_CLOSING) { - BrowserMap::iterator iter = - m_browser_map.find(old_browser); - g_assert(iter != m_browser_map.end()); - delete iter->second; - m_browser_map.erase(iter); - g_object_unref(old_browser); + inf_xml_connection_close(connection); } + + break; + case INFC_BROWSER_CONNECTING: + break; + case INFC_BROWSER_CONNECTED: + if(!infc_browser_get_chat_session(browser)) + subscribe_chat(browser); + break; + default: + g_assert_not_reached(); + break; } } +void Gobby::BrowserCommands::subscribe_chat(InfcBrowser* browser) +{ + InfcNodeRequest* request = infc_browser_subscribe_chat(browser); + g_assert(m_request_map.find(request) == m_request_map.end()); + m_request_map[request] = + new RequestInfo(*this, browser, NULL, request, m_status_bar); +} + void Gobby::BrowserCommands::on_activate(InfcBrowser* browser, InfcBrowserIter* iter) { @@ -217,21 +253,17 @@ if(proxy != NULL) { InfSession* session = infc_session_proxy_get_session(proxy); - InfTextSession* text_session = INF_TEXT_SESSION(session); - DocWindow* window = m_folder.lookup_document(text_session); + SessionView* view = m_folder.lookup_document(session); - if(window != NULL) + if(view != NULL) { - m_folder.switch_to_document(*window); + m_folder.switch_to_document(*view); } else { // This should not happen: We insert every document // we subscribe to directly into the folder. g_assert_not_reached(); - /*folder.add_document( - text_session, - infc_browser_iter_get_name(browser, iter));*/ } } else @@ -246,30 +278,11 @@ request = infc_browser_iter_subscribe_session(browser, iter); - RequestNode& node = m_request_map[request]; - node.commands = this; - node.browser = browser; - node.handle = m_status_bar.add_message( - StatusBar::INFO, - Glib::ustring::compose( - _("Subscribing to %1..."), - Glib::ustring( - infc_browser_iter_get_name( - browser, iter))), 0); - - g_signal_connect( - request, "finished", - G_CALLBACK(&on_finished_static), this); - - g_signal_connect( - request, "failed", - G_CALLBACK(&on_failed_static), this); - } - else - { - m_status_bar.add_message( - StatusBar::INFO, - _("Subscription already in progress"), 2); + g_assert(m_request_map.find(request) == + m_request_map.end()); + m_request_map[request] = + new RequestInfo(*this, browser, iter, + request, m_status_bar); } } } @@ -278,401 +291,19 @@ { RequestMap::iterator iter = m_request_map.find(request); g_assert(iter != m_request_map.end()); - - // The synchronization is watched in on_subscribe_session which is - // emitted along with this signal. + delete iter->second; m_request_map.erase(iter); } -void Gobby::BrowserCommands::on_subscribe_session(InfcBrowser* browser, - InfcBrowserIter* iter, - InfcSessionProxy* proxy) -{ - InfSession* session = infc_session_proxy_get_session(proxy); - - DocWindow& window = m_folder.add_document( - INF_TEXT_SESSION(session), - infc_browser_iter_get_name(browser, iter), - m_info_storage.get_key(browser, iter)); - - // For now we always highlight the newly created session... - // TODO: If the user issued other browserview events in the meanwhile, - // then don't select the item, and if the user did issue other folder - // events, then don't switch to the document in the folder. - m_folder.switch_to_document(window); - gtk_widget_grab_focus(GTK_WIDGET(window.get_text_view())); - m_browser.set_selected(browser, iter); - - SessionNode& node = m_session_map[session]; - node.proxy = proxy; - - /* We cache this for the synchronization-complete signal handler, - * since the session already changed to RUNNING before the signal - * handler is run: */ - node.status = inf_session_get_status(session); - g_object_ref(proxy); - - node.notify_connection_id = g_signal_connect( - proxy, "notify::connection", - G_CALLBACK(on_notify_connection_static), this); - node.failed_id = g_signal_connect( - session, "synchronization-failed", - G_CALLBACK(on_synchronization_failed_static), this); - - // Connect _after here so that we can access the - // AdoptedAlgorithm the default handler created to perform - // the user join. - node.complete_before_id = g_signal_connect( - session, "synchronization-complete", - G_CALLBACK(on_synchronization_complete_before_static), this); - node.complete_after_id = g_signal_connect_after( - session, "synchronization-complete", - G_CALLBACK(on_synchronization_complete_after_static), this); - node.progress_id = g_signal_connect( - session, "synchronization-progress", - G_CALLBACK(on_synchronization_progress_static), this); - node.close_id = g_signal_connect( - session, "close", G_CALLBACK(on_close_static), this); - - if(inf_session_get_status(session) == INF_SESSION_SYNCHRONIZING) - { - InfXmlConnection* connection; - g_object_get(G_OBJECT(session), - "sync-connection", &connection, NULL); - - gdouble percentage = - inf_session_get_synchronization_progress(session, - connection); - g_object_unref(connection); - - window.set_info( - Glib::ustring::compose( - _("Synchronization in progress... %1%%"), - static_cast(percentage * 100)), - false); - } - else - { - // Already in running state, do user join - join_user(proxy, m_preferences.user.name); - } -} - void Gobby::BrowserCommands::on_failed(InfcNodeRequest* request, const GError* error) { RequestMap::iterator iter = m_request_map.find(request); g_assert(iter != m_request_map.end()); - + delete iter->second; m_request_map.erase(iter); - m_status_bar.add_message( - StatusBar::ERROR, - Glib::ustring::compose(_("Subscription failed: %1"), - error->message), 5); -} - -void Gobby::BrowserCommands::on_synchronization_failed(InfSession* session, - InfXmlConnection* conn, - const GError* error) -{ - SessionMap::iterator iter = m_session_map.find(session); - g_assert(iter != m_session_map.end()); - - if(iter->second.status == INF_SESSION_SYNCHRONIZING) - { - DocWindow* window = m_folder.lookup_document( - INF_TEXT_SESSION(session)); - g_assert(window != NULL); - - set_error_text( - *window, - Glib::ustring::compose("Synchronization failed: %1", - error->message), SYNC_ERROR); - - // The document will be of no use anyway, so consider it not - // being modified. - gtk_text_buffer_set_modified( - GTK_TEXT_BUFFER(window->get_text_buffer()), FALSE); - - // Don't wait until the session is closed because of this, - // since this would also cause a connection notify, - // overwriting the error message with a useless one. - m_session_map.erase(iter); - } -} - -void Gobby::BrowserCommands:: - on_synchronization_complete_before(InfSession* session, - InfXmlConnection* connection) -{ - SessionMap::iterator iter = m_session_map.find(session); - g_assert(iter != m_session_map.end()); - - if(iter->second.status == INF_SESSION_SYNCHRONIZING) - { - // Unset modified flag after synchronization. - DocWindow* window = m_folder.lookup_document( - INF_TEXT_SESSION(session)); - g_assert(window != NULL); - - gtk_text_buffer_set_modified( - GTK_TEXT_BUFFER(window->get_text_buffer()), FALSE); - - // TODO: Actually we should always set the modified flag, - // except the document is either empty, or known in the - // document info storage and the version on disk is the same - // as the one we got synchronized. We could store a hash and - // modification time in the documentinfo storage for this. - // We should do this is another source file, such as - // synchronization-commands.cpp. - } -} - -void Gobby::BrowserCommands:: - on_synchronization_complete_after(InfSession* session, - InfXmlConnection* connection) -{ - SessionMap::iterator iter = m_session_map.find(session); - g_assert(iter != m_session_map.end()); - - if(iter->second.status == INF_SESSION_SYNCHRONIZING) - { - iter->second.status = INF_SESSION_RUNNING; - join_user(iter->second.proxy, m_preferences.user.name); - } -} - -void Gobby::BrowserCommands::on_synchronization_progress(InfSession* session, - InfXmlConnection* c, - gdouble percentage) -{ - SessionMap::iterator iter = m_session_map.find(session); - g_assert(iter != m_session_map.end()); - - if(iter->second.status == INF_SESSION_SYNCHRONIZING) - { - DocWindow* window = m_folder.lookup_document( - INF_TEXT_SESSION(session)); - - g_assert(window != NULL); - window->set_info( - Glib::ustring::compose( - _("Synchronization in progress... %1%%"), - static_cast(percentage * 100)), - false); - } -} - -void Gobby::BrowserCommands::on_close(InfSession* session) -{ - SessionMap::iterator iter = m_session_map.find(session); - g_assert(iter != m_session_map.end()); - m_session_map.erase(iter); -} - -void Gobby::BrowserCommands::on_notify_connection(InfcSessionProxy* proxy) -{ - InfSession* session = infc_session_proxy_get_session(proxy); - SessionMap::iterator iter = m_session_map.find(session); - g_assert(iter != m_session_map.end()); - - if(infc_session_proxy_get_connection(proxy) == NULL) - { - DocWindow* window = m_folder.lookup_document( - INF_TEXT_SESSION(session)); - g_assert(window != NULL); - - window->set_info(_( - "The connection to the publisher of this document " - "has been lost. Further changes to the document " - "could not be synchronized to others anymore, " - "therefore the document cannot be edited anymore.\n\n" - "Please note also that it is possible that not all " - "of your latest changes have reached the " - "publisher before the connection was lost."), true); - window->set_active_user(NULL); - } -} - -void Gobby::BrowserCommands::join_user(InfcSessionProxy* proxy, - const Glib::ustring& name) -{ - // Check if there is already a local user - InfSession* session = infc_session_proxy_get_session(proxy); - InfUserTable* user_table = inf_session_get_user_table(session); - - InfUser* user = NULL; - inf_user_table_foreach_local_user(user_table, &retr_local_user_func, - &user); - - if(user == NULL) - { - DocWindow* window = m_folder.lookup_document( - INF_TEXT_SESSION(session)); - g_assert(window != NULL); - - // TODO: Automatically join with a different name if there is - // already a user with the preferred name? - GParameter params[5] = { - { "name", { 0 } }, - { "hue", { 0 } }, - { "vector", { 0 } }, - { "caret-position", { 0 } }, - { "status", { 0 } } - }; - - g_value_init(¶ms[0].value, G_TYPE_STRING); - g_value_init(¶ms[1].value, G_TYPE_DOUBLE); - g_value_init(¶ms[2].value, INF_ADOPTED_TYPE_STATE_VECTOR); - g_value_init(¶ms[3].value, G_TYPE_UINT); - g_value_init(¶ms[4].value, INF_TYPE_USER_STATUS); - - g_value_set_static_string(¶ms[0].value, name.c_str()); - g_value_set_double( - ¶ms[1].value, m_preferences.user.hue); - g_value_take_boxed( - ¶ms[2].value,inf_adopted_state_vector_copy( - inf_adopted_algorithm_get_current( - inf_adopted_session_get_algorithm( - INF_ADOPTED_SESSION( - session))))); - - GtkTextBuffer* buffer = - GTK_TEXT_BUFFER(window->get_text_buffer()); - GtkTextMark* mark = gtk_text_buffer_get_insert(buffer); - GtkTextIter caret_iter; - gtk_text_buffer_get_iter_at_mark(buffer, &caret_iter, mark); - g_value_set_uint(¶ms[3].value, - gtk_text_iter_get_offset(&caret_iter)); - - if(m_folder.get_current_document() == window) - g_value_set_enum(¶ms[4].value, INF_USER_ACTIVE); - else - g_value_set_enum(¶ms[4].value, INF_USER_INACTIVE); - - GError* error = NULL; - InfcUserRequest* request = infc_session_proxy_join_user( - proxy, params, 5, &error); - - g_value_unset(¶ms[0].value); - g_value_unset(¶ms[1].value); - g_value_unset(¶ms[2].value); - g_value_unset(¶ms[3].value); - g_value_unset(¶ms[4].value); - - if(request == NULL) - { - set_error_text( - *window, - Glib::ustring::compose("User Join failed: %1", - error->message), - USER_JOIN_ERROR); - } - else - { - window->set_info( - _("User Join in progress..."), false); - - g_signal_connect( - request, "failed", - G_CALLBACK(on_user_join_failed_static), this); - g_signal_connect( - request, "finished", - G_CALLBACK(on_user_join_finished_static), - this); - - g_object_set_data( - G_OBJECT(request), - GOBBY_BROWSER_COMMANDS_SESSION_PROXY, - proxy); - } - } - else - { - user_joined(proxy, user); - } -} - -void Gobby::BrowserCommands::on_user_join_failed(InfcUserRequest* request, - const GError* error) -{ - gpointer proxy_ptr = - g_object_get_data(G_OBJECT(request), - GOBBY_BROWSER_COMMANDS_SESSION_PROXY); - - InfcSessionProxy* proxy = static_cast(proxy_ptr); - DocWindow* window = m_folder.lookup_document( - INF_TEXT_SESSION(infc_session_proxy_get_session(proxy))); - g_assert(window != NULL); - - if(error->domain == inf_user_error_quark() && - error->code == INF_USER_ERROR_NAME_IN_USE) - { - gpointer retry_ptr = g_object_get_data( - G_OBJECT(proxy), - GOBBY_BROWSER_COMMANDS_USER_JOIN_RETRY); - - guint retry; - if(retry_ptr) - retry = GPOINTER_TO_UINT(retry_ptr); - else - retry = 2; - - // TODO: Introduce an "alternative name" preference - join_user(proxy, Glib::ustring::compose( - "%1 %2", m_preferences.user.name, retry)); - - g_object_set_data( - G_OBJECT(proxy), - GOBBY_BROWSER_COMMANDS_USER_JOIN_RETRY, - GUINT_TO_POINTER(retry + 1)); - } - else - { - // Remove the user join retry counter as we don't need it - // anymore if the user join failed anyway - g_object_set_data(G_OBJECT(proxy), - GOBBY_BROWSER_COMMANDS_USER_JOIN_RETRY, - NULL); - - set_error_text( - *window, - Glib::ustring::compose("User Join failed: %1", - error->message), - USER_JOIN_ERROR); - } -} - -void Gobby::BrowserCommands::on_user_join_finished(InfcUserRequest* request, - InfUser* user) -{ - g_assert(INF_TEXT_IS_USER(user)); - - gpointer proxy_ptr = - g_object_get_data(G_OBJECT(request), - GOBBY_BROWSER_COMMANDS_SESSION_PROXY); - - InfcSessionProxy* proxy = static_cast(proxy_ptr); - - // Clear user join retry counter from proxy now that - // the user join finished. - g_object_set_data(G_OBJECT(proxy), - GOBBY_BROWSER_COMMANDS_USER_JOIN_RETRY, NULL); - - user_joined(proxy, user); -} - -void Gobby::BrowserCommands::user_joined(InfcSessionProxy* proxy, - InfUser* user) -{ - DocWindow* window = m_folder.lookup_document( - INF_TEXT_SESSION(infc_session_proxy_get_session(proxy))); - g_assert(window != NULL); - - // TODO: Notify the user that he is using an alternative name if - // inf_user_get_name(user) does not match m_preferences.user.name. - - window->unset_info(); - window->set_active_user(INF_TEXT_USER(user)); + m_status_bar.add_error_message( + _("Subscription failed"), + error->message); } diff -Nru gobby-infinote-0.4.92/code/commands/browser-commands.hpp gobby-infinote-0.4.93/code/commands/browser-commands.hpp --- gobby-infinote-0.4.92/code/commands/browser-commands.hpp 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/browser-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -19,14 +19,10 @@ #ifndef _GOBBY_BROWSER_COMMANDS_HPP_ #define _GOBBY_BROWSER_COMMANDS_HPP_ -#include "core/documentinfostorage.hpp" #include "core/browser.hpp" -#include "core/folder.hpp" #include "core/statusbar.hpp" -#include -#include -#include +#include namespace Gobby { @@ -35,190 +31,46 @@ { public: BrowserCommands(Browser& browser, Folder& folder, - DocumentInfoStorage& info_storage, - StatusBar& status_bar, - const Preferences& preferences); + StatusBar& status_bar); ~BrowserCommands(); protected: - static void on_set_browser_static(InfGtkBrowserModel* model, - GtkTreePath* path, - GtkTreeIter* iter, - InfcBrowser* browser, - gpointer user_data) - { - static_cast(user_data)->on_set_browser( - model, iter, browser); - } - - static void on_subscribe_session_static(InfcBrowser* browser, - InfcBrowserIter* iter, - InfcSessionProxy* proxy, - gpointer user_data) - { - static_cast(user_data)-> - on_subscribe_session(browser, iter, proxy); - } - - static void on_finished_static(InfcNodeRequest* request, - const InfcBrowserIter* iter, - gpointer user_data) - { - static_cast(user_data)->on_finished( - request); - } - - static void on_failed_static(InfcRequest* request, - const GError* error, - gpointer user_data) - { - static_cast(user_data)->on_failed( - INFC_NODE_REQUEST(request), error); - } - - static void on_synchronization_failed_static(InfSession* session, - InfXmlConnection* conn, - const GError* error, - gpointer user_data) - { - static_cast(user_data)-> - on_synchronization_failed(session, conn, error); - } - - static void - on_synchronization_complete_before_static(InfSession* session, - InfXmlConnection* conn, - gpointer user_data) - { - static_cast(user_data)-> - on_synchronization_complete_before(session, conn); - } - static void - on_synchronization_complete_after_static(InfSession* session, - InfXmlConnection* conn, - gpointer user_data) - { - static_cast(user_data)-> - on_synchronization_complete_after(session, conn); - } - - static void on_synchronization_progress_static(InfSession* session, - InfXmlConnection* conn, - gdouble percentage, - gpointer user_data) - { - static_cast(user_data)-> - on_synchronization_progress( - session, conn, percentage); - } - - static void on_notify_connection_static(GObject* object, - GParamSpec* pspec, - gpointer user_data) - { - static_cast(user_data)-> - on_notify_connection(INFC_SESSION_PROXY(object)); - } - - static void on_close_static(InfSession* session, - gpointer user_data) - { - static_cast(user_data)->on_close(session); - } - - static void on_user_join_failed_static(InfcUserRequest* request, - const GError* error, - gpointer user_data) - { - static_cast(user_data)-> - on_user_join_failed(request, error); - } - - static void on_user_join_finished_static(InfcUserRequest* request, - InfUser* user, - gpointer user_data) + on_set_browser_static(InfGtkBrowserModel* model, + GtkTreePath* path, + GtkTreeIter* iter, + InfcBrowser* browser, + gpointer user_data) { static_cast(user_data)-> - on_user_join_finished(request, user); + on_set_browser(model, iter, browser); } void on_set_browser(InfGtkBrowserModel* model, GtkTreeIter* iter, InfcBrowser* browser); + void on_notify_status(InfcBrowser* browser); + + void subscribe_chat(InfcBrowser* browser); void on_activate(InfcBrowser* browser, InfcBrowserIter* iter); void on_finished(InfcNodeRequest* request); void on_failed(InfcNodeRequest* request, const GError* error); - void on_subscribe_session(InfcBrowser* browser, InfcBrowserIter* iter, - InfcSessionProxy* proxy); - - void on_synchronization_failed(InfSession* session, - InfXmlConnection* connection, - const GError* error); - void on_synchronization_complete_before(InfSession* session, - InfXmlConnection* connection); - void on_synchronization_complete_after(InfSession* session, - InfXmlConnection* connection); - void on_synchronization_progress(InfSession* session, - InfXmlConnection* connection, - gdouble percentage); - void on_close(InfSession* session); - void on_notify_connection(InfcSessionProxy* proxy); - - void join_user(InfcSessionProxy* proxy, const Glib::ustring& name); - - void on_user_join_failed(InfcUserRequest* request, - const GError* error); - void on_user_join_finished(InfcUserRequest* request, InfUser* user); - void user_joined(InfcSessionProxy* proxy, InfUser* user); - Browser& m_browser; Folder& m_folder; - DocumentInfoStorage& m_info_storage; StatusBar& m_status_bar; - const Preferences& m_preferences; gulong m_set_browser_handler; - struct RequestNode { - BrowserCommands* commands; - InfcBrowser* browser; - StatusBar::MessageHandle handle; - - RequestNode(); - RequestNode(const RequestNode& node); - ~RequestNode(); - }; - - struct SessionNode { - InfcSessionProxy* proxy; - InfSessionStatus status; - - gulong notify_connection_id; - gulong failed_id; - gulong complete_before_id; - gulong complete_after_id; - gulong progress_id; - gulong close_id; - - SessionNode(); - SessionNode(const SessionNode& node); - ~SessionNode(); - }; - - struct BrowserNode; - - typedef std::map BrowserMap; + class BrowserInfo; + typedef std::map BrowserMap; BrowserMap m_browser_map; - typedef std::map RequestMap; + class RequestInfo; + typedef std::map RequestMap; RequestMap m_request_map; - - typedef std::map SessionMap; - SessionMap m_session_map; }; } - + #endif // _GOBBY_BROWSER_COMMANDS_HPP_ diff -Nru gobby-infinote-0.4.92/code/commands/browser-context-commands.cpp gobby-infinote-0.4.93/code/commands/browser-context-commands.cpp --- gobby-infinote-0.4.92/code/commands/browser-context-commands.cpp 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/browser-context-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -17,6 +17,7 @@ */ #include "commands/browser-context-commands.hpp" +#include "operations/operation-open-multiple.hpp" #include "util/i18n.hpp" #include @@ -70,19 +71,18 @@ InfcBrowser* browser; InfcBrowserIter iter; - if(m_browser.get_selected(&browser, &iter)) + if(m_browser.get_selected(&browser, &iter) && + infc_browser_get_status(browser) == INFC_BROWSER_CONNECTED) { InfcBrowserIter dummy_iter = iter; bool is_subdirectory = infc_browser_iter_is_subdirectory(browser, &iter); bool is_toplevel = !infc_browser_iter_get_parent(browser, &dummy_iter); - + // Watch the node, and close the popup menu when the node // it refers to is removed. - m_watch.reset(new NodeWatch( - INF_GTK_BROWSER_MODEL(m_browser.get_store()), - browser, &iter)); + m_watch.reset(new NodeWatch(browser, &iter)); m_watch->signal_node_removed().connect(sigc::mem_fun( *this, &BrowserContextCommands::on_node_removed)); @@ -168,16 +168,26 @@ delete_item->set_sensitive(!is_toplevel); delete_item->show(); menu->append(*delete_item); + + m_popup_menu = menu; + menu->signal_selection_done().connect( + sigc::mem_fun( + *this, + &BrowserContextCommands::on_popdown)); } } +void Gobby::BrowserContextCommands::on_popdown() +{ + m_popup_menu = NULL; + m_watch.reset(NULL); +} + void Gobby::BrowserContextCommands::on_new(InfcBrowser* browser, InfcBrowserIter iter, bool directory) { - m_watch.reset(new NodeWatch( - INF_GTK_BROWSER_MODEL(m_browser.get_store()), - browser, &iter)); + m_watch.reset(new NodeWatch(browser, &iter)); m_watch->signal_node_removed().connect(sigc::mem_fun( *this, &BrowserContextCommands::on_new_node_removed)); @@ -206,9 +216,7 @@ void Gobby::BrowserContextCommands::on_open(InfcBrowser* browser, InfcBrowserIter iter) { - m_watch.reset(new NodeWatch( - INF_GTK_BROWSER_MODEL(m_browser.get_store()), - browser, &iter)); + m_watch.reset(new NodeWatch(browser, &iter)); m_watch->signal_node_removed().connect(sigc::mem_fun( *this, &BrowserContextCommands::on_open_node_removed)); @@ -220,6 +228,7 @@ &BrowserContextCommands::on_open_response), browser, iter)); + m_file_dialog->set_select_multiple(true); m_file_dialog->present(); } @@ -271,15 +280,18 @@ { if(response_id == Gtk::RESPONSE_ACCEPT) { - Glib::RefPtr file = - Gio::File::create_for_uri(m_file_dialog->get_uri()); + Glib::SListHandle uris = m_file_dialog->get_uris(); - // TODO: Do this asynchronously: - Glib::RefPtr info = file->query_info( - G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME); - m_operations.create_document( - browser, &iter, info->get_display_name(), - m_preferences, m_file_dialog->get_uri(), NULL); + OperationOpenMultiple* operation = + m_operations.create_documents(browser, &iter, m_preferences, uris.size()); + + for(Glib::SListHandle::iterator i = uris.begin(); i != uris.end(); ++i) + { + Glib::RefPtr file = + Gio::File::create_for_uri(*i); + + operation->add_uri(*i, NULL, NULL); + } } m_watch.reset(NULL); diff -Nru gobby-infinote-0.4.92/code/commands/browser-context-commands.hpp gobby-infinote-0.4.93/code/commands/browser-context-commands.hpp --- gobby-infinote-0.4.92/code/commands/browser-context-commands.hpp 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/browser-context-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -54,6 +54,7 @@ void on_menu_deactivate(); void on_populate_popup(Gtk::Menu* menu); + void on_popdown(); // Context commands void on_new(InfcBrowser* browser, InfcBrowserIter iter, diff -Nru gobby-infinote-0.4.92/code/commands/edit-commands.cpp gobby-infinote-0.4.93/code/commands/edit-commands.cpp --- gobby-infinote-0.4.92/code/commands/edit-commands.cpp 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/edit-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -29,7 +29,7 @@ Preferences& preferences): m_parent(parent), m_header(header), m_folder(folder), m_preferences(preferences), m_status_bar(status_bar), - m_current_document(NULL) + m_current_view(NULL) { m_header.action_edit_undo->signal_activate().connect( sigc::mem_fun(*this, &EditCommands::on_undo)); @@ -68,22 +68,23 @@ on_document_changed(NULL); } -void Gobby::EditCommands::on_document_removed(DocWindow& document) +void Gobby::EditCommands::on_document_removed(SessionView& view) { - if(&document == m_current_document) + // TODO: Isn't this emitted by Folder already? + if(&view == m_current_view) on_document_changed(NULL); } -void Gobby::EditCommands::on_document_changed(DocWindow* document) +void Gobby::EditCommands::on_document_changed(SessionView* view) { - if(m_current_document != NULL) + if(m_current_view != NULL) { - InfTextSession* session = m_current_document->get_session(); + InfTextSession* session = m_current_view->get_session(); InfAdoptedAlgorithm* algorithm = inf_adopted_session_get_algorithm( INF_ADOPTED_SESSION(session)); GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); if(m_synchronization_complete_handler != 0) { @@ -109,17 +110,17 @@ m_active_user_changed_connection.disconnect(); } - m_current_document = document; + m_current_view = dynamic_cast(view); - if(document != NULL) + if(m_current_view != NULL) { - InfTextSession* session = document->get_session(); - InfTextUser* active_user = document->get_active_user(); + InfTextSession* session = m_current_view->get_session(); + InfUser* active_user = m_current_view->get_active_user(); GtkTextBuffer* buffer = - GTK_TEXT_BUFFER(document->get_text_buffer()); + GTK_TEXT_BUFFER(m_current_view->get_text_buffer()); m_active_user_changed_connection = - document->signal_active_user_changed().connect( + m_current_view->signal_active_user_changed().connect( sigc::mem_fun( *this, &EditCommands:: @@ -198,8 +199,8 @@ void Gobby::EditCommands::on_sync_complete() { - g_assert(m_current_document != NULL); - InfTextSession* session = m_current_document->get_session(); + g_assert(m_current_view != NULL); + InfTextSession* session = m_current_view->get_session(); InfAdoptedAlgorithm* algorithm = inf_adopted_session_get_algorithm( INF_ADOPTED_SESSION(session)); @@ -221,18 +222,18 @@ } } -void Gobby::EditCommands::on_active_user_changed(InfTextUser* active_user) +void Gobby::EditCommands::on_active_user_changed(InfUser* active_user) { - g_assert(m_current_document != NULL); + g_assert(m_current_view != NULL); if(active_user != NULL) { - InfTextSession* session = m_current_document->get_session(); + InfTextSession* session = m_current_view->get_session(); InfAdoptedAlgorithm* algorithm = inf_adopted_session_get_algorithm( INF_ADOPTED_SESSION(session)); GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); m_header.action_edit_undo->set_sensitive( inf_adopted_algorithm_can_undo( @@ -256,14 +257,14 @@ void Gobby::EditCommands::on_mark_set() { - g_assert(m_current_document != NULL); + g_assert(m_current_view != NULL); GtkTextBuffer* buffer = - GTK_TEXT_BUFFER(m_current_document->get_text_buffer()); + GTK_TEXT_BUFFER(m_current_view->get_text_buffer()); m_header.action_edit_copy->set_sensitive( gtk_text_buffer_get_has_selection(buffer)); - if(m_current_document->get_active_user() != NULL) + if(m_current_view->get_active_user() != NULL) { m_header.action_edit_cut->set_sensitive( gtk_text_buffer_get_has_selection(buffer)); @@ -278,16 +279,16 @@ void Gobby::EditCommands::on_can_undo_changed(InfAdoptedUser* user, bool can_undo) { - g_assert(m_current_document != NULL); - if(INF_ADOPTED_USER(m_current_document->get_active_user()) == user) + g_assert(m_current_view != NULL); + if(INF_ADOPTED_USER(m_current_view->get_active_user()) == user) m_header.action_edit_undo->set_sensitive(can_undo); } void Gobby::EditCommands::on_can_redo_changed(InfAdoptedUser* user, bool can_redo) { - g_assert(m_current_document != NULL); - if(INF_ADOPTED_USER(m_current_document->get_active_user()) == user) + g_assert(m_current_view != NULL); + if(INF_ADOPTED_USER(m_current_view->get_active_user()) == user) m_header.action_edit_redo->set_sensitive(can_redo); } @@ -304,8 +305,7 @@ // libinfinity supports caret-aware requests, by generating undo-caret and // redo-caret requests. namespace { - bool check_set = false; - GtkTextIter check; + GtkTextMark* check = NULL; void recaret_i(GtkTextBuffer* buffer, GtkTextIter* location, @@ -313,8 +313,17 @@ gint len, gpointer user_data) { - check = *location; - check_set = true; + if(!check) + { + check = gtk_text_buffer_create_mark(buffer, NULL, location, FALSE); + } + else + { + GtkTextIter iter; + gtk_text_buffer_get_iter_at_mark(buffer, &iter, check); + if(gtk_text_iter_get_offset(&iter) < gtk_text_iter_get_offset(location)) + gtk_text_buffer_move_mark(buffer, check, location); + } } void recaret_e(GtkTextBuffer* buffer, @@ -322,86 +331,109 @@ GtkTextIter* end, gpointer user_data) { - check = *start; - check_set = true; + if(!check) + { + check = gtk_text_buffer_create_mark(buffer, NULL, start, FALSE); + } + else + { + GtkTextIter iter; + gtk_text_buffer_get_iter_at_mark(buffer, &iter, check); + if(gtk_text_iter_get_offset(&iter) < gtk_text_iter_get_offset(start)) + gtk_text_buffer_move_mark(buffer, check, start); + } } } void Gobby::EditCommands::on_undo() { - g_assert(m_current_document != NULL); + g_assert(m_current_view != NULL); - gulong i_ = g_signal_connect_after(m_current_document->get_text_buffer(), "insert-text", G_CALLBACK(recaret_i), NULL); - gulong e_ = g_signal_connect_after(m_current_document->get_text_buffer(), "delete-range", G_CALLBACK(recaret_e), NULL); + gulong i_ = g_signal_connect_after(m_current_view->get_text_buffer(), "insert-text", G_CALLBACK(recaret_i), NULL); + gulong e_ = g_signal_connect_after(m_current_view->get_text_buffer(), "delete-range", G_CALLBACK(recaret_e), NULL); inf_adopted_session_undo( - INF_ADOPTED_SESSION(m_current_document->get_session()), - INF_ADOPTED_USER(m_current_document->get_active_user()) + INF_ADOPTED_SESSION(m_current_view->get_session()), + INF_ADOPTED_USER(m_current_view->get_active_user()), + m_current_view->get_undo_grouping().get_undo_size() ); - g_signal_handler_disconnect(m_current_document->get_text_buffer(), i_); - g_signal_handler_disconnect(m_current_document->get_text_buffer(), e_); + g_signal_handler_disconnect(m_current_view->get_text_buffer(), i_); + g_signal_handler_disconnect(m_current_view->get_text_buffer(), e_); + + if(check) + { + GtkTextIter check_iter; + gtk_text_buffer_get_iter_at_mark(GTK_TEXT_BUFFER(m_current_view->get_text_buffer()), &check_iter, check); + gtk_text_buffer_select_range(GTK_TEXT_BUFFER(m_current_view->get_text_buffer()), &check_iter, &check_iter); + gtk_text_buffer_delete_mark(GTK_TEXT_BUFFER(m_current_view->get_text_buffer()), check); + check = NULL; + } - if(check_set) - gtk_text_buffer_select_range(GTK_TEXT_BUFFER(m_current_document->get_text_buffer()), &check, &check); - check_set = false; - m_current_document->scroll_to_cursor_position(0.0); + m_current_view->scroll_to_cursor_position(0.0); } void Gobby::EditCommands::on_redo() { - g_assert(m_current_document != NULL); + g_assert(m_current_view != NULL); - gulong i_ = g_signal_connect_after(m_current_document->get_text_buffer(), "insert-text", G_CALLBACK(recaret_i), NULL); - gulong e_ = g_signal_connect_after(m_current_document->get_text_buffer(), "delete-range", G_CALLBACK(recaret_e), NULL); + gulong i_ = g_signal_connect_after(m_current_view->get_text_buffer(), "insert-text", G_CALLBACK(recaret_i), NULL); + gulong e_ = g_signal_connect_after(m_current_view->get_text_buffer(), "delete-range", G_CALLBACK(recaret_e), NULL); inf_adopted_session_redo( - INF_ADOPTED_SESSION(m_current_document->get_session()), - INF_ADOPTED_USER(m_current_document->get_active_user()) + INF_ADOPTED_SESSION(m_current_view->get_session()), + INF_ADOPTED_USER(m_current_view->get_active_user()), + m_current_view->get_undo_grouping().get_redo_size() ); - g_signal_handler_disconnect(m_current_document->get_text_buffer(), i_); - g_signal_handler_disconnect(m_current_document->get_text_buffer(), e_); + g_signal_handler_disconnect(m_current_view->get_text_buffer(), i_); + g_signal_handler_disconnect(m_current_view->get_text_buffer(), e_); + + if(check) + { + GtkTextIter check_iter; + gtk_text_buffer_get_iter_at_mark(GTK_TEXT_BUFFER(m_current_view->get_text_buffer()), &check_iter, check); + gtk_text_buffer_select_range(GTK_TEXT_BUFFER(m_current_view->get_text_buffer()), &check_iter, &check_iter); + gtk_text_buffer_delete_mark(GTK_TEXT_BUFFER(m_current_view->get_text_buffer()), check); + check = NULL; + } - if(check_set) - gtk_text_buffer_select_range(GTK_TEXT_BUFFER(m_current_document->get_text_buffer()), &check, &check); - check_set = false; - m_current_document->scroll_to_cursor_position(0.0); + m_current_view->scroll_to_cursor_position(0.0); } void Gobby::EditCommands::on_cut() { - g_assert(m_current_document != NULL); - g_assert(m_current_document->get_active_user() != NULL); + g_assert(m_current_view != NULL); + g_assert(m_current_view->get_active_user() != NULL); gtk_text_buffer_cut_clipboard( - GTK_TEXT_BUFFER(m_current_document->get_text_buffer()), + GTK_TEXT_BUFFER(m_current_view->get_text_buffer()), gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), TRUE); - m_current_document->scroll_to_cursor_position(0.0); + m_current_view->scroll_to_cursor_position(0.0); } void Gobby::EditCommands::on_copy() { - g_assert(m_current_document != NULL); + g_assert(m_current_view != NULL); gtk_text_buffer_copy_clipboard( - GTK_TEXT_BUFFER(m_current_document->get_text_buffer()), + GTK_TEXT_BUFFER(m_current_view->get_text_buffer()), gtk_clipboard_get(GDK_SELECTION_CLIPBOARD)); } void Gobby::EditCommands::on_paste() { - g_assert(m_current_document != NULL); - g_assert(m_current_document->get_active_user() != NULL); + g_assert(m_current_view != NULL); + g_assert(m_current_view->get_active_user() != NULL); gtk_text_buffer_paste_clipboard( - GTK_TEXT_BUFFER(m_current_document->get_text_buffer()), + GTK_TEXT_BUFFER(m_current_view->get_text_buffer()), gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), NULL, TRUE); - m_current_document->scroll_to_cursor_position(0.0); + m_current_view->scroll_to_cursor_position(0.0); } void Gobby::EditCommands::on_find() diff -Nru gobby-infinote-0.4.92/code/commands/edit-commands.hpp gobby-infinote-0.4.93/code/commands/edit-commands.hpp --- gobby-infinote-0.4.92/code/commands/edit-commands.hpp 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/edit-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -43,8 +43,8 @@ ~EditCommands(); protected: - void on_document_removed(DocWindow& document); - void on_document_changed(DocWindow* document); + void on_document_removed(SessionView& view); + void on_document_changed(SessionView* view); static void on_can_undo_changed_static(InfAdoptedAlgorithm* algorithm, InfAdoptedUser* user, @@ -86,7 +86,7 @@ } void on_sync_complete(); - void on_active_user_changed(InfTextUser* active_user); + void on_active_user_changed(InfUser* active_user); void on_mark_set(); void on_changed(); @@ -116,7 +116,7 @@ std::auto_ptr m_goto_dialog; std::auto_ptr m_preferences_dialog; - DocWindow* m_current_document; + TextSessionView* m_current_view; // Only valid when m_current_document is nonzero: sigc::connection m_active_user_changed_connection; gulong m_can_undo_changed_handler; diff -Nru gobby-infinote-0.4.92/code/commands/file-commands.cpp gobby-infinote-0.4.93/code/commands/file-commands.cpp --- gobby-infinote-0.4.92/code/commands/file-commands.cpp 2009-04-23 17:21:50.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -1,5 +1,5 @@ /* Gobby - GTK-based collaborative text editor - * Copyright (C) 2008, 2009 Armin Burgmeier + * Copyright (C) 2008 Armin Burgmeier * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public @@ -23,6 +23,9 @@ #include "commands/file-tasks/task-open-location.hpp" #include "commands/file-tasks/task-save.hpp" #include "commands/file-tasks/task-save-all.hpp" +#include "commands/file-tasks/task-export-html.hpp" + +#include Gobby::FileCommands::Task::Task(FileCommands& file_commands): m_file_commands(file_commands) @@ -115,6 +118,10 @@ sigc::mem_fun(*this, &FileCommands::on_save_as)); header.action_file_save_all->signal_activate().connect( sigc::mem_fun(*this, &FileCommands::on_save_all)); + header.action_file_export_html->signal_activate().connect( + sigc::mem_fun(*this, &FileCommands::on_export_html)); + header.action_file_connect->signal_activate().connect( + sigc::mem_fun(*this, &FileCommands::on_connect)); header.action_file_close->signal_activate().connect( sigc::mem_fun(*this, &FileCommands::on_close)); header.action_file_quit->signal_activate().connect( @@ -123,7 +130,7 @@ folder.signal_document_changed().connect( sigc::mem_fun(*this, &FileCommands::on_document_changed)); - InfGtkBrowserStore* store = browser.get_store(); + InfGtkBrowserModelSort* store = browser.get_store(); m_row_inserted_handler = g_signal_connect(G_OBJECT(store), "row-inserted", G_CALLBACK(on_row_inserted_static), this); @@ -136,7 +143,7 @@ Gobby::FileCommands::~FileCommands() { - InfGtkBrowserStore* store = m_browser.get_store(); + InfGtkBrowserModelSort* store = m_browser.get_store(); g_signal_handler_disconnect(G_OBJECT(store), m_row_inserted_handler); g_signal_handler_disconnect(G_OBJECT(store), m_row_deleted_handler); } @@ -146,9 +153,10 @@ task->signal_finished().connect(sigc::mem_fun( *this, &FileCommands::on_task_finished)); m_task.reset(task); + task->run(); } -void Gobby::FileCommands::on_document_changed(DocWindow* document) +void Gobby::FileCommands::on_document_changed(SessionView* view) { update_sensitivity(); } @@ -185,18 +193,18 @@ void Gobby::FileCommands::on_save() { - // TODO: Encoding selection in file chooser - DocWindow* document = m_folder.get_current_document(); - g_assert(document != NULL); + SessionView* view = m_folder.get_current_document(); + TextSessionView* text_view = dynamic_cast(view); + g_assert(text_view != NULL); const DocumentInfoStorage::Info* info = m_document_info_storage.get_info( - document->get_info_storage_key()); + text_view->get_info_storage_key()); if(info != NULL && !info->uri.empty()) { m_operations.save_document( - *document, m_folder, info->uri, info->encoding, + *text_view, m_folder, info->uri, info->encoding, info->eol_style); } else @@ -207,10 +215,11 @@ void Gobby::FileCommands::on_save_as() { - DocWindow* document = m_folder.get_current_document(); - g_assert(document != NULL); + SessionView* view = m_folder.get_current_document(); + TextSessionView* text_view = dynamic_cast(view); + g_assert(text_view != NULL); - set_task(new TaskSave(*this, *document)); + set_task(new TaskSave(*this, *text_view)); } void Gobby::FileCommands::on_save_all() @@ -218,12 +227,40 @@ set_task(new TaskSaveAll(*this)); } +void Gobby::FileCommands::on_export_html() +{ + SessionView* view = m_folder.get_current_document(); + TextSessionView* text_view = dynamic_cast(view); + g_assert(text_view != NULL); + + set_task(new TaskExportHtml(*this, *text_view)); +} + +void Gobby::FileCommands::on_connect() +{ + if(m_connection_dialog.get() == NULL) + { + m_connection_dialog.reset(new ConnectionDialog(m_parent)); + + m_connection_dialog->signal_response().connect( + sigc::mem_fun(*this, + &FileCommands::on_connect_response)); + + m_connection_dialog->add_button(Gtk::Stock::CANCEL, + Gtk::RESPONSE_CANCEL); + m_connection_dialog->add_button(Gtk::Stock::CONNECT, + Gtk::RESPONSE_ACCEPT); + } + + m_connection_dialog->present(); +} + void Gobby::FileCommands::on_close() { - DocWindow* document = m_folder.get_current_document(); - g_assert(document != NULL); + SessionView* view = m_folder.get_current_document(); + g_assert(view != NULL); - m_folder.remove_document(*document); + m_folder.remove_document(*view); } void Gobby::FileCommands::on_quit() @@ -231,19 +268,38 @@ m_parent.hide(); } +void Gobby::FileCommands::on_connect_response(int response_id) +{ + if(response_id == Gtk::RESPONSE_ACCEPT) + { + const Glib::ustring& host = m_connection_dialog->get_host_name(); + if(!host.empty()) + m_browser.connect_to_host(host); + } + + m_connection_dialog->hide(); +} + void Gobby::FileCommands::update_sensitivity() { GtkTreeIter dummy_iter; bool create_sensitivity = gtk_tree_model_get_iter_first( GTK_TREE_MODEL(m_browser.get_store()), &dummy_iter); - gboolean active_sensitivity = m_folder.get_current_document() != NULL; + + SessionView* view = m_folder.get_current_document(); + gboolean view_sensitivity = view != NULL; + + // We can only save text documents currently + gboolean text_sensitivity = + dynamic_cast(view) != NULL; m_header.action_file_new->set_sensitive(create_sensitivity); m_header.action_file_open->set_sensitive(create_sensitivity); m_header.action_file_open_location->set_sensitive(create_sensitivity); - m_header.action_file_save->set_sensitive(active_sensitivity); - m_header.action_file_save_as->set_sensitive(active_sensitivity); - m_header.action_file_save_all->set_sensitive(active_sensitivity); - m_header.action_file_close->set_sensitive(active_sensitivity); + m_header.action_file_save->set_sensitive(text_sensitivity); + m_header.action_file_save_as->set_sensitive(text_sensitivity); + m_header.action_file_save_all->set_sensitive(text_sensitivity); + m_header.action_file_export_html->set_sensitive(text_sensitivity); + m_header.action_file_close->set_sensitive(view_sensitivity); } diff -Nru gobby-infinote-0.4.92/code/commands/file-commands.hpp gobby-infinote-0.4.93/code/commands/file-commands.hpp --- gobby-infinote-0.4.92/code/commands/file-commands.hpp 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -1,5 +1,5 @@ /* Gobby - GTK-based collaborative text editor - * Copyright (C) 2008, 2009 Armin Burgmeier + * Copyright (C) 2008 Armin Burgmeier * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public @@ -16,11 +16,14 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +// TODO: Someone else should do task management + #ifndef _GOBBY_FILE_COMMANDS_HPP_ #define _GOBBY_FILE_COMMANDS_HPP_ #include "operations/operations.hpp" #include "dialogs/document-location-dialog.hpp" +#include "dialogs/connection-dialog.hpp" #include "core/header.hpp" #include "core/browser.hpp" #include "core/statusbar.hpp" @@ -50,6 +53,7 @@ Task(FileCommands& file_commands); virtual ~Task() = 0; + virtual void run() = 0; void finish(); Gtk::Window& get_parent(); @@ -69,9 +73,11 @@ FileCommands& m_file_commands; SignalFinished m_signal_finished; }; -protected: + void set_task(Task* task); +protected: + static void on_row_inserted_static(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, @@ -87,7 +93,7 @@ static_cast(user_data)->on_row_deleted(); } - void on_document_changed(DocWindow* document); + void on_document_changed(SessionView* view); void on_row_inserted(); void on_row_deleted(); void on_task_finished(); @@ -99,9 +105,14 @@ void on_save_as(); void on_save_all(); + void on_export_html(); + void on_connect(); + void on_close(); void on_quit(); + void on_connect_response(int response_id); + void update_sensitivity(); Gtk::Window& m_parent; @@ -120,10 +131,12 @@ std::auto_ptr m_location_dialog; std::auto_ptr m_task; + std::auto_ptr m_connection_dialog; + gulong m_row_inserted_handler; gulong m_row_deleted_handler; }; } -#endif // _GOBBY_FILE_COMMANDS_HPP_ +#endif // _GOBBY_FILE_COMMANDS_HPP_ \ No newline at end of file diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/Makefile.am gobby-infinote-0.4.93/code/commands/file-tasks/Makefile.am --- gobby-infinote-0.4.92/code/commands/file-tasks/Makefile.am 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -1,23 +1,27 @@ noinst_LIBRARIES = libgobby-file-tasks.a libgobby_file_tasks_a_SOURCES = \ + task-export-html.cpp \ task-new.cpp \ task-open.cpp \ task-open-file.cpp \ task-open-location.cpp \ + task-open-multiple.cpp \ task-save.cpp \ task-save-all.cpp noinst_HEADERS = \ + task-export-html.hpp \ task-new.hpp \ task-open.hpp \ task-open-file.hpp \ task-open-location.hpp \ + task-open-multiple.hpp \ task-save.hpp \ task-save-all.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/Makefile.in gobby-infinote-0.4.93/code/commands/file-tasks/Makefile.in --- gobby-infinote-0.4.92/code/commands/file-tasks/Makefile.in 2009-04-26 10:57:36.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/Makefile.in 2009-12-19 23:16:17.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -48,9 +49,10 @@ ARFLAGS = cru libgobby_file_tasks_a_AR = $(AR) $(ARFLAGS) libgobby_file_tasks_a_LIBADD = -am_libgobby_file_tasks_a_OBJECTS = task-new.$(OBJEXT) \ - task-open.$(OBJEXT) task-open-file.$(OBJEXT) \ - task-open-location.$(OBJEXT) task-save.$(OBJEXT) \ +am_libgobby_file_tasks_a_OBJECTS = task-export-html.$(OBJEXT) \ + task-new.$(OBJEXT) task-open.$(OBJEXT) \ + task-open-file.$(OBJEXT) task-open-location.$(OBJEXT) \ + task-open-multiple.$(OBJEXT) task-save.$(OBJEXT) \ task-save-all.$(OBJEXT) libgobby_file_tasks_a_OBJECTS = $(am_libgobby_file_tasks_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/code @@ -88,6 +90,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -97,6 +101,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -121,11 +126,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -196,26 +203,32 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ noinst_LIBRARIES = libgobby-file-tasks.a libgobby_file_tasks_a_SOURCES = \ + task-export-html.cpp \ task-new.cpp \ task-open.cpp \ task-open-file.cpp \ task-open-location.cpp \ + task-open-multiple.cpp \ task-save.cpp \ task-save-all.cpp noinst_HEADERS = \ + task-export-html.hpp \ task-new.hpp \ task-open.hpp \ task-open-file.hpp \ task-open-location.hpp \ + task-open-multiple.hpp \ task-save.hpp \ task-save-all.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code all: all-am @@ -265,9 +278,11 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task-export-html.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task-new.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task-open-file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task-open-location.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task-open-multiple.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task-open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task-save-all.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task-save.Po@am__quote@ @@ -403,6 +418,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -411,18 +428,28 @@ 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 diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-export-html.cpp gobby-infinote-0.4.93/code/commands/file-tasks/task-export-html.cpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-export-html.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-export-html.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,78 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +// TODO: Merge with TaskSave, or share code in a common base class + +#include "commands/file-tasks/task-export-html.hpp" +#include "util/i18n.hpp" + +Gobby::TaskExportHtml::TaskExportHtml(FileCommands& file_commands, + TextSessionView& view): + Task(file_commands), + m_file_dialog(get_file_chooser(), get_parent(), + Glib::ustring::compose( + _("Choose a location to export document \"%1\" to"), + view.get_title()), + Gtk::FILE_CHOOSER_ACTION_SAVE), + m_view(&view), m_running(false) +{ + get_folder().signal_document_removed().connect( + sigc::mem_fun(*this, &TaskExportHtml::on_document_removed)); +} + +void Gobby::TaskExportHtml::run() +{ + // m_document will be set to NULL if it has been removed before run + // was called. + if(!m_view) + { + finish(); + return; + } + + m_running = true; + + m_file_dialog.signal_response().connect(sigc::mem_fun( + *this, &TaskExportHtml::on_response)); + + m_file_dialog.set_current_name(m_view->get_title() + ".xhtml"); + m_file_dialog.present(); +} + +void Gobby::TaskExportHtml::on_response(int response_id) +{ + if(response_id == Gtk::RESPONSE_ACCEPT) + { + get_operations().export_html( + *m_view, m_file_dialog.get_uri()); + } + + finish(); +} + +void Gobby::TaskExportHtml::on_document_removed(SessionView& view) +{ + // The document we are about to save was removed. + if(m_view == &view) + { + if(m_running) + finish(); + else + m_view = NULL; + } +} diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-export-html.hpp gobby-infinote-0.4.93/code/commands/file-tasks/task-export-html.hpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-export-html.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-export-html.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,44 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_FILE_TASK_EXPORT_HTML_HPP_ +#define _GOBBY_FILE_TASK_EXPORT_HTML_HPP_ + +#include "commands/file-commands.hpp" + +namespace Gobby +{ + +class TaskExportHtml: public FileCommands::Task +{ +private: + FileChooser::Dialog m_file_dialog; + TextSessionView* m_view; + bool m_running; + +public: + TaskExportHtml(FileCommands& file_commands, TextSessionView& view); + virtual void run(); + + void on_response(int response_id); + void on_document_removed(SessionView& view); +}; + +} // namespace Gobby + +#endif // _GOBBY_FILE_TASK_EXPORT_HTML_HPP_ diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-new.cpp gobby-infinote-0.4.93/code/commands/file-tasks/task-new.cpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-new.cpp 2009-04-23 17:21:40.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-new.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -22,19 +22,24 @@ Gobby::TaskNew::TaskNew(FileCommands& file_commands): Task(file_commands) { +} + +Gobby::TaskNew::~TaskNew() +{ + get_document_location_dialog().hide(); +} + +void Gobby::TaskNew::run() +{ DocumentLocationDialog& dialog = get_document_location_dialog(); dialog.signal_response().connect( sigc::mem_fun(*this, &TaskNew::on_response)); dialog.set_document_name(_("New Document")); + dialog.set_single_document_mode(); dialog.present(); } -Gobby::TaskNew::~TaskNew() -{ - get_document_location_dialog().hide(); -} - void Gobby::TaskNew::on_response(int response_id) { if(response_id == Gtk::RESPONSE_ACCEPT) diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-new.hpp gobby-infinote-0.4.93/code/commands/file-tasks/task-new.hpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-new.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-new.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -29,6 +29,7 @@ public: TaskNew(FileCommands& file_commands); virtual ~TaskNew(); + virtual void run(); protected: void on_response(int response_id); diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-open.cpp gobby-infinote-0.4.93/code/commands/file-tasks/task-open.cpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-open.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-open.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -23,9 +23,17 @@ const Glib::RefPtr& file): Task(file_commands), m_file(file) { - static const gchar* const ATTR_DISPLAY_NAME = - G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME; +} +Gobby::TaskOpen::~TaskOpen() +{ + if(m_handle != get_status_bar().invalid_handle()) + get_status_bar().remove_message(m_handle); + get_document_location_dialog().hide(); +} + +void Gobby::TaskOpen::run() +{ try { // TODO: Show DocumentLocationDialog with a @@ -35,29 +43,17 @@ sigc::mem_fun(*this, &TaskOpen::on_query_info), G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME); - m_handle = get_status_bar().add_message( - StatusBar::INFO, Glib::ustring::compose( + m_handle = get_status_bar().add_info_message( + Glib::ustring::compose( _("Querying \"%1\"..."), - m_file->get_uri()), 0); + m_file->get_uri())); } catch(const Gio::Error& ex) { - // Delay error report via idle handler, to give users a chance - // to connect to signal_finished(). - Glib::signal_idle().connect( - sigc::bind_return(sigc::bind( - sigc::mem_fun(*this, &TaskOpen::error), - ex.what()), false)); + error(ex.what()); } } -Gobby::TaskOpen::~TaskOpen() -{ - if(m_handle != get_status_bar().invalid_handle()) - get_status_bar().remove_message(m_handle); - get_document_location_dialog().hide(); -} - void Gobby::TaskOpen::on_query_info( const Glib::RefPtr& result) { @@ -74,6 +70,7 @@ m_file->query_info_finish(result); dialog.set_document_name(info->get_display_name()); + dialog.set_single_document_mode(); dialog.present(); } catch(const Gio::Error& ex) @@ -103,10 +100,11 @@ void Gobby::TaskOpen::error(const Glib::ustring& message) { - get_status_bar().add_message(StatusBar::ERROR, + get_status_bar().add_error_message( Glib::ustring::compose( - _("Failed to open document \"%1\": %2"), - m_file->get_uri(), message), 5); + _("Failed to open document \"%1\""), + m_file->get_uri()), + message); finish(); } diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-open-file.cpp gobby-infinote-0.4.93/code/commands/file-tasks/task-open-file.cpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-open-file.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-open-file.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -24,6 +24,11 @@ _("Choose a text file to open"), Gtk::FILE_CHOOSER_ACTION_OPEN) { + m_file_dialog.set_select_multiple(true); +} + +void Gobby::TaskOpenFile::run() +{ m_file_dialog.signal_response().connect(sigc::mem_fun( *this, &TaskOpenFile::on_file_response)); @@ -35,14 +40,30 @@ if(response_id == Gtk::RESPONSE_ACCEPT) { m_file_dialog.hide(); - // TODO: Handle multiple selection - Glib::ustring uri = m_file_dialog.get_uri(); - Glib::RefPtr file = - Gio::File::create_for_uri(uri); - - m_open_task.reset(new TaskOpen(m_file_commands, file)); - m_open_task->signal_finished().connect( - sigc::mem_fun(*this, &TaskOpenFile::finish)); + Glib::SListHandle uris = m_file_dialog.get_uris(); + + g_assert(uris.size() >= 1); + + if (uris.size() == 1) + { + Glib::RefPtr file = Gio::File::create_for_uri(*uris.begin()); + m_open_task.reset(new TaskOpen(m_file_commands, file)); + m_open_task->signal_finished().connect( + sigc::mem_fun(*this, &TaskOpenFile::finish)); + m_open_task->run(); + } + else + { + TaskOpenMultiple *task = new TaskOpenMultiple(m_file_commands); + + for(Glib::SListHandle::iterator i = uris.begin(); i != uris.end(); ++i) + task->add_file(*i); + + m_open_taskm.reset(task); + m_open_taskm->signal_finished().connect( + sigc::mem_fun(*this, &TaskOpenFile::finish)); + m_open_taskm->run(); + } } else { diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-open-file.hpp gobby-infinote-0.4.93/code/commands/file-tasks/task-open-file.hpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-open-file.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-open-file.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,6 +21,7 @@ #include "commands/file-commands.hpp" #include "commands/file-tasks/task-open.hpp" +#include "commands/file-tasks/task-open-multiple.hpp" namespace Gobby { @@ -30,11 +31,14 @@ public: TaskOpenFile(FileCommands& file_commands); + virtual void run(); + private: void on_file_response(int response_id); FileChooser::Dialog m_file_dialog; std::auto_ptr m_open_task; + std::auto_ptr m_open_taskm; }; } // namespace Gobby diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-open.hpp gobby-infinote-0.4.93/code/commands/file-tasks/task-open.hpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-open.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-open.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,6 +21,8 @@ #include "commands/file-commands.hpp" +#include + namespace Gobby { @@ -31,6 +33,8 @@ const Glib::RefPtr& file); virtual ~TaskOpen(); + virtual void run(); + private: void on_query_info(const Glib::RefPtr& result); void on_location_response(int response_id); diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-open-location.cpp gobby-infinote-0.4.93/code/commands/file-tasks/task-open-location.cpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-open-location.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-open-location.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -23,6 +23,10 @@ Gobby::TaskOpenLocation::TaskOpenLocation(FileCommands& file_commands): Task(file_commands), m_location_dialog(get_parent()) { +} + +void Gobby::TaskOpenLocation::run() +{ m_location_dialog.signal_response().connect( sigc::mem_fun( *this, &TaskOpenLocation::on_response)); @@ -44,6 +48,7 @@ m_open_task.reset(new TaskOpen(m_file_commands, file)); m_open_task->signal_finished().connect( sigc::mem_fun(*this, &TaskOpenLocation::finish)); + m_open_task->run(); } else { diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-open-location.hpp gobby-infinote-0.4.93/code/commands/file-tasks/task-open-location.hpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-open-location.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-open-location.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -31,6 +31,8 @@ public: TaskOpenLocation(FileCommands& file_commands); + virtual void run(); + private: void on_response(int response_id); diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-open-multiple.cpp gobby-infinote-0.4.93/code/commands/file-tasks/task-open-multiple.cpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-open-multiple.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-open-multiple.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,71 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "commands/file-tasks/task-open-multiple.hpp" +#include "operations/operation-open-multiple.hpp" + +Gobby::TaskOpenMultiple::TaskOpenMultiple(FileCommands& file_commands): + Task(file_commands) +{ +} + +Gobby::TaskOpenMultiple::~TaskOpenMultiple() +{ + get_document_location_dialog().hide(); +} + +void Gobby::TaskOpenMultiple::run() +{ + DocumentLocationDialog& dialog = get_document_location_dialog(); + dialog.signal_response().connect(sigc::mem_fun( + *this, &TaskOpenMultiple::on_location_response)); + + dialog.set_multiple_document_mode(); + dialog.present(); +} + +void Gobby::TaskOpenMultiple::add_file(const Glib::ustring& uri) +{ + m_uris.push_back(uri); +} + +void Gobby::TaskOpenMultiple::on_location_response(int response_id) +{ + if(response_id == Gtk::RESPONSE_ACCEPT) + { + DocumentLocationDialog& dialog = + get_document_location_dialog(); + + InfcBrowserIter iter; + InfcBrowser* browser = dialog.get_selected_directory(&iter); + g_assert(browser != NULL); + + OperationOpenMultiple* operation = + get_operations().create_documents( + browser, &iter, + get_preferences(), m_uris.size()); + + for(uri_list::const_iterator iter = m_uris.begin(); + iter != m_uris.end(); ++iter) + { + operation->add_uri(*iter, NULL, NULL); + } + } + + finish(); +} diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-open-multiple.hpp gobby-infinote-0.4.93/code/commands/file-tasks/task-open-multiple.hpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-open-multiple.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-open-multiple.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,58 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_FILE_TASK_OPEN_MULTIPLE_HPP_ +#define _GOBBY_FILE_TASK_OPEN_MULTIPLE_HPP_ + +#include "commands/file-commands.hpp" + +#include + +#include + +namespace Gobby +{ + +class TaskOpenMultiple: public FileCommands::Task +{ +public: + TaskOpenMultiple(FileCommands& file_commands); + virtual ~TaskOpenMultiple(); + + virtual void run(); + + void add_file(const Glib::ustring& uri); + +private: + void on_location_response(int response_id); + + struct FileInfo { + FileInfo(const Glib::RefPtr& f, + const Glib::ustring& n) : file(f), name(n) {} + + Glib::RefPtr file; + Glib::ustring name; + }; + + typedef std::vector uri_list; + uri_list m_uris; +}; + +} // namespace Gobby + +#endif // _GOBBY_FILE_TASK_OPEN_MULTIPLE_HPP_ diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-save-all.cpp gobby-infinote-0.4.93/code/commands/file-tasks/task-save-all.cpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-save-all.cpp 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-save-all.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -16,47 +16,59 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +// TODO: This should not be a task because the asynchronous IO operations +// should not be interrupted by tasks like "save as". +// The should-not-abort part should be an operation. + #include "commands/file-tasks/task-save-all.hpp" Gobby::TaskSaveAll::TaskSaveAll(FileCommands& file_commands): Task(file_commands) { +} + +void Gobby::TaskSaveAll::run() { typedef Gtk::Notebook_Helpers::PageList PageList; PageList& pages = get_folder().pages(); for(PageList::iterator iter = pages.begin(); iter != pages.end(); ++ iter) { - m_documents.push_back( - static_cast(iter->get_child())); + SessionView* view = + static_cast(iter->get_child()); + TextSessionView* text_view = + dynamic_cast(view); + + if(text_view) + m_views.push_back(text_view); } get_folder().signal_document_removed().connect( sigc::mem_fun(*this, &TaskSaveAll::on_document_removed)); - m_current = m_documents.begin(); + m_current = m_views.begin(); process_current(); } -void Gobby::TaskSaveAll::on_document_removed(DocWindow& document) +void Gobby::TaskSaveAll::on_document_removed(SessionView& view) { - std::list::iterator iter = std::find( - m_documents.begin(), m_documents.end(), &document); + std::list::iterator iter = std::find( + m_views.begin(), m_views.end(), &view); if(iter == m_current) { - m_current = m_documents.erase(m_current); + m_current = m_views.erase(m_current); // Go on with next process_current(); } - if(iter != m_documents.end()) - m_documents.erase(iter); + if(iter != m_views.end()) + m_views.erase(iter); } void Gobby::TaskSaveAll::on_finished() { - m_current = m_documents.erase(m_current); + m_current = m_views.erase(m_current); process_current(); } @@ -64,33 +76,34 @@ { m_task.reset(NULL); - if(m_current == m_documents.end()) + if(m_current == m_views.end()) { finish(); } else { - DocWindow& doc = **m_current; + TextSessionView& view = **m_current; const DocumentInfoStorage::Info* info = get_document_info_storage().get_info( - doc.get_info_storage_key()); + view.get_info_storage_key()); if(info != NULL && !info->uri.empty()) { get_operations().save_document( - doc, get_folder(), info->uri, + view, get_folder(), info->uri, info->encoding, info->eol_style); - m_current = m_documents.erase(m_current); + m_current = m_views.erase(m_current); process_current(); } else { - m_task.reset(new TaskSave(m_file_commands, doc)); + m_task.reset(new TaskSave(m_file_commands, view)); m_task->signal_finished().connect(sigc::mem_fun( *this, &TaskSaveAll::on_finished)); + m_task->run(); } } } diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-save-all.hpp gobby-infinote-0.4.93/code/commands/file-tasks/task-save-all.hpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-save-all.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-save-all.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -30,14 +30,16 @@ public: TaskSaveAll(FileCommands& file_commands); + virtual void run(); + private: - void on_document_removed(DocWindow& document); + void on_document_removed(SessionView& view); void on_finished(); void process_current(); - std::list m_documents; - std::list::iterator m_current; + std::list m_views; + std::list::iterator m_current; std::auto_ptr m_task; }; diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-save.cpp gobby-infinote-0.4.93/code/commands/file-tasks/task-save.cpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-save.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-save.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -19,33 +19,43 @@ #include "commands/file-tasks/task-save.hpp" #include "util/i18n.hpp" -Gobby::TaskSave::TaskSave(FileCommands& file_commands, DocWindow& document): +Gobby::TaskSave::TaskSave(FileCommands& file_commands, TextSessionView& view): Task(file_commands), m_file_dialog(get_file_chooser(), get_parent(), Glib::ustring::compose( _("Choose a location to save document \"%1\" to"), - document.get_title()), + view.get_title()), Gtk::FILE_CHOOSER_ACTION_SAVE), - m_document(&document) + m_view(&view), + m_running(false) { - m_file_dialog.signal_response().connect(sigc::mem_fun( - *this, &TaskSave::on_response)); get_folder().signal_document_removed().connect( sigc::mem_fun( *this, &TaskSave::on_document_removed)); +} + +void Gobby::TaskSave::run() +{ + // m_view will be set to NULL if it has been removed before run + // was called. + if(!m_view) + { + finish(); + return; + } + + m_running = true; + + m_file_dialog.signal_response().connect(sigc::mem_fun( + *this, &TaskSave::on_response)); const DocumentInfoStorage::Info* info = get_document_info_storage().get_info( - document.get_info_storage_key()); + m_view->get_info_storage_key()); if(info != NULL && !info->uri.empty()) - { m_file_dialog.set_uri(info->uri); - } else - { - m_file_dialog.set_current_name( - document.get_title()); - } + m_file_dialog.set_current_name(m_view->get_title()); m_file_dialog.present(); } @@ -55,7 +65,7 @@ if(response_id == Gtk::RESPONSE_ACCEPT) { const std::string& info_storage_key = - m_document->get_info_storage_key(); + m_view->get_info_storage_key(); const DocumentInfoStorage::Info* info = get_document_info_storage().get_info( @@ -64,7 +74,7 @@ // TODO: Get encoding from file dialog // TODO: Default to CRLF on Windows get_operations().save_document( - *m_document, get_folder(), m_file_dialog.get_uri(), + *m_view, get_folder(), m_file_dialog.get_uri(), info ? info->encoding : "UTF-8", info ? info->eol_style : DocumentInfoStorage::EOL_LF); } @@ -72,9 +82,14 @@ finish(); } -void Gobby::TaskSave::on_document_removed(DocWindow& document) +void Gobby::TaskSave::on_document_removed(SessionView& view) { // The document we are about to save was removed. - if(m_document == &document) - finish(); + if(m_view == &view) + { + if(m_running) + finish(); + else + m_view = NULL; + } } diff -Nru gobby-infinote-0.4.92/code/commands/file-tasks/task-save.hpp gobby-infinote-0.4.93/code/commands/file-tasks/task-save.hpp --- gobby-infinote-0.4.92/code/commands/file-tasks/task-save.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/file-tasks/task-save.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -28,13 +28,15 @@ { private: FileChooser::Dialog m_file_dialog; - DocWindow* m_document; + TextSessionView* m_view; + bool m_running; public: - TaskSave(FileCommands& file_commands, DocWindow& document); + TaskSave(FileCommands& file_commands, TextSessionView& view); + virtual void run(); void on_response(int response_id); - void on_document_removed(DocWindow& document); + void on_document_removed(SessionView& view); }; } // namespace Gobby diff -Nru gobby-infinote-0.4.92/code/commands/folder-commands.cpp gobby-infinote-0.4.93/code/commands/folder-commands.cpp --- gobby-infinote-0.4.92/code/commands/folder-commands.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/folder-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -17,25 +17,31 @@ */ #include "commands/folder-commands.hpp" +#include "core/sessionuserview.hpp" #include +// TODO: Make this work with non-text documents also... maybe split & +// share a base class... or better: Move active user stuff to SessionView +// base. All SessionView's should be modifyable by the user, and if there are +// document types gobby only supports in a read-only kind of way the active +// user can just be NULL all the time. class Gobby::FolderCommands::DocInfo: public sigc::trackable { public: static const unsigned int ACTIVATION_DELAY = 1000; - DocInfo(DocWindow& document): - m_document(document), m_active_user(NULL), m_active(false) + DocInfo(SessionView& view): + m_view(view), m_active_user(NULL), m_active(false) { - m_document.signal_active_user_changed().connect( + m_view.signal_active_user_changed().connect( sigc::mem_fun( *this, &DocInfo::on_active_user_changed)); - on_active_user_changed(document.get_active_user()); + on_active_user_changed(view.get_active_user()); } - ~DocInfo() + virtual ~DocInfo() { if(m_active_user != NULL) { @@ -44,32 +50,20 @@ } } - void deactivate() + virtual void deactivate() { m_active = false; if(m_active_user) deactivate_user(); - - InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( - inf_session_get_buffer( - INF_SESSION(m_document.get_session()))); - - inf_text_gtk_buffer_set_wake_on_cursor_movement( - buffer, FALSE); } - void activate() + virtual void activate() { m_active = true; if(m_active_user) activate_user(); - - InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( - inf_session_get_buffer( - INF_SESSION(m_document.get_session()))); - - inf_text_gtk_buffer_set_wake_on_cursor_movement( - buffer, TRUE); } + virtual void flush() {} + protected: void activate_user() { @@ -95,13 +89,12 @@ break; case INF_USER_ACTIVE: /* Flush pending requests, so user is not set active - * again later. */ - inf_text_session_flush_requests_for_user( - m_document.get_session(), - INF_TEXT_USER(m_active_user)); + * again later. TODO: Maybe this should become a + * virtual function in InfSession actually. */ + flush(); inf_session_set_user_status( - INF_SESSION(m_document.get_session()), + INF_SESSION(m_view.get_session()), m_active_user, INF_USER_INACTIVE); break; case INF_USER_UNAVAILABLE: @@ -109,12 +102,16 @@ // here, for example when we have lost the connection // to the server, so this is not an error. + // If the user was active before we lost the + // connection then cancel the activation timeout + if(m_timeout_connection.connected()) + m_timeout_connection.disconnect(); + // TODO: Shouldn't local users stay available on // connection loss? We probably need to fix this // in infinote. break; } - } static void on_user_notify_status_static(InfUser* user, @@ -124,7 +121,7 @@ static_cast(user_data)->on_user_notify_status(user); } - void on_active_user_changed(InfTextUser* user) + void on_active_user_changed(InfUser* user) { if(m_active_user != NULL) { @@ -135,7 +132,7 @@ m_notify_status_handle); } - m_active_user = INF_USER(user); + m_active_user = user; if(user != NULL) { @@ -186,13 +183,13 @@ INF_USER_INACTIVE); inf_session_set_user_status( - INF_SESSION(m_document.get_session()), m_active_user, + INF_SESSION(m_view.get_session()), m_active_user, INF_USER_ACTIVE); return false; } - DocWindow& m_document; + SessionView& m_view; InfUser* m_active_user; bool m_active; @@ -200,8 +197,48 @@ gulong m_notify_status_handle; }; +class Gobby::FolderCommands::TextDocInfo: + public Gobby::FolderCommands::DocInfo +{ +public: + TextDocInfo(TextSessionView& view): DocInfo(view) {} + + virtual void activate() + { + DocInfo::activate(); + + InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( + inf_session_get_buffer(m_view.get_session())); + + inf_text_gtk_buffer_set_wake_on_cursor_movement( + buffer, TRUE); + } + + virtual void deactivate() + { + DocInfo::deactivate(); + + InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( + inf_session_get_buffer(m_view.get_session())); + + inf_text_gtk_buffer_set_wake_on_cursor_movement( + buffer, FALSE); + } + + virtual void flush() + { + DocInfo::flush(); + + g_assert(m_active_user != NULL); + + inf_text_session_flush_requests_for_user( + INF_TEXT_SESSION(m_view.get_session()), + INF_TEXT_USER(m_active_user)); + } +}; + Gobby::FolderCommands::FolderCommands(Folder& folder): - m_folder(folder), m_current_document(NULL) + m_folder(folder), m_current_view(NULL) { m_folder.signal_document_added().connect( sigc::mem_fun(*this, &FolderCommands::on_document_added)); @@ -210,13 +247,17 @@ m_folder.signal_document_changed().connect( sigc::mem_fun(*this, &FolderCommands::on_document_changed)); - for(unsigned int i = 0; i < m_folder.get_n_pages(); ++ i) - { - DocWindow* window = static_cast( + const unsigned int n_pages = + static_cast(m_folder.get_n_pages()); + for(unsigned int i = 0; i < n_pages; ++i) + { + // TODO: Convenience API in Folder to retrieve SessionView, + // so that we don't need to know about SessionUserView here. + SessionUserView* user_view = static_cast( m_folder.get_nth_page(i)); - g_assert(window != NULL); + SessionView& view = user_view->get_session_view(); - on_document_added(*window); + on_document_added(view); } on_document_changed(m_folder.get_current_document()); @@ -231,42 +272,54 @@ } } -void Gobby::FolderCommands::on_document_added(DocWindow& document) +void Gobby::FolderCommands::on_document_added(SessionView& view) { - DocInfo* info = new DocInfo(document); - m_doc_map[&document] = info; + DocInfo* info; + + { + TextSessionView* text_view = + dynamic_cast(&view); + + if(text_view) + info = new TextDocInfo(*text_view); + else + info = new DocInfo(view); + } + + m_doc_map[&view] = info; } -void Gobby::FolderCommands::on_document_removed(DocWindow& document) +void Gobby::FolderCommands::on_document_removed(SessionView& view) { - DocumentMap::iterator iter = m_doc_map.find(&document); + DocumentMap::iterator iter = m_doc_map.find(&view); g_assert(iter != m_doc_map.end()); delete iter->second; m_doc_map.erase(iter); - // on_document_changed is called when another document has - // been selected - if(&document == m_current_document) - m_current_document = NULL; + // TODO: Isn't this called by Folder already? Would need to + // call changed first and then removed of course. We could + // then assert here. + if(&view == m_current_view) + m_current_view = NULL; } -void Gobby::FolderCommands::on_document_changed(DocWindow* document) +void Gobby::FolderCommands::on_document_changed(SessionView* view) { - if(m_current_document != NULL) + if(m_current_view != NULL) { DocumentMap::iterator iter = - m_doc_map.find(m_current_document); + m_doc_map.find(m_current_view); g_assert(iter != m_doc_map.end()); iter->second->deactivate(); } - m_current_document = document; + m_current_view = view; - if(document != NULL) + if(m_current_view != NULL) { - DocumentMap::iterator iter = m_doc_map.find(document); + DocumentMap::iterator iter = m_doc_map.find(m_current_view); g_assert(iter != m_doc_map.end()); iter->second->activate(); diff -Nru gobby-infinote-0.4.92/code/commands/folder-commands.hpp gobby-infinote-0.4.93/code/commands/folder-commands.hpp --- gobby-infinote-0.4.92/code/commands/folder-commands.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/folder-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -34,19 +34,21 @@ protected: - void on_document_added(DocWindow& document); - void on_document_removed(DocWindow& document); - void on_document_changed(DocWindow* document); + void on_document_added(SessionView& view); + void on_document_removed(SessionView& view); + void on_document_changed(SessionView* view); Folder& m_folder; - DocWindow* m_current_document; + SessionView* m_current_view; class DocInfo; - typedef std::map DocumentMap; + typedef std::map DocumentMap; DocumentMap m_doc_map; + + class TextDocInfo; }; } - + #endif // _GOBBY_FOLDER_COMMANDS_HPP_ diff -Nru gobby-infinote-0.4.92/code/commands/help-commands.cpp gobby-infinote-0.4.93/code/commands/help-commands.cpp --- gobby-infinote-0.4.92/code/commands/help-commands.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/help-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -20,6 +20,7 @@ #include "util/i18n.hpp" #include +#include namespace { @@ -46,10 +47,33 @@ Gtk::AboutDialog::set_url_hook(sigc::ptr_fun(url_hook)); Gtk::AboutDialog::set_email_hook(sigc::ptr_fun(email_hook)); + header.action_help_contents->signal_activate().connect( + sigc::mem_fun(*this, &HelpCommands::on_contents)); header.action_help_about->signal_activate().connect( sigc::mem_fun(*this, &HelpCommands::on_about)); } +void Gobby::HelpCommands::on_contents() +{ + GError* error = NULL; + + gtk_show_uri(m_parent.get_screen()->gobj(), + "ghelp:gobby", + GDK_CURRENT_TIME, + &error); + + if(error == NULL) + return; + + // Help browser could not be invoked, show an error message to the user. + Gtk::MessageDialog dlg(m_parent, _("There was an error displaying help."), + false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); + dlg.set_secondary_text(error->message); + dlg.run(); + + g_error_free(error); +} + void Gobby::HelpCommands::on_about() { if(m_about_dialog.get() == NULL) @@ -63,9 +87,28 @@ std::vector authors; authors.push_back("Armin Burgmeier "); + authors.push_back("Philipp Kern "); + authors.push_back(""); + authors.push_back(_("Contributors:")); + authors.push_back("\tBenjamin Herr "); + authors.push_back("\tBen Levitt "); + authors.push_back("\tGabríel A. Pétursson "); + + std::vector translators; + translators.push_back(_("British English:")); + translators.push_back("\tGabríel A. Pétursson "); + + Glib::ustring transl = ""; + for(std::vector::iterator i = translators.begin(); + i != translators.end(); ++i) + { + if(i != translators.begin()) transl += "\n"; + transl += *i; + } m_about_dialog->set_artists(artists); m_about_dialog->set_authors(authors); + m_about_dialog->set_translator_credits(transl); m_about_dialog->set_copyright( "Copyright © 2008, 2009 Armin Burgmeier"); m_about_dialog->set_license(_( @@ -86,10 +129,9 @@ "write to the Free Software Foundation, Inc., 675 " "Mass Ave, Cambridge, MA 02139, USA.")); m_about_dialog->set_logo_icon_name("gobby-0.5"); - m_about_dialog->set_name("Gobby"); m_about_dialog->set_program_name("Gobby"); m_about_dialog->set_version(PACKAGE_VERSION); - m_about_dialog->set_website("http://gobby.0x539.de"); + m_about_dialog->set_website("http://gobby.0x539.de/"); m_about_dialog->set_wrap_license(true); m_about_dialog->signal_response().connect( diff -Nru gobby-infinote-0.4.92/code/commands/help-commands.hpp gobby-infinote-0.4.93/code/commands/help-commands.hpp --- gobby-infinote-0.4.92/code/commands/help-commands.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/help-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -38,6 +38,8 @@ const IconManager& icon_manager); protected: + void on_contents(); + void on_about(); void on_about_response(int response_id); diff -Nru gobby-infinote-0.4.92/code/commands/Makefile.am gobby-infinote-0.4.93/code/commands/Makefile.am --- gobby-infinote-0.4.92/code/commands/Makefile.am 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -3,6 +3,7 @@ noinst_LIBRARIES = libgobby-commands.a libgobby_commands_a_SOURCES = \ + auth-commands.cpp \ autosave-commands.cpp \ browser-commands.cpp \ browser-context-commands.cpp \ @@ -10,9 +11,13 @@ file-commands.cpp \ folder-commands.cpp \ help-commands.cpp \ + subscription-commands.cpp \ + synchronization-commands.cpp \ + user-join-commands.cpp \ view-commands.cpp noinst_HEADERS = \ + auth-commands.hpp \ autosave-commands.hpp \ browser-commands.hpp \ browser-context-commands.hpp \ @@ -20,10 +25,13 @@ file-commands.hpp \ folder-commands.hpp \ help-commands.hpp \ + subscription-commands.hpp \ + synchronization-commands.hpp \ + user-join-commands.hpp \ view-commands.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code diff -Nru gobby-infinote-0.4.92/code/commands/Makefile.in gobby-infinote-0.4.93/code/commands/Makefile.in --- gobby-infinote-0.4.92/code/commands/Makefile.in 2009-04-26 10:57:36.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/Makefile.in 2009-12-19 23:16:17.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -48,11 +49,13 @@ ARFLAGS = cru libgobby_commands_a_AR = $(AR) $(ARFLAGS) libgobby_commands_a_LIBADD = -am_libgobby_commands_a_OBJECTS = autosave-commands.$(OBJEXT) \ - browser-commands.$(OBJEXT) browser-context-commands.$(OBJEXT) \ - edit-commands.$(OBJEXT) file-commands.$(OBJEXT) \ - folder-commands.$(OBJEXT) help-commands.$(OBJEXT) \ - view-commands.$(OBJEXT) +am_libgobby_commands_a_OBJECTS = auth-commands.$(OBJEXT) \ + autosave-commands.$(OBJEXT) browser-commands.$(OBJEXT) \ + browser-context-commands.$(OBJEXT) edit-commands.$(OBJEXT) \ + file-commands.$(OBJEXT) folder-commands.$(OBJEXT) \ + help-commands.$(OBJEXT) subscription-commands.$(OBJEXT) \ + synchronization-commands.$(OBJEXT) \ + user-join-commands.$(OBJEXT) view-commands.$(OBJEXT) libgobby_commands_a_OBJECTS = $(am_libgobby_commands_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/code depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -99,6 +102,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -108,6 +113,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -132,11 +138,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -207,9 +215,12 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = file-tasks noinst_LIBRARIES = libgobby-commands.a libgobby_commands_a_SOURCES = \ + auth-commands.cpp \ autosave-commands.cpp \ browser-commands.cpp \ browser-context-commands.cpp \ @@ -217,9 +228,13 @@ file-commands.cpp \ folder-commands.cpp \ help-commands.cpp \ + subscription-commands.cpp \ + synchronization-commands.cpp \ + user-join-commands.cpp \ view-commands.cpp noinst_HEADERS = \ + auth-commands.hpp \ autosave-commands.hpp \ browser-commands.hpp \ browser-context-commands.hpp \ @@ -227,11 +242,14 @@ file-commands.hpp \ folder-commands.hpp \ help-commands.hpp \ + subscription-commands.hpp \ + synchronization-commands.hpp \ + user-join-commands.hpp \ view-commands.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code all: all-recursive @@ -281,6 +299,7 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auth-commands.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/autosave-commands.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/browser-commands.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/browser-context-commands.Po@am__quote@ @@ -288,6 +307,9 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-commands.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/folder-commands.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/help-commands.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/subscription-commands.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/synchronization-commands.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/user-join-commands.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view-commands.Po@am__quote@ .cpp.o: @@ -311,7 +333,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -336,7 +358,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -522,6 +544,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -530,18 +554,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 diff -Nru gobby-infinote-0.4.92/code/commands/subscription-commands.cpp gobby-infinote-0.4.93/code/commands/subscription-commands.cpp --- gobby-infinote-0.4.92/code/commands/subscription-commands.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/subscription-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,278 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "commands/subscription-commands.hpp" +#include "util/i18n.hpp" + +class Gobby::SubscriptionCommands::BrowserInfo +{ +public: + BrowserInfo(SubscriptionCommands& commands, InfcBrowser* browser): + m_browser(browser) + { + g_object_ref(m_browser); + + m_subscribe_session_handler = g_signal_connect( + G_OBJECT(browser), "subscribe-session", + G_CALLBACK(&on_subscribe_session_static), &commands); + } + + ~BrowserInfo() + { + g_signal_handler_disconnect(G_OBJECT(m_browser), + m_subscribe_session_handler); + + g_object_unref(m_browser); + } + +private: + InfcBrowser* m_browser; + gulong m_subscribe_session_handler; +}; + +class Gobby::SubscriptionCommands::SessionInfo +{ +public: + SessionInfo(SubscriptionCommands& commands, Folder& folder, + InfcSessionProxy* proxy): + m_folder(folder), m_proxy(proxy) + { + g_object_ref(proxy); + + InfSession* session = infc_session_proxy_get_session(proxy); + + m_close_handler = g_signal_connect( + G_OBJECT(session), "close", + G_CALLBACK(on_close_static), &commands); + + // TODO: Rather use notify::subscription-group on session? + // Then we wouldn't even need proxy here. TextTabLabel does + // the same. + m_notify_connection_handler = g_signal_connect( + G_OBJECT(proxy), "notify::connection", + G_CALLBACK(on_notify_connection_static), &commands); + } + + ~SessionInfo() + { + InfSession* session = infc_session_proxy_get_session(m_proxy); + + g_signal_handler_disconnect(G_OBJECT(session), + m_close_handler); + g_signal_handler_disconnect(G_OBJECT(m_proxy), + m_notify_connection_handler); + + g_object_unref(m_proxy); + } + + Folder& get_folder() { return m_folder; } + InfcSessionProxy* get_proxy() { return m_proxy; } + +private: + static void on_close_static(InfSession* session, gpointer user_data) + { + static_cast(user_data)-> + on_close(session); + } + + static void on_notify_connection_static(InfcSessionProxy* proxy, + GParamSpec* pspec, + gpointer user_data) + { + static_cast(user_data)-> + on_notify_connection(proxy); + } + + Folder& m_folder; + InfcSessionProxy* m_proxy; + + gulong m_notify_connection_handler; + gulong m_close_handler; +}; + +Gobby::SubscriptionCommands::SubscriptionCommands(Browser& browser, + Folder& text_folder, + Folder& chat_folder, + DocumentInfoStorage& strg): + m_browser(browser), m_text_folder(text_folder), + m_chat_folder(chat_folder), m_info_storage(strg) +{ + InfGtkBrowserModel* model = + INF_GTK_BROWSER_MODEL(browser.get_store()); + + m_set_browser_handler = + g_signal_connect(G_OBJECT(model), "set-browser", + G_CALLBACK(&on_set_browser_static), this); +} + +Gobby::SubscriptionCommands::~SubscriptionCommands() +{ + for(BrowserMap::iterator iter = m_browser_map.begin(); + iter != m_browser_map.end(); ++ iter) + { + delete iter->second; + } + + for(SessionMap::iterator iter = m_session_map.begin(); + iter != m_session_map.end(); ++iter) + { + delete iter->second; + } + + g_signal_handler_disconnect( + INF_GTK_BROWSER_MODEL(m_browser.get_store()), + m_set_browser_handler); +} + +void Gobby::SubscriptionCommands::on_set_browser(InfGtkBrowserModel* model, + GtkTreeIter* iter, + InfcBrowser* browser) +{ + InfcBrowser* old_browser; + gtk_tree_model_get( + GTK_TREE_MODEL(model), iter, + INF_GTK_BROWSER_MODEL_COL_BROWSER, &old_browser, -1); + + if(old_browser != NULL) + { + BrowserMap::iterator iter = m_browser_map.find(old_browser); + g_assert(iter != m_browser_map.end()); + delete iter->second; + m_browser_map.erase(iter); + g_object_unref(old_browser); + } + + if(browser != NULL) + { + g_assert(m_browser_map.find(browser) == m_browser_map.end()); + m_browser_map[browser] = new BrowserInfo(*this, browser); + } +} + +void Gobby::SubscriptionCommands::on_subscribe_session(InfcBrowser* browser, + InfcBrowserIter* iter, + InfcSessionProxy* prxy) +{ + gchar* hostname; + g_object_get(G_OBJECT(infc_browser_get_connection(browser)), + "remote-hostname", &hostname, NULL); + InfSession* session = infc_session_proxy_get_session(prxy); + + TextSessionView* text_view = NULL;; + + Folder* folder; + SessionView* view; + + if(iter != NULL) + { + gchar* path = infc_browser_iter_get_path(browser, iter); + + text_view = &m_text_folder.add_text_session( + INF_TEXT_SESSION(session), + infc_browser_iter_get_name(browser, iter), + path, hostname, + m_info_storage.get_key(browser, iter)); + + folder = &m_text_folder; + view = text_view; + + g_free(path); + } + else + { + view = &m_chat_folder.add_chat_session( + INF_CHAT_SESSION(session), hostname, "", hostname); + folder = &m_chat_folder; + } + + g_free(hostname); + + m_signal_subscribe_session.emit(prxy, *folder, *view); + + // For now we always highlight the newly created session... + // TODO: If the user issued other browserview events in the meanwhile, + // then don't select the item, and if the user did issue other folder + // events, then don't switch to the document in the folder. + folder->switch_to_document(*view); + if(text_view) + gtk_widget_grab_focus(GTK_WIDGET(text_view->get_text_view())); + if(iter) m_browser.set_selected(browser, iter); + + g_assert(m_session_map.find(session) == m_session_map.end()); + m_session_map[session] = new SessionInfo(*this, *folder, prxy); +} + +void Gobby::SubscriptionCommands::on_close(InfSession* session) +{ + SessionMap::iterator iter = m_session_map.find(session); + g_assert(iter != m_session_map.end()); + + Folder& folder = iter->second->get_folder(); + SessionView* view = folder.lookup_document(session); + g_assert(view != NULL); + + InfcSessionProxy* proxy = iter->second->get_proxy(); + g_object_ref(proxy); + + delete iter->second; + m_session_map.erase(iter); + + m_signal_unsubscribe_session.emit(proxy, folder, *view); + g_object_unref(proxy); +} + +void Gobby::SubscriptionCommands::on_notify_connection(InfcSessionProxy* prxy) +{ + InfSession* session = infc_session_proxy_get_session(prxy); + SessionMap::iterator iter = m_session_map.find(session); + g_assert(iter != m_session_map.end()); + + if(infc_session_proxy_get_connection(prxy) == NULL) + { + Folder& folder = iter->second->get_folder(); + SessionView* view = folder.lookup_document(session); + g_assert(view != NULL); + + TextSessionView* text_view = + dynamic_cast(view); + ChatSessionView* chat_view = + dynamic_cast(view); + + if(text_view) + { + view->set_info(_( + "The connection to the publisher of this " + "document has been lost. Further changes to " + "the document could not be synchronized to " + "others anymore, therefore the document " + "cannot be edited anymore.\n\n" + "Please note also that it is possible that " + "not all of your latest changes have reached " + "the publisher before the connection was " + "lost."), true); + + text_view->set_active_user(NULL); + } + else if(chat_view) + { + chat_view->set_active_user(NULL); + } + + m_signal_unsubscribe_session.emit(prxy, folder, *view); + } +} diff -Nru gobby-infinote-0.4.92/code/commands/subscription-commands.hpp gobby-infinote-0.4.93/code/commands/subscription-commands.hpp --- gobby-infinote-0.4.92/code/commands/subscription-commands.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/subscription-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,128 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_SUBSCRIPTION_COMMANDS_HPP_ +#define _GOBBY_SUBSCRIPTION_COMMANDS_HPP_ + +#include "core/browser.hpp" +#include "core/folder.hpp" +#include "core/sessionview.hpp" +#include "core/documentinfostorage.hpp" + +#include +#include + +namespace Gobby +{ + +class SubscriptionCommands: public sigc::trackable +{ +public: + typedef sigc::signal + SignalSubscribeSession; + typedef sigc::signal + SignalUnsubscribeSession; + + SubscriptionCommands(Browser& browser, Folder& text_folder, + Folder& chat_folder, DocumentInfoStorage& strg); + ~SubscriptionCommands(); + + // Emitted whenever a session is subscribed to, both for text and + // chat sessions. This also provides access to the InfcSessionProxy + // of the subscription to allow others (especially user-join-commands + // to make a user join). + SignalSubscribeSession signal_subscribe_session() const + { + return m_signal_subscribe_session; + } + + SignalUnsubscribeSession signal_unsubscribe_session() const + { + return m_signal_unsubscribe_session; + } + +protected: + static void on_set_browser_static(InfGtkBrowserModel* model, + GtkTreePath* path, + GtkTreeIter* iter, + InfcBrowser* browser, + gpointer user_data) + { + static_cast(user_data)->on_set_browser( + model, iter, browser); + } + + static void on_subscribe_session_static(InfcBrowser* browser, + InfcBrowserIter* iter, + InfcSessionProxy* proxy, + gpointer user_data) + { + static_cast(user_data)-> + on_subscribe_session(browser, iter, proxy); + } + + static void on_finished_static(InfcNodeRequest* request, + const InfcBrowserIter* iter, + gpointer user_data) + { + static_cast(user_data)->on_finished( + request); + } + + static void on_failed_static(InfcRequest* request, + const GError* error, + gpointer user_data) + { + static_cast(user_data)->on_failed( + INFC_NODE_REQUEST(request), error); + } + + void on_set_browser(InfGtkBrowserModel* model, GtkTreeIter* iter, + InfcBrowser* browser); + + void on_finished(InfcNodeRequest* request); + void on_failed(InfcNodeRequest* request, const GError* error); + + void on_subscribe_session(InfcBrowser* browser, InfcBrowserIter* iter, + InfcSessionProxy* proxy); + + void on_close(InfSession* session); + void on_notify_connection(InfcSessionProxy* proxy); + + Browser& m_browser; + Folder& m_text_folder; + Folder& m_chat_folder; + DocumentInfoStorage& m_info_storage; + + gulong m_set_browser_handler; + + class BrowserInfo; + typedef std::map BrowserMap; + BrowserMap m_browser_map; + + class SessionInfo; + typedef std::map SessionMap; + SessionMap m_session_map; + + SignalSubscribeSession m_signal_subscribe_session; + SignalUnsubscribeSession m_signal_unsubscribe_session; +}; + +} + +#endif // _GOBBY_SUBSCRIPTION_COMMANDS_HPP_ diff -Nru gobby-infinote-0.4.92/code/commands/synchronization-commands.cpp gobby-infinote-0.4.93/code/commands/synchronization-commands.cpp --- gobby-infinote-0.4.92/code/commands/synchronization-commands.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/synchronization-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,248 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "commands/synchronization-commands.hpp" + +#include "util/i18n.hpp" + +namespace +{ + inline const gchar* _(const gchar* msgid) { return Gobby::_(msgid); } + + void set_progress_text(Gobby::SessionView& view, + gdouble percentage) + { + view.set_info( + Glib::ustring::compose( + _("Synchronization in progress... %1%%"), + static_cast(percentage * 100)), + false); + } + + void set_error_text(Gobby::SessionView& view, + const Glib::ustring& initial_text) + { + Glib::ustring type_text; + + // Document cannot be used if an error happened + // during synchronization. + type_text = _("This document cannot be used."); + + const Glib::ustring info_text = + _("If you have an idea what could have caused the " + "problem, then you may attempt to solve it and " + "try again (after having closed this document). " + "Otherwise it is most likely a bug in the " + "software. In that case, please file a bug report " + "at http://gobby.0x539.de/trac/newticket and " + "provide as much information as you can, including " + "what you did when the problem occurred and how to " + "reproduce the problem (if possible) so that we " + "can fix the problem in a later version. " + "Thank you."); + + view.set_info( + Glib::ustring::compose( + _("Synchronization failed: %1"), + initial_text) + + "\n\n" + type_text + "\n\n" + info_text, true); + } +} + +class Gobby::SynchronizationCommands::SyncInfo +{ +public: + SyncInfo(SynchronizationCommands& sync_commands, + SessionView& view); + ~SyncInfo(); + + SessionView& get_session_view() { return m_view; } + +private: + static void + on_synchronization_failed_static(InfSession* session, + InfXmlConnection* conn, + const GError* error, + gpointer user_data) + { + static_cast(user_data)-> + on_synchronization_failed(session, conn, error); + } + + static void + on_synchronization_complete_static(InfSession* session, + InfXmlConnection* conn, + gpointer user_data) + { + static_cast(user_data)-> + on_synchronization_complete(session, conn); + } + + static void + on_synchronization_progress_static(InfSession* session, + InfXmlConnection* conn, + gdouble percentage, + gpointer user_data) + { + static_cast(user_data)-> + on_synchronization_progress(conn, percentage); + } + + void on_synchronization_progress(InfXmlConnection* conn, + gdouble percentage); + + SessionView& m_view; + + gulong m_synchronization_complete_handler; + gulong m_synchronization_failed_handler; + gulong m_synchronization_progress_handler; +}; + +Gobby::SynchronizationCommands::SyncInfo:: + SyncInfo(SynchronizationCommands& commands, SessionView& view): + m_view(view) +{ + InfSession* session = m_view.get_session(); + + m_synchronization_complete_handler = g_signal_connect( + G_OBJECT(session), "synchronization-complete", + G_CALLBACK(on_synchronization_complete_static), &commands); + m_synchronization_failed_handler = g_signal_connect( + G_OBJECT(session), "synchronization-failed", + G_CALLBACK(on_synchronization_failed_static), &commands); + m_synchronization_progress_handler = g_signal_connect( + G_OBJECT(session), "synchronization-progress", + G_CALLBACK(on_synchronization_progress_static), this); +} + +Gobby::SynchronizationCommands::SyncInfo::~SyncInfo() +{ + InfSession* session = m_view.get_session(); + + g_signal_handler_disconnect(G_OBJECT(session), + m_synchronization_complete_handler); + g_signal_handler_disconnect(G_OBJECT(session), + m_synchronization_failed_handler); + g_signal_handler_disconnect(G_OBJECT(session), + m_synchronization_progress_handler); +} + +void Gobby::SynchronizationCommands::SyncInfo:: + on_synchronization_progress(InfXmlConnection* conn, + gdouble percentage) +{ + set_progress_text(m_view, percentage); +} + +Gobby::SynchronizationCommands:: + SynchronizationCommands(SubscriptionCommands& subscription_commands) +{ + subscription_commands.signal_subscribe_session().connect( + sigc::mem_fun( + *this, + &SynchronizationCommands::on_subscribe_session)); + + subscription_commands.signal_unsubscribe_session().connect( + sigc::mem_fun( + *this, + &SynchronizationCommands::on_unsubscribe_session)); +} + +Gobby::SynchronizationCommands::~SynchronizationCommands() +{ + for(SyncMap::iterator iter = m_sync_map.begin(); + iter != m_sync_map.end(); ++iter) + { + delete iter->second; + } +} + +void +Gobby::SynchronizationCommands::on_subscribe_session(InfcSessionProxy* prxy, + Folder& folder, + SessionView& view) +{ + InfSession* session = view.get_session(); + if(inf_session_get_status(session) == INF_SESSION_SYNCHRONIZING) + { + InfXmlConnection* connection; + g_object_get(G_OBJECT(session), + "sync-connection", &connection, NULL); + gdouble percentage = inf_session_get_synchronization_progress( + session, connection); + g_object_unref(connection); + + g_assert(m_sync_map.find(session) == m_sync_map.end()); + m_sync_map[session] = new SyncInfo(*this, view); + set_progress_text(view, percentage); + } +} + +void +Gobby::SynchronizationCommands::on_unsubscribe_session(InfcSessionProxy* prxy, + Folder& folder, + SessionView& view) +{ + InfSession* session = view.get_session(); + SyncMap::iterator iter = m_sync_map.find(session); + if(iter != m_sync_map.end()) + { + delete iter->second; + m_sync_map.erase(iter); + } +} + +void +Gobby::SynchronizationCommands:: + on_synchronization_failed(InfSession* session, + InfXmlConnection* c, + const GError* error) +{ + SyncMap::iterator iter = m_sync_map.find(session); + g_assert(iter != m_sync_map.end()); + + set_error_text(iter->second->get_session_view(), error->message); + + // The document will be of no use anyway, so consider it as not + // being modified. + InfBuffer* buffer = inf_session_get_buffer(session); + inf_buffer_set_modified(buffer, FALSE); + + delete iter->second; + m_sync_map.erase(iter); +} + +void +Gobby::SynchronizationCommands:: + on_synchronization_complete(InfSession* session, + InfXmlConnection* c) +{ + SyncMap::iterator iter = m_sync_map.find(session); + g_assert(iter != m_sync_map.end()); + + // TODO: Actually we should always set the modified flag, except the + // document is either empty, or known in the document info storage + // and the version on disk is the same as the one we got + // synchronized. We could store a hash and modification time in the + // documentinfo storage for this. + InfBuffer* buffer = inf_session_get_buffer(session); + inf_buffer_set_modified(buffer, FALSE); + + delete iter->second; + m_sync_map.erase(iter); +} diff -Nru gobby-infinote-0.4.92/code/commands/synchronization-commands.hpp gobby-infinote-0.4.93/code/commands/synchronization-commands.hpp --- gobby-infinote-0.4.92/code/commands/synchronization-commands.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/synchronization-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,57 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_SYNCHRONIZATION_COMMANDS_HPP_ +#define _GOBBY_SYNCHRONIZATION_COMMANDS_HPP_ + +#include + +#include "commands/subscription-commands.hpp" + +namespace Gobby +{ + +class SynchronizationCommands: public sigc::trackable +{ +public: + SynchronizationCommands(SubscriptionCommands& subscription_commands); + ~SynchronizationCommands(); + +protected: + class SyncInfo; + + void on_subscribe_session(InfcSessionProxy* proxy, + Folder& folder, + SessionView& view); + void on_unsubscribe_session(InfcSessionProxy* proxy, + Folder& folder, + SessionView& view); + + void on_synchronization_failed(InfSession* session, + InfXmlConnection* connection, + const GError* error); + void on_synchronization_complete(InfSession* session, + InfXmlConnection* connection); + + typedef std::map SyncMap; + SyncMap m_sync_map; +}; + +} + +#endif // _GOBBY_SYNCHRONIZATION_COMMANDS_HPP_ diff -Nru gobby-infinote-0.4.92/code/commands/user-join-commands.cpp gobby-infinote-0.4.93/code/commands/user-join-commands.cpp --- gobby-infinote-0.4.92/code/commands/user-join-commands.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/user-join-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,400 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "commands/user-join-commands.hpp" +#include "util/i18n.hpp" + +#include + +namespace +{ + inline const gchar* _(const gchar* msgid) { return Gobby::_(msgid); } + + void set_error_text(Gobby::SessionView& view, + const Glib::ustring& initial_text) + { + using namespace Gobby; + Glib::ustring type_text; + + // TODO: Adjust this for chat sessions + type_text = _("You can still watch others editing " + "the document, but you cannot edit " + "it yourself."); + + const Glib::ustring info_text = + _("If you have an idea what could have caused the " + "problem, then you may attempt to solve it and " + "try again (after having closed this document). " + "Otherwise it is most likely a bug in the " + "software. In that case, please file a bug report " + "at http://gobby.0x539.de/trac/newticket and " + "provide as much information as you can, including " + "what you did when the problem occurred and how to " + "reproduce the problem (if possible) so that we " + "can fix the problem in a later version. " + "Thank you."); + + view.set_info( + Glib::ustring::compose( + _("User Join failed: %1"), initial_text) + + "\n\n" + type_text + "\n\n" + info_text, true); + } + + void retr_local_user_func(InfUser* user, gpointer user_data) + { + (*static_cast(user_data)) = user; + } +} + +class Gobby::UserJoinCommands::UserJoinInfo +{ +public: + UserJoinInfo(UserJoinCommands& commands, + InfcSessionProxy* proxy, + Folder& folder, + SessionView& view); + ~UserJoinInfo(); + +private: + static void on_synchronization_complete_static(InfSession* session, + InfXmlConnection* conn, + gpointer user_data) + { + static_cast(user_data)-> + on_synchronization_complete(); + } + + static void on_user_join_failed_static(InfcUserRequest* request, + const GError* error, + gpointer user_data) + { + static_cast(user_data)-> + on_user_join_failed(error); + } + + static void on_user_join_finished_static(InfcUserRequest* request, + InfUser* user, + gpointer user_data) + { + static_cast(user_data)-> + on_user_join_finished(user); + } + + void on_synchronization_complete(); + void on_user_join_failed(const GError* error); + void on_user_join_finished(InfUser* user); + + void attempt_user_join(); + void user_join_complete(InfUser* user); + void finish(); + + void add_text_user_properties(std::vector& params, + TextSessionView& view); + + UserJoinCommands& m_commands; + + InfcSessionProxy* m_proxy; + Folder& m_folder; + SessionView& m_view; + + InfcUserRequest* m_request; + + gulong m_synchronization_complete_handler; + gulong m_user_join_failed_handler; + gulong m_user_join_finished_handler; + + guint m_retry_index; +}; + +Gobby::UserJoinCommands::UserJoinInfo::UserJoinInfo(UserJoinCommands& cmds, + InfcSessionProxy* proxy, + Folder& folder, + SessionView& view): + m_commands(cmds), m_proxy(proxy), m_folder(folder), m_view(view), + m_request(NULL), m_synchronization_complete_handler(0), + m_user_join_failed_handler(0), m_user_join_finished_handler(0), + m_retry_index(1) +{ + g_object_ref(m_proxy); + + InfSession* session = infc_session_proxy_get_session(proxy); + + if(inf_session_get_status(session) == INF_SESSION_SYNCHRONIZING) + { + // If not yet synchronization wait for synchronization until + // attempting userjoin + m_synchronization_complete_handler = g_signal_connect_after( + G_OBJECT(session), "synchronization-complete", + G_CALLBACK(on_synchronization_complete_static), this); + } + else + { + // Delay this call to make sure we don't call finish() + // right inside the constructor. + Glib::signal_idle().connect( + sigc::bind_return(sigc::mem_fun( + *this, &UserJoinInfo::attempt_user_join), + false)); + } +} + +Gobby::UserJoinCommands::UserJoinInfo::~UserJoinInfo() +{ + if(m_synchronization_complete_handler) + { + InfSession* session = infc_session_proxy_get_session(m_proxy); + g_signal_handler_disconnect( + session, m_synchronization_complete_handler); + } + + if(m_request) + { + g_signal_handler_disconnect(m_request, + m_user_join_failed_handler); + g_signal_handler_disconnect(m_request, + m_user_join_finished_handler); + + g_object_unref(m_request); + } + + g_object_unref(m_proxy); +} + +void Gobby::UserJoinCommands::UserJoinInfo::on_synchronization_complete() +{ + // Disconnect signal handler, so that we don't get notified when + // syncing this document in running state to another location + // or server. + InfSession* session = infc_session_proxy_get_session(m_proxy); + g_signal_handler_disconnect(session, + m_synchronization_complete_handler); + m_synchronization_complete_handler = 0; + + // Attempt user join after synchronization + attempt_user_join(); +} + +void Gobby::UserJoinCommands::UserJoinInfo:: + on_user_join_failed(const GError* error) +{ + if(error->domain == inf_user_error_quark() && + error->code == INF_USER_ERROR_NAME_IN_USE) + { + // If name is in use retry with alternative user name + ++m_retry_index; + + attempt_user_join(); + } + else + { + set_error_text(m_view, error->message); + finish(); + } +} + +void Gobby::UserJoinCommands::UserJoinInfo:: + on_user_join_finished(InfUser* user) +{ + user_join_complete(user); +} + +void Gobby::UserJoinCommands::UserJoinInfo::attempt_user_join() +{ + const Preferences& preferences = m_commands.m_preferences; + + // Check if there is already a local user, for example for a + // synced-in document. + InfSession* session = infc_session_proxy_get_session(m_proxy); + InfUserTable* user_table = inf_session_get_user_table(session); + InfUser* user = NULL; + inf_user_table_foreach_local_user(user_table, + retr_local_user_func, &user); + + if(user != NULL) + { + user_join_complete(user); + } + else + { + std::vector params; + const GParameter name_param = { "name", { 0 } }; + params.push_back(name_param); + const GParameter status_param = { "status", { 0 } }; + params.push_back(status_param); + + g_value_init(¶ms[0].value, G_TYPE_STRING); + g_value_init(¶ms[1].value, INF_TYPE_USER_STATUS); + + const Glib::ustring& pref_name = preferences.user.name; + if(m_retry_index > 1) + { + gchar* name = g_strdup_printf( + "%s %u", pref_name.c_str(), m_retry_index); + g_value_take_string(¶ms[0].value, name); + } + else + { + g_value_set_static_string( + ¶ms[0].value, pref_name.c_str()); + } + + if(m_folder.get_current_document() == &m_view) + g_value_set_enum(¶ms[1].value, INF_USER_ACTIVE); + else + g_value_set_enum(¶ms[1].value, INF_USER_INACTIVE); + + // Extra properties for text session: + TextSessionView* text_view = + dynamic_cast(&m_view); + if(text_view) add_text_user_properties(params, *text_view); + + GError* error = NULL; + m_request = infc_session_proxy_join_user( + m_proxy, ¶ms[0], params.size(), &error); + + for(unsigned int i = 0; i < params.size(); ++i) + g_value_unset(¶ms[i].value); + + if(m_request == NULL) + { + set_error_text(m_view, error->message); + g_error_free(error); + } + else + { + g_object_ref(m_request); + + m_view.set_info( + _("User Join in progress..."), false); + + m_user_join_failed_handler = g_signal_connect( + m_request, "failed", + G_CALLBACK(on_user_join_failed_static), this); + m_user_join_finished_handler = g_signal_connect( + m_request, "finished", + G_CALLBACK(on_user_join_finished_static), + this); + } + } +} + +void Gobby::UserJoinCommands::UserJoinInfo::user_join_complete(InfUser* user) +{ + // TODO: Notify the user about alternative user name if s/he uses any + m_view.unset_info(); + + // TODO: set_active_user should maybe go to SessionView base: + TextSessionView* text_view = dynamic_cast(&m_view); + if(text_view) + text_view->set_active_user(INF_TEXT_USER(user)); + ChatSessionView* chat_view = dynamic_cast(&m_view); + if(chat_view) + chat_view->set_active_user(user); + + finish(); +} + +void Gobby::UserJoinCommands::UserJoinInfo::finish() +{ + UserJoinCommands::UserJoinMap::iterator iter = + m_commands.m_user_join_map.find(m_proxy); + g_assert(iter != m_commands.m_user_join_map.end()); + + m_commands.m_user_join_map.erase(iter); + delete this; +} + +void Gobby::UserJoinCommands::UserJoinInfo:: + add_text_user_properties(std::vector& params, + TextSessionView& view) +{ + const Preferences& preferences = m_commands.m_preferences; + InfTextSession* session = view.get_session(); + + GParameter hue_param = { "hue", { 0 } }; + g_value_init(&hue_param.value, G_TYPE_DOUBLE); + g_value_set_double(&hue_param.value, + m_commands.m_preferences.user.hue); + params.push_back(hue_param); + + GParameter vector_param = { "vector", { 0 } }; + g_value_init(&vector_param.value, INF_ADOPTED_TYPE_STATE_VECTOR); + + g_value_take_boxed(&vector_param.value, inf_adopted_state_vector_copy( + inf_adopted_algorithm_get_current( + inf_adopted_session_get_algorithm( + INF_ADOPTED_SESSION(session))))); + params.push_back(vector_param); + + GParameter caret_param = { "caret-position", { 0 } }; + g_value_init(&caret_param.value, G_TYPE_UINT); + + GtkTextBuffer* buffer = GTK_TEXT_BUFFER(view.get_text_buffer()); + GtkTextMark* mark = gtk_text_buffer_get_insert(buffer); + GtkTextIter caret_iter; + + gtk_text_buffer_get_iter_at_mark(buffer, &caret_iter, mark); + g_value_set_uint(&caret_param.value, + gtk_text_iter_get_offset(&caret_iter)); + params.push_back(caret_param); +} + +Gobby::UserJoinCommands:: + UserJoinCommands(SubscriptionCommands& subscription_commands, + const Preferences& preferences): + m_preferences(preferences) +{ + subscription_commands.signal_subscribe_session().connect( + sigc::mem_fun( + *this, &UserJoinCommands::on_subscribe_session)); + subscription_commands.signal_unsubscribe_session().connect( + sigc::mem_fun( + *this, &UserJoinCommands::on_unsubscribe_session)); +} + +Gobby::UserJoinCommands::~UserJoinCommands() +{ + for(UserJoinMap::iterator iter = m_user_join_map.begin(); + iter != m_user_join_map.end(); ++iter) + { + delete iter->second; + } +} + +void Gobby::UserJoinCommands::on_subscribe_session(InfcSessionProxy* proxy, + Folder& folder, + SessionView& view) +{ + g_assert(m_user_join_map.find(proxy) == m_user_join_map.end()); + m_user_join_map[proxy] = new UserJoinInfo(*this, proxy, folder, view); +} + +void Gobby::UserJoinCommands::on_unsubscribe_session(InfcSessionProxy* proxy, + Folder& folder, + SessionView& view) +{ + UserJoinMap::iterator iter = m_user_join_map.find(proxy); + + // If the user join was successful the session is no longer in + // our map, so don't assert here. + if(iter != m_user_join_map.end()) + { + delete iter->second; + m_user_join_map.erase(iter); + } +} diff -Nru gobby-infinote-0.4.92/code/commands/user-join-commands.hpp gobby-infinote-0.4.93/code/commands/user-join-commands.hpp --- gobby-infinote-0.4.92/code/commands/user-join-commands.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/user-join-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,52 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_USER_JOIN_COMMANDS_HPP_ +#define _GOBBY_USER_JOIN_COMMANDS_HPP_ + +#include "commands/subscription-commands.hpp" +#include "core/preferences.hpp" + +#include + +namespace Gobby +{ + +class UserJoinCommands: public sigc::trackable +{ +public: + UserJoinCommands(SubscriptionCommands& subscription_commands, + const Preferences& preferences); + ~UserJoinCommands(); + +protected: + void on_subscribe_session(InfcSessionProxy* proxy, + Folder& folder, SessionView& view); + void on_unsubscribe_session(InfcSessionProxy* proxy, + Folder& folder, SessionView& view); + + const Preferences& m_preferences; + + class UserJoinInfo; + typedef std::map UserJoinMap; + UserJoinMap m_user_join_map; +}; + +} + +#endif // _GOBBY_USER_JOIN_COMMANDS_HPP_ diff -Nru gobby-infinote-0.4.92/code/commands/view-commands.cpp gobby-infinote-0.4.93/code/commands/view-commands.cpp --- gobby-infinote-0.4.92/code/commands/view-commands.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/view-commands.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -19,12 +19,20 @@ #include "commands/view-commands.hpp" #include "util/i18n.hpp" -Gobby::ViewCommands::ViewCommands(Header& header, Folder& folder, +#include + +Gobby::ViewCommands::ViewCommands(Header& header, Folder& text_folder, + ClosableFrame& chat_frame, + Folder& chat_folder, Preferences& preferences): - m_header(header), m_folder(folder), m_preferences(preferences), - m_current_document(NULL) + m_header(header), m_text_folder(text_folder), + m_chat_frame(chat_frame), m_chat_folder(chat_folder), + m_preferences(preferences), m_current_view(NULL) { - m_menu_view_toolbar_connection = + m_header.action_view_hide_user_colors->signal_activate().connect( + sigc::mem_fun(*this, &ViewCommands::on_hide_user_colors)); + + m_menu_view_toolbar_connection = m_header.action_view_toolbar->signal_toggled().connect( sigc::mem_fun( *this, @@ -42,38 +50,82 @@ *this, &ViewCommands::on_menu_browser_toggled)); - m_menu_view_userlist_connection = - m_header.action_view_userlist->signal_toggled().connect( + m_menu_view_chat_connection = + m_header.action_view_chat->signal_toggled().connect( + sigc::mem_fun( + *this, + &ViewCommands::on_menu_chat_toggled)); + + m_menu_view_document_userlist_connection = + m_header.action_view_document_userlist-> + signal_toggled().connect(sigc::mem_fun( + *this, + &ViewCommands:: + on_menu_document_userlist_toggled)); + + m_menu_view_chat_userlist_connection = + m_header.action_view_chat_userlist->signal_toggled().connect( sigc::mem_fun( *this, - &ViewCommands::on_menu_userlist_toggled)); + &ViewCommands:: + on_menu_chat_userlist_toggled)); + + // Shortcut: + Preferences::Appearance& appearance = preferences.appearance; m_pref_view_toolbar_connection = - preferences.appearance.show_toolbar.signal_changed().connect( + appearance.show_toolbar.signal_changed().connect( sigc::mem_fun( *this, &ViewCommands::on_pref_toolbar_changed)); m_pref_view_statusbar_connection = - preferences.appearance.show_statusbar.signal_changed().connect( + appearance.show_statusbar.signal_changed().connect( sigc::mem_fun( *this, &ViewCommands::on_pref_statusbar_changed)); m_pref_view_browser_connection = - preferences.appearance.show_browser.signal_changed().connect( + appearance.show_browser.signal_changed().connect( sigc::mem_fun( *this, &ViewCommands::on_pref_browser_changed)); - m_pref_view_userlist_connection = - preferences.appearance.show_userlist.signal_changed().connect( + m_pref_view_chat_connection = + appearance.show_chat.signal_changed().connect( sigc::mem_fun( *this, - &ViewCommands::on_pref_userlist_changed)); + &ViewCommands::on_pref_chat_changed)); - m_folder.signal_document_changed().connect( - sigc::mem_fun(*this, &ViewCommands::on_document_changed)); + m_pref_view_document_userlist_connection = + appearance.show_document_userlist.signal_changed().connect( + sigc::mem_fun( + *this, + &ViewCommands:: + on_pref_document_userlist_changed)); + + m_pref_view_chat_userlist_connection = + appearance.show_chat_userlist.signal_changed().connect( + sigc::mem_fun( + *this, + &ViewCommands:: + on_pref_chat_userlist_changed)); + + m_text_folder.signal_document_changed().connect( + sigc::mem_fun( + *this, &ViewCommands::on_text_document_changed)); + + m_chat_folder.signal_document_added().connect( + sigc::mem_fun( + *this, &ViewCommands::on_chat_document_added)); + + m_chat_folder.signal_document_removed().connect( + sigc::mem_fun( + *this, &ViewCommands::on_chat_document_removed)); + + m_chat_folder.signal_document_changed().connect( + sigc::mem_fun( + *this, &ViewCommands::on_chat_document_changed)); m_menu_language_changed_connection = m_header.action_view_highlight_none->signal_changed().connect( @@ -81,30 +133,43 @@ *this, &ViewCommands::on_menu_language_changed)); + m_chat_frame.signal_show().connect( + sigc::mem_fun(*this, &ViewCommands::on_chat_show)); + m_chat_frame.signal_hide().connect( + sigc::mem_fun(*this, &ViewCommands::on_chat_hide)); + + // Chat View by default not sensitive, becomes sensitive if a server + // connection is made. + m_header.action_view_chat->set_sensitive(false); + m_chat_frame.set_allow_visible(false); + // Setup initial sensitivity: - on_document_changed(m_folder.get_current_document()); + on_text_document_changed(m_text_folder.get_current_document()); + on_chat_document_changed(m_chat_folder.get_current_document()); } Gobby::ViewCommands::~ViewCommands() { // Disconnect handlers from current document: - on_document_changed(NULL); + on_text_document_changed(NULL); + on_chat_document_changed(NULL); } -void Gobby::ViewCommands::on_document_changed(DocWindow* document) +void Gobby::ViewCommands::on_text_document_changed(SessionView* view) { - if(m_current_document != NULL) + if(m_current_view != NULL) m_document_language_changed_connection.disconnect(); - m_current_document = document; + m_current_view = dynamic_cast(view); - if(document != NULL) + if(m_current_view != NULL) { + m_header.action_view_hide_user_colors->set_sensitive(true); m_header.action_view_highlight_mode->set_sensitive(true); - m_header.action_view_userlist->set_sensitive(true); + m_header.action_view_document_userlist->set_sensitive(true); m_document_language_changed_connection = - document->signal_language_changed().connect( + m_current_view->signal_language_changed().connect( sigc::mem_fun( *this, &ViewCommands:: @@ -112,15 +177,84 @@ } else { + m_header.action_view_hide_user_colors->set_sensitive(false); + m_menu_language_changed_connection.block(); m_header.action_view_highlight_mode->set_sensitive(false); m_header.action_view_highlight_none->set_active(true); m_menu_language_changed_connection.unblock(); - m_header.action_view_userlist->set_sensitive(false); + m_header.action_view_document_userlist->set_sensitive(false); } - on_doc_language_changed(document ? document->get_language() : NULL); + on_doc_language_changed( + m_current_view ? m_current_view->get_language() : NULL); +} + +void Gobby::ViewCommands::on_chat_document_added(SessionView& view) +{ + // Allow the chat frame to be visible if the option allows it + m_chat_frame.set_allow_visible(true); + + m_header.action_view_chat->set_sensitive(true); +} + +void Gobby::ViewCommands::on_chat_document_removed(SessionView& view) +{ + if(m_chat_folder.get_n_pages() == 1) + { + // This is the last document, and it is about to be removed. + m_header.action_view_chat->set_sensitive(false); + // Hide the chat frame independent of the option + m_chat_frame.set_allow_visible(false); + } +} + +void Gobby::ViewCommands::on_chat_document_changed(SessionView* view) +{ + if(view != NULL) + { + if(m_chat_frame.is_visible()) + { + m_header.action_view_chat_userlist->set_sensitive( + true); + } + } + else + { + m_header.action_view_chat_userlist->set_sensitive(false); + } +} + +void Gobby::ViewCommands::on_chat_show() +{ + SessionView* view = m_chat_folder.get_current_document(); + if(view != NULL) + m_header.action_view_chat_userlist->set_sensitive(true); +} + +void Gobby::ViewCommands::on_chat_hide() +{ + m_header.action_view_chat_userlist->set_sensitive(false); +} + +void Gobby::ViewCommands::on_hide_user_colors() +{ + SessionView* view = m_text_folder.get_current_document(); + TextSessionView* text_view = dynamic_cast(view); + g_assert(text_view != NULL); + + InfSession* session = INF_SESSION(text_view->get_session()); + GtkTextBuffer* textbuffer = + GTK_TEXT_BUFFER(text_view->get_text_buffer()); + InfBuffer* buffer = inf_session_get_buffer(session); + InfTextGtkBuffer* infbuffer = INF_TEXT_GTK_BUFFER(buffer); + + GtkTextIter start, end; + gtk_text_buffer_get_start_iter(textbuffer, &start); + gtk_text_buffer_get_end_iter(textbuffer, &end); + + inf_text_gtk_buffer_show_user_colors(infbuffer, FALSE, &start, &end); } void Gobby::ViewCommands::on_menu_toolbar_toggled() @@ -147,12 +281,28 @@ m_pref_view_browser_connection.unblock(); } -void Gobby::ViewCommands::on_menu_userlist_toggled() +void Gobby::ViewCommands::on_menu_chat_toggled() +{ + m_pref_view_chat_connection.block(); + m_preferences.appearance.show_chat = + m_header.action_view_chat->get_active(); + m_pref_view_chat_connection.unblock(); +} + +void Gobby::ViewCommands::on_menu_document_userlist_toggled() +{ + m_pref_view_document_userlist_connection.block(); + m_preferences.appearance.show_document_userlist = + m_header.action_view_document_userlist->get_active(); + m_pref_view_document_userlist_connection.unblock(); +} + +void Gobby::ViewCommands::on_menu_chat_userlist_toggled() { - m_pref_view_userlist_connection.block(); - m_preferences.appearance.show_userlist = - m_header.action_view_userlist->get_active(); - m_pref_view_userlist_connection.unblock(); + m_pref_view_chat_userlist_connection.block(); + m_preferences.appearance.show_chat_userlist = + m_header.action_view_chat_userlist->get_active(); + m_pref_view_chat_userlist_connection.unblock(); } void Gobby::ViewCommands::on_pref_toolbar_changed() @@ -179,12 +329,28 @@ m_menu_view_browser_connection.unblock(); } -void Gobby::ViewCommands::on_pref_userlist_changed() +void Gobby::ViewCommands::on_pref_chat_changed() +{ + m_menu_view_chat_connection.block(); + m_header.action_view_chat->set_active( + m_preferences.appearance.show_chat); + m_menu_view_chat_connection.unblock(); +} + +void Gobby::ViewCommands::on_pref_document_userlist_changed() +{ + m_menu_view_document_userlist_connection.block(); + m_header.action_view_document_userlist->set_active( + m_preferences.appearance.show_document_userlist); + m_menu_view_document_userlist_connection.unblock(); +} + +void Gobby::ViewCommands::on_pref_chat_userlist_changed() { - m_menu_view_userlist_connection.block(); - m_header.action_view_userlist->set_active( - m_preferences.appearance.show_userlist); - m_menu_view_userlist_connection.unblock(); + m_menu_view_chat_userlist_connection.block(); + m_header.action_view_chat_userlist->set_active( + m_preferences.appearance.show_chat_userlist); + m_menu_view_chat_userlist_connection.unblock(); } void Gobby::ViewCommands::on_menu_language_changed( @@ -193,10 +359,10 @@ Glib::RefPtr language_action = Glib::RefPtr::cast_static(action); - g_assert(m_current_document != NULL); + g_assert(m_current_view != NULL); m_document_language_changed_connection.block(); - m_current_document->set_language(language_action->get_language()); + m_current_view->set_language(language_action->get_language()); m_document_language_changed_connection.unblock(); } @@ -206,7 +372,7 @@ const Glib::RefPtr action = (language != NULL) ? m_header.lookup_language_action( - m_current_document->get_language()) : + m_current_view->get_language()) : m_header.action_view_highlight_none; m_menu_language_changed_connection.block(); diff -Nru gobby-infinote-0.4.92/code/commands/view-commands.hpp gobby-infinote-0.4.93/code/commands/view-commands.hpp --- gobby-infinote-0.4.92/code/commands/view-commands.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/commands/view-commands.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,6 +21,7 @@ #include "core/header.hpp" #include "core/folder.hpp" +#include "core/closableframe.hpp" #include @@ -30,31 +31,48 @@ class ViewCommands: public sigc::trackable { public: - ViewCommands(Header& header, Folder& folder, + ViewCommands(Header& header, Folder& text_folder, + ClosableFrame& chat_frame, Folder& chat_folder, Preferences& preferences); ~ViewCommands(); protected: - void on_document_changed(DocWindow* document); - + void on_text_document_changed(SessionView* view); + + void on_chat_document_added(SessionView& view); + void on_chat_document_removed(SessionView& view); + void on_chat_document_changed(SessionView* view); + + void on_chat_show(); + void on_chat_hide(); + + void on_hide_user_colors(); + void on_menu_toolbar_toggled(); void on_menu_statusbar_toggled(); void on_menu_browser_toggled(); - void on_menu_userlist_toggled(); + void on_menu_chat_toggled(); + void on_menu_document_userlist_toggled(); + void on_menu_chat_userlist_toggled(); + void on_pref_toolbar_changed(); void on_pref_statusbar_changed(); void on_pref_browser_changed(); - void on_pref_userlist_changed(); + void on_pref_chat_changed(); + void on_pref_document_userlist_changed(); + void on_pref_chat_userlist_changed(); void on_menu_language_changed( const Glib::RefPtr& action); void on_doc_language_changed(GtkSourceLanguage* language); Header& m_header; - Folder& m_folder; + Folder& m_text_folder; + ClosableFrame& m_chat_frame; + Folder& m_chat_folder; Preferences& m_preferences; - DocWindow* m_current_document; + TextSessionView* m_current_view; sigc::connection m_menu_language_changed_connection; sigc::connection m_document_language_changed_connection; @@ -62,12 +80,16 @@ sigc::connection m_menu_view_toolbar_connection; sigc::connection m_menu_view_statusbar_connection; sigc::connection m_menu_view_browser_connection; - sigc::connection m_menu_view_userlist_connection; + sigc::connection m_menu_view_chat_connection; + sigc::connection m_menu_view_document_userlist_connection; + sigc::connection m_menu_view_chat_userlist_connection; sigc::connection m_pref_view_statusbar_connection; sigc::connection m_pref_view_toolbar_connection; sigc::connection m_pref_view_browser_connection; - sigc::connection m_pref_view_userlist_connection; + sigc::connection m_pref_view_chat_connection; + sigc::connection m_pref_view_document_userlist_connection; + sigc::connection m_pref_view_chat_userlist_connection; private: void ensure_find_dialog(); diff -Nru gobby-infinote-0.4.92/code/core/browser.cpp gobby-infinote-0.4.93/code/core/browser.cpp --- gobby-infinote-0.4.92/code/core/browser.cpp 2009-04-23 17:21:40.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/browser.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -16,6 +16,7 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include "dialogs/password-dialog.hpp" #include "core/browser.hpp" #include "util/file.hpp" #include "util/i18n.hpp" @@ -26,10 +27,80 @@ #include #ifndef G_OS_WIN32 -# include +# include # include #endif +gint compare_func(GtkTreeModel* model, GtkTreeIter* first, GtkTreeIter* second, gpointer user_data) +{ + gint result; + InfcBrowser* br_one; + InfcBrowser* br_two; + InfcBrowserIter* bri_one; + InfcBrowserIter* bri_two; + GtkTreeIter parent; + + result = 0; + if(gtk_tree_model_iter_parent(model, &parent, first)) + { + g_assert(gtk_tree_model_iter_parent(model, &parent, second)); + + gtk_tree_model_get( + model, first, + INF_GTK_BROWSER_MODEL_COL_BROWSER, &br_one, + INF_GTK_BROWSER_MODEL_COL_NODE, &bri_one, + -1); + gtk_tree_model_get( + model, second, + INF_GTK_BROWSER_MODEL_COL_BROWSER, &br_two, + INF_GTK_BROWSER_MODEL_COL_NODE, &bri_two, + -1); + + if(infc_browser_iter_is_subdirectory(br_one, bri_one) && + !infc_browser_iter_is_subdirectory(br_two, bri_two)) + { + result = -1; + } + else if(!infc_browser_iter_is_subdirectory(br_one, bri_one) && + infc_browser_iter_is_subdirectory(br_two, bri_two)) + { + result = 1; + } + + g_object_unref(br_one); + g_object_unref(br_two); + infc_browser_iter_free(bri_one); + infc_browser_iter_free(bri_two); + } + + if(!result) + { + gchar* name_one; + gchar* name_two; + + gtk_tree_model_get( + model, first, + INF_GTK_BROWSER_MODEL_COL_NAME, &name_one, + -1); + gtk_tree_model_get( + model, second, + INF_GTK_BROWSER_MODEL_COL_NAME, &name_two, + -1); + + gchar* one = g_utf8_casefold(name_one, -1); + gchar* two = g_utf8_casefold(name_two, -1); + + result = g_utf8_collate(one, two); + + g_free(name_one); + g_free(name_two); + g_free(one); + g_free(two); + } + + return result; +} + Gobby::Browser::Browser(Gtk::Window& parent, const InfcNotePlugin* text_plugin, StatusBar& status_bar, @@ -38,13 +109,14 @@ m_text_plugin(text_plugin), m_status_bar(status_bar), m_preferences(preferences), + m_gsasl(NULL), m_expander(_("_Direct Connection"), true), m_hbox(false, 6), m_label_hostname(_("Host Name:")), m_entry_hostname(config_filename("recent_hosts"), 5) { m_label_hostname.show(); - m_entry_hostname.signal_activate().connect( + m_entry_hostname.get_entry()->signal_activate().connect( sigc::mem_fun(*this, &Browser::on_hostname_activate)); m_entry_hostname.show(); @@ -64,6 +136,9 @@ m_browser_store = inf_gtk_browser_store_new(INF_IO(m_io), communication_manager); g_object_unref(communication_manager); + + m_sort_model = inf_gtk_browser_model_sort_new(INF_GTK_BROWSER_MODEL(m_browser_store)); + gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(m_sort_model), compare_func, NULL, NULL); m_xmpp_manager = inf_xmpp_manager_new(); #ifdef LIBINFINITY_HAVE_AVAHI @@ -86,7 +161,7 @@ m_browser_view = INF_GTK_BROWSER_VIEW( inf_gtk_browser_view_new_with_model( - INF_GTK_BROWSER_MODEL(m_browser_store))); + INF_GTK_BROWSER_MODEL(m_sort_model))); gtk_widget_show(GTK_WIDGET(m_browser_view)); gtk_container_add(GTK_CONTAINER(m_scroll.gobj()), @@ -131,6 +206,7 @@ } g_object_unref(m_browser_store); + g_object_unref(m_sort_model); g_object_unref(m_cert_manager); g_object_unref(m_xmpp_manager); #ifdef LIBINFINITY_HAVE_AVAHI @@ -168,7 +244,7 @@ InfcBrowser* browser; InfcBrowserIter* browser_iter; - gtk_tree_model_get(GTK_TREE_MODEL(m_browser_store), iter, + gtk_tree_model_get(GTK_TREE_MODEL(m_sort_model), iter, INF_GTK_BROWSER_MODEL_COL_BROWSER, &browser, INF_GTK_BROWSER_MODEL_COL_NODE, &browser_iter, -1); @@ -181,71 +257,13 @@ void Gobby::Browser::on_hostname_activate() { - Glib::ustring str = m_entry_hostname.get_text(); + Glib::ustring str = m_entry_hostname.get_entry()->get_text(); if(str.empty()) return; - Glib::ustring host; - Glib::ustring service = "6523"; // Default - unsigned int device_index = 0; // Default - - // Strip away device name - Glib::ustring::size_type pos; - if( (pos = str.rfind('%')) != Glib::ustring::npos) - { - Glib::ustring device_name = str.substr(pos + 1); - str.erase(pos); - -#ifdef G_OS_WIN32 - // TODO: Implement - device_index = 0; -#else - device_index = if_nametoindex(device_name.c_str()); - if(device_index == 0) - { - m_status_bar.add_message( - StatusBar::ERROR, - Glib::ustring::compose( - _("Device \"%1\" does not exist"), - device_name), 5); - } -#endif - } - - if(str[0] == '[' && ((pos = str.find(']', 1)) != Glib::ustring::npos)) - { - // Hostname surrounded by '[...]' - host = str.substr(1, pos-1); - ++ pos; - if(pos < str.length() && str[pos] == ':') - service = str.substr(pos + 1); - } - else - { - pos = str.find(':'); - if(pos != Glib::ustring::npos) - { - host = str.substr(0, pos); - service = str.substr(pos + 1); - } - else - host = str; - } - - ResolvHandle* resolv_handle = resolve(host, service, - sigc::bind( - sigc::mem_fun(*this, &Browser::on_resolv_done), - host, device_index), - sigc::mem_fun(*this, &Browser::on_resolv_error)); + connect_to_host(str); m_entry_hostname.commit(); - m_entry_hostname.set_text(""); - - StatusBar::MessageHandle message_handle = - m_status_bar.add_message( - StatusBar::INFO, Glib::ustring::compose( - _("Resolving %1..."), host), 0); - - m_resolv_map[resolv_handle].message_handle = message_handle; + m_entry_hostname.get_entry()->set_text(""); } void Gobby::Browser::on_resolv_done(ResolvHandle* handle, @@ -266,19 +284,22 @@ if(!xmpp) { - InfTcpConnection* connection = INF_TCP_CONNECTION( - g_object_new(INF_TYPE_TCP_CONNECTION, - "io", m_io, - "remote-address", address, - "remote-port", port, - "device-index", device_index, - NULL)); + InfTcpConnection* connection = inf_tcp_connection_new( + INF_IO(m_io), + address, + port); + + g_object_set(G_OBJECT(connection), + "device-index", device_index, + NULL); GError* error = NULL; if(!inf_tcp_connection_open(connection, &error)) { - m_status_bar.add_message(StatusBar::ERROR, - error->message, 5); + m_status_bar.add_error_message( + Glib::ustring::compose( + _("Connection to \"%1\" failed"), + hostname), error->message); g_error_free(error); } else @@ -287,7 +308,11 @@ connection, INF_XMPP_CONNECTION_CLIENT, NULL, hostname.c_str(), m_preferences.security.policy, - NULL, NULL, NULL); + NULL, + m_gsasl, + m_gsasl_mechanisms.empty() + ? "" + : m_gsasl_mechanisms.c_str()); inf_xmpp_manager_add_connection(m_xmpp_manager, xmpp); g_object_unref(xmpp); @@ -316,7 +341,8 @@ } void Gobby::Browser::on_resolv_error(ResolvHandle* handle, - const std::runtime_error& error) + const std::runtime_error& error, + const Glib::ustring& hostname) { ResolvMap::iterator iter = m_resolv_map.find(handle); g_assert(iter != m_resolv_map.end()); @@ -324,7 +350,10 @@ m_status_bar.remove_message(iter->second.message_handle); m_resolv_map.erase(iter); - m_status_bar.add_message(StatusBar::ERROR, error.what(), 5); + m_status_bar.add_error_message( + Glib::ustring::compose(_("Could not resolve \"%1\""), + hostname), + error.what()); } bool Gobby::Browser::get_selected(InfcBrowser** browser, @@ -338,7 +367,7 @@ InfcBrowserIter* tmp_iter; gtk_tree_model_get( - GTK_TREE_MODEL(m_browser_store), &tree_iter, + GTK_TREE_MODEL(m_sort_model), &tree_iter, INF_GTK_BROWSER_MODEL_COL_BROWSER, &tmp_browser, -1); @@ -346,7 +375,7 @@ return false; gtk_tree_model_get( - GTK_TREE_MODEL(m_browser_store), &tree_iter, + GTK_TREE_MODEL(m_sort_model), &tree_iter, INF_GTK_BROWSER_MODEL_COL_NODE, &tmp_iter, -1); @@ -364,13 +393,92 @@ GtkTreeIter tree_iter; gboolean has_iter = inf_gtk_browser_model_browser_iter_to_tree_iter( - INF_GTK_BROWSER_MODEL(m_browser_store), + INF_GTK_BROWSER_MODEL(m_sort_model), browser, iter, &tree_iter); g_assert(has_iter == TRUE); inf_gtk_browser_view_set_selected(m_browser_view, &tree_iter); } +void Gobby::Browser::connect_to_host(Glib::ustring str) +{ + Glib::ustring host; + Glib::ustring service = "6523"; // Default + unsigned int device_index = 0; // Default + + // Strip away device name + Glib::ustring::size_type pos; + if( (pos = str.rfind('%')) != Glib::ustring::npos) + { + Glib::ustring device_name = str.substr(pos + 1); + str.erase(pos); + +#ifdef G_OS_WIN32 + // TODO: Implement + device_index = 0; +#else + device_index = if_nametoindex(device_name.c_str()); + if(device_index == 0) + { + m_status_bar.add_error_message( + Glib::ustring::compose( + _("Connection to \"%1\" failed"), + host), + Glib::ustring::compose( + _("Device \"%1\" does not exist"), + device_name)); + } +#endif + } + + if(str[0] == '[' && ((pos = str.find(']', 1)) != Glib::ustring::npos)) + { + // Hostname surrounded by '[...]' + host = str.substr(1, pos-1); + ++ pos; + if(pos < str.length() && str[pos] == ':') + service = str.substr(pos + 1); + } + else + { + pos = str.find(':'); + if(pos != Glib::ustring::npos) + { + host = str.substr(0, pos); + service = str.substr(pos + 1); + } + else + host = str; + } + + ResolvHandle* resolv_handle = resolve(host, service, + sigc::bind( + sigc::mem_fun(*this, &Browser::on_resolv_done), + host, device_index), + sigc::bind( + sigc::mem_fun(*this, &Browser::on_resolv_error), + host)); + + StatusBar::MessageHandle message_handle = + m_status_bar.add_info_message( + Glib::ustring::compose(_("Resolving \"%1\"..."), + host)); + + m_resolv_map[resolv_handle].message_handle = message_handle; +} + +void Gobby::Browser::set_gsasl_context(Gsasl* gsasl, const char* mechanisms) +{ + m_gsasl = gsasl; + m_gsasl_mechanisms = mechanisms ? mechanisms : ""; +#ifdef LIBINFINITY_HAVE_AVAHI + g_object_set(G_OBJECT(m_discovery), + "sasl-context", m_gsasl, + "sasl-mechanisms", mechanisms, + NULL); +#endif +} + void Gobby::Browser::on_security_policy_changed() { #ifdef LIBINFINITY_HAVE_AVAHI diff -Nru gobby-infinote-0.4.92/code/core/browser.hpp gobby-infinote-0.4.93/code/core/browser.hpp --- gobby-infinote-0.4.92/code/core/browser.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/browser.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -32,6 +32,10 @@ #include #include #include +#include +#include + +#include #include #include @@ -64,9 +68,9 @@ Preferences& preferences); ~Browser(); - InfGtkBrowserStore* get_store() { return m_browser_store; } - const InfGtkBrowserStore* get_store() const { - return m_browser_store; + InfGtkBrowserModelSort* get_store() { return m_sort_model; } + const InfGtkBrowserModelSort* get_store() const { + return m_sort_model; } InfGtkBrowserView* get_view() { return m_browser_view; } @@ -74,6 +78,10 @@ bool get_selected(InfcBrowser** browser, InfcBrowserIter* iter); void set_selected(InfcBrowser* browser, InfcBrowserIter* iter); + void connect_to_host(Glib::ustring str); + + void set_gsasl_context(Gsasl* gsasl, const char* mechanisms); + SignalActivate signal_activate() const { return m_signal_activate; } protected: @@ -107,7 +115,8 @@ guint port, const Glib::ustring& hostname, unsigned int device_index); void on_resolv_error(ResolvHandle* handle, - const std::runtime_error& error); + const std::runtime_error& error, + const Glib::ustring& hostname); void on_security_policy_changed(); void on_trust_file_changed(); @@ -117,6 +126,8 @@ StatusBar& m_status_bar; Preferences& m_preferences; + Gsasl* m_gsasl; + std::string m_gsasl_mechanisms; InfXmppManager* m_xmpp_manager; #ifdef LIBINFINITY_HAVE_AVAHI InfDiscoveryAvahi* m_discovery; @@ -130,10 +141,12 @@ Gtk::Expander m_expander; Gtk::HBox m_hbox; Gtk::Label m_label_hostname; - HistoryEntry m_entry_hostname; + HistoryComboBoxEntry m_entry_hostname; ResolvMap m_resolv_map; SignalActivate m_signal_activate; + + InfGtkBrowserModelSort* m_sort_model; }; } diff -Nru gobby-infinote-0.4.92/code/core/chatsessionview.cpp gobby-infinote-0.4.93/code/core/chatsessionview.cpp --- gobby-infinote-0.4.92/code/core/chatsessionview.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/chatsessionview.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,52 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "core/chatsessionview.hpp" + +Gobby::ChatSessionView::ChatSessionView(InfChatSession* session, + const Glib::ustring& title, + const Glib::ustring& path, + const Glib::ustring& hostname, + Preferences& preferences): + SessionView(INF_SESSION(session), title, path, hostname), + m_preferences(preferences), m_chat(INF_GTK_CHAT(inf_gtk_chat_new())) +{ + inf_gtk_chat_set_session(m_chat, session); + gtk_widget_show(GTK_WIDGET(m_chat)); + + gtk_box_pack_start(GTK_BOX(gobj()), GTK_WIDGET(m_chat), + TRUE, TRUE, 0); +} + +InfUser* Gobby::ChatSessionView::get_active_user() const +{ + return inf_gtk_chat_get_active_user(m_chat); +} + +void Gobby::ChatSessionView::set_active_user(InfUser* user) +{ + g_assert( + user == NULL || + inf_user_table_lookup_user_by_id( + inf_session_get_user_table(INF_SESSION(m_session)), + inf_user_get_id(INF_USER(user))) + == INF_USER(user)); + + inf_gtk_chat_set_active_user(m_chat, user); + active_user_changed(user); +} diff -Nru gobby-infinote-0.4.92/code/core/chatsessionview.hpp gobby-infinote-0.4.93/code/core/chatsessionview.hpp --- gobby-infinote-0.4.92/code/core/chatsessionview.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/chatsessionview.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,54 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_CHATSESSIONVIEW_HPP_ +#define _GOBBY_CHATSESSIONVIEW_HPP_ + +#include "core/sessionview.hpp" +#include "core/preferences.hpp" + +#include +#include + +namespace Gobby +{ + +class ChatSessionView: public SessionView +{ +public: + ChatSessionView(InfChatSession* session, const Glib::ustring& title, + const Glib::ustring& path, + const Glib::ustring& hostname, + Preferences& preferences); + + // Override base class covariantly + InfChatSession* get_session() { return INF_CHAT_SESSION(m_session); } + InfGtkChat* get_chat() { return m_chat; } + + virtual InfUser* get_active_user() const; + void set_active_user(InfUser* user); + +protected: + Preferences& m_preferences; + + InfGtkChat* m_chat; +}; + +} + +#endif // _GOBBY_CHATSESSIONVIEW_HPP_ diff -Nru gobby-infinote-0.4.92/code/core/chattablabel.cpp gobby-infinote-0.4.93/code/core/chattablabel.cpp --- gobby-infinote-0.4.92/code/core/chattablabel.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/chattablabel.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,60 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "core/chattablabel.hpp" +#include + +Gobby::ChatTabLabel::ChatTabLabel(Folder& folder, ChatSessionView& view): + TabLabel(folder, view, Gtk::Stock::NETWORK) +{ + m_button.hide(); // Only show when disconnected + + InfChatBuffer* buffer = INF_CHAT_BUFFER( + inf_session_get_buffer(INF_SESSION(view.get_session()))); + + m_add_message_handle = g_signal_connect_after( + G_OBJECT(buffer), "add-message", + G_CALLBACK(on_add_message_static), this); +} + +Gobby::ChatTabLabel::~ChatTabLabel() +{ + InfChatBuffer* buffer = INF_CHAT_BUFFER( + inf_session_get_buffer(INF_SESSION(m_view.get_session()))); + + g_signal_handler_disconnect(buffer, m_add_message_handle); +} + +void Gobby::ChatTabLabel::on_notify_subscription_group() +{ + InfSession* session = INF_SESSION(m_view.get_session()); + if(inf_session_get_subscription_group(session) != NULL) + m_button.hide(); + else + m_button.show(); +} + +void Gobby::ChatTabLabel::on_changed(InfUser* author) +{ + if(!m_changed) + { + InfSession* session = INF_SESSION(m_view.get_session()); + if(inf_session_get_status(session) == INF_SESSION_RUNNING) + set_changed(); + } +} diff -Nru gobby-infinote-0.4.92/code/core/chattablabel.hpp gobby-infinote-0.4.93/code/core/chattablabel.hpp --- gobby-infinote-0.4.92/code/core/chattablabel.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/chattablabel.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,53 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_CHATTABLABEL_HPP_ +#define _GOBBY_CHATTABLABEL_HPP_ + +#include "core/chatsessionview.hpp" +#include "core/tablabel.hpp" + +namespace Gobby +{ + +class ChatTabLabel: public TabLabel +{ +public: + ChatTabLabel(Folder& folder, ChatSessionView& view); + ~ChatTabLabel(); + +protected: + static void on_add_message_static(InfChatBuffer* buffer, + InfChatBufferMessage* message, + gpointer user_data) + { + static_cast(user_data)-> + on_changed(message->user); + } + + virtual void on_notify_subscription_group(); // override + + void on_changed(InfUser* author); + +private: + gulong m_add_message_handle; +}; + +} + +#endif // _GOBBY_CHATTABLABEL_HPP_ diff -Nru gobby-infinote-0.4.92/code/core/closableframe.cpp gobby-infinote-0.4.93/code/core/closableframe.cpp --- gobby-infinote-0.4.92/code/core/closableframe.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/closableframe.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -25,7 +25,7 @@ Gobby::ClosableFrame::ClosableFrame(const Glib::ustring& title, const Gtk::StockID& stock_id, Preferences::Option& option): - m_option(option), m_box(false, 6) + m_option(option), m_box(false, 6), m_allow_visible(true) { CloseButton* button = Gtk::manage(new CloseButton); @@ -59,6 +59,14 @@ on_option(); } +void Gobby::ClosableFrame::set_allow_visible(bool allow_visible) +{ + m_allow_visible = allow_visible; + + if(m_option && m_allow_visible) show(); + else hide(); +} + void Gobby::ClosableFrame::on_add(Gtk::Widget* widget) { if(widget == &m_box) @@ -74,6 +82,6 @@ void Gobby::ClosableFrame::on_option() { - if(m_option) show(); + if(m_option && m_allow_visible) show(); else hide(); } diff -Nru gobby-infinote-0.4.92/code/core/closableframe.hpp gobby-infinote-0.4.93/code/core/closableframe.hpp --- gobby-infinote-0.4.92/code/core/closableframe.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/closableframe.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -34,6 +34,8 @@ const Gtk::StockID& stock_id, Preferences::Option& option); + void set_allow_visible(bool allow_visible); + protected: virtual void on_add(Gtk::Widget* widget); @@ -42,6 +44,7 @@ Preferences::Option& m_option; Gtk::VBox m_box; + bool m_allow_visible; }; } diff -Nru gobby-infinote-0.4.92/code/core/docwindow.cpp gobby-infinote-0.4.93/code/core/docwindow.cpp --- gobby-infinote-0.4.92/code/core/docwindow.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/docwindow.cpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,586 +0,0 @@ -/* Gobby - GTK-based collaborative text editor - * Copyright (C) 2008, 2009 Armin Burgmeier - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include "features.hpp" - -#include "core/docwindow.hpp" -#include "core/preferences.hpp" -#include "core/closableframe.hpp" -#include "core/iconmanager.hpp" - -#include "util/i18n.hpp" - -#include -#include - -#include - -#include - -// TODO: Consider using a single user list for all DocWindows, reparenting -// into the current DocWindow's frame. Keep dummy widgets in other docwindows, -// so text does not resize. - -namespace -{ - GtkWrapMode wrap_mode_from_preferences(const Gobby::Preferences& pref) - { - return static_cast( - static_cast(pref.view.wrap_mode)); - } - - bool glob_matches(const gchar* const* globs, const std::string& str) - { - if(globs) - { - for(const gchar* const* glob = globs; - *glob != NULL; - ++ glob) - { - Glib::PatternSpec spec(*glob); - if(spec.match(str)) - return true; - } - } - - return false; - } - - bool language_matches_title(GtkSourceLanguage* language, - const gchar* title) - { - bool result = false; - gchar** globs = gtk_source_language_get_globs(language); - if(glob_matches(globs, title)) - result = true; - g_strfreev(globs); - return result; - } - - GtkSourceLanguage* - get_language_for_title(GtkSourceLanguageManager* manager, - const gchar* title) - { - const gchar* const* ids = - gtk_source_language_manager_get_language_ids(manager); - - if(ids) - { - for(const gchar* const* id = ids; *id != NULL; ++ id) - { - GtkSourceLanguage* l; - l = gtk_source_language_manager_get_language( - manager, *id); - - if(l) - if(language_matches_title(l, title)) - return l; - } - } - - return NULL; - } - - bool tags_priority_idle_func(Gobby::DocWindow& window) - { - InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( - inf_session_get_buffer( - INF_SESSION(window.get_session()))); - - inf_text_gtk_buffer_ensure_author_tags_priority(buffer); - - // I don't know why it does not redraw automatically, perhaps - // this is a bug. - gtk_widget_queue_draw(GTK_WIDGET(window.get_text_view())); - return false; - } - - void on_tag_added(GtkTextTagTable* table, GtkTextTag* tag, - gpointer user_data) - { - // We do the actual reordering in an idle handler because - // the priority of the tag might not yet be set to its final - // value. - Glib::signal_idle().connect( - sigc::bind( - sigc::ptr_fun(tags_priority_idle_func), - sigc::ref(*static_cast( - user_data)))); - } -} - -Gobby::DocWindow::DocWindow(InfTextSession* session, - const Glib::ustring& title, - const std::string& info_storage_key, - Preferences& preferences, - GtkSourceLanguageManager* manager): - m_session(session), m_title(title), - m_info_storage_key(info_storage_key), m_preferences(preferences), - m_view(GTK_SOURCE_VIEW(gtk_source_view_new())), - m_userlist(session), m_info_box(false, 0), - m_info_close_button_box(false, 6) -{ - g_object_ref(m_session); - - InfBuffer* buffer = inf_session_get_buffer(INF_SESSION(session)); - m_buffer = GTK_SOURCE_BUFFER(inf_text_gtk_buffer_get_text_buffer( - INF_TEXT_GTK_BUFFER(buffer))); - - // This is a hack to make sure that the author tags in the textview - // have lowest priority of all tags, especially lower than - // GtkSourceView's FIXME tags. We do this every time a new tag is - // added to the tag table since GtkSourceView seems to create tags - // that it needs on the fly. - GtkTextTagTable* table = gtk_text_buffer_get_tag_table( - GTK_TEXT_BUFFER(m_buffer)); - g_signal_connect(G_OBJECT(table), "tag-added", - G_CALLBACK(on_tag_added), this); - - gtk_widget_set_has_tooltip(GTK_WIDGET(m_view), TRUE); - g_signal_connect(m_view, "query-tooltip", - G_CALLBACK(on_query_tooltip_static), this); - - gtk_text_view_set_buffer(GTK_TEXT_VIEW(m_view), - GTK_TEXT_BUFFER(m_buffer)); - gtk_text_view_set_editable(GTK_TEXT_VIEW(m_view), FALSE); - set_language(get_language_for_title(manager, m_title.c_str())); - - m_preferences.user.hue.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_user_color_changed)); - m_preferences.editor.tab_width.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_tab_width_changed)); - m_preferences.editor.tab_spaces.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_tab_spaces_changed)); - m_preferences.editor.indentation_auto.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_auto_indent_changed)); - m_preferences.editor.homeend_smart.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_homeend_smart_changed)); - - m_preferences.view.wrap_mode.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_wrap_mode_changed)); - m_preferences.view.linenum_display.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_linenum_display_changed)); - m_preferences.view.curline_highlight.signal_changed().connect( - sigc::mem_fun(*this, - &DocWindow::on_curline_highlight_changed)); - m_preferences.view.margin_display.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_margin_display_changed)); - m_preferences.view.margin_pos.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_margin_pos_changed)); - m_preferences.view.bracket_highlight.signal_changed().connect( - sigc::mem_fun(*this, - &DocWindow::on_bracket_highlight_changed)); - - m_preferences.appearance.font.signal_changed().connect( - sigc::mem_fun(*this, &DocWindow::on_font_changed)); - - gtk_source_view_set_tab_width(m_view, m_preferences.editor.tab_width); - gtk_source_view_set_insert_spaces_instead_of_tabs( - m_view, m_preferences.editor.tab_spaces); - gtk_source_view_set_auto_indent( - m_view, m_preferences.editor.indentation_auto); - gtk_source_view_set_smart_home_end( - m_view, m_preferences.editor.homeend_smart ? - GTK_SOURCE_SMART_HOME_END_ALWAYS : - GTK_SOURCE_SMART_HOME_END_DISABLED); - gtk_text_view_set_wrap_mode( - GTK_TEXT_VIEW(m_view), - wrap_mode_from_preferences(m_preferences)); - gtk_source_view_set_show_line_numbers( - m_view, m_preferences.view.linenum_display); - gtk_source_view_set_highlight_current_line( - m_view, m_preferences.view.curline_highlight); - gtk_source_view_set_show_right_margin( - m_view, m_preferences.view.margin_display); - gtk_source_view_set_right_margin_position( - m_view, m_preferences.view.margin_pos); - gtk_source_buffer_set_highlight_matching_brackets( - m_buffer, m_preferences.view.margin_pos); - const Pango::FontDescription& desc = m_preferences.appearance.font; - gtk_widget_modify_font( - GTK_WIDGET(m_view), - const_cast(desc.gobj())); - - m_info_label.set_selectable(true); - m_info_label.set_line_wrap(true); - m_info_label.show(); - - m_info_close_button.signal_clicked().connect( - sigc::mem_fun(m_info_frame, &Gtk::Frame::hide)); - m_info_close_button.show(); - - m_info_close_button_box.pack_end(m_info_close_button, Gtk::PACK_SHRINK); - // Don't show info close button box by default - - m_info_box.pack_start(m_info_close_button_box, Gtk::PACK_SHRINK); - m_info_box.pack_start(m_info_label, Gtk::PACK_SHRINK); - m_info_box.set_border_width(6); - m_info_box.show(); - - m_info_frame.set_shadow_type(Gtk::SHADOW_IN); - m_info_frame.add(m_info_box); - // Don't show infoframe by default - - gtk_widget_show(GTK_WIDGET(m_view)); - Gtk::ScrolledWindow* scroll = Gtk::manage(new Gtk::ScrolledWindow); - scroll->set_shadow_type(Gtk::SHADOW_IN); - scroll->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - gtk_container_add(GTK_CONTAINER(scroll->gobj()), GTK_WIDGET(m_view)); - scroll->show(); - - Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox); - vbox->pack_start(m_info_frame, Gtk::PACK_SHRINK); - vbox->pack_start(*scroll, Gtk::PACK_EXPAND_WIDGET); - vbox->show(); - - m_userlist.show(); - Gtk::Frame* frame = Gtk::manage(new ClosableFrame( - _("User List"), IconManager::STOCK_USERLIST, - m_preferences.appearance.show_userlist)); - frame->set_shadow_type(Gtk::SHADOW_IN); - frame->add(m_userlist); - // frame manages visibility itself - - pack1(*vbox, true, false); - pack2(*frame, false, false); -} - -Gobby::DocWindow::~DocWindow() -{ - g_object_unref(m_session); - m_session = NULL; -} - -void Gobby::DocWindow::get_cursor_position(unsigned int& row, - unsigned int& col) const -{ - GtkTextMark* insert_mark = - gtk_text_buffer_get_insert(GTK_TEXT_BUFFER(m_buffer)); - - GtkTextIter iter; - gtk_text_buffer_get_iter_at_mark(GTK_TEXT_BUFFER(m_buffer), - &iter, insert_mark); - - row = gtk_text_iter_get_line(&iter); - col = 0; - - unsigned int chars = gtk_text_iter_get_line_offset(&iter); - unsigned int tabs = m_preferences.editor.tab_width; - - // Tab characters expand to more than one column - for(gtk_text_iter_set_line_offset(&iter, 0); - gtk_text_iter_get_line_offset(&iter) < chars; - gtk_text_iter_forward_char(&iter)) - { - unsigned int width = 1; - if(gtk_text_iter_get_char(&iter) == '\t') - { - unsigned int offset = - gtk_text_iter_get_line_offset(&iter); - width = (tabs - offset % tabs) % tabs; - if(width == 0) width = tabs; - } - - col += width; - } -} - -void Gobby::DocWindow::set_selection(const GtkTextIter* begin, - const GtkTextIter* end) -{ - gtk_text_buffer_select_range( - gtk_text_view_get_buffer(GTK_TEXT_VIEW(m_view)), begin, end); - - scroll_to_cursor_position(0.1); -} - -Glib::ustring Gobby::DocWindow::get_selected_text() const -{ - GtkTextIter start, end; - gtk_text_buffer_get_selection_bounds( - gtk_text_view_get_buffer(GTK_TEXT_VIEW(m_view)), - &start, &end); - - Gtk::TextIter start_cpp(&start), end_cpp(&end); - return start_cpp.get_slice(end_cpp); -} - -void Gobby::DocWindow::scroll_to_cursor_position(double within_margin) -{ - gtk_text_view_scroll_to_mark( - GTK_TEXT_VIEW(m_view), - gtk_text_buffer_get_insert(gtk_text_view_get_buffer( - GTK_TEXT_VIEW(m_view))), - within_margin, FALSE, 0.0, 0.0); -} - -void Gobby::DocWindow::set_info(const Glib::ustring& info, bool closable) -{ - m_info_label.set_text(info); - - if(closable) m_info_close_button_box.show(); - else m_info_close_button_box.hide(); - - m_info_frame.show(); -} - -void Gobby::DocWindow::unset_info() -{ - m_info_frame.hide(); -} - -InfTextUser* Gobby::DocWindow::get_active_user() const -{ - InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( - inf_session_get_buffer(INF_SESSION(m_session))); - return inf_text_gtk_buffer_get_active_user(buffer); -} - -void Gobby::DocWindow::set_active_user(InfTextUser* user) -{ - g_assert( - user == NULL || - inf_user_table_lookup_user_by_id( - inf_session_get_user_table(INF_SESSION(m_session)), - inf_user_get_id(INF_USER(user))) - == INF_USER(user)); - - inf_text_gtk_buffer_set_active_user( - INF_TEXT_GTK_BUFFER( - inf_session_get_buffer(INF_SESSION(m_session))), - user); - - // TODO: Make sure the active user has the color specified in the - // preferences, and set color if not. - - if(user != NULL) - gtk_text_view_set_editable(GTK_TEXT_VIEW(m_view), TRUE); - else - gtk_text_view_set_editable(GTK_TEXT_VIEW(m_view), FALSE); - - m_signal_active_user_changed.emit(user); -} - -GtkSourceLanguage* Gobby::DocWindow::get_language() const -{ - return gtk_source_buffer_get_language(m_buffer); -} - -void Gobby::DocWindow::set_language(GtkSourceLanguage* language) -{ - gtk_source_buffer_set_language(m_buffer, language); - m_signal_language_changed.emit(language); -} - -void Gobby::DocWindow::on_size_allocate(Gtk::Allocation& allocation) -{ - Gtk::HPaned::on_size_allocate(allocation); - - // Setup initial paned position. We can't do this simply every time - // on_size_allocate() is called since this would lead to an endless - // loop somehow when the userlist width is changed forcefully - // (for example by a set_info() requiring much width). - if(!m_doc_userlist_width_changed_connection.connected()) - { - Glib::SignalProxyProperty proxy = - property_position().signal_changed(); - - m_doc_userlist_width_changed_connection = - proxy.connect(sigc::mem_fun( - *this, - &DocWindow::on_doc_userlist_width_changed)); - - Preferences::Option& option = - m_preferences.appearance.userlist_width; - - m_pref_userlist_width_changed_connection = - option.signal_changed().connect(sigc::mem_fun( - *this, - &DocWindow::on_pref_userlist_width_changed)); - - unsigned int desired_position = - get_width() - m_preferences.appearance.userlist_width; - desired_position = std::min( - desired_position, property_max_position()); - - if(get_position() != desired_position) - set_position(desired_position); - } -} - -void Gobby::DocWindow::on_user_color_changed() -{ - InfTextUser* user = get_active_user(); - - if(user) - { - inf_text_session_set_user_color(m_session, user, - m_preferences.user.hue); - } -} - -void Gobby::DocWindow::on_tab_width_changed() -{ - gtk_source_view_set_tab_width(m_view, m_preferences.editor.tab_width); -} - -void Gobby::DocWindow::on_tab_spaces_changed() -{ - gtk_source_view_set_insert_spaces_instead_of_tabs( - m_view, m_preferences.editor.tab_spaces); -} - -void Gobby::DocWindow::on_auto_indent_changed() -{ - gtk_source_view_set_auto_indent( - m_view, m_preferences.editor.indentation_auto); -} - -void Gobby::DocWindow::on_homeend_smart_changed() -{ - gtk_source_view_set_smart_home_end( - m_view, m_preferences.editor.homeend_smart ? - GTK_SOURCE_SMART_HOME_END_ALWAYS : - GTK_SOURCE_SMART_HOME_END_DISABLED); -} - -void Gobby::DocWindow::on_wrap_mode_changed() -{ - gtk_text_view_set_wrap_mode( - GTK_TEXT_VIEW(m_view), - wrap_mode_from_preferences(m_preferences)); -} - -void Gobby::DocWindow::on_linenum_display_changed() -{ - gtk_source_view_set_show_line_numbers( - m_view, m_preferences.view.linenum_display); -} - -void Gobby::DocWindow::on_curline_highlight_changed() -{ - gtk_source_view_set_highlight_current_line( - m_view, m_preferences.view.curline_highlight); -} - -void Gobby::DocWindow::on_margin_display_changed() -{ - gtk_source_view_set_show_right_margin( - m_view, m_preferences.view.margin_display); -} - -void Gobby::DocWindow::on_margin_pos_changed() -{ - gtk_source_view_set_right_margin_position( - m_view, m_preferences.view.margin_pos); -} - -void Gobby::DocWindow::on_bracket_highlight_changed() -{ - gtk_source_buffer_set_highlight_matching_brackets( - m_buffer, m_preferences.view.bracket_highlight); -} - -void Gobby::DocWindow::on_font_changed() -{ - const Pango::FontDescription& desc = m_preferences.appearance.font; - gtk_widget_modify_font( - GTK_WIDGET(m_view), - const_cast(desc.gobj())); -} - -void Gobby::DocWindow::on_doc_userlist_width_changed() -{ - unsigned int userlist_width = get_width() - get_position(); - - if(m_preferences.appearance.userlist_width != userlist_width) - { - m_pref_userlist_width_changed_connection.block(); - m_preferences.appearance.userlist_width = userlist_width; - m_pref_userlist_width_changed_connection.unblock(); - } -} - -void Gobby::DocWindow::on_pref_userlist_width_changed() -{ - unsigned int position = - get_width() - m_preferences.appearance.userlist_width; - - if(get_position() != position) - { - m_doc_userlist_width_changed_connection.block(); - set_position(position); - m_doc_userlist_width_changed_connection.unblock(); - } -} - -bool -Gobby::DocWindow::on_query_tooltip(int x, int y, bool keyboard_mode, - const Glib::RefPtr& tooltip) -{ - if(keyboard_mode) return false; - - int buffer_x, buffer_y; - gtk_text_view_window_to_buffer_coords( - GTK_TEXT_VIEW(m_view), - GTK_TEXT_WINDOW_WIDGET, x, y, &buffer_x, &buffer_y); - - // Pointer is in line number display - if(buffer_x < 0) return false; - - // Get the character at the mouse position - GtkTextIter iter; - int trailing; - gtk_text_view_get_iter_at_position( - GTK_TEXT_VIEW(m_view), &iter, &trailing, buffer_x, buffer_y); - - // Don't show a tooltip if the character is a newline character */ - //if(gtk_text_iter_is_end(&iter)) return false; - if(gtk_text_iter_ends_line(&iter)) return false; - - // Don't show a tooltip if we are past the end of the line - GdkRectangle newline_location; - GtkTextIter line_end = iter; - gtk_text_iter_forward_to_line_end(&line_end); - gtk_text_view_get_iter_location( - GTK_TEXT_VIEW(m_view), &line_end, &newline_location); - - if(buffer_x >= newline_location.x && - buffer_y >= newline_location.y) - { - return false; - } - - InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( - inf_session_get_buffer(INF_SESSION(m_session))); - - InfTextUser* author = inf_text_gtk_buffer_get_author(buffer, &iter); - if(author != NULL) - { - tooltip->set_markup(Glib::ustring::compose( - _("Text written by %1"), - Glib::Markup::escape_text( - inf_user_get_name(INF_USER(author))))); - } - else - { - tooltip->set_text(_("Unowned text")); - } - - return true; -} diff -Nru gobby-infinote-0.4.92/code/core/docwindow.hpp gobby-infinote-0.4.93/code/core/docwindow.hpp --- gobby-infinote-0.4.92/code/core/docwindow.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/docwindow.hpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,148 +0,0 @@ -/* Gobby - GTK-based collaborative text editor - * Copyright (C) 2008, 2009 Armin Burgmeier - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef _GOBBY_DOCWINDOW_HPP_ -#define _GOBBY_DOCWINDOW_HPP_ - -#include "core/userlist.hpp" -#include "core/preferences.hpp" -#include "util/closebutton.hpp" -#include "features.hpp" - -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -namespace Gobby -{ - -class DocWindow: public Gtk::HPaned -{ -public: - typedef sigc::signal SignalLanguageChanged; - typedef sigc::signal SignalActiveUserChanged; - - DocWindow(InfTextSession* session, const Glib::ustring& title, - const std::string& info_storage_key, - Preferences& preferences, - GtkSourceLanguageManager* manager); - virtual ~DocWindow(); - - const InfTextSession* get_session() const { return m_session; } - InfTextSession* get_session() { return m_session; } - const Glib::ustring& get_title() const { return m_title; } - const std::string& get_info_storage_key() const - { - return m_info_storage_key; - } - - void get_cursor_position(unsigned int& row, unsigned int& col) const; - void set_selection(const GtkTextIter* begin, - const GtkTextIter* end); - Glib::ustring get_selected_text() const; - void scroll_to_cursor_position(double within_margin); - - GtkSourceLanguage* get_language() const; - void set_language(GtkSourceLanguage* language); - - InfTextUser* get_active_user() const; - void set_active_user(InfTextUser* user); - - GtkSourceView* get_text_view() { return m_view; } - GtkSourceBuffer* get_text_buffer() { return m_buffer; } - - void set_info(const Glib::ustring& info, bool closable); - void unset_info(); - - SignalLanguageChanged signal_language_changed() const - { - return m_signal_language_changed; - } - - SignalActiveUserChanged signal_active_user_changed() const - { - return m_signal_active_user_changed; - } - -protected: - virtual void on_size_allocate(Gtk::Allocation& allocation); - - void on_user_color_changed(); - - void on_tab_width_changed(); - void on_tab_spaces_changed(); - void on_auto_indent_changed(); - void on_homeend_smart_changed(); - - void on_wrap_mode_changed(); - void on_linenum_display_changed(); - void on_curline_highlight_changed(); - void on_margin_display_changed(); - void on_margin_pos_changed(); - void on_bracket_highlight_changed(); - - void on_font_changed(); - - void on_doc_userlist_width_changed(); - void on_pref_userlist_width_changed(); - - bool on_query_tooltip(int x, int y, bool keyboard_mode, - const Glib::RefPtr& tooltip); - - static gboolean on_query_tooltip_static(GtkWidget* widget, int x, - int y, gboolean keyboard_mode, - GtkTooltip* tooltip, - gpointer user_data) - { - return static_cast(user_data)->on_query_tooltip( - x, y, keyboard_mode, Glib::wrap(tooltip, true)); - } - - InfTextSession* m_session; - Glib::ustring m_title; - std::string m_info_storage_key; - Preferences& m_preferences; - - GtkSourceView* m_view; - GtkSourceBuffer* m_buffer; - UserList m_userlist; - - Gtk::Frame m_info_frame; - Gtk::VBox m_info_box; - Gtk::HBox m_info_close_button_box; - CloseButton m_info_close_button; - Gtk::Label m_info_label; - - SignalLanguageChanged m_signal_language_changed; - SignalActiveUserChanged m_signal_active_user_changed; - - sigc::connection m_doc_userlist_width_changed_connection; - sigc::connection m_pref_userlist_width_changed_connection; -}; - -} - -#endif // _GOBBY_DOCWINDOW_HPP_ diff -Nru gobby-infinote-0.4.92/code/core/folder.cpp gobby-infinote-0.4.93/code/core/folder.cpp --- gobby-infinote-0.4.92/code/core/folder.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/folder.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -17,8 +17,9 @@ */ #include "core/folder.hpp" -#include "core/tablabel.hpp" -#include "util/closebutton.hpp" +#include "core/sessionuserview.hpp" +#include "core/chattablabel.hpp" +#include "core/texttablabel.hpp" #include "util/file.hpp" #include @@ -99,11 +100,14 @@ } } -Gobby::Folder::Folder(Preferences& preferences, +Gobby::Folder::Folder(bool hide_single_tab, + Preferences& preferences, GtkSourceLanguageManager* lang_manager): - m_preferences(preferences), m_lang_manager(lang_manager) + m_hide_single_tab(hide_single_tab), m_preferences(preferences), + m_lang_manager(lang_manager) { set_scrollable(true); + if(hide_single_tab) set_show_tabs(false); } Gobby::Folder::~Folder() @@ -111,98 +115,164 @@ // Remove all documents explicitely, so that all sessions are closed, // and records finished. while(get_n_pages()) - remove_document(*static_cast(get_nth_page(0))); -} - -Gobby::DocWindow& -Gobby::Folder::add_document(InfTextSession* session, - const Glib::ustring& title, - const std::string& info_storage_key) -{ - Gobby::DocWindow* window = Gtk::manage( - new DocWindow(session, title, info_storage_key, - m_preferences, m_lang_manager)); - window->show(); - m_signal_document_added.emit(*window); + remove_document( + static_cast( + get_nth_page(0))->get_session_view()); +} + +// TODO: Share common code of add_text_session and add_chat_session +Gobby::TextSessionView& +Gobby::Folder::add_text_session(InfTextSession* session, + const Glib::ustring& title, + const Glib::ustring& path, + const Glib::ustring& hostname, + const std::string& info_storage_key) +{ + TextSessionView* view = Gtk::manage( + new TextSessionView(session, title, path, hostname, + info_storage_key, m_preferences, + m_lang_manager)); + view->show(); + m_signal_document_added.emit(*view); + + SessionUserView* userview = Gtk::manage( + new SessionUserView( + *view, true, + m_preferences.appearance.show_document_userlist, + m_preferences.appearance.document_userlist_width)); + userview->show(); - TabLabel* tablabel = Gtk::manage(new TabLabel(*this, *window)); + TabLabel* tablabel = Gtk::manage(new TextTabLabel(*this, *view)); tablabel->signal_close_request().connect( sigc::bind( sigc::mem_fun(*this, &Folder::on_tab_close_request), - sigc::ref(*window))); + sigc::ref(*view))); tablabel->show(); - append_page(*window, *tablabel); + append_page(*userview, *tablabel); - set_tab_reorderable(*window, true); + set_tab_reorderable(*userview, true); // Record the session, for debugging purposes: record(session, title); - return *window; + if(m_hide_single_tab && get_n_pages() > 1) + set_show_tabs(true); + return *view; +} + +Gobby::ChatSessionView& +Gobby::Folder::add_chat_session(InfChatSession* session, + const Glib::ustring& title, + const Glib::ustring& path, + const Glib::ustring& hostname) +{ + ChatSessionView* view = Gtk::manage( + new ChatSessionView(session, title, path, hostname, + m_preferences)); + view->show(); + m_signal_document_added.emit(*view); + + SessionUserView* userview = Gtk::manage( + new SessionUserView( + *view, false, + m_preferences.appearance.show_chat_userlist, + m_preferences.appearance.chat_userlist_width)); + userview->show(); + + TabLabel* tablabel = Gtk::manage(new ChatTabLabel(*this, *view)); + tablabel->signal_close_request().connect( + sigc::bind( + sigc::mem_fun(*this, &Folder::on_tab_close_request), + sigc::ref(*view))); + tablabel->show(); + append_page(*userview, *tablabel); + + set_tab_reorderable(*userview, true); + if(m_hide_single_tab && get_n_pages() > 1) + set_show_tabs(true); + return *view; } -void Gobby::Folder::remove_document(DocWindow& window) +void Gobby::Folder::remove_document(SessionView& view) { - m_signal_document_removed.emit(window); + m_signal_document_removed.emit(view); // Finish the record - InfTextSession* session = window.get_session(); + InfSession* session = view.get_session(); g_object_set_data(G_OBJECT(session), "GOBBY_SESSION_RECORD", NULL); g_object_ref(session); - inf_session_close(INF_SESSION(session)); - remove_page(window); + inf_session_close(session); + // This relies on the sessionuserview being the direct parent of + // view - maybe we should make a loop here instead which searches + // the folder in the widget hierarchy, to be more robust. + remove_page(*view.get_parent()); g_object_unref(session); if(get_n_pages() == 0) m_signal_document_changed.emit(NULL); + + if(m_hide_single_tab && get_n_pages() <= 1) + set_show_tabs(false); } -Gobby::DocWindow* -Gobby::Folder::lookup_document(InfTextSession* session) +Gobby::SessionView* +Gobby::Folder::lookup_document(InfSession* session) { const PageList& pagelist = pages(); for(PageList::iterator iter = pagelist.begin(); iter != pagelist.end(); ++ iter) { - DocWindow* window = - static_cast(iter->get_child()); + SessionUserView* child = + static_cast(iter->get_child()); - if(window->get_session() == session) - return window; + if(child->get_session_view().get_session() == session) + return &child->get_session_view(); } return NULL; } -Gobby::DocWindow* +Gobby::SessionView* Gobby::Folder::get_current_document() { - return static_cast(get_nth_page(get_current_page())); + SessionUserView* child = static_cast( + get_nth_page(get_current_page())); + if(!child) return NULL; + + return &child->get_session_view(); } -const Gobby::DocWindow* +const Gobby::SessionView* Gobby::Folder::get_current_document() const { - return static_cast(get_nth_page(get_current_page())); + const SessionUserView* child = static_cast( + get_nth_page(get_current_page())); + if(!child) return NULL; + + return &child->get_session_view(); } -void Gobby::Folder::switch_to_document(DocWindow& document) +void Gobby::Folder::switch_to_document(SessionView& document) { - set_current_page(page_num(document)); + // Again, here we rely on document being the direct child of + // the SessionUserView... + set_current_page(page_num(*document.get_parent())); } -void Gobby::Folder::on_tab_close_request(DocWindow& window) +void Gobby::Folder::on_tab_close_request(SessionView& view) { - if(m_signal_document_close_request.emit(window)) - remove_document(window); + if(m_signal_document_close_request.emit(view)) + remove_document(view); } void Gobby::Folder::on_switch_page(GtkNotebookPage* page, guint page_num) { Gtk::Notebook::on_switch_page(page, page_num); - DocWindow& window = *static_cast(get_nth_page(page_num)); - m_signal_document_changed.emit(&window); + SessionUserView& view = + *static_cast(get_nth_page(page_num)); + + m_signal_document_changed.emit(&view.get_session_view()); } bool Gobby::Folder::on_key_press_event(GdkEventKey* event) diff -Nru gobby-infinote-0.4.92/code/core/folder.hpp gobby-infinote-0.4.93/code/core/folder.hpp --- gobby-infinote-0.4.92/code/core/folder.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/folder.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -19,7 +19,8 @@ #ifndef _GOBBY_FOLDER_HPP_ #define _GOBBY_FOLDER_HPP_ -#include "core/docwindow.hpp" +#include "core/textsessionview.hpp" +#include "core/chatsessionview.hpp" #include "core/preferences.hpp" #include "util/defaultaccumulator.hpp" @@ -34,41 +35,54 @@ class Folder : public Gtk::Notebook { public: - typedef sigc::signal SignalDocumentAdded; - typedef sigc::signal SignalDocumentRemoved; - typedef sigc::signal SignalDocumentChanged; + // TODO chat: This should be SignalSessionAdded/Removed/Changed + typedef sigc::signal SignalDocumentAdded; + typedef sigc::signal SignalDocumentRemoved; + typedef sigc::signal SignalDocumentChanged; - typedef sigc::signal:: + typedef sigc::signal:: accumulated > SignalDocumentCloseRequest; - Folder(Preferences& preferences, + // TODO chat: Should not require langmgr + Folder(bool hide_single_tab, + Preferences& preferences, GtkSourceLanguageManager* lang_manager); ~Folder(); - DocWindow& add_document(InfTextSession* session, - const Glib::ustring& title, - const std::string& info_storage_key); - void remove_document(DocWindow& document); - - DocWindow* lookup_document(InfTextSession* session); - DocWindow* get_current_document(); - const DocWindow* get_current_document() const; - void switch_to_document(DocWindow& document); + TextSessionView& add_text_session(InfTextSession* session, + const Glib::ustring& title, + const Glib::ustring& path, + const Glib::ustring& hostname, + const std::string& info_storage_key); + ChatSessionView& add_chat_session(InfChatSession* session, + const Glib::ustring& title, + const Glib::ustring& path, + const Glib::ustring& hostname); + void remove_document(SessionView& view); + + SessionView* lookup_document(InfSession* session); + SessionView* get_current_document(); + const SessionView* get_current_document() const; + void switch_to_document(SessionView& document); - SignalDocumentAdded signal_document_added() const { + SignalDocumentAdded signal_document_added() const + { return m_signal_document_added; } - SignalDocumentRemoved signal_document_removed() const { + SignalDocumentRemoved signal_document_removed() const + { return m_signal_document_removed; } - SignalDocumentChanged signal_document_changed() const { + SignalDocumentChanged signal_document_changed() const + { return m_signal_document_changed; } - SignalDocumentCloseRequest signal_document_close_request() const { + SignalDocumentCloseRequest signal_document_close_request() const + { return m_signal_document_close_request; } @@ -76,8 +90,9 @@ virtual void on_switch_page(GtkNotebookPage* page, guint page_num); virtual bool on_key_press_event(GdkEventKey* event); - void on_tab_close_request(DocWindow& window); + void on_tab_close_request(SessionView& window); + const bool m_hide_single_tab; Preferences& m_preferences; GtkSourceLanguageManager* m_lang_manager; diff -Nru gobby-infinote-0.4.92/code/core/header.cpp gobby-infinote-0.4.93/code/core/header.cpp --- gobby-infinote-0.4.92/code/core/header.cpp 2009-04-23 17:21:50.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/header.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -1,5 +1,5 @@ /* Gobby - GTK-based collaborative text editor - * Copyright (C) 2008, 2009 Armin Burgmeier + * Copyright (C) 2008 Armin Burgmeier * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public @@ -40,6 +40,9 @@ " " " " " " + " " + " " + " " " " " " " " @@ -60,11 +63,15 @@ " " " " " " + " " + " " " " " " " " " " - " " + " " + " " + " " " " " " " " " " " " + " " + " " " " " " " " @@ -203,6 +212,8 @@ GtkSourceLanguageManager* lang_mgr): m_preferences(preferences), + m_ui_manager(Gtk::UIManager::create()), + group_file(Gtk::ActionGroup::create("MenuFile") ), group_edit(Gtk::ActionGroup::create("MenuEdit") ), group_view(Gtk::ActionGroup::create("MenuView") ), @@ -223,6 +234,11 @@ Gtk::Action::create( "FileSaveAll", Gobby::IconManager::STOCK_SAVE_ALL, _("Save All"), _("Save all open files locally"))), + action_file_export_html( + Gtk::Action::create("FileExportHtml", _("Export As _HTML..."))), + action_file_connect( + Gtk::Action::create("FileConnect", Gtk::Stock::CONNECT, + _("Connect _to Server..."))), action_file_close( Gtk::Action::create("FileClose", Gtk::Stock::CLOSE)), action_file_quit(Gtk::Action::create("FileQuit", Gtk::Stock::QUIT)), @@ -258,10 +274,14 @@ _("Pr_eferences..."))), action_view(Gtk::Action::create("MenuView", _("_View"))), + action_view_hide_user_colors( + Gtk::Action::create( + "ViewHideUserColors", _("Reset User Colors"), + _("Hide user colors in current document"))), action_view_toolbar( Gtk::ToggleAction::create( "ViewToolbar", _("View Toolbar"), - _("Whether to show the toolbar"), + _("Whether to show the toolbar"), preferences.appearance.show_toolbar)), action_view_statusbar( Gtk::ToggleAction::create( @@ -273,11 +293,21 @@ "ViewBrowser", _("View Document Browser"), _("Whether to show the document browser"), preferences.appearance.show_browser)), - action_view_userlist( + action_view_chat( + Gtk::ToggleAction::create( + "ViewChat", _("View Chat"), + _("Whether to show the chat pane"), + preferences.appearance.show_chat)), + action_view_document_userlist( Gtk::ToggleAction::create( - "ViewUserlist", _("View User List"), - _("Whether to show the user list"), - preferences.appearance.show_userlist)), + "ViewDocumentUserList", _("View Document User List"), + _("Whether to show the user list for documents"), + preferences.appearance.show_document_userlist)), + action_view_chat_userlist( + Gtk::ToggleAction::create( + "ViewChatUserList", _("View Chat User List"), + _("Whether to show the user list for the chat"), + preferences.appearance.show_chat_userlist)), action_view_highlight_mode( Gtk::Action::create("ViewHighlightMode", _("_Highlight Mode"))), @@ -287,12 +317,14 @@ load_highlight_languages(lang_mgr, m_highlight_group)), action_help(Gtk::Action::create("MenuHelp", _("_Help")) ), + action_help_contents( + Gtk::Action::create( + "HelpContents", Gtk::Stock::HELP, _("_Contents"), + _("Opens the Gobby manual"))), action_help_about( Gtk::Action::create( "HelpAbout", Gtk::Stock::ABOUT, _("_About..."), - _("Shows Gobby's copyright and credits"))), - - m_ui_manager(Gtk::UIManager::create()) + _("Shows Gobby's copyright and credits"))) { // Add basic menu m_ui_manager->add_ui_from_string(ui_desc); @@ -310,6 +342,12 @@ group_file->add(action_file_save_all, Gtk::AccelKey("L", "/MenuFile/FileSaveAll")); + group_file->add(action_file_export_html, + Gtk::AccelKey("H", + "/MenuFile/FileExportHtml")); + group_file->add(action_file_connect, + Gtk::AccelKey("T", + "/MenuFile/FileConnect")); group_file->add(action_file_close); group_file->add(action_file_quit); @@ -339,23 +377,36 @@ group_edit->add(action_edit_preferences); group_view->add(action_view); + group_view->add( + action_view_hide_user_colors, + Gtk::AccelKey("C", + "/MenuView/ViewHideUserColors")); group_view->add(action_view_toolbar); group_view->add(action_view_statusbar); - group_view->add(action_view_browser, - Gtk::AccelKey("F9", - "/MenuView/ViewBrowser")); - group_view->add(action_view_userlist, - Gtk::AccelKey("F9", - "/MenuView/ViewUserList")); + group_view->add(action_view_browser, Gtk::AccelKey( + "F9", "/MenuView/ViewBrowser")); + group_view->add(action_view_chat, Gtk::AccelKey( + "F9", "/MenuView/ViewChat")); + group_view->add(action_view_document_userlist, Gtk::AccelKey( + "F9", "/MenuView/ViewDocumentUserList")); + group_view->add(action_view_chat_userlist, Gtk::AccelKey( + "F9", "/MenuView/ViewChatUserList")); group_view->add(action_view_highlight_mode); group_view->add(action_view_highlight_none); + + unsigned int language_menu_counter = 0; for(LanguageMap::const_iterator iter = action_view_highlight_languages.begin(); iter != action_view_highlight_languages.end(); ++ iter) { + // We cannot use iter->first for the action name, since this + // is a localized string. Glib::ustring section_action_name = - "ViewHighlightModeSection_" + iter->first; + Glib::ustring::compose("ViewHighlightModeSection_%1", + language_menu_counter); + ++language_menu_counter; + Glib::ustring section_action_xml = Glib::Markup::escape_text(section_action_name); @@ -373,7 +424,7 @@ Glib::ustring language_action_xml = Glib::Markup::escape_text( (*iter2)->get_name()); - + Glib::ustring xml_desc = "" " " @@ -395,6 +446,10 @@ } group_help->add(action_help); + group_help->add(action_help_contents, + Gtk::AccelKey("F1", + "/MenuHelp/HelpContents")); + group_help->add(action_help_about); m_ui_manager->insert_action_group(group_file); @@ -425,11 +480,11 @@ #ifdef PLATFORM_OSX_NATIVE ige_mac_menu_set_menu_bar(GTK_MENU_SHELL(m_menubar->gobj())); - + ige_mac_menu_set_quit_menu_item(GTK_MENU_ITEM( m_ui_manager->get_widget( "/MenuMainBar/MenuFile/FileQuit")->gobj())); - + ige_mac_menu_add_app_menu_item( ige_mac_menu_add_app_menu_group(), GTK_MENU_ITEM( m_ui_manager->get_widget( diff -Nru gobby-infinote-0.4.92/code/core/header.hpp gobby-infinote-0.4.93/code/core/header.hpp --- gobby-infinote-0.4.92/code/core/header.hpp 2009-04-23 17:21:50.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/header.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -1,5 +1,5 @@ /* Gobby - GTK-based collaborative text editor - * Copyright (C) 2008, 2009 Armin Burgmeier + * Copyright (C) 2008 Armin Burgmeier * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public @@ -65,7 +65,7 @@ GtkSourceLanguage* m_language; }; - typedef std::list > LanguageList; + typedef std::list > LanguageList; typedef std::map LanguageMap; Header(Preferences& preferences, @@ -102,32 +102,38 @@ const Glib::RefPtr action_file_save; const Glib::RefPtr action_file_save_as; const Glib::RefPtr action_file_save_all; + const Glib::RefPtr action_file_export_html; + const Glib::RefPtr action_file_connect; const Glib::RefPtr action_file_close; const Glib::RefPtr action_file_quit; - const Glib::RefPtr action_edit; - const Glib::RefPtr action_edit_undo; - const Glib::RefPtr action_edit_redo; - const Glib::RefPtr action_edit_cut; - const Glib::RefPtr action_edit_copy; - const Glib::RefPtr action_edit_paste; - const Glib::RefPtr action_edit_find; - const Glib::RefPtr action_edit_find_next; - const Glib::RefPtr action_edit_find_prev; - const Glib::RefPtr action_edit_find_replace; - const Glib::RefPtr action_edit_goto_line; - const Glib::RefPtr action_edit_preferences; + const Glib::RefPtr action_edit; + const Glib::RefPtr action_edit_undo; + const Glib::RefPtr action_edit_redo; + const Glib::RefPtr action_edit_cut; + const Glib::RefPtr action_edit_copy; + const Glib::RefPtr action_edit_paste; + const Glib::RefPtr action_edit_find; + const Glib::RefPtr action_edit_find_next; + const Glib::RefPtr action_edit_find_prev; + const Glib::RefPtr action_edit_find_replace; + const Glib::RefPtr action_edit_goto_line; + const Glib::RefPtr action_edit_preferences; const Glib::RefPtr action_view; + const Glib::RefPtr action_view_hide_user_colors; const Glib::RefPtr action_view_toolbar; const Glib::RefPtr action_view_statusbar; const Glib::RefPtr action_view_browser; - const Glib::RefPtr action_view_userlist; + const Glib::RefPtr action_view_chat; + const Glib::RefPtr action_view_document_userlist; + const Glib::RefPtr action_view_chat_userlist; const Glib::RefPtr action_view_highlight_mode; const Glib::RefPtr action_view_highlight_none; - const LanguageMap action_view_highlight_languages; + const LanguageMap action_view_highlight_languages; const Glib::RefPtr action_help; + const Glib::RefPtr action_help_contents; const Glib::RefPtr action_help_about; }; diff -Nru gobby-infinote-0.4.92/code/core/iconmanager.cpp gobby-infinote-0.4.93/code/core/iconmanager.cpp --- gobby-infinote-0.4.92/code/core/iconmanager.cpp 2009-04-24 22:40:56.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/iconmanager.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -22,16 +22,23 @@ #include #include +Gtk::StockID Gobby::IconManager::STOCK_SAVE_ALL("gobby-save-all"); Gtk::StockID Gobby::IconManager::STOCK_USERLIST("gobby-user-list"); Gtk::StockID Gobby::IconManager::STOCK_DOCLIST("gobby-document-list"); -Gtk::StockID Gobby::IconManager::STOCK_SAVE_ALL("gobby-save-all"); +Gtk::StockID Gobby::IconManager::STOCK_CHAT("gobby-chat"); +Gtk::StockID Gobby::IconManager::STOCK_USER_COLOR_INDICATOR( + "gobby-user-color-indicator"); // TODO: The save-all icon does not match the save icon for toolbar // or menu sized items. It is not yet enabled therefore. Gobby::IconManager::IconManager(): m_icon_factory(Gtk::IconFactory::create() ) { - Gtk::IconTheme::get_default()->append_search_path(ICONS_DIR); + Gtk::IconTheme::get_default()->append_search_path(PUBLIC_ICONS_DIR); + Gtk::IconTheme::get_default()->append_search_path(PRIVATE_ICONS_DIR); + + Gtk::StockItem save_all_item(STOCK_SAVE_ALL, _("Save All")); + //m_icon_factory->add(STOCK_SAVE_ALL, m_is_save_all); Gtk::IconSource userlist_source; userlist_source.set_icon_name("user-list"); @@ -45,7 +52,19 @@ Gtk::StockItem doclist_item(STOCK_DOCLIST, _("Document list") ); m_icon_factory->add(STOCK_DOCLIST, m_is_doclist); - Gtk::StockItem save_all_item(STOCK_SAVE_ALL, _("Save All")); + Gtk::IconSource chat_source; + chat_source.set_icon_name("chat"); + m_is_chat.add_source(chat_source); + Gtk::StockItem chat_item(STOCK_CHAT, _("Chat") ); + m_icon_factory->add(STOCK_CHAT, m_is_chat); + + Gtk::IconSource user_color_indicator_source; + user_color_indicator_source.set_icon_name("user-color-indicator"); + m_is_user_color_indicator.add_source(user_color_indicator_source); + Gtk::StockItem user_color_indicator_item(STOCK_USER_COLOR_INDICATOR, + _("User Color Indicator")); + m_icon_factory->add(STOCK_USER_COLOR_INDICATOR, + m_is_user_color_indicator); m_icon_factory->add_default(); } diff -Nru gobby-infinote-0.4.92/code/core/iconmanager.hpp gobby-infinote-0.4.93/code/core/iconmanager.hpp --- gobby-infinote-0.4.92/code/core/iconmanager.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/iconmanager.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -29,16 +29,20 @@ class IconManager { public: + static Gtk::StockID STOCK_SAVE_ALL; static Gtk::StockID STOCK_USERLIST; static Gtk::StockID STOCK_DOCLIST; - static Gtk::StockID STOCK_SAVE_ALL; + static Gtk::StockID STOCK_CHAT; + static Gtk::StockID STOCK_USER_COLOR_INDICATOR; IconManager(); protected: + Gtk::IconSet m_is_save_all; Gtk::IconSet m_is_userlist; Gtk::IconSet m_is_doclist; - Gtk::IconSet m_is_save_all; + Gtk::IconSet m_is_chat; + Gtk::IconSet m_is_user_color_indicator; Glib::RefPtr m_icon_factory; }; diff -Nru gobby-infinote-0.4.92/code/core/Makefile.am gobby-infinote-0.4.93/code/core/Makefile.am --- gobby-infinote-0.4.92/code/core/Makefile.am 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -2,9 +2,10 @@ libgobby_core_a_SOURCES = \ browser.cpp \ + chatsessionview.cpp \ + chattablabel.cpp \ closableframe.cpp \ documentinfostorage.cpp \ - docwindow.cpp \ filechooser.cpp \ folder.cpp \ header.cpp \ @@ -13,16 +14,22 @@ nodewatch.cpp \ noteplugin.cpp \ preferences.cpp \ + sessionuserview.cpp \ + sessionview.cpp \ statusbar.cpp \ tablabel.cpp \ + textsessionview.cpp \ + textundogrouping.cpp \ + texttablabel.cpp \ titlebar.cpp \ userlist.cpp noinst_HEADERS = \ browser.hpp \ + chatsessionview.hpp \ + chattablabel.hpp \ closableframe.hpp \ documentinfostorage.hpp \ - docwindow.hpp \ filechooser.hpp \ folder.hpp \ header.hpp \ @@ -31,17 +38,24 @@ nodewatch.hpp \ noteplugin.hpp \ preferences.hpp \ + sessionuserview.hpp \ + sessionview.hpp \ statusbar.hpp \ tablabel.hpp \ + textsessionview.hpp \ + textundogrouping.hpp \ + texttablabel.hpp \ titlebar.hpp \ userlist.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -# ICONS_DIR is required by iconmanager.cpp to get access to the private icons -# that are installed into prefix/share/gobby-0.5/icons instead of -# prefix/share/icons. -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +# PRIVATE_ICONS_DIR is required by iconmanager.cpp to get access to the +# private icons that are installed into prefix/share/gobby-0.5/icons instead +# of prefix/share/icons. We also set PUBLIC_ICONS_DIR explicitely so that +# we find the application icon if it is installed in a non-standard prefix. +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code \ - -DICONS_DIR=\""$(datadir)/gobby-0.5/icons"\" + -DPRIVATE_ICONS_DIR=\""$(datadir)/gobby-0.5/icons"\" \ + -DPUBLIC_ICONS_DIR=\""$(datadir)/icons"\" diff -Nru gobby-infinote-0.4.92/code/core/Makefile.in gobby-infinote-0.4.93/code/core/Makefile.in --- gobby-infinote-0.4.92/code/core/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/Makefile.in 2009-12-19 23:16:17.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -48,12 +49,16 @@ ARFLAGS = cru libgobby_core_a_AR = $(AR) $(ARFLAGS) libgobby_core_a_LIBADD = -am_libgobby_core_a_OBJECTS = browser.$(OBJEXT) closableframe.$(OBJEXT) \ - documentinfostorage.$(OBJEXT) docwindow.$(OBJEXT) \ +am_libgobby_core_a_OBJECTS = browser.$(OBJEXT) \ + chatsessionview.$(OBJEXT) chattablabel.$(OBJEXT) \ + closableframe.$(OBJEXT) documentinfostorage.$(OBJEXT) \ filechooser.$(OBJEXT) folder.$(OBJEXT) header.$(OBJEXT) \ huebutton.$(OBJEXT) iconmanager.$(OBJEXT) nodewatch.$(OBJEXT) \ - noteplugin.$(OBJEXT) preferences.$(OBJEXT) statusbar.$(OBJEXT) \ - tablabel.$(OBJEXT) titlebar.$(OBJEXT) userlist.$(OBJEXT) + noteplugin.$(OBJEXT) preferences.$(OBJEXT) \ + sessionuserview.$(OBJEXT) sessionview.$(OBJEXT) \ + statusbar.$(OBJEXT) tablabel.$(OBJEXT) \ + textsessionview.$(OBJEXT) textundogrouping.$(OBJEXT) \ + texttablabel.$(OBJEXT) titlebar.$(OBJEXT) userlist.$(OBJEXT) libgobby_core_a_OBJECTS = $(am_libgobby_core_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/code depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -90,6 +95,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -99,6 +106,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -123,11 +131,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -198,12 +208,15 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ noinst_LIBRARIES = libgobby-core.a libgobby_core_a_SOURCES = \ browser.cpp \ + chatsessionview.cpp \ + chattablabel.cpp \ closableframe.cpp \ documentinfostorage.cpp \ - docwindow.cpp \ filechooser.cpp \ folder.cpp \ header.cpp \ @@ -212,16 +225,22 @@ nodewatch.cpp \ noteplugin.cpp \ preferences.cpp \ + sessionuserview.cpp \ + sessionview.cpp \ statusbar.cpp \ tablabel.cpp \ + textsessionview.cpp \ + textundogrouping.cpp \ + texttablabel.cpp \ titlebar.cpp \ userlist.cpp noinst_HEADERS = \ browser.hpp \ + chatsessionview.hpp \ + chattablabel.hpp \ closableframe.hpp \ documentinfostorage.hpp \ - docwindow.hpp \ filechooser.hpp \ folder.hpp \ header.hpp \ @@ -230,20 +249,27 @@ nodewatch.hpp \ noteplugin.hpp \ preferences.hpp \ + sessionuserview.hpp \ + sessionview.hpp \ statusbar.hpp \ tablabel.hpp \ + textsessionview.hpp \ + textundogrouping.hpp \ + texttablabel.hpp \ titlebar.hpp \ userlist.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -# ICONS_DIR is required by iconmanager.cpp to get access to the private icons -# that are installed into prefix/share/gobby-0.5/icons instead of -# prefix/share/icons. -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +# PRIVATE_ICONS_DIR is required by iconmanager.cpp to get access to the +# private icons that are installed into prefix/share/gobby-0.5/icons instead +# of prefix/share/icons. We also set PUBLIC_ICONS_DIR explicitely so that +# we find the application icon if it is installed in a non-standard prefix. +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code \ - -DICONS_DIR=\""$(datadir)/gobby-0.5/icons"\" + -DPRIVATE_ICONS_DIR=\""$(datadir)/gobby-0.5/icons"\" \ + -DPUBLIC_ICONS_DIR=\""$(datadir)/icons"\" all: all-am @@ -293,9 +319,10 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/browser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chatsessionview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chattablabel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closableframe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/documentinfostorage.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/docwindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filechooser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/folder.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/header.Po@am__quote@ @@ -304,8 +331,13 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nodewatch.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/noteplugin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preferences.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sessionuserview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sessionview.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statusbar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tablabel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/textsessionview.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texttablabel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/textundogrouping.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/titlebar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/userlist.Po@am__quote@ @@ -440,6 +472,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -448,18 +482,28 @@ 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 diff -Nru gobby-infinote-0.4.92/code/core/nodewatch.cpp gobby-infinote-0.4.93/code/core/nodewatch.cpp --- gobby-infinote-0.4.92/code/core/nodewatch.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/nodewatch.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -18,50 +18,79 @@ #include "core/nodewatch.hpp" -Gobby::NodeWatch::NodeWatch(InfGtkBrowserModel* model, InfcBrowser* browser, - InfcBrowserIter* iter): - m_model(model), m_browser(browser), m_iter(*iter) +Gobby::NodeWatch::NodeWatch(InfcBrowser* browser, + const InfcBrowserIter* iter): + m_browser(browser), m_iter(*iter) { - m_set_browser_handler = g_signal_connect(m_model, "set-browser", - G_CALLBACK(on_set_browser_static), this); + // Need to have a connection for the browser, otherwise we can't + // reach that node anyway. + + // TODO: (weak-)ref connection and browser? + m_connection = infc_browser_get_connection(browser); + g_assert(m_connection); + + InfXmlConnectionStatus status; + g_object_get(G_OBJECT(m_connection), "status", &status, NULL); + g_assert(status == INF_XML_CONNECTION_OPEN); + + m_browser_notify_connection_handler = g_signal_connect( + browser, "notify::connection", + G_CALLBACK(on_browser_notify_connection_static), this); m_node_removed_handler = g_signal_connect(m_browser, "node-removed", G_CALLBACK(on_node_removed_static), this); + m_connection_notify_status_handler = g_signal_connect( + m_connection, "notify::status", + G_CALLBACK(on_connection_notify_status_static), this); } Gobby::NodeWatch::~NodeWatch() { - if(m_model != NULL) + if(m_browser != NULL) reset(); } -void Gobby::NodeWatch::on_set_browser(InfGtkBrowserModel* model, - GtkTreeIter* iter, - InfcBrowser* browser) +void Gobby::NodeWatch::on_browser_notify_connection() { - if(browser == NULL) - { - InfcBrowser* old_browser; - gtk_tree_model_get( - GTK_TREE_MODEL(model), iter, - INF_GTK_BROWSER_MODEL_COL_BROWSER, &old_browser, - -1); + InfXmlConnection* connection = infc_browser_get_connection(m_browser); - if(old_browser == m_browser) - { - reset(); - // Note that we want to allow signal handlers to - // delete the watch, so make sure we don't access - // member variables anymore after having emitted this. - m_signal_node_removed.emit(); - } + if(connection) + { + // Connection changed on-the-fly. This isn't a problem for + // us if the watched node is still available (though I don't + // think this can happen currently). + InfXmlConnectionStatus status; + g_object_get(G_OBJECT(connection), "status", &status, NULL); + if(status == INF_XML_CONNECTION_OPEN) + set_connection(connection); + else + connection = NULL; + } - g_object_unref(old_browser); - } + if(!connection) + { + reset(); + m_signal_node_removed.emit(); + } +} + +void Gobby::NodeWatch::on_connection_notify_status() +{ + InfXmlConnectionStatus status; + g_object_get(G_OBJECT(m_connection), "status", &status, NULL); + + // Connection was closed: Node is no longer reachable + if(status != INF_XML_CONNECTION_OPEN) + { + reset(); + m_signal_node_removed.emit(); + } } void Gobby::NodeWatch::on_node_removed(InfcBrowser* browser, InfcBrowserIter* iter) { + g_assert(browser == m_browser); + InfcBrowserIter test_iter = m_iter; do @@ -81,9 +110,32 @@ void Gobby::NodeWatch::reset() { - g_signal_handler_disconnect(m_model, m_set_browser_handler); - g_signal_handler_disconnect(m_browser, m_node_removed_handler); + g_assert(m_browser != NULL); + + set_connection(NULL); + + g_signal_handler_disconnect( + m_browser, m_browser_notify_connection_handler); + g_signal_handler_disconnect( + m_browser, m_node_removed_handler); - m_model = NULL; m_browser = NULL; } + +void Gobby::NodeWatch::set_connection(InfXmlConnection* connection) +{ + if(m_connection != NULL) + { + g_signal_handler_disconnect( + m_connection, m_connection_notify_status_handler); + } + + m_connection = connection; + + if(connection != NULL) + { + m_connection_notify_status_handler = g_signal_connect( + m_connection, "notify::status", + G_CALLBACK(on_connection_notify_status_static), this); + } +} diff -Nru gobby-infinote-0.4.92/code/core/nodewatch.hpp gobby-infinote-0.4.93/code/core/nodewatch.hpp --- gobby-infinote-0.4.92/code/core/nodewatch.hpp 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/nodewatch.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -32,27 +32,34 @@ public: typedef sigc::signal SignalNodeRemoved; - NodeWatch(InfGtkBrowserModel* model, InfcBrowser* browser, - InfcBrowserIter* iter); + NodeWatch(InfcBrowser* browser, const InfcBrowserIter* iter); ~NodeWatch(); - InfGtkBrowserModel* get_model() const { return m_model; } InfcBrowser* get_browser() const { return m_browser; } - bool get_browser_iter(InfcBrowserIter* iter) const; + const InfcBrowserIter& get_browser_iter() const { + g_assert(m_browser); + return m_iter; + } SignalNodeRemoved signal_node_removed() const { return m_signal_node_removed; } protected: - static void on_set_browser_static(InfGtkBrowserModel* model, - GtkTreePath* path, - GtkTreeIter* iter, - InfcBrowser* browser, - gpointer user_data) + static void on_connection_notify_status_static(GObject* object, + GParamSpec* pspec, + gpointer user_data) + { + static_cast(user_data)-> + on_connection_notify_status(); + } + + static void on_browser_notify_connection_static(GObject* object, + GParamSpec* pspec, + gpointer user_data) { static_cast(user_data)-> - on_set_browser(model, iter, browser); + on_browser_notify_connection(); } static void on_node_removed_static(InfcBrowser* browser, @@ -63,20 +70,23 @@ on_node_removed(browser, iter); } - void on_set_browser(InfGtkBrowserModel* model, GtkTreeIter* iter, - InfcBrowser* browser); + void on_connection_notify_status(); + void on_browser_notify_connection(); void on_node_removed(InfcBrowser* browser, InfcBrowserIter* iter); void reset(); - InfGtkBrowserModel* m_model; InfcBrowser* m_browser; + InfXmlConnection* m_connection; InfcBrowserIter m_iter; - gulong m_set_browser_handler; + gulong m_connection_notify_status_handler; + gulong m_browser_notify_connection_handler; gulong m_node_removed_handler; SignalNodeRemoved m_signal_node_removed; +private: + void set_connection(InfXmlConnection* connection); }; } diff -Nru gobby-infinote-0.4.92/code/core/noteplugin.cpp gobby-infinote-0.4.93/code/core/noteplugin.cpp --- gobby-infinote-0.4.92/code/core/noteplugin.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/noteplugin.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -31,6 +31,7 @@ { InfSession* session_new(InfIo* io, InfCommunicationManager* manager, + InfSessionStatus status, InfCommunicationJoinedGroup* sync_group, InfXmlConnection* sync_connection, gpointer user_data) { @@ -48,6 +49,7 @@ inf_text_session_new_with_user_table( manager, INF_TEXT_BUFFER(buffer), io, user_table, + status, INF_COMMUNICATION_GROUP(sync_group), sync_connection); return INF_SESSION(session); diff -Nru gobby-infinote-0.4.92/code/core/preferences.cpp gobby-infinote-0.4.93/code/core/preferences.cpp --- gobby-infinote-0.4.92/code/core/preferences.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/preferences.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -19,6 +19,8 @@ #include "features.hpp" #include "core/preferences.hpp" +// TODO: Support direct enum config storage via context specialization for +// enums. Gobby::Preferences::User::User(Config::ParentEntry& entry): name(entry.get_value("name", Glib::get_user_name())), hue(entry.get_value("hue", Glib::Rand().get_double())), @@ -64,7 +66,9 @@ margin_display(entry.get_value("margin-display", true) ), margin_pos(entry.get_value("margin-position", 80) ), bracket_highlight(entry.get_value( - "highlight-matching-brackets", true)) + "highlight-matching-brackets", true)), + whitespace_display(static_cast( + entry.get_value("display-whitespace", 0))) { } @@ -76,6 +80,8 @@ entry.set_value("margin-display", margin_display); entry.set_value("margin-position", margin_pos); entry.set_value("highlight-matching-brackets", bracket_highlight); + entry.set_value("display-whitespace", + static_cast(whitespace_display)); } Gobby::Preferences::Appearance::Appearance(Config::ParentEntry& entry): @@ -83,11 +89,20 @@ "toolbar-style", static_cast(Gtk::TOOLBAR_BOTH)))), font(Pango::FontDescription(entry.get_value( "font", "Monospace 10"))), - userlist_width(entry.get_value("userlist-width", 150)), + document_userlist_width(entry.get_value( + "document-userlist-width", 150)), + chat_userlist_width(entry.get_value( + "chat-userlist-width", 150)), + scheme_id(entry.get_value("scheme-id", "classic")), + show_toolbar(entry.get_value("show-toolbar", true)), show_statusbar(entry.get_value("show-statusbar", true)), show_browser(entry.get_value("show-browser", true)), - show_userlist(entry.get_value("show-userlist", true)) + show_chat(entry.get_value("show-chat", true)), + show_document_userlist(entry.get_value( + "show-document-userlist", true)), + show_chat_userlist(entry.get_value( + "show-chat-userlist", true)) { } @@ -100,12 +115,17 @@ "font", static_cast(font).to_string()); - entry.set_value("userlist-width", userlist_width); + entry.set_value("scheme-id", scheme_id); + + entry.set_value("document-userlist-width", document_userlist_width); + entry.set_value("chat-userlist-width", chat_userlist_width); entry.set_value("show-toolbar", show_toolbar); entry.set_value("show-statusbar", show_statusbar); entry.set_value("show-browser", show_browser); - entry.set_value("show-userlist", show_userlist); + entry.set_value("show-chat", show_chat); + entry.set_value("show-document-userlist", show_document_userlist); + entry.set_value("show-chat-userlist", show_chat_userlist); } Gobby::Preferences::Security::Security(Config::ParentEntry& entry): diff -Nru gobby-infinote-0.4.92/code/core/preferences.hpp gobby-infinote-0.4.93/code/core/preferences.hpp --- gobby-infinote-0.4.92/code/core/preferences.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/preferences.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -23,6 +23,9 @@ #include "features.hpp" +#include +#include + #include #include @@ -130,6 +133,7 @@ Option margin_display; Option margin_pos; Option bracket_highlight; + Option whitespace_display; }; class Appearance @@ -143,12 +147,17 @@ Option toolbar_style; Option font; - Option userlist_width; + Option scheme_id; + + Option document_userlist_width; + Option chat_userlist_width; Option show_toolbar; Option show_statusbar; Option show_browser; - Option show_userlist; + Option show_chat; + Option show_document_userlist; + Option show_chat_userlist; }; class Security diff -Nru gobby-infinote-0.4.92/code/core/sessionuserview.cpp gobby-infinote-0.4.93/code/core/sessionuserview.cpp --- gobby-infinote-0.4.92/code/core/sessionuserview.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/sessionuserview.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,110 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "core/sessionuserview.hpp" +#include "core/iconmanager.hpp" +#include "core/closableframe.hpp" + +#include "util/i18n.hpp" + +// TODO: Consider using a single user list for all SessionViews, reparenting +// into the current SessionUserView's frame. Keep dummy widgets in other +// SessionUserViews so text does not resize. +// Or, maybe more favorable, just put the userlist outside of the notebook, +// but keep the notebook tabs on top of the userlist. + +Gobby::SessionUserView::SessionUserView(SessionView& view, + bool show_disconnected, + Preferences::Option& opt_view, + Preferences::Option& w): + m_view(view), m_userlist_width(w), + m_userlist(inf_session_get_user_table(view.get_session())) +{ + m_userlist.show(); + m_userlist.set_show_disconnected(show_disconnected); + Gtk::Frame* frame = Gtk::manage(new ClosableFrame( + _("User List"), IconManager::STOCK_USERLIST, opt_view)); + frame->set_shadow_type(Gtk::SHADOW_IN); + frame->add(m_userlist); + // frame manages visibility itself + + pack1(view, true, false); + pack2(*frame, false, false); +} + +void Gobby::SessionUserView::on_size_allocate(Gtk::Allocation& allocation) +{ + Gtk::HPaned::on_size_allocate(allocation); + + // Setup initial paned position. We can't do this simply every time + // on_size_allocate() is called since this would lead to an endless + // loop somehow when the userlist width is changed forcefully + // (for example by a m_view.set_info() requiring much width). + if(!m_doc_userlist_width_changed_connection.connected()) + { + Glib::SignalProxyProperty proxy = + property_position().signal_changed(); + + m_doc_userlist_width_changed_connection = + proxy.connect(sigc::mem_fun( + *this, + &SessionUserView:: + on_doc_userlist_width_changed)); + + Preferences::Option& option = + m_userlist_width; + + m_pref_userlist_width_changed_connection = + option.signal_changed().connect(sigc::mem_fun( + *this, + &SessionUserView:: + on_pref_userlist_width_changed)); + + unsigned int desired_position = + get_width() - m_userlist_width; + desired_position = std::min( + desired_position, property_max_position()); + + if(get_position() != desired_position) + set_position(desired_position); + } +} + +void Gobby::SessionUserView::on_doc_userlist_width_changed() +{ + unsigned int userlist_width = get_width() - get_position(); + + if(m_userlist_width != userlist_width) + { + m_pref_userlist_width_changed_connection.block(); + m_userlist_width = userlist_width; + m_pref_userlist_width_changed_connection.unblock(); + } +} + +void Gobby::SessionUserView::on_pref_userlist_width_changed() +{ + unsigned int position = get_width() - m_userlist_width; + + if(get_position() != position) + { + m_doc_userlist_width_changed_connection.block(); + set_position(position); + m_doc_userlist_width_changed_connection.unblock(); + } +} diff -Nru gobby-infinote-0.4.92/code/core/sessionuserview.hpp gobby-infinote-0.4.93/code/core/sessionuserview.hpp --- gobby-infinote-0.4.92/code/core/sessionuserview.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/sessionuserview.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,58 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_SESSIONUSERVIEW_HPP_ +#define _GOBBY_SESSIENUSERVIEW_HPP_ + +#include "core/sessionview.hpp" +#include "core/preferences.hpp" +#include "core/userlist.hpp" + +#include + +// Shows a sessionview with a userlist on the right hand side of it +namespace Gobby +{ + +class SessionUserView: public Gtk::HPaned +{ +public: + SessionUserView(SessionView& view, bool show_disconnected, + Preferences::Option& userlist_view, + Preferences::Option& userlist_width); + + SessionView& get_session_view() { return m_view; } + const SessionView& get_session_view() const { return m_view; } + +protected: + virtual void on_size_allocate(Gtk::Allocation& allocation); + + void on_doc_userlist_width_changed(); + void on_pref_userlist_width_changed(); + + SessionView& m_view; + Preferences::Option& m_userlist_width; + UserList m_userlist; + + sigc::connection m_doc_userlist_width_changed_connection; + sigc::connection m_pref_userlist_width_changed_connection; +}; + +} + +#endif // _GOBBY_SESSIONUSERVIEW_HPP_ diff -Nru gobby-infinote-0.4.92/code/core/sessionview.cpp gobby-infinote-0.4.93/code/core/sessionview.cpp --- gobby-infinote-0.4.92/code/core/sessionview.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/sessionview.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,85 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "features.hpp" + +#include "core/sessionview.hpp" + +Gobby::SessionView::SessionView(InfSession* session, + const Glib::ustring& title, + const Glib::ustring& path, + const Glib::ustring& hostname): + m_session(session), m_title(title), m_path(path), + m_hostname(hostname), m_info_box(false, 0), + m_info_close_button_box(false, 6) +{ + g_object_ref(m_session); + + m_info_label.set_selectable(true); + m_info_label.set_line_wrap(true); + m_info_label.show(); + + m_info_close_button.signal_clicked().connect( + sigc::mem_fun(m_info_frame, &Gtk::Frame::hide)); + m_info_close_button.show(); + + m_info_close_button_box.pack_end(m_info_close_button, Gtk::PACK_SHRINK); + // Don't show info close button box by default + + m_info_box.pack_start(m_info_close_button_box, Gtk::PACK_SHRINK); + m_info_box.pack_start(m_info_label, Gtk::PACK_SHRINK); + m_info_box.set_border_width(6); + m_info_box.show(); + + m_info_frame.set_shadow_type(Gtk::SHADOW_IN); + m_info_frame.add(m_info_box); + // Don't show infoframe by default + + pack_start(m_info_frame, Gtk::PACK_SHRINK); +} + +Gobby::SessionView::~SessionView() +{ + g_object_unref(m_session); + //m_session = NULL; // TODO: Any reason to reset this? +} + +void Gobby::SessionView::set_info(const Glib::ustring& info, bool closable) +{ + m_info_label.set_text(info); + + if(closable) m_info_close_button_box.show(); + else m_info_close_button_box.hide(); + + m_info_frame.show(); +} + +void Gobby::SessionView::unset_info() +{ + m_info_frame.hide(); +} + +InfUser* Gobby::SessionView::get_active_user() const +{ + return NULL; +} + +void Gobby::SessionView::active_user_changed(InfUser* new_user) +{ + m_signal_active_user_changed.emit(new_user); +} diff -Nru gobby-infinote-0.4.92/code/core/sessionview.hpp gobby-infinote-0.4.93/code/core/sessionview.hpp --- gobby-infinote-0.4.92/code/core/sessionview.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/sessionview.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,80 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_SESSIONVIEW_HPP_ +#define _GOBBY_SESSIONVIEW_HPP_ + +#include "util/closebutton.hpp" + +#include +#include +#include + +#include + +namespace Gobby +{ + +class SessionView: public Gtk::VBox +{ +public: + typedef sigc::signal SignalActiveUserChanged; + + SessionView(InfSession* session, const Glib::ustring& title, + const Glib::ustring& path, const Glib::ustring& hostname); + virtual ~SessionView(); + + const InfSession* get_session() const { return m_session; } + InfSession* get_session() { return m_session; } + + const Glib::ustring& get_title() const { return m_title; } + const Glib::ustring& get_path() const { return m_path; } + const Glib::ustring& get_hostname() const { return m_hostname; } + + void set_info(const Glib::ustring& info, bool closable); + void unset_info(); + + virtual InfUser* get_active_user() const; + + SignalActiveUserChanged signal_active_user_changed() const + { + return m_signal_active_user_changed; + } + +protected: + void active_user_changed(InfUser* new_user); + + InfSession* m_session; + + const Glib::ustring m_title; + const Glib::ustring m_path; + const Glib::ustring m_hostname; + + Gtk::Frame m_info_frame; + Gtk::VBox m_info_box; + Gtk::HBox m_info_close_button_box; + CloseButton m_info_close_button; + Gtk::Label m_info_label; + +private: + SignalActiveUserChanged m_signal_active_user_changed; +}; + +} + +#endif // _GOBBY_SESSIONVIEW_HPP_ diff -Nru gobby-infinote-0.4.92/code/core/statusbar.cpp gobby-infinote-0.4.93/code/core/statusbar.cpp --- gobby-infinote-0.4.92/code/core/statusbar.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/statusbar.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -33,39 +33,78 @@ return Gtk::Stock::DIALOG_INFO; case Gobby::StatusBar::ERROR: return Gtk::Stock::DIALOG_ERROR; - default: + default: g_assert_not_reached(); } } + + void dispose_dialog(Gtk::MessageDialog* dialog) + { + delete dialog; + } } class Gobby::StatusBar::Message { public: - Message(Gtk::Widget* widget): - m_widget(widget) {} - ~Message() { m_conn.disconnect(); } + Message(Gtk::Widget* widget, + const Glib::ustring& simple, + const Glib::ustring& detail, + sigc::connection timeout_conn = sigc::connection()): + m_widget(widget), m_timeout_conn(timeout_conn), + m_simple_desc(simple), m_detail_desc(detail) + { + } - void set_timeout_connection(sigc::connection timeout_conn) + ~Message() { - m_conn = timeout_conn; + m_timeout_conn.disconnect(); } + void show_dialog() const + { + Gtk::MessageDialog* dialog = new Gtk::MessageDialog( + m_simple_desc, + false, + Gtk::MESSAGE_ERROR, + Gtk::BUTTONS_NONE, + false); + + dialog->add_button(Gtk::Stock::CLOSE, Gtk::RESPONSE_CLOSE); + + dialog->set_secondary_text(m_detail_desc, true); + dialog->signal_response().connect( + sigc::hide( + sigc::bind( + sigc::ptr_fun(dispose_dialog), + dialog))); + dialog->show(); + } + + bool is_error() { return !m_detail_desc.empty(); } + Gtk::Widget* widget() const { return m_widget; } + protected: Gtk::Widget* m_widget; - sigc::connection m_conn; + sigc::connection m_timeout_conn; + Glib::ustring m_simple_desc; + Glib::ustring m_detail_desc; }; -Gobby::StatusBar::StatusBar(Folder& folder, +Gobby::StatusBar::StatusBar(Gtk::Window& window, + Folder& folder, const Preferences& preferences): Gtk::HBox(false, 2), m_folder(folder), m_preferences(preferences), - m_current_document(NULL), m_position_context_id(0) + m_visible_messages(0), m_current_view(NULL), m_position_context_id(0) { pack_end(m_bar_position, Gtk::PACK_SHRINK); m_bar_position.set_size_request(200, -1); m_bar_position.show(); + window.signal_window_state_event().connect( + sigc::mem_fun(*this, &StatusBar::on_window_state_event)); + m_folder.signal_document_removed().connect( sigc::mem_fun(*this, &StatusBar::on_document_removed)); m_folder.signal_document_changed().connect( @@ -84,10 +123,31 @@ } Gobby::StatusBar::MessageHandle -Gobby::StatusBar::add_message(MessageType type, +Gobby::StatusBar::add_message(Gobby::StatusBar::MessageType type, const Glib::ustring& message, + const Glib::ustring& dialog_message, unsigned int timeout) { + if(m_visible_messages >= 12) + { + for(MessageHandle iter = m_list.begin(); + iter != m_list.end(); + ++iter) + { + if(*iter) + { + if((*iter)->is_error()) + remove_message(iter); + else + // only hide message because whoever + // installed it is expecting to be + // able to call remove_message on it + hide_message(iter); + break; + } + } + } + Gtk::HBox* bar = Gtk::manage(new Gtk::HBox); Gtk::Image* image = Gtk::manage(new Gtk::Image( @@ -105,80 +165,147 @@ gtk_widget_style_get(GTK_WIDGET(m_bar_position.gobj()), "shadow-type", &shadow_type, NULL); Gtk::Frame* frame = Gtk::manage(new Gtk::Frame); - frame->set_shadow_type(static_cast(shadow_type)); - frame->add(*bar); - bar->show(); - - pack_start(*frame, Gtk::PACK_EXPAND_WIDGET); - reorder_child(*frame, 0); - frame->show(); - - m_list.push_back(new Message(frame)); - MessageHandle iter(m_list.end()); - --iter; + m_list.push_back(0); + Gobby::StatusBar::MessageHandle iter(--m_list.end()); + sigc::connection timeout_conn; if(timeout) { - sigc::slot slot(sigc::bind_return( + timeout_conn = Glib::signal_timeout().connect_seconds( sigc::bind( + sigc::bind_return( + sigc::mem_fun( + *this, + &StatusBar::remove_message), + false), + iter), + timeout); + } + *iter = new Message(frame, message, dialog_message, timeout_conn); + ++m_visible_messages; + + if(dialog_message.empty()) + { + frame->add(*bar); + } + else + { + Gtk::EventBox *eventbox = Gtk::manage(new Gtk::EventBox); + frame->add(*eventbox); + eventbox->add(*bar); + eventbox->signal_button_press_event().connect( + sigc::bind_return(sigc::bind( sigc::mem_fun( *this, - &StatusBar::remove_message), - iter), - false)); - - sigc::connection timeout_conn = - Glib::signal_timeout().connect_seconds(slot, timeout); + &StatusBar::on_message_clicked), + iter), false)); - (*iter)->set_timeout_connection(timeout_conn); + eventbox->show(); } + frame->set_shadow_type(static_cast(shadow_type)); + bar->show(); + + pack_start(*frame, Gtk::PACK_EXPAND_WIDGET); + reorder_child(*frame, 0); + + frame->show(); + return iter; } +Gobby::StatusBar::MessageHandle +Gobby::StatusBar::add_info_message(const Glib::ustring& message, + unsigned int timeout) +{ + MessageHandle handle = + Gobby::StatusBar::add_message(INFO, message, "", timeout); + // Caller is not allowed to hold on to handles to messages that we are + // going to delete anyway. + if(timeout) + return invalid_handle(); + else + return handle; +} + +void +Gobby::StatusBar::add_error_message(const Glib::ustring& brief_desc, + const Glib::ustring& detailed_desc, + unsigned int timeout) +{ + Gobby::StatusBar::add_message(ERROR, + brief_desc, + detailed_desc, + timeout); +} + void Gobby::StatusBar::remove_message(const MessageHandle& handle) { - remove(*(*handle)->widget()); - delete *handle; + hide_message(handle); m_list.erase(handle); } +void Gobby::StatusBar::hide_message(const MessageHandle& handle) +{ + if(*handle != 0) + { + g_assert(m_visible_messages > 0); + --m_visible_messages; + remove(*(*handle)->widget()); + delete *handle; + *handle = 0; + } +} + Gobby::StatusBar::MessageHandle Gobby::StatusBar::invalid_handle() { return m_list.end(); } -void Gobby::StatusBar::on_document_removed(DocWindow& document) +void Gobby::StatusBar::on_message_clicked(GdkEventButton* button, + const MessageHandle& handle) { - if(m_current_document == &document) + if(button->button == 1) + (*handle)->show_dialog(); + + remove_message(handle); +} + +void Gobby::StatusBar::on_document_removed(SessionView& view) +{ + if(m_current_view == &view) { GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); g_signal_handler_disconnect(buffer, m_mark_set_handler); g_signal_handler_disconnect(buffer, m_changed_handler); + g_signal_handler_disconnect(m_current_view->get_text_view(), + m_toverwrite_handler); - m_current_document = NULL; + m_current_view = NULL; } } -void Gobby::StatusBar::on_document_changed(DocWindow* document) +void Gobby::StatusBar::on_document_changed(SessionView* view) { - if(m_current_document) + if(m_current_view) { GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); g_signal_handler_disconnect(buffer, m_mark_set_handler); g_signal_handler_disconnect(buffer, m_changed_handler); + g_signal_handler_disconnect(m_current_view->get_text_view(), + m_toverwrite_handler); } - m_current_document = document; + m_current_view = dynamic_cast(view); - if(document) + if(m_current_view) { - GtkTextBuffer* buffer = - GTK_TEXT_BUFFER(document->get_text_buffer()); + GtkTextBuffer* buffer = GTK_TEXT_BUFFER( + m_current_view->get_text_buffer()); m_mark_set_handler = g_signal_connect_after( G_OBJECT(buffer), "mark-set", @@ -188,9 +315,13 @@ G_OBJECT(buffer), "changed", G_CALLBACK(on_changed_static), this); - // Initial update - update_pos_display(); + m_toverwrite_handler = g_signal_connect_after( + G_OBJECT(GTK_TEXT_VIEW(m_current_view->get_text_view())), "notify::overwrite", + G_CALLBACK(on_toggled_overwrite_static), this); } + + // Initial update + update_pos_display(); } void Gobby::StatusBar::on_view_changed() @@ -202,28 +333,44 @@ void Gobby::StatusBar::on_mark_set(GtkTextMark* mark) { GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); if(mark == gtk_text_buffer_get_insert(buffer)) update_pos_display(); } +void Gobby::StatusBar::on_toggled_overwrite() +{ + update_pos_display(); +} + void Gobby::StatusBar::on_changed() { update_pos_display(); } +bool Gobby::StatusBar::on_window_state_event(GdkEventWindowState* event) +{ + if (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) + m_bar_position.set_has_resize_grip(false); + else + m_bar_position.set_has_resize_grip(true); + + return true; +} + void Gobby::StatusBar::update_pos_display() { if(m_position_context_id) m_bar_position.remove_message(m_position_context_id); - if(m_current_document != NULL) + if(m_current_view != NULL) { GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); GtkTextIter iter; + // TODO: Use TextSessionView::get_cursor_position()? gtk_text_buffer_get_iter_at_mark( buffer, &iter, gtk_text_buffer_get_insert(buffer)); @@ -241,10 +388,15 @@ ++ column; } + // TODO: We might want to have a separate widget for the + // OVR/INS display. m_position_context_id = m_bar_position.push( Glib::ustring::compose( - _("Ln %1, Col %2"), + _("Ln %1, Col %2\t%3"), gtk_text_iter_get_line(&iter) + 1, - column + 1)); + column + 1, + gtk_text_view_get_overwrite(GTK_TEXT_VIEW(m_current_view->get_text_view())) ? _("OVR") : _("INS") + ) + ); } } diff -Nru gobby-infinote-0.4.92/code/core/statusbar.hpp gobby-infinote-0.4.93/code/core/statusbar.hpp --- gobby-infinote-0.4.92/code/core/statusbar.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/statusbar.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -22,6 +22,8 @@ #include "folder.hpp" #include +#include +#include #include #include @@ -50,18 +52,31 @@ typedef MessageList::iterator MessageHandle; - StatusBar(Folder& folder, const Preferences& preferences); + StatusBar(Gtk::Window& window, + Folder& folder, + const Preferences& preferences); ~StatusBar(); - MessageHandle add_message(MessageType type, - const Glib::ustring& message, - unsigned int timeout); // timeout in seconds + MessageHandle add_info_message(const Glib::ustring& message, + unsigned int timeout = 0); + + // This does not return a message handle because users dispose of + // messages by clicking on them. + void add_error_message(const Glib::ustring& brief_desc, + const Glib::ustring& detailed_desc, + unsigned int timeout = 0); void remove_message(const MessageHandle& handle); + void hide_message(const MessageHandle& handle); MessageHandle invalid_handle(); protected: + MessageHandle add_message(MessageType type, + const Glib::ustring& message, + const Glib::ustring& dialog_message, + unsigned int timeout = 0); + static void on_mark_set_static(GtkTextBuffer* buffer, GtkTextIter* location, GtkTextMark* mark, @@ -76,23 +91,37 @@ static_cast(user_data)->on_changed(); } - void on_document_removed(DocWindow& document); - void on_document_changed(DocWindow* document); + static void on_toggled_overwrite_static(GtkTextView* buffer, + GParamSpec* pspec, + gpointer user_data) + { + static_cast(user_data)->on_toggled_overwrite(); + } + + void on_message_clicked(GdkEventButton* button, + const MessageHandle& handle); + + void on_document_removed(SessionView& view); + void on_document_changed(SessionView* view); void on_view_changed(); - + void on_mark_set(GtkTextMark* mark); + void on_toggled_overwrite(); void on_changed(); + bool on_window_state_event(GdkEventWindowState* event); void update_pos_display(); Folder& m_folder; const Preferences& m_preferences; MessageList m_list; + unsigned int m_visible_messages; Gtk::Statusbar m_bar_position; - DocWindow* m_current_document; + TextSessionView* m_current_view; gulong m_mark_set_handler; gulong m_changed_handler; + gulong m_toverwrite_handler; guint m_position_context_id; }; diff -Nru gobby-infinote-0.4.92/code/core/tablabel.cpp gobby-infinote-0.4.93/code/core/tablabel.cpp --- gobby-infinote-0.4.92/code/core/tablabel.cpp 2009-12-26 21:00:32.000000000 +0000 +++ gobby-infinote-0.4.93/code/core/tablabel.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,143 +21,57 @@ #include -Gobby::TabLabel::UserWatcher::UserWatcher(TabLabel* l, InfTextUser* u): - label(l), user(u) -{ - connect(); -} - -Gobby::TabLabel::UserWatcher::UserWatcher(const UserWatcher& other): - label(other.label), user(other.user) -{ - connect(); -} - -Gobby::TabLabel::UserWatcher::~UserWatcher() -{ - g_signal_handler_disconnect(user, handle); -} - -InfTextUser* Gobby::TabLabel::UserWatcher::get_user() const -{ - return user; -} - -bool Gobby::TabLabel::UserWatcher::operator==(InfTextUser* other_user) const -{ - return user == other_user; -} - -void Gobby::TabLabel::UserWatcher::connect() -{ - handle = g_signal_connect( - G_OBJECT(user), "notify::hue", - G_CALLBACK(&UserWatcher::on_notify_hue), label); -} - -void Gobby::TabLabel::UserWatcher::on_notify_hue(GObject* user_object, - GParamSpec* spec, - gpointer user_data) -{ - static_cast(user_data)->update_dots(); -} - - -Gobby::TabLabel::TabLabel(Folder& folder, DocWindow& document): - Gtk::HBox(false, 6), - m_folder(folder), m_document(document), - m_dot_char(0), m_changed(false) +Gobby::TabLabel::TabLabel(Folder& folder, SessionView& view, + Gtk::StockID active_icon): + Gtk::HBox(false, 6), m_folder(folder), m_view(view), + m_title(view.get_title()), m_changed(false), + m_active_icon(active_icon) { m_title.set_alignment(Gtk::ALIGN_LEFT); update_icon(); update_color(); - update_modified(); m_icon.show(); m_title.show(); + m_extra.show(); m_button.show(); - m_notify_editable_handle = g_signal_connect( - G_OBJECT(document.get_text_view()), "notify::editable", - G_CALLBACK(on_notify_editable_static), this); + view.signal_active_user_changed().connect( + sigc::mem_fun(*this, &TabLabel::on_active_user_changed)); + m_notify_status_handle = g_signal_connect( - G_OBJECT(document.get_session()), "notify::status", + G_OBJECT(view.get_session()), "notify::status", G_CALLBACK(on_notify_status_static), this); m_notify_subscription_group_handle = g_signal_connect( - G_OBJECT(document.get_session()), + G_OBJECT(view.get_session()), "notify::subscription-group", G_CALLBACK(on_notify_subscription_group_static), this); - m_modified_changed_handle = g_signal_connect_after( - G_OBJECT(document.get_text_buffer()), "modified-changed", - G_CALLBACK(on_modified_changed_static), this); - - InfTextBuffer* buffer = - INF_TEXT_BUFFER( - inf_session_get_buffer( - INF_SESSION(document.get_session()))); - m_insert_text_handle = g_signal_connect_after( - G_OBJECT(buffer), "insert-text", - G_CALLBACK(on_insert_text_static), this); - m_erase_text_handle = g_signal_connect_after( - G_OBJECT(buffer), "erase-text", - G_CALLBACK(on_erase_text_static), this); m_folder.signal_document_changed().connect( sigc::mem_fun(*this, &TabLabel::on_folder_document_changed)); pack_start(m_icon, Gtk::PACK_SHRINK); pack_start(m_title, Gtk::PACK_SHRINK); - pack_start(m_dots, Gtk::PACK_SHRINK); + pack_start(m_extra, Gtk::PACK_EXPAND_WIDGET); pack_end(m_button, Gtk::PACK_SHRINK); } Gobby::TabLabel::~TabLabel() { - g_signal_handler_disconnect(m_document.get_text_view(), - m_notify_editable_handle); - g_signal_handler_disconnect(m_document.get_session(), + g_signal_handler_disconnect(m_view.get_session(), m_notify_status_handle); - g_signal_handler_disconnect(m_document.get_session(), + g_signal_handler_disconnect(m_view.get_session(), m_notify_subscription_group_handle); - g_signal_handler_disconnect(m_document.get_text_buffer(), - m_modified_changed_handle); - InfTextBuffer* buffer = - INF_TEXT_BUFFER( - inf_session_get_buffer( - INF_SESSION(m_document.get_session()))); - g_signal_handler_disconnect(buffer, m_erase_text_handle); - g_signal_handler_disconnect(buffer, m_insert_text_handle); } -void Gobby::TabLabel::on_style_changed(const Glib::RefPtr& prev) +void Gobby::TabLabel::on_folder_document_changed(SessionView* view) { - Gtk::HBox::on_style_changed(prev); - - static const gunichar dot_chars[] = { - 0x270E, /* pencil */ - 0x26AB, /* medium black circle */ - 0x25CF, /* black circle */ - 0x002A, /* asterisk */ - 0x0000 - }; - - // Find a glyph for the user dots - const gunichar* c; - for(c = dot_chars; *c; ++c) - { - m_dots.set_text(Glib::ustring(1, *c)); - if(m_dots.get_layout()->get_unknown_glyphs_count() == 0) - break; - } - - m_dot_char = *c; - - // Update dots using this char - update_dots(); + if(view == &m_view) + on_activate(); } -void Gobby::TabLabel::on_notify_editable() +void Gobby::TabLabel::on_active_user_changed(InfUser* user) { update_icon(); } @@ -166,7 +80,6 @@ { update_icon(); update_color(); - update_modified(); } void Gobby::TabLabel::on_notify_subscription_group() @@ -175,53 +88,24 @@ update_color(); } -void Gobby::TabLabel::on_modified_changed() -{ - update_modified(); -} - -void Gobby::TabLabel::on_changed(InfTextUser* author) +void Gobby::TabLabel::on_activate() { - if(m_folder.get_current_document() != &m_document) - { - // TODO: remove dot if all the user's - // new contributions where undone - if (std::find(m_changed_by.begin(), m_changed_by.end(), author) - == m_changed_by.end()) - { - m_changed_by.push_back(UserWatcher(this, author)); - update_dots(); - } - - if(!m_changed) - { - InfSession* session = - INF_SESSION(m_document.get_session()); - if(inf_session_get_status(session) == - INF_SESSION_RUNNING) - { - m_changed = true; - update_color(); - } - } - } + m_changed = false; + update_color(); } -void Gobby::TabLabel::on_folder_document_changed(DocWindow* document) +void Gobby::TabLabel::set_changed() { - if(document == &m_document) + if(m_folder.get_current_document() != &m_view) { - m_changed_by.clear(); - update_dots(); - m_changed = false; + m_changed = true; update_color(); } } void Gobby::TabLabel::update_icon() { - InfSession* session = INF_SESSION(m_document.get_session()); - GtkTextView* view = GTK_TEXT_VIEW(m_document.get_text_view()); + InfSession* session = INF_SESSION(m_view.get_session()); if(inf_session_get_subscription_group(session) == NULL) { @@ -231,13 +115,14 @@ { switch(inf_session_get_status(session)) { + case INF_SESSION_PRESYNC: case INF_SESSION_SYNCHRONIZING: m_icon.set(Gtk::Stock::EXECUTE, Gtk::ICON_SIZE_MENU); break; case INF_SESSION_RUNNING: - if(gtk_text_view_get_editable(view)) + if(m_view.get_active_user() != NULL) { - m_icon.set(Gtk::Stock::EDIT, + m_icon.set(m_active_icon, Gtk::ICON_SIZE_MENU); } else @@ -256,7 +141,7 @@ void Gobby::TabLabel::update_color() { - InfSession* session = INF_SESSION(m_document.get_session()); + InfSession* session = INF_SESSION(m_view.get_session()); if(m_changed) { @@ -286,50 +171,3 @@ default_style->get_fg(Gtk::STATE_NORMAL)); } } - -void Gobby::TabLabel::update_modified() -{ - InfSession* session = INF_SESSION(m_document.get_session()); - bool modified = gtk_text_buffer_get_modified( - GTK_TEXT_BUFFER(m_document.get_text_buffer())); - - if(inf_session_get_status(session) == INF_SESSION_SYNCHRONIZING) - modified = false; - - if(modified) - m_title.set_text("*" + m_document.get_title()); - else - m_title.set_text(m_document.get_title()); -} - -void Gobby::TabLabel::update_dots() -{ - if (m_changed_by.empty()) - { - m_dots.hide(); - } - else - { - Glib::ustring markup; - for (std::list::const_iterator i = m_changed_by.begin(); - i != m_changed_by.end(); - ++i) - { - Gdk::Color c; - c.set_hsv(360.0 * inf_text_user_get_hue(i->get_user()), 0.6, 0.6); - - // We are using the C API here since - // gdk_color_to_string is available since GTK 2.12, - // but Gdk::Color::to_string only since gtkmm 2.14, - // and we want to require nothing more recent than - // 2.12 for now. See also bug #447. - gchar* color_str = gdk_color_to_string(c.gobj()); - Glib::ustring cpp_color_str(color_str); - g_free(color_str); - - markup += "" + m_dot_char + ""; - } - m_dots.set_markup(markup); - m_dots.show(); - } -} diff -Nru gobby-infinote-0.4.92/code/core/tablabel.hpp gobby-infinote-0.4.93/code/core/tablabel.hpp --- gobby-infinote-0.4.92/code/core/tablabel.hpp 2009-04-26 10:41:58.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/tablabel.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -19,14 +19,10 @@ #ifndef _GOBBY_TABLABEL_HPP_ #define _GOBBY_TABLABEL_HPP_ -#include "core/docwindow.hpp" -#include "util/closebutton.hpp" +#include "core/sessionview.hpp" #include #include -#include - -#include namespace Gobby { @@ -38,8 +34,8 @@ public: typedef Glib::SignalProxy0 SignalCloseRequest; - TabLabel(Folder& folder, DocWindow& document); - ~TabLabel(); + TabLabel(Folder& folder, SessionView& view, Gtk::StockID active_icon); + virtual ~TabLabel(); SignalCloseRequest signal_close_request() { @@ -47,13 +43,6 @@ } protected: - static void on_notify_editable_static(GObject* object, - GParamSpec* pspec, - gpointer user_data) - { - static_cast(user_data)->on_notify_editable(); - } - static void on_notify_status_static(GObject* object, GParamSpec* pspec, gpointer user_data) @@ -69,96 +58,36 @@ on_notify_subscription_group(); } - static void on_modified_changed_static(GtkTextBuffer* buffer, - gpointer user_data) - { - static_cast(user_data)->on_modified_changed(); - } - - static void on_erase_text_static(InfTextBuffer* buffer, - guint position, - guint length, - InfTextUser* author, - gpointer user_data) - { - static_cast(user_data)->on_changed(author); - } - - static void on_insert_text_static(InfTextBuffer* buffer, - guint position, - InfTextChunk* text, - InfTextUser* author, - gpointer user_data) - { - static_cast(user_data)->on_changed(author); - } - - virtual void on_style_changed(const Glib::RefPtr& prev); - - void on_notify_editable(); - void on_notify_status(); - void on_notify_subscription_group(); + void on_folder_document_changed(SessionView* view); - void on_modified_changed(); - void on_changed(InfTextUser* author); + // Can be overriden by derived classes: + virtual void on_active_user_changed(InfUser* user); + virtual void on_notify_status(); + virtual void on_notify_subscription_group(); + virtual void on_activate(); - void on_folder_document_changed(DocWindow* document); - - void update_icon(); - void update_color(); - void update_modified(); - void update_dots(); + // To be called by derived classes: + void set_changed(); Folder& m_folder; - DocWindow& m_document; + SessionView& m_view; Gtk::Image m_icon; Gtk::Label m_title; - Gtk::Label m_dots; + Gtk::HBox m_extra; CloseButton m_button; - gunichar m_dot_char; - - // Whether the document was changed since it has been active. bool m_changed; - gulong m_notify_editable_handle; - gulong m_notify_status_handle; - gulong m_notify_subscription_group_handle; - gulong m_modified_changed_handle; - gulong m_erase_text_handle; - gulong m_insert_text_handle; - - class UserWatcher - { - public: - UserWatcher(TabLabel* l, InfTextUser* u); - - UserWatcher(const UserWatcher& other); - - ~UserWatcher(); - - InfTextUser* get_user() const; - - bool operator==(InfTextUser* other_user) const; - - // UserWatcher& operator=(const UserWatcher& other); - - private: - void connect(); - - void disconnect(); - - static void on_notify_hue(GObject* user_object, - GParamSpec* spec, - gpointer user_data); +private: + void update_icon(); + void update_color(); - TabLabel* label; - InfTextUser* user; - gulong handle; - }; + Gtk::StockID m_active_icon; - std::list m_changed_by; + // Whether the document was changed since it has been active. + gulong m_notify_status_handle; + gulong m_notify_subscription_group_handle; }; } diff -Nru gobby-infinote-0.4.92/code/core/textsessionview.cpp gobby-infinote-0.4.93/code/core/textsessionview.cpp --- gobby-infinote-0.4.92/code/core/textsessionview.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/textsessionview.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,528 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "core/textsessionview.hpp" +#include "util/i18n.hpp" +#include "util/color.hpp" + +#include +#include + +#include + +namespace +{ + GtkWrapMode wrap_mode_from_preferences(const Gobby::Preferences& pref) + { + return static_cast( + static_cast(pref.view.wrap_mode)); + } + + bool glob_matches(const gchar* const* globs, const std::string& str) + { + if(globs) + { + for(const gchar* const* glob = globs; + *glob != NULL; + ++ glob) + { + Glib::PatternSpec spec(*glob); + if(spec.match(str)) + return true; + } + } + + return false; + } + + bool language_matches_title(GtkSourceLanguage* language, + const gchar* title) + { + bool result = false; + gchar** globs = gtk_source_language_get_globs(language); + if(glob_matches(globs, title)) + result = true; + g_strfreev(globs); + return result; + } + + GtkSourceLanguage* + get_language_for_title(GtkSourceLanguageManager* manager, + const gchar* title) + { + const gchar* const* ids = + gtk_source_language_manager_get_language_ids(manager); + + if(ids) + { + for(const gchar* const* id = ids; *id != NULL; ++ id) + { + GtkSourceLanguage* l; + l = gtk_source_language_manager_get_language( + manager, *id); + + if(l) + if(language_matches_title(l, title)) + return l; + } + } + + return NULL; + } + + bool tags_priority_idle_func(Gobby::TextSessionView& view) + { + InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( + inf_session_get_buffer( + INF_SESSION(view.get_session()))); + + inf_text_gtk_buffer_ensure_author_tags_priority(buffer); + + // I don't know why it does not redraw automatically, perhaps + // this is a bug. + gtk_widget_queue_draw(GTK_WIDGET(view.get_text_view())); + return false; + } + + void on_tag_added(GtkTextTagTable* table, GtkTextTag* tag, + gpointer user_data) + { + // We do the actual reordering in an idle handler because + // the priority of the tag might not yet be set to its final + // value. + Glib::signal_idle().connect( + sigc::bind( + sigc::ptr_fun(tags_priority_idle_func), + sigc::ref( + *static_cast( + user_data)))); + } +} + +Gobby::TextSessionView::TextSessionView(InfTextSession* session, + const Glib::ustring& title, + const Glib::ustring& path, + const Glib::ustring& hostname, + const std::string& info_storage_key, + Preferences& preferences, + GtkSourceLanguageManager* manager): + SessionView(INF_SESSION(session), title, path, hostname), + m_info_storage_key(info_storage_key), m_preferences(preferences), + m_view(GTK_SOURCE_VIEW(gtk_source_view_new())) +{ + InfBuffer* buffer = inf_session_get_buffer(INF_SESSION(session)); + m_buffer = GTK_SOURCE_BUFFER(inf_text_gtk_buffer_get_text_buffer( + INF_TEXT_GTK_BUFFER(buffer))); + + g_signal_connect_after( + G_OBJECT(m_view), + "style-set", + G_CALLBACK(on_style_set_static), + this); + + // This is a hack to make sure that the author tags in the textview + // have lowest priority of all tags, especially lower than + // GtkSourceView's FIXME tags. We do this every time a new tag is + // added to the tag table since GtkSourceView seems to create tags + // that it needs on the fly. + GtkTextTagTable* table = gtk_text_buffer_get_tag_table( + GTK_TEXT_BUFFER(m_buffer)); + g_signal_connect(G_OBJECT(table), "tag-added", + G_CALLBACK(on_tag_added), this); + + gtk_widget_set_has_tooltip(GTK_WIDGET(m_view), TRUE); + g_signal_connect(m_view, "query-tooltip", + G_CALLBACK(on_query_tooltip_static), this); + + gtk_text_view_set_buffer(GTK_TEXT_VIEW(m_view), + GTK_TEXT_BUFFER(m_buffer)); + gtk_text_view_set_editable(GTK_TEXT_VIEW(m_view), FALSE); + set_language(get_language_for_title(manager, title.c_str())); + + m_preferences.user.hue.signal_changed().connect( + sigc::mem_fun( + *this, &TextSessionView::on_user_color_changed)); + m_preferences.editor.tab_width.signal_changed().connect( + sigc::mem_fun( + *this, &TextSessionView::on_tab_width_changed)); + m_preferences.editor.tab_spaces.signal_changed().connect( + sigc::mem_fun( + *this, &TextSessionView::on_tab_spaces_changed)); + m_preferences.editor.indentation_auto.signal_changed().connect( + sigc::mem_fun( + *this, &TextSessionView::on_auto_indent_changed)); + m_preferences.editor.homeend_smart.signal_changed().connect( + sigc::mem_fun( + *this, &TextSessionView::on_homeend_smart_changed)); + + m_preferences.view.wrap_mode.signal_changed().connect( + sigc::mem_fun( + *this, &TextSessionView::on_wrap_mode_changed)); + m_preferences.view.linenum_display.signal_changed().connect( + sigc::mem_fun( + *this, &TextSessionView::on_linenum_display_changed)); + m_preferences.view.curline_highlight.signal_changed().connect( + sigc::mem_fun( + *this, + &TextSessionView::on_curline_highlight_changed)); + m_preferences.view.margin_display.signal_changed().connect( + sigc::mem_fun( + *this, &TextSessionView::on_margin_display_changed)); + m_preferences.view.margin_pos.signal_changed().connect( + sigc::mem_fun( + *this, &TextSessionView::on_margin_pos_changed)); + m_preferences.view.bracket_highlight.signal_changed().connect( + sigc::mem_fun( + *this, + &TextSessionView::on_bracket_highlight_changed)); + m_preferences.view.whitespace_display.signal_changed().connect( + sigc::mem_fun( + *this, + &TextSessionView::on_whitespace_display_changed)); + m_preferences.appearance.font.signal_changed().connect( + sigc::mem_fun(*this, &TextSessionView::on_font_changed)); + m_preferences.appearance.scheme_id.signal_changed().connect( + sigc::mem_fun(*this, &TextSessionView::on_scheme_changed)); + gtk_source_view_set_tab_width(m_view, m_preferences.editor.tab_width); + gtk_source_view_set_insert_spaces_instead_of_tabs( + m_view, m_preferences.editor.tab_spaces); + gtk_source_view_set_auto_indent( + m_view, m_preferences.editor.indentation_auto); + gtk_source_view_set_smart_home_end( + m_view, m_preferences.editor.homeend_smart ? + GTK_SOURCE_SMART_HOME_END_ALWAYS : + GTK_SOURCE_SMART_HOME_END_DISABLED); + gtk_text_view_set_wrap_mode( + GTK_TEXT_VIEW(m_view), + wrap_mode_from_preferences(m_preferences)); + gtk_source_view_set_show_line_numbers( + m_view, m_preferences.view.linenum_display); + gtk_source_view_set_highlight_current_line( + m_view, m_preferences.view.curline_highlight); + gtk_source_view_set_show_right_margin( + m_view, m_preferences.view.margin_display); + gtk_source_view_set_right_margin_position( + m_view, m_preferences.view.margin_pos); + gtk_source_buffer_set_highlight_matching_brackets( + m_buffer, m_preferences.view.bracket_highlight); + gtk_source_view_set_draw_spaces( + m_view, m_preferences.view.whitespace_display); + const Pango::FontDescription& desc = m_preferences.appearance.font; + gtk_widget_modify_font( + GTK_WIDGET(m_view), + const_cast(desc.gobj())); + + gtk_widget_show(GTK_WIDGET(m_view)); + Gtk::ScrolledWindow* scroll = Gtk::manage(new Gtk::ScrolledWindow); + scroll->set_shadow_type(Gtk::SHADOW_IN); + scroll->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); + gtk_container_add(GTK_CONTAINER(scroll->gobj()), GTK_WIDGET(m_view)); + scroll->show(); + + pack_start(*scroll, Gtk::PACK_EXPAND_WIDGET); + + gtk_source_buffer_set_style_scheme(m_buffer, gtk_source_style_scheme_manager_get_scheme(gtk_source_style_scheme_manager_get_default(), static_cast(preferences.appearance.scheme_id).c_str())); +} + +void Gobby::TextSessionView::get_cursor_position(unsigned int& row, + unsigned int& col) const +{ + GtkTextMark* insert_mark = + gtk_text_buffer_get_insert(GTK_TEXT_BUFFER(m_buffer)); + + GtkTextIter iter; + gtk_text_buffer_get_iter_at_mark(GTK_TEXT_BUFFER(m_buffer), + &iter, insert_mark); + + row = gtk_text_iter_get_line(&iter); + col = 0; + + unsigned int chars = gtk_text_iter_get_line_offset(&iter); + unsigned int tabs = m_preferences.editor.tab_width; + + // Tab characters expand to more than one column + for(gtk_text_iter_set_line_offset(&iter, 0); + gtk_text_iter_get_line_offset(&iter) < chars; + gtk_text_iter_forward_char(&iter)) + { + unsigned int width = 1; + if(gtk_text_iter_get_char(&iter) == '\t') + { + unsigned int offset = + gtk_text_iter_get_line_offset(&iter); + width = (tabs - offset % tabs) % tabs; + if(width == 0) width = tabs; + } + + col += width; + } +} + +void Gobby::TextSessionView::set_selection(const GtkTextIter* begin, + const GtkTextIter* end) +{ + gtk_text_buffer_select_range( + gtk_text_view_get_buffer(GTK_TEXT_VIEW(m_view)), begin, end); + + scroll_to_cursor_position(0.1); +} + +Glib::ustring Gobby::TextSessionView::get_selected_text() const +{ + GtkTextIter start, end; + gtk_text_buffer_get_selection_bounds( + gtk_text_view_get_buffer(GTK_TEXT_VIEW(m_view)), + &start, &end); + + Gtk::TextIter start_cpp(&start), end_cpp(&end); + return start_cpp.get_slice(end_cpp); +} + +void Gobby::TextSessionView::scroll_to_cursor_position(double within_margin) +{ + gtk_text_view_scroll_to_mark( + GTK_TEXT_VIEW(m_view), + gtk_text_buffer_get_insert(gtk_text_view_get_buffer( + GTK_TEXT_VIEW(m_view))), + within_margin, FALSE, 0.0, 0.0); +} + +InfUser* Gobby::TextSessionView::get_active_user() const +{ + InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( + inf_session_get_buffer(INF_SESSION(m_session))); + return INF_USER(inf_text_gtk_buffer_get_active_user(buffer)); +} + +void Gobby::TextSessionView::set_active_user(InfTextUser* user) +{ + g_assert( + user == NULL || + inf_user_table_lookup_user_by_id( + inf_session_get_user_table(INF_SESSION(m_session)), + inf_user_get_id(INF_USER(user))) + == INF_USER(user)); + + inf_text_gtk_buffer_set_active_user( + INF_TEXT_GTK_BUFFER( + inf_session_get_buffer(INF_SESSION(m_session))), + user); + + // TODO: Make sure the active user has the color specified in the + // preferences, and set color if not. + + if(user != NULL) + gtk_text_view_set_editable(GTK_TEXT_VIEW(m_view), TRUE); + else + gtk_text_view_set_editable(GTK_TEXT_VIEW(m_view), FALSE); + + active_user_changed(INF_USER(user)); + + if(user != NULL) + { + m_undo_grouping.reset( + new TextUndoGrouping( + inf_adopted_session_get_algorithm( + INF_ADOPTED_SESSION(m_session)), + user, GTK_TEXT_BUFFER(m_buffer))); + } + else + { + m_undo_grouping.reset(NULL); + } +} + +GtkSourceLanguage* Gobby::TextSessionView::get_language() const +{ + return gtk_source_buffer_get_language(m_buffer); +} + +void Gobby::TextSessionView::set_language(GtkSourceLanguage* language) +{ + gtk_source_buffer_set_language(m_buffer, language); + m_signal_language_changed.emit(language); +} + +void Gobby::TextSessionView::on_user_color_changed() +{ + InfTextUser* user = INF_TEXT_USER(get_active_user()); + + if(user) + { + inf_text_session_set_user_color(get_session(), user, + m_preferences.user.hue); + } +} + +void Gobby::TextSessionView::on_tab_width_changed() +{ + gtk_source_view_set_tab_width(m_view, m_preferences.editor.tab_width); +} + +void Gobby::TextSessionView::on_tab_spaces_changed() +{ + gtk_source_view_set_insert_spaces_instead_of_tabs( + m_view, m_preferences.editor.tab_spaces); +} + +void Gobby::TextSessionView::on_auto_indent_changed() +{ + gtk_source_view_set_auto_indent( + m_view, m_preferences.editor.indentation_auto); +} + +void Gobby::TextSessionView::on_homeend_smart_changed() +{ + gtk_source_view_set_smart_home_end( + m_view, m_preferences.editor.homeend_smart ? + GTK_SOURCE_SMART_HOME_END_ALWAYS : + GTK_SOURCE_SMART_HOME_END_DISABLED); +} + +void Gobby::TextSessionView::on_wrap_mode_changed() +{ + gtk_text_view_set_wrap_mode( + GTK_TEXT_VIEW(m_view), + wrap_mode_from_preferences(m_preferences)); +} + +void Gobby::TextSessionView::on_linenum_display_changed() +{ + gtk_source_view_set_show_line_numbers( + m_view, m_preferences.view.linenum_display); +} + +void Gobby::TextSessionView::on_curline_highlight_changed() +{ + gtk_source_view_set_highlight_current_line( + m_view, m_preferences.view.curline_highlight); +} + +void Gobby::TextSessionView::on_margin_display_changed() +{ + gtk_source_view_set_show_right_margin( + m_view, m_preferences.view.margin_display); +} + +void Gobby::TextSessionView::on_margin_pos_changed() +{ + gtk_source_view_set_right_margin_position( + m_view, m_preferences.view.margin_pos); +} + +void Gobby::TextSessionView::on_bracket_highlight_changed() +{ + gtk_source_buffer_set_highlight_matching_brackets( + m_buffer, m_preferences.view.bracket_highlight); +} + +void Gobby::TextSessionView::on_whitespace_display_changed() +{ + gtk_source_view_set_draw_spaces( + m_view, m_preferences.view.whitespace_display); +} + +void Gobby::TextSessionView::on_font_changed() +{ + const Pango::FontDescription& desc = m_preferences.appearance.font; + gtk_widget_modify_font( + GTK_WIDGET(m_view), + const_cast(desc.gobj())); +} + +void Gobby::TextSessionView::on_scheme_changed() +{ + gtk_source_buffer_set_style_scheme(m_buffer, gtk_source_style_scheme_manager_get_scheme(gtk_source_style_scheme_manager_get_default(), static_cast(m_preferences.appearance.scheme_id).c_str())); +} + +bool Gobby::TextSessionView:: + on_query_tooltip(int x, int y, bool keyboard_mode, + const Glib::RefPtr& tooltip) +{ + if(keyboard_mode) return false; + + int buffer_x, buffer_y; + gtk_text_view_window_to_buffer_coords( + GTK_TEXT_VIEW(m_view), + GTK_TEXT_WINDOW_WIDGET, x, y, &buffer_x, &buffer_y); + + // Pointer is in line number display + if(buffer_x < 0) return false; + + // Get the character at the mouse position + GtkTextIter iter; + int trailing; + gtk_text_view_get_iter_at_position( + GTK_TEXT_VIEW(m_view), &iter, &trailing, buffer_x, buffer_y); + + // Don't show a tooltip if the character is a newline character */ + //if(gtk_text_iter_is_end(&iter)) return false; + if(gtk_text_iter_ends_line(&iter)) return false; + + // Don't show a tooltip if we are past the end of the line + GdkRectangle newline_location; + GtkTextIter line_end = iter; + gtk_text_iter_forward_to_line_end(&line_end); + gtk_text_view_get_iter_location( + GTK_TEXT_VIEW(m_view), &line_end, &newline_location); + + if(buffer_x >= newline_location.x && + buffer_y >= newline_location.y) + { + return false; + } + + InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( + inf_session_get_buffer(INF_SESSION(m_session))); + + InfTextUser* author = inf_text_gtk_buffer_get_author(buffer, &iter); + if(author != NULL) + { + tooltip->set_markup(Glib::ustring::compose( + _("Text written by %1"), + Glib::Markup::escape_text( + inf_user_get_name(INF_USER(author))))); + } + else + { + tooltip->set_text(_("Unowned text")); + } + + return true; +} + +void Gobby::TextSessionView::on_style_set() +{ + GtkStyle* style = gtk_widget_get_style(GTK_WIDGET(m_view)); + g_assert(style != NULL); + + const GdkColor& color = style->base[GTK_STATE_NORMAL]; + double rh = color.red / 65535.0; + double gs = color.green / 65535.0; + double bv = color.blue / 65535.0; + + Gobby::rgb_to_hsv(rh, gs, bv); + + double my_sat = gs * 0.5 + 0.3; + double my_val = (std::pow(bv + 1, 3) - 1) / 7 * 0.6 + 0.4; + + InfTextGtkBuffer* buffer = INF_TEXT_GTK_BUFFER( + inf_session_get_buffer(INF_SESSION(m_session))); + + inf_text_gtk_buffer_set_saturation_value(buffer, my_sat, my_val); +} diff -Nru gobby-infinote-0.4.92/code/core/textsessionview.hpp gobby-infinote-0.4.93/code/core/textsessionview.hpp --- gobby-infinote-0.4.92/code/core/textsessionview.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/textsessionview.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,135 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_TEXTSESSIONVIEW_HPP_ +#define _GOBBY_TEXTSESSIONVIEW_HPP_ + +#include "core/textundogrouping.hpp" +#include "core/sessionview.hpp" +#include "core/preferences.hpp" + +#include + +#include +#include +#include + +#include +#include + +namespace Gobby +{ + +class TextSessionView: public SessionView +{ +public: + typedef sigc::signal SignalLanguageChanged; + + TextSessionView(InfTextSession* session, const Glib::ustring& title, + const Glib::ustring& path, + const Glib::ustring& hostname, + const std::string& info_storage_key, + Preferences& preferences, + GtkSourceLanguageManager* manager); + + InfTextSession* get_session() { return INF_TEXT_SESSION(m_session); } + + const std::string& get_info_storage_key() const + { + return m_info_storage_key; + } + + void get_cursor_position(unsigned int& row, unsigned int& col) const; + void set_selection(const GtkTextIter* begin, + const GtkTextIter* end); + Glib::ustring get_selected_text() const; + void scroll_to_cursor_position(double within_margin); + + GtkSourceLanguage* get_language() const; + void set_language(GtkSourceLanguage* language); + + // cannot overwrite with covariant return type InfTextUser because + // C++ does not know GObject inheritance: + virtual InfUser* get_active_user() const; + void set_active_user(InfTextUser* user); + + // requires active user to be set: + TextUndoGrouping& get_undo_grouping() { return *m_undo_grouping; } + + GtkSourceView* get_text_view() { return m_view; } + GtkSourceBuffer* get_text_buffer() { return m_buffer; } + + SignalLanguageChanged signal_language_changed() const + { + return m_signal_language_changed; + } + +protected: + void on_user_color_changed(); + + void on_tab_width_changed(); + void on_tab_spaces_changed(); + void on_auto_indent_changed(); + void on_homeend_smart_changed(); + + void on_wrap_mode_changed(); + void on_linenum_display_changed(); + void on_curline_highlight_changed(); + void on_margin_display_changed(); + void on_margin_pos_changed(); + void on_bracket_highlight_changed(); + void on_whitespace_display_changed(); + + void on_font_changed(); + void on_scheme_changed(); + + void on_style_set(); + + bool on_query_tooltip(int x, int y, bool keyboard_mode, + const Glib::RefPtr& tooltip); + + static gboolean on_query_tooltip_static(GtkWidget* widget, int x, + int y, gboolean keyboard_mode, + GtkTooltip* tooltip, + gpointer user_data) + { + return static_cast(user_data)-> + on_query_tooltip(x, y, keyboard_mode, + Glib::wrap(tooltip, true)); + } + + static void on_style_set_static(GtkWidget* view, + GtkStyle* previous_style, + gpointer user_data) + { + static_cast(user_data)->on_style_set(); + } + + std::string m_info_storage_key; + Preferences& m_preferences; + + GtkSourceView* m_view; + GtkSourceBuffer* m_buffer; + std::auto_ptr m_undo_grouping; + + SignalLanguageChanged m_signal_language_changed; +}; + +} + +#endif // _GOBBY_TEXTSESSIONVIEW_HPP_ diff -Nru gobby-infinote-0.4.92/code/core/texttablabel.cpp gobby-infinote-0.4.93/code/core/texttablabel.cpp --- gobby-infinote-0.4.92/code/core/texttablabel.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/texttablabel.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,226 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "core/texttablabel.hpp" +#include "core/folder.hpp" + +#include + +Gobby::TextTabLabel::UserWatcher::UserWatcher(TextTabLabel* label, + InfTextUser* user): + m_label(label), m_user(user) +{ + connect(); +} + +Gobby::TextTabLabel::UserWatcher::UserWatcher(const UserWatcher& other): + m_label(other.m_label), m_user(other.m_user) +{ + connect(); +} + +Gobby::TextTabLabel::UserWatcher::~UserWatcher() +{ + g_signal_handler_disconnect(m_user, m_handle); +} + +InfTextUser* Gobby::TextTabLabel::UserWatcher::get_user() const +{ + return m_user; +} + +bool +Gobby::TextTabLabel::UserWatcher::operator==(InfTextUser* other_user) const +{ + return m_user == other_user; +} + +void Gobby::TextTabLabel::UserWatcher::connect() +{ + m_handle = g_signal_connect( + G_OBJECT(m_user), "notify::hue", + G_CALLBACK(&UserWatcher::on_notify_hue), m_label); +} + +void Gobby::TextTabLabel::UserWatcher::on_notify_hue(GObject* user_object, + GParamSpec* spec, + gpointer user_data) +{ + static_cast(user_data)->update_dots(); +} + + +Gobby::TextTabLabel::TextTabLabel(Folder& folder, TextSessionView& view): + TabLabel(folder, view, Gtk::Stock::EDIT), m_dot_char(0) +{ + update_modified(); + update_dots(); + + m_modified_changed_handle = g_signal_connect_after( + G_OBJECT(view.get_text_buffer()), "modified-changed", + G_CALLBACK(on_modified_changed_static), this); + + InfTextBuffer* buffer = + INF_TEXT_BUFFER( + inf_session_get_buffer( + INF_SESSION(view.get_session()))); + m_insert_text_handle = g_signal_connect_after( + G_OBJECT(buffer), "insert-text", + G_CALLBACK(on_insert_text_static), this); + m_erase_text_handle = g_signal_connect_after( + G_OBJECT(buffer), "erase-text", + G_CALLBACK(on_erase_text_static), this); + + m_extra.pack_start(m_dots, Gtk::PACK_SHRINK); +} + +Gobby::TextTabLabel::~TextTabLabel() +{ + TextSessionView& text_view = dynamic_cast(m_view); + + g_signal_handler_disconnect(text_view.get_text_buffer(), + m_modified_changed_handle); + InfTextBuffer* buffer = + INF_TEXT_BUFFER( + inf_session_get_buffer( + INF_SESSION(m_view.get_session()))); + + g_signal_handler_disconnect(buffer, m_erase_text_handle); + g_signal_handler_disconnect(buffer, m_insert_text_handle); +} + +void +Gobby::TextTabLabel::on_style_changed(const Glib::RefPtr& prev) +{ + TabLabel::on_style_changed(prev); + + static const gunichar dot_chars[] = { + 0x270E, /* pencil */ + 0x26AB, /* medium black circle */ + 0x25CF, /* black circle */ + 0x002A, /* asterisk */ + 0x0000 + }; + + // Find a glyph for the user dots + const gunichar* c; + for(c = dot_chars; *c; ++c) + { + m_dots.set_text(Glib::ustring(1, *c)); + if(m_dots.get_layout()->get_unknown_glyphs_count() == 0) + break; + } + + m_dot_char = *c; + + // Update dots using this char + update_dots(); +} + +void Gobby::TextTabLabel::on_notify_status() +{ + TabLabel::on_notify_status(); + update_modified(); +} + +void Gobby::TextTabLabel::on_activate() +{ + TabLabel::on_activate(); + m_changed_by.clear(); + update_dots(); +} + +void Gobby::TextTabLabel::on_modified_changed() +{ + update_modified(); +} + +void Gobby::TextTabLabel::on_changed(InfTextUser* author) +{ + if(!m_changed) + { + InfSession* session = INF_SESSION(m_view.get_session()); + if(inf_session_get_status(session) == INF_SESSION_RUNNING) + set_changed(); + } + + if(m_folder.get_current_document() != &m_view) + { + // TODO: remove dot if all the user's + // new contributions where undone + if(std::find(m_changed_by.begin(), m_changed_by.end(), author) + == m_changed_by.end()) + { + m_changed_by.push_back(UserWatcher(this, author)); + update_dots(); + } + } +} + +void Gobby::TextTabLabel::update_modified() +{ + InfSession* session = INF_SESSION(m_view.get_session()); + bool modified = + inf_buffer_get_modified(inf_session_get_buffer(session)); + + InfSessionStatus status = inf_session_get_status(session); + if(status == INF_SESSION_SYNCHRONIZING || + status == INF_SESSION_PRESYNC) + { + modified = false; + } + + if(modified) + m_title.set_text("*" + m_view.get_title()); + else + m_title.set_text(m_view.get_title()); +} + +void Gobby::TextTabLabel::update_dots() +{ + if (m_changed_by.empty()) + { + m_dots.hide(); + } + else + { + Glib::ustring markup; + for(UserWatcherList::iterator iter = m_changed_by.begin(); + iter != m_changed_by.end(); ++iter) + { + double hue = inf_text_user_get_hue(iter->get_user()); + + Gdk::Color c; + c.set_hsv(360.0 * hue, 0.6, 0.6); + + // We are using the C API here since + // gdk_color_to_string is available since GTK 2.12, + // but Gdk::Color::to_string only since gtkmm 2.14, + // and we want to require nothing more recent than + // 2.12 for now. See also bug #447. + gchar* color_str = gdk_color_to_string(c.gobj()); + Glib::ustring cpp_color_str(color_str); + g_free(color_str); + + markup += "" + + m_dot_char + ""; + } + m_dots.set_markup(markup); + m_dots.show(); + } +} diff -Nru gobby-infinote-0.4.92/code/core/texttablabel.hpp gobby-infinote-0.4.93/code/core/texttablabel.hpp --- gobby-infinote-0.4.92/code/core/texttablabel.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/texttablabel.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,109 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_TEXTTABLABEL_HPP_ +#define _GOBBY_TEXTTABLABEL_HPP_ + +#include "core/textsessionview.hpp" +#include "core/tablabel.hpp" + +namespace Gobby +{ + +class TextTabLabel: public TabLabel +{ +public: + TextTabLabel(Folder& folder, TextSessionView& view); + ~TextTabLabel(); + +protected: + static void on_modified_changed_static(GtkTextBuffer* buffer, + gpointer user_data) + { + static_cast(user_data)->on_modified_changed(); + } + + static void on_erase_text_static(InfTextBuffer* buffer, + guint position, + guint length, + InfTextUser* author, + gpointer user_data) + { + static_cast(user_data)->on_changed(author); + } + + static void on_insert_text_static(InfTextBuffer* buffer, + guint position, + InfTextChunk* text, + InfTextUser* author, + gpointer user_data) + { + static_cast(user_data)->on_changed(author); + } + + virtual void on_style_changed(const Glib::RefPtr& prev); + + virtual void on_notify_status(); // override + virtual void on_activate(); + + void on_modified_changed(); + void on_changed(InfTextUser* author); + + Gtk::Label m_dots; + +private: + void update_modified(); + void update_dots(); + + gunichar m_dot_char; + + gulong m_modified_changed_handle; + gulong m_erase_text_handle; + gulong m_insert_text_handle; + + class UserWatcher + { + public: + UserWatcher(TextTabLabel* label, InfTextUser* user); + UserWatcher(const UserWatcher& other); + ~UserWatcher(); + + InfTextUser* get_user() const; + bool operator==(InfTextUser* other_user) const; + + private: + void connect(); + + void disconnect(); + + static void on_notify_hue(GObject* user_object, + GParamSpec* spec, + gpointer user_data); + + TabLabel* m_label; + InfTextUser* m_user; + gulong m_handle; + }; + + typedef std::list UserWatcherList; + UserWatcherList m_changed_by; +}; + +} + +#endif // _GOBBY_TEXTTABLABEL_HPP_ diff -Nru gobby-infinote-0.4.92/code/core/textundogrouping.cpp gobby-infinote-0.4.93/code/core/textundogrouping.cpp --- gobby-infinote-0.4.92/code/core/textundogrouping.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/textundogrouping.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,76 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "core/textundogrouping.hpp" + +Gobby::TextUndoGrouping::TextUndoGrouping(InfAdoptedAlgorithm* algorithm, + InfTextUser* user, + GtkTextBuffer* buffer): + m_buffer(buffer), m_grouping(inf_text_undo_grouping_new()) +{ + g_object_ref(m_buffer); + + inf_adopted_undo_grouping_set_algorithm( + INF_ADOPTED_UNDO_GROUPING(m_grouping), + algorithm, + INF_ADOPTED_USER(user)); + + m_begin_user_action_handle = g_signal_connect( + G_OBJECT(m_buffer), "begin-user-action", + G_CALLBACK(on_begin_user_action_static), this); + m_end_user_action_handle = g_signal_connect( + G_OBJECT(m_buffer), "end-user-action", + G_CALLBACK(on_end_user_action_static), this); +} + +Gobby::TextUndoGrouping::~TextUndoGrouping() +{ + g_signal_handler_disconnect(m_buffer, m_begin_user_action_handle); + g_signal_handler_disconnect(m_buffer, m_end_user_action_handle); + + g_object_unref(m_grouping); + g_object_unref(m_buffer); +} + +guint Gobby::TextUndoGrouping::get_undo_size() const +{ + return inf_adopted_undo_grouping_get_undo_size( + INF_ADOPTED_UNDO_GROUPING(m_grouping)); +} + +guint Gobby::TextUndoGrouping::get_redo_size() const +{ + return inf_adopted_undo_grouping_get_redo_size( + INF_ADOPTED_UNDO_GROUPING(m_grouping)); +} + +void Gobby::TextUndoGrouping::on_begin_user_action() +{ + // TODO: For paste actions we should not allow merging + inf_adopted_undo_grouping_start_group( + INF_ADOPTED_UNDO_GROUPING(m_grouping), + TRUE); +} + +void Gobby::TextUndoGrouping::on_end_user_action() +{ + // TODO: For paste actions we should not allow merging + inf_adopted_undo_grouping_end_group( + INF_ADOPTED_UNDO_GROUPING(m_grouping), + TRUE); +} diff -Nru gobby-infinote-0.4.92/code/core/textundogrouping.hpp gobby-infinote-0.4.93/code/core/textundogrouping.hpp --- gobby-infinote-0.4.92/code/core/textundogrouping.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/textundogrouping.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,71 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_TEXTUNDOGROUPING_HPP_ +#define _GOBBY_TEXTUNDOGROUPING_HPP_ + +#include +#include +#include + +#include + +namespace Gobby +{ + +class TextUndoGrouping +{ +public: + TextUndoGrouping(InfAdoptedAlgorithm* algorithm, + InfTextUser* user, + GtkTextBuffer* buffer); + ~TextUndoGrouping(); + + guint get_undo_size() const; + guint get_redo_size() const; + +protected: + static void + on_begin_user_action_static(GtkTextBuffer* buffer, + gpointer user_data) + { + static_cast(user_data)-> + on_begin_user_action(); + } + + static void + on_end_user_action_static(GtkTextBuffer* buffer, + gpointer user_data) + { + static_cast(user_data)-> + on_end_user_action(); + } + + void on_begin_user_action(); + void on_end_user_action(); + + GtkTextBuffer* m_buffer; + InfTextUndoGrouping* m_grouping; + + gulong m_begin_user_action_handle; + gulong m_end_user_action_handle; +}; + +} + +#endif // _GOBBY_TEXTSESSIONVIEW_HPP_ diff -Nru gobby-infinote-0.4.92/code/core/titlebar.cpp gobby-infinote-0.4.93/code/core/titlebar.cpp --- gobby-infinote-0.4.92/code/core/titlebar.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/titlebar.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -19,7 +19,7 @@ #include "core/titlebar.hpp" Gobby::TitleBar::TitleBar(Gtk::Window& window, Folder& folder): - m_window(window), m_folder(folder), m_current_document(NULL) + m_window(window), m_folder(folder), m_current_view(NULL) { folder.signal_document_removed().connect( sigc::mem_fun(*this, &TitleBar::on_document_removed)); @@ -29,20 +29,19 @@ on_document_changed(folder.get_current_document()); } -void Gobby::TitleBar::on_document_removed(DocWindow& document) +void Gobby::TitleBar::on_document_removed(SessionView& view) { - if(m_current_document == &document) + // TODO: Isn't this called by Folder already? + if(m_current_view == &view) on_document_changed(NULL); } -void Gobby::TitleBar::on_document_changed(DocWindow* document) +void Gobby::TitleBar::on_document_changed(SessionView* view) { - if(m_current_document != NULL) + if(m_current_view != NULL) { - InfSession* session = INF_SESSION( - m_current_document->get_session()); - GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + InfSession* session = m_current_view->get_session(); + InfBuffer* buffer = inf_session_get_buffer(session); g_signal_handler_disconnect(G_OBJECT(session), m_notify_status_handler); @@ -50,20 +49,19 @@ m_modified_changed_handler); } - m_current_document = document; + m_current_view = view; - if(document != NULL) + if(view != NULL) { - InfSession* session = INF_SESSION(document->get_session()); - GtkTextBuffer* buffer = - GTK_TEXT_BUFFER(document->get_text_buffer()); + InfSession* session = view->get_session(); + InfBuffer* buffer = inf_session_get_buffer(session); m_notify_status_handler = g_signal_connect( G_OBJECT(session), "notify::status", G_CALLBACK(on_notify_status_static), this); m_modified_changed_handler = g_signal_connect( - G_OBJECT(buffer), "modified-changed", - G_CALLBACK(on_modified_changed_static), this); + G_OBJECT(buffer), "notify::modified", + G_CALLBACK(on_notify_modified_static), this); } update_title(); @@ -74,7 +72,7 @@ update_title(); } -void Gobby::TitleBar::on_modified_changed() +void Gobby::TitleBar::on_notify_modified() { update_title(); } @@ -83,24 +81,22 @@ { // TODO: Show path, as gedit does. This requires change notification // for document info storage. - if(m_current_document != NULL) + if(m_current_view != NULL) { - InfSession* session = INF_SESSION( - m_current_document->get_session()); - GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + InfSession* session = m_current_view->get_session(); + InfBuffer* buffer = inf_session_get_buffer(session); InfSessionStatus status = inf_session_get_status(session); if(status == INF_SESSION_SYNCHRONIZING || - !gtk_text_buffer_get_modified(buffer)) + !inf_buffer_get_modified(buffer)) { m_window.set_title( - m_current_document->get_title() + " - Gobby"); + m_current_view->get_title() + " - Gobby"); } else { m_window.set_title( - "*" + m_current_document->get_title() + + "*" + m_current_view->get_title() + " - Gobby"); } } diff -Nru gobby-infinote-0.4.92/code/core/titlebar.hpp gobby-infinote-0.4.93/code/core/titlebar.hpp --- gobby-infinote-0.4.92/code/core/titlebar.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/titlebar.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -20,7 +20,7 @@ #define _GOBBY_TITLEBAR_HPP_ #include "core/folder.hpp" -#include "core/docwindow.hpp" +#include "core/sessionview.hpp" #include #include @@ -41,23 +41,24 @@ static_cast(user_data)->on_notify_status(); } - static void on_modified_changed_static(GtkTextBuffer* buffer, - gpointer user_data) + static void on_notify_modified_static(InfBuffer* buffer, + GParamSpec* pspec, + gpointer user_data) { - static_cast(user_data)->on_modified_changed(); + static_cast(user_data)->on_notify_modified(); } - void on_document_removed(DocWindow& document); - void on_document_changed(DocWindow* document); + void on_document_removed(SessionView& view); + void on_document_changed(SessionView* view); void on_notify_status(); - void on_modified_changed(); + void on_notify_modified(); void update_title(); Gtk::Window& m_window; Folder& m_folder; - DocWindow* m_current_document; + SessionView* m_current_view; gulong m_notify_status_handler; gulong m_modified_changed_handler; diff -Nru gobby-infinote-0.4.92/code/core/userlist.cpp gobby-infinote-0.4.93/code/core/userlist.cpp --- gobby-infinote-0.4.92/code/core/userlist.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/userlist.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -17,6 +17,7 @@ */ #include "core/userlist.hpp" +#include "core/iconmanager.hpp" #include "util/i18n.hpp" #include "util/color.hpp" @@ -28,74 +29,55 @@ namespace { - typedef sigc::slot ForeachUserFunc; + typedef sigc::slot ForeachUserFunc; void foreach_user_ctor_func(InfUser* user, gpointer user_data) { - (*static_cast(user_data)) - (INF_TEXT_USER(user)); + (*static_cast(user_data))(user); } - void draw_pixel(const Glib::RefPtr& pixbuf, int x, int y, - const Gdk::Color& color) + Glib::RefPtr generate_user_color_pixbuf(Gtk::Widget& w, + gdouble hue) { - guint8* pixels = pixbuf->get_pixels(); - guint8* pixel = pixels + y * pixbuf->get_rowstride() + - x * pixbuf->get_n_channels(); - *pixel++ = (color.get_red() >> 8); - *pixel++ = (color.get_green() >> 8); - *pixel++ = (color.get_blue() >> 8); - } - - void draw_vline(const Glib::RefPtr& pixbuf, int x, - int y1, int y2, const Gdk::Color& color) - { - for(int y = y1; y < y2; ++ y) - draw_pixel(pixbuf, x, y, color); - } - - void draw_hline(const Glib::RefPtr& pixbuf, int x1, - int x2, int y, const Gdk::Color& color) - { - for(int x = x1; x < x2; ++ x) - draw_pixel(pixbuf, x, y, color); - } - - void draw_rectangle(const Glib::RefPtr& pixbuf, int x1, - int y1, int x2, int y2, const Gdk::Color& color) - { - for(int y = y1; y < y2; ++ y) - for(int x = x1; x < x2; ++ x) - draw_pixel(pixbuf, x, y, color); - } - - Glib::RefPtr generate_user_color_pixbuf(gdouble hue) - { - // TODO: Play around with hue, saturation and value to get - // a cool effect instead of a monochromatic icon. - Gdk::Color color = Gobby::hue_to_gdk_color(hue, 0.35, 1.0); - Gdk::Color black("#000000"); - - int width, height; - Gtk::IconSize::lookup(Gtk::ICON_SIZE_MENU, width, height); - - Glib::RefPtr pixbuf( - Gdk::Pixbuf::create( - Gdk::COLORSPACE_RGB, false, 8, - width, height)); - - draw_hline(pixbuf, 0, width, 0, black); - draw_hline(pixbuf, 0, width, height - 1, black); - draw_vline(pixbuf, 0, 1, height - 1, black); - draw_vline(pixbuf, width-1, 1, height - 1, black); - draw_rectangle(pixbuf, 1, 1, width - 1, height - 1, color); + Glib::RefPtr pixbuf = w.render_icon( + Gobby::IconManager::STOCK_USER_COLOR_INDICATOR, + Gtk::ICON_SIZE_MENU); + + // pixbuf is shared, though we want to mess with it here + pixbuf = pixbuf->copy(); + + for(unsigned int y = 0; y < pixbuf->get_height(); ++y) + { + for(unsigned int x = 0; x < pixbuf->get_width(); ++x) + { + guint8* pixels = pixbuf->get_pixels(); + guint8* pixel = + pixels + y * pixbuf->get_rowstride() + + x * pixbuf->get_n_channels(); + + double r = pixel[0]/255.0; + double g = pixel[1]/255.0; + double b = pixel[2]/255.0; + + Gobby::rgb_to_hsv(r,g,b); + r = hue; + Gobby::hsv_to_rgb(r,g,b); + + pixel[0] = + static_cast(r * 255.0 + 0.5); + pixel[1] = + static_cast(g * 255.0 + 0.5); + pixel[2] = + static_cast(b * 255.0 + 0.5); + } + } return pixbuf; } } -Gobby::UserList::UserList(InfTextSession* session): - m_session(session), m_store(Gtk::ListStore::create(m_columns)), +Gobby::UserList::UserList(InfUserTable* table): + m_table(table), m_store(Gtk::ListStore::create(m_columns)), m_view(m_store) { m_store->set_sort_func(m_columns.user, @@ -103,9 +85,6 @@ m_store->set_sort_column(m_columns.user, Gtk::SORT_ASCENDING); - InfUserTable* table = - inf_session_get_user_table(INF_SESSION(session)); - m_add_user_handle = g_signal_connect( G_OBJECT(table), "add-user", G_CALLBACK(on_add_user_static), this); @@ -155,27 +134,55 @@ Gobby::UserList::~UserList() { - InfUserTable* table = - inf_session_get_user_table(INF_SESSION(m_session)); - g_signal_handler_disconnect(G_OBJECT(table), m_add_user_handle); + g_signal_handler_disconnect(G_OBJECT(m_table), m_add_user_handle); + + m_filter_model.reset(); const Gtk::TreeModel::Children& children = m_store->children(); for(Gtk::TreeIter iter = children.begin(); iter != children.end(); ++ iter) { - InfTextUser* user = (*iter)[m_columns.user]; + InfUser* user = (*iter)[m_columns.user]; gulong notify_hue_handle = (*iter)[m_columns.notify_hue_handle]; gulong notify_status_handle = (*iter)[m_columns.notify_status_handle]; - g_signal_handler_disconnect(G_OBJECT(user), - notify_hue_handle); + if(notify_hue_handle > 0) + g_signal_handler_disconnect(G_OBJECT(user), + notify_hue_handle); g_signal_handler_disconnect(G_OBJECT(user), notify_status_handle); } } +void Gobby::UserList::set_show_disconnected(bool show_disconnected) +{ + if(show_disconnected) + { + m_filter_model.reset(); + m_view.set_model(m_store); + } + else + { + m_filter_model = Gtk::TreeModelFilter::create(m_store); + m_view.set_model(m_filter_model); + + m_filter_model->set_visible_func( + sigc::mem_fun(*this, &UserList::visible_func)); + } +} + +bool Gobby::UserList::visible_func(const Gtk::TreeIter& iter) +{ + InfUser* user = (*iter)[m_columns.user]; + + // Can happen after creation of the node when the user object has + // not yet been set + if(user == NULL) return false; + return inf_user_get_status(user) != INF_USER_UNAVAILABLE; +} + void Gobby::UserList::icon_cell_data_func(Gtk::CellRenderer* renderer, const Gtk::TreeIter& iter) { @@ -185,8 +192,8 @@ pixbuf_renderer->property_stock_size() = Gtk::ICON_SIZE_MENU; - InfTextUser* user = (*iter)[m_columns.user]; - switch(inf_user_get_status(INF_USER(user))) + InfUser* user = (*iter)[m_columns.user]; + switch(inf_user_get_status(user)) { case INF_USER_ACTIVE: case INF_USER_INACTIVE: @@ -210,7 +217,16 @@ dynamic_cast(renderer); g_assert(pixbuf_renderer); - pixbuf_renderer->property_pixbuf() = (*iter)[m_columns.color]; + Glib::RefPtr pixbuf = (*iter)[m_columns.color]; + if(pixbuf) + { + pixbuf_renderer->property_pixbuf() = pixbuf; + pixbuf_renderer->property_visible() = true; + } + else + { + pixbuf_renderer->property_visible() = false; + } } void Gobby::UserList::name_cell_data_func(Gtk::CellRenderer* renderer, @@ -220,7 +236,7 @@ dynamic_cast(renderer); g_assert(text_renderer); - InfTextUser* user = (*iter)[m_columns.user]; + InfUser* user = (*iter)[m_columns.user]; switch(inf_user_get_status(INF_USER(user))) { case INF_USER_ACTIVE: @@ -234,19 +250,17 @@ break; } - text_renderer->property_text() = inf_user_get_name(INF_USER(user)); + text_renderer->property_text() = inf_user_get_name(user); } int Gobby::UserList::sort_func(const Gtk::TreeIter& iter1, const Gtk::TreeIter& iter2) { - InfTextUser* user1 = (*iter1)[m_columns.user]; - InfTextUser* user2 = (*iter2)[m_columns.user]; + InfUser* user1 = (*iter1)[m_columns.user]; + InfUser* user2 = (*iter2)[m_columns.user]; - bool available1 = - inf_user_get_status(INF_USER(user1)) != INF_USER_UNAVAILABLE; - bool available2 = - inf_user_get_status(INF_USER(user2)) != INF_USER_UNAVAILABLE; + bool available1 = inf_user_get_status(user1) != INF_USER_UNAVAILABLE; + bool available2 = inf_user_get_status(user2) != INF_USER_UNAVAILABLE; if(available1 != available2) { @@ -256,39 +270,52 @@ } else { - return std::strcmp(inf_user_get_name(INF_USER(user1)), - inf_user_get_name(INF_USER(user2))); + // We might want to cache collate keys in the ListStore if + // this turns out to be a performance problem: + return g_utf8_collate(inf_user_get_name(user1), + inf_user_get_name(user2)); } } -void Gobby::UserList::on_add_user(InfTextUser* user) +void Gobby::UserList::on_add_user(InfUser* user) { g_assert(find_user_iter(user) == m_store->children().end()); - Glib::RefPtr color_pixbuf = - generate_user_color_pixbuf(inf_text_user_get_hue(user)); - Gtk::TreeIter iter = m_store->append(); (*iter)[m_columns.user] = user; - (*iter)[m_columns.color] = color_pixbuf; - (*iter)[m_columns.notify_hue_handle] = g_signal_connect( - G_OBJECT(user), "notify::hue", - G_CALLBACK(on_notify_hue_static), this); (*iter)[m_columns.notify_status_handle] = g_signal_connect( G_OBJECT(user), "notify::status", G_CALLBACK(on_notify_status_static), this); + + if(INF_TEXT_IS_USER(user)) + { + Glib::RefPtr color_pixbuf = + generate_user_color_pixbuf( + *this, + inf_text_user_get_hue(INF_TEXT_USER(user))); + + (*iter)[m_columns.color] = color_pixbuf; + (*iter)[m_columns.notify_hue_handle] = g_signal_connect( + G_OBJECT(user), "notify::hue", + G_CALLBACK(on_notify_hue_static), this); + } + else + { + // Should be 0 anyway, but let's be sure: + (*iter)[m_columns.notify_hue_handle] = 0; + } } void Gobby::UserList::on_notify_hue(InfTextUser* user) { - Gtk::TreeIter iter = find_user_iter(user); + Gtk::TreeIter iter = find_user_iter(INF_USER(user)); g_assert(iter != m_store->children().end()); - (*iter)[m_columns.color] = - generate_user_color_pixbuf(inf_text_user_get_hue(user)); + (*iter)[m_columns.color] = generate_user_color_pixbuf( + *this, inf_text_user_get_hue(user)); } -void Gobby::UserList::on_notify_status(InfTextUser* user) +void Gobby::UserList::on_notify_status(InfUser* user) { Gtk::TreeIter iter = find_user_iter(user); g_assert(iter != m_store->children().end()); @@ -300,7 +327,7 @@ (*iter)[m_columns.user] = user; } -Gtk::TreeIter Gobby::UserList::find_user_iter(InfTextUser* user) +Gtk::TreeIter Gobby::UserList::find_user_iter(InfUser* user) { const Gtk::TreeModel::Children& children = m_store->children(); for(Gtk::TreeIter iter = children.begin(); @@ -312,4 +339,3 @@ return children.end(); } - diff -Nru gobby-infinote-0.4.92/code/core/userlist.hpp gobby-infinote-0.4.93/code/core/userlist.hpp --- gobby-infinote-0.4.92/code/core/userlist.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/core/userlist.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -20,10 +20,11 @@ #define _GOBBY_USERLIST_HPP_ #include +#include #include #include -#include +#include #include namespace Gobby @@ -31,16 +32,18 @@ class UserList: public Gtk::VBox { public: - UserList(InfTextSession* session); + UserList(InfUserTable* table); ~UserList(); + void set_show_disconnected(bool show_disconnected); + protected: - InfTextSession* m_session; + InfUserTable* m_table; class Columns: public Gtk::TreeModelColumnRecord { public: - Gtk::TreeModelColumn user; + Gtk::TreeModelColumn user; Gtk::TreeModelColumn > color; Gtk::TreeModelColumn notify_hue_handle; Gtk::TreeModelColumn notify_status_handle; @@ -59,25 +62,26 @@ gpointer user_data) { static_cast(user_data)-> - on_add_user(INF_TEXT_USER(user)); + on_add_user(user); } - static void on_notify_hue_static(InfUser* user, - GParamSpec* pspec, - gpointer user_data) + static void on_notify_status_static(InfUser* user, + GParamSpec* pspec, + gpointer user_data) { static_cast(user_data)-> - on_notify_hue(INF_TEXT_USER(user)); + on_notify_status(user); } - static void on_notify_status_static(InfUser* user, - GParamSpec* pspec, - gpointer user_data) + static void on_notify_hue_static(InfUser* user, + GParamSpec* pspec, + gpointer user_data) { static_cast(user_data)-> - on_notify_status(INF_TEXT_USER(user)); + on_notify_hue(INF_TEXT_USER(user)); } + bool visible_func(const Gtk::TreeIter& iter); void icon_cell_data_func(Gtk::CellRenderer* renderer, const Gtk::TreeIter& iter); void color_cell_data_func(Gtk::CellRenderer* renderer, @@ -87,14 +91,15 @@ int sort_func(const Gtk::TreeIter& iter1, const Gtk::TreeIter& iter2); - void on_add_user(InfTextUser* user); + void on_add_user(InfUser* user); + void on_notify_status(InfUser* user); void on_notify_hue(InfTextUser* user); - void on_notify_status(InfTextUser* user); - Gtk::TreeIter find_user_iter(InfTextUser* user); + Gtk::TreeIter find_user_iter(InfUser* user); Columns m_columns; Glib::RefPtr m_store; + Glib::RefPtr m_filter_model; Gtk::TreeView m_view; gulong m_add_user_handle; diff -Nru gobby-infinote-0.4.92/code/dialogs/connection-dialog.cpp gobby-infinote-0.4.93/code/dialogs/connection-dialog.cpp --- gobby-infinote-0.4.92/code/dialogs/connection-dialog.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/connection-dialog.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,69 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "dialogs/connection-dialog.hpp" +#include "util/i18n.hpp" + +#include + +// TODO: Merge this with entrydialog and passworddialog to a slightly more +// generic entry dialog. + +Gobby::ConnectionDialog::ConnectionDialog(Gtk::Window& parent): + Gtk::Dialog(_("Connect to Server"), parent), m_box(false, 12), + m_rightbox(false, 6), + m_promptbox(false, 12), + m_image(Gtk::Stock::NETWORK, Gtk::ICON_SIZE_DIALOG), + m_intro_label(_("Please enter a host name with which " + "to establish a connection.")), + m_prompt_label(_("_Remote Endpoint:"), true) +{ + m_prompt_label.set_mnemonic_widget(m_entry); + m_promptbox.pack_start(m_prompt_label, Gtk::PACK_SHRINK); + m_entry.set_activates_default(true); + m_promptbox.pack_start(m_entry, Gtk::PACK_EXPAND_WIDGET); + m_rightbox.pack_start(m_intro_label, Gtk::PACK_SHRINK); + m_rightbox.pack_start(m_promptbox, Gtk::PACK_SHRINK); + m_box.pack_start(m_image, Gtk::PACK_SHRINK); + m_box.pack_start(m_rightbox, Gtk::PACK_EXPAND_WIDGET); + + m_box.show_all(); + + get_vbox()->set_spacing(6); + get_vbox()->pack_start(m_box, Gtk::PACK_EXPAND_WIDGET); + + set_resizable(false); + set_border_width(12); +} + +Glib::ustring Gobby::ConnectionDialog::get_host_name() const +{ + return m_entry.get_text(); +} + +void Gobby::ConnectionDialog::on_show() +{ + Gtk::Dialog::on_show(); + + // We can't do this in the constructor, because the buttons are added + // by the caller after the widget has been constructed. + set_default_response(Gtk::RESPONSE_ACCEPT); + + m_entry.select_region(0, m_entry.get_text().length()); + m_entry.grab_focus(); +} diff -Nru gobby-infinote-0.4.92/code/dialogs/connection-dialog.hpp gobby-infinote-0.4.93/code/dialogs/connection-dialog.hpp --- gobby-infinote-0.4.92/code/dialogs/connection-dialog.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/connection-dialog.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,53 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_CONNECTIONDIALOG_HPP_ +#define _GOBBY_CONNECTIONDIALOG_HPP_ + +#include +#include +#include +#include +#include + +namespace Gobby +{ + +class ConnectionDialog: public Gtk::Dialog +{ +public: + ConnectionDialog(Gtk::Window& parent); + + Glib::ustring get_host_name() const; + +protected: + virtual void on_show(); + + Gtk::HBox m_box; + Gtk::VBox m_rightbox; + Gtk::HBox m_promptbox; + Gtk::Image m_image; + Gtk::Label m_intro_label; + Gtk::Label m_prompt_label; + Gtk::Entry m_entry; +}; + +} + +#endif // _GOBBY_CONNECTIONDIALOG_HPP_ + diff -Nru gobby-infinote-0.4.92/code/dialogs/document-location-dialog.cpp gobby-infinote-0.4.93/code/dialogs/document-location-dialog.cpp --- gobby-infinote-0.4.92/code/dialogs/document-location-dialog.cpp 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/document-location-dialog.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,28 +21,20 @@ #include -namespace -{ - bool operator==(const GtkTreeIter& iter1, const GtkTreeIter& iter2) - { - return iter1.stamp == iter2.stamp && - iter1.user_data == iter2.user_data && - iter1.user_data2 == iter2.user_data2 && - iter1.user_data3 == iter2.user_data3; - } -} - Gobby::DocumentLocationDialog::DocumentLocationDialog(Gtk::Window& parent, InfGtkBrowserModel* m): - Gtk::Dialog(_("Select document's target location"), parent), - m_table(3, 2), m_name_label(_("Document Name:"), Gtk::ALIGN_RIGHT), - m_location_label( - _("Choose a directory to create the document into:"), - Gtk::ALIGN_LEFT), + Gtk::Dialog("", parent), + m_box(false, 6), + m_name_box(false, 6), + m_name_label(_("Document Name:"), Gtk::ALIGN_RIGHT), + m_location_label("", Gtk::ALIGN_LEFT), m_filter_model(inf_gtk_browser_model_filter_new(m)), m_view(INF_GTK_BROWSER_VIEW(inf_gtk_browser_view_new_with_model( INF_GTK_BROWSER_MODEL(m_filter_model)))) { + // Default is single document mode: + set_single_document_mode(); + m_name_label.show(); m_name_entry.show(); m_name_entry.set_activates_default(true); @@ -54,15 +46,14 @@ m_scroll.set_shadow_type(Gtk::SHADOW_IN); m_scroll.show(); - m_table.attach(m_name_label, 0, 1, 0, 1, Gtk::FILL, Gtk::FILL); - m_table.attach(m_name_entry, 1, 2, 0, 1, - Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK); - m_table.attach(m_location_label, 0, 2, 1, 2, - Gtk::FILL | Gtk::EXPAND, Gtk::FILL); - m_table.attach(m_scroll, 0, 2, 2, 3, - Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND); - m_table.set_spacings(6); - m_table.show(); + m_name_box.pack_start(m_name_label, Gtk::PACK_SHRINK); + m_name_box.pack_start(m_name_entry, Gtk::PACK_EXPAND_WIDGET); + m_name_box.show(); + + m_box.pack_start(m_name_box, Gtk::PACK_SHRINK); + m_box.pack_start(m_location_label, Gtk::PACK_SHRINK); + m_box.pack_start(m_scroll, Gtk::PACK_EXPAND_WIDGET); + m_box.show(); g_signal_connect(m_view, "selection-changed", G_CALLBACK(on_selection_changed_static), this); @@ -77,7 +68,7 @@ // Required to filter initial content: gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(m_filter_model)); - get_vbox()->pack_start(m_table, Gtk::PACK_EXPAND_WIDGET); + get_vbox()->pack_start(m_box, Gtk::PACK_EXPAND_WIDGET); add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_ACCEPT); @@ -153,12 +144,42 @@ } } +InfGtkBrowserModel* Gobby::DocumentLocationDialog::get_browser_model() const +{ + return INF_GTK_BROWSER_MODEL( + gtk_tree_model_filter_get_model( + GTK_TREE_MODEL_FILTER(m_filter_model))); +} + +void Gobby::DocumentLocationDialog::set_single_document_mode() +{ + set_title(_("Select document's target location")); + m_location_label.set_text( + _("Choose a directory to create the document into:")); + m_name_box.show(); +} + +void Gobby::DocumentLocationDialog::set_multiple_document_mode() +{ + set_title(_("Select documents' target location")); + m_location_label.set_text( + _("Choose a directory to create the documents into:")); + m_name_box.hide(); +} + void Gobby::DocumentLocationDialog::on_show() { Gtk::Dialog::on_show(); - m_name_entry.select_region(0, m_name_entry.get_text_length()); - m_name_entry.grab_focus(); + if (m_name_box.is_visible()) + { + m_name_entry.select_region(0, m_name_entry.get_text_length()); + m_name_entry.grab_focus(); + } + else + { + gtk_widget_grab_focus(GTK_WIDGET(m_view)); + } } void Gobby::DocumentLocationDialog::on_selection_changed(GtkTreeIter* iter) diff -Nru gobby-infinote-0.4.92/code/dialogs/document-location-dialog.hpp gobby-infinote-0.4.93/code/dialogs/document-location-dialog.hpp --- gobby-infinote-0.4.92/code/dialogs/document-location-dialog.hpp 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/document-location-dialog.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -43,6 +43,10 @@ void set_document_name(const Glib::ustring& document_name); InfcBrowser* get_selected_directory(InfcBrowserIter* iter) const; + InfGtkBrowserModel* get_browser_model() const; + + void set_single_document_mode(); + void set_multiple_document_mode(); protected: virtual void on_show(); @@ -56,7 +60,7 @@ static void on_row_changed_static(GtkTreeModel* model, GtkTreePath* path, - GtkTreeIter* iter, + GtkTreeIter* iter, gpointer user_data) { static_cast( @@ -76,7 +80,9 @@ bool filter_visible_func(GtkTreeModel* model, GtkTreeIter* iter); - Gtk::Table m_table; + Gtk::VBox m_box; + + Gtk::HBox m_name_box; Gtk::Label m_name_label; Gtk::Entry m_name_entry; diff -Nru gobby-infinote-0.4.92/code/dialogs/find-dialog.cpp gobby-infinote-0.4.93/code/dialogs/find-dialog.cpp --- gobby-infinote-0.4.92/code/dialogs/find-dialog.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/find-dialog.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -163,7 +163,7 @@ _("Phrase \"%1\" has not been found"), get_find_text()); - m_status_bar.add_message(StatusBar::INFO, str, 5); + m_status_bar.add_info_message(str, 5); return false; } @@ -179,7 +179,7 @@ _("Phrase \"%1\" has not been found"), get_find_text()); - m_status_bar.add_message(StatusBar::INFO, str, 5); + m_status_bar.add_info_message(str, 5); return false; } @@ -213,14 +213,15 @@ Gtk::Dialog::on_response(id); } -void Gobby::FindDialog::on_document_changed(DocWindow* document) +void Gobby::FindDialog::on_document_changed(SessionView* view) { m_active_user_changed_connection.disconnect(); + TextSessionView* text_view = dynamic_cast(view); - if(document != NULL) + if(text_view != NULL) { m_active_user_changed_connection = - document->signal_active_user_changed().connect( + text_view->signal_active_user_changed().connect( sigc::mem_fun( *this, &FindDialog::on_active_user_changed)); @@ -229,7 +230,7 @@ update_sensitivity(); } -void Gobby::FindDialog::on_active_user_changed(InfTextUser* user) +void Gobby::FindDialog::on_active_user_changed(InfUser* user) { update_sensitivity(); } @@ -263,11 +264,12 @@ bool Gobby::FindDialog::replace() { - DocWindow* document = m_folder.get_current_document(); - g_assert(document != NULL); + SessionView* view = m_folder.get_current_document(); + TextSessionView* text_view = dynamic_cast(view); + g_assert(text_view != NULL); // Get selected string - Glib::ustring sel_str = document->get_selected_text(); + Glib::ustring sel_str = text_view->get_selected_text(); Glib::ustring find_str = get_find_text(); // Lowercase both if we are comparing insensitive @@ -281,9 +283,9 @@ if(sel_str == find_str) { GtkTextBuffer* buffer = - GTK_TEXT_BUFFER(document->get_text_buffer()); + GTK_TEXT_BUFFER(text_view->get_text_buffer()); - // Replace occurence + // Replace occurrence Glib::ustring replace_text = get_replace_text(); gtk_text_buffer_delete_selection(buffer, TRUE, TRUE); gtk_text_buffer_insert_at_cursor(buffer, replace_text.c_str(), @@ -295,18 +297,21 @@ } else { - // Search the first occurence + // Search the first occurrence return find(); } } bool Gobby::FindDialog::replace_all() { - DocWindow* document = m_folder.get_current_document(); - g_assert(document != NULL); + // TODO: Add helper function to get textsessionview? Maybe even add + // to Folder? + SessionView* view = m_folder.get_current_document(); + TextSessionView* text_view = dynamic_cast(view); + g_assert(text_view != NULL); GtkTextIter begin; - GtkTextBuffer* buffer = GTK_TEXT_BUFFER(document->get_text_buffer()); + GtkTextBuffer* buffer = GTK_TEXT_BUFFER(text_view->get_text_buffer()); gtk_text_buffer_get_start_iter(buffer, &begin); unsigned int replace_count = 0; @@ -329,27 +334,28 @@ if(replace_count == 0) { - message = _("No occurence has been replaced"); + message = _("No occurrence has been replaced"); result = false; } else { message = Glib::ustring::compose( - ngettext("%1 occurence has been replaced", - "%1 occurences have been replaced", + ngettext("%1 occurrence has been replaced", + "%1 occurrences have been replaced", replace_count), replace_count); result = true; } - m_status_bar.add_message(StatusBar::INFO, message, 5); + m_status_bar.add_info_message(message, 5); return result; } bool Gobby::FindDialog::find_and_select(const GtkTextIter* from, SearchDirection direction) { - DocWindow* document = m_folder.get_current_document(); - g_assert(document != NULL); + SessionView* view = m_folder.get_current_document(); + TextSessionView* text_view = dynamic_cast(view); + g_assert(text_view != NULL); const GtkTextIter* real_begin = from; GtkTextIter insert_iter; @@ -358,7 +364,7 @@ if(from == NULL) { GtkTextBuffer* buffer = - GTK_TEXT_BUFFER(document->get_text_buffer()); + GTK_TEXT_BUFFER(text_view->get_text_buffer()); GtkTextMark* mark = gtk_text_buffer_get_insert(buffer); gtk_text_buffer_get_iter_at_mark(buffer, &insert_iter, mark); real_begin = &insert_iter; @@ -368,9 +374,9 @@ if(find_wrap(real_begin, direction, &match_start, &match_end)) { if(direction == SEARCH_FORWARD) - document->set_selection(&match_end, &match_start); + text_view->set_selection(&match_end, &match_start); else - document->set_selection(&match_start, &match_end); + text_view->set_selection(&match_start, &match_end); return true; } @@ -383,8 +389,9 @@ GtkTextIter* match_start, GtkTextIter* match_end) { - DocWindow* document = m_folder.get_current_document(); - g_assert(document != NULL); + SessionView* view = m_folder.get_current_document(); + TextSessionView* text_view = dynamic_cast(view); + g_assert(text_view != NULL); GtkTextIter start_pos = *from; @@ -396,7 +403,7 @@ // Wrap around GtkTextIter restart_pos; - GtkTextBuffer* buffer = GTK_TEXT_BUFFER(document->get_text_buffer()); + GtkTextBuffer* buffer = GTK_TEXT_BUFFER(text_view->get_text_buffer()); if(direction == SEARCH_FORWARD) gtk_text_buffer_get_start_iter(buffer, &restart_pos); @@ -478,12 +485,13 @@ void Gobby::FindDialog::update_sensitivity() { - DocWindow* document = m_folder.get_current_document(); + SessionView* view = m_folder.get_current_document(); + TextSessionView* text_view = dynamic_cast(view); bool find_sensitivity = - (!m_entry_find.get_text().empty() && document != NULL); + (!m_entry_find.get_text().empty() && text_view != NULL); bool replace_sensitivity = - (find_sensitivity && document->get_active_user() != NULL); + (find_sensitivity && text_view->get_active_user() != NULL); set_response_sensitive(RESPONSE_FIND, find_sensitivity); set_response_sensitive(RESPONSE_REPLACE, replace_sensitivity); diff -Nru gobby-infinote-0.4.92/code/dialogs/find-dialog.hpp gobby-infinote-0.4.93/code/dialogs/find-dialog.hpp --- gobby-infinote-0.4.92/code/dialogs/find-dialog.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/find-dialog.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,7 +21,7 @@ #include "core/folder.hpp" #include "core/statusbar.hpp" -#include "core/docwindow.hpp" +#include "core/sessionview.hpp" #include #include @@ -70,8 +70,8 @@ virtual void on_show(); virtual void on_response(int id); - void on_document_changed(DocWindow* document); - void on_active_user_changed(InfTextUser* user); + void on_document_changed(SessionView* view); + void on_active_user_changed(InfUser* user); void on_find_text_changed(); void on_replace_text_changed(); diff -Nru gobby-infinote-0.4.92/code/dialogs/goto-dialog.cpp gobby-infinote-0.4.93/code/dialogs/goto-dialog.cpp --- gobby-infinote-0.4.92/code/dialogs/goto-dialog.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/goto-dialog.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -29,7 +29,7 @@ m_table(1, 2), m_label_line(_("Line _number:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, true), - m_current_document(NULL) + m_current_view(NULL) { m_label_line.set_mnemonic_widget(m_entry_line); m_label_line.show(); @@ -74,10 +74,10 @@ Gtk::Dialog::on_show(); m_entry_line.grab_focus(); - if(m_current_document != NULL) + if(m_current_view != NULL) { GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); GtkTextIter cursor; gtk_text_buffer_get_iter_at_mark( buffer, &cursor, gtk_text_buffer_get_insert(buffer)); @@ -92,14 +92,14 @@ { if(id == Gtk::RESPONSE_ACCEPT) { - g_assert(m_current_document != NULL); + g_assert(m_current_view != NULL); int value = m_entry_line.get_value_as_int(); GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); GtkTextIter begin; gtk_text_buffer_get_iter_at_line(buffer, &begin, value - 1); - m_current_document->set_selection(&begin, &begin); + m_current_view->set_selection(&begin, &begin); } else if(id == Gtk::RESPONSE_CLOSE) { @@ -109,23 +109,23 @@ Gtk::Dialog::on_response(id); } -void Gobby::GotoDialog::on_document_changed(DocWindow* document) +void Gobby::GotoDialog::on_document_changed(SessionView* view) { - if(m_current_document != NULL) + if(m_current_view != NULL) { GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); g_signal_handler_disconnect(buffer, m_changed_handler); } - set_response_sensitive(Gtk::RESPONSE_ACCEPT, document != NULL); - m_entry_line.set_sensitive(document != NULL); - m_current_document = document; + m_current_view = dynamic_cast(view); + set_response_sensitive(Gtk::RESPONSE_ACCEPT, m_current_view != NULL); + m_entry_line.set_sensitive(m_current_view != NULL); - if(document != NULL) + if(m_current_view != NULL) { GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - document->get_text_buffer()); + m_current_view->get_text_buffer()); m_changed_handler = g_signal_connect_after( G_OBJECT(buffer), "changed", @@ -137,9 +137,9 @@ void Gobby::GotoDialog::on_changed() { - g_assert(m_current_document != NULL); + g_assert(m_current_view != NULL); GtkTextBuffer* buffer = GTK_TEXT_BUFFER( - m_current_document->get_text_buffer()); + m_current_view->get_text_buffer()); m_entry_line.set_range(1, gtk_text_buffer_get_line_count(buffer)); } diff -Nru gobby-infinote-0.4.92/code/dialogs/goto-dialog.hpp gobby-infinote-0.4.93/code/dialogs/goto-dialog.hpp --- gobby-infinote-0.4.92/code/dialogs/goto-dialog.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/goto-dialog.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -20,7 +20,7 @@ #define _GOBBY_GOTODIALOG_HPP_ #include "core/folder.hpp" -#include "core/docwindow.hpp" +#include "core/sessionview.hpp" #include #include @@ -46,7 +46,7 @@ virtual void on_show(); virtual void on_response(int id); - void on_document_changed(DocWindow* document); + void on_document_changed(SessionView* view); void on_changed(); Folder& m_folder; @@ -56,7 +56,7 @@ Gtk::Label m_label_line; Gtk::SpinButton m_entry_line; - DocWindow* m_current_document; + TextSessionView* m_current_view; gulong m_changed_handler; }; diff -Nru gobby-infinote-0.4.92/code/dialogs/initial-dialog.cpp gobby-infinote-0.4.93/code/dialogs/initial-dialog.cpp --- gobby-infinote-0.4.92/code/dialogs/initial-dialog.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/initial-dialog.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -60,7 +60,7 @@ m_intro.set_text( _("Before we start, a few options need to be configured. " - "You can later change them by choosing Edit/Preferences " + "You can later change them by choosing Edit ▸ Preferences " "from the menu.")); m_intro.set_line_wrap(true); m_intro.show(); diff -Nru gobby-infinote-0.4.92/code/dialogs/Makefile.am gobby-infinote-0.4.93/code/dialogs/Makefile.am --- gobby-infinote-0.4.92/code/dialogs/Makefile.am 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -1,25 +1,29 @@ noinst_LIBRARIES = libgobby-dialogs.a libgobby_dialogs_a_SOURCES = \ + connection-dialog.cpp \ document-location-dialog.cpp \ entry-dialog.cpp \ find-dialog.cpp \ goto-dialog.cpp \ initial-dialog.cpp \ open-location-dialog.cpp \ + password-dialog.cpp \ preferences-dialog.cpp noinst_HEADERS = \ + connection-dialog.hpp \ document-location-dialog.hpp \ entry-dialog.hpp \ find-dialog.hpp \ goto-dialog.hpp \ initial-dialog.hpp \ open-location-dialog.hpp \ + password-dialog.hpp \ preferences-dialog.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code diff -Nru gobby-infinote-0.4.92/code/dialogs/Makefile.in gobby-infinote-0.4.93/code/dialogs/Makefile.in --- gobby-infinote-0.4.92/code/dialogs/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/Makefile.in 2009-12-19 23:16:17.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -48,10 +49,11 @@ ARFLAGS = cru libgobby_dialogs_a_AR = $(AR) $(ARFLAGS) libgobby_dialogs_a_LIBADD = -am_libgobby_dialogs_a_OBJECTS = document-location-dialog.$(OBJEXT) \ - entry-dialog.$(OBJEXT) find-dialog.$(OBJEXT) \ - goto-dialog.$(OBJEXT) initial-dialog.$(OBJEXT) \ - open-location-dialog.$(OBJEXT) preferences-dialog.$(OBJEXT) +am_libgobby_dialogs_a_OBJECTS = connection-dialog.$(OBJEXT) \ + document-location-dialog.$(OBJEXT) entry-dialog.$(OBJEXT) \ + find-dialog.$(OBJEXT) goto-dialog.$(OBJEXT) \ + initial-dialog.$(OBJEXT) open-location-dialog.$(OBJEXT) \ + password-dialog.$(OBJEXT) preferences-dialog.$(OBJEXT) libgobby_dialogs_a_OBJECTS = $(am_libgobby_dialogs_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/code depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -88,6 +90,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -97,6 +101,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -121,11 +126,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -196,28 +203,34 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ noinst_LIBRARIES = libgobby-dialogs.a libgobby_dialogs_a_SOURCES = \ + connection-dialog.cpp \ document-location-dialog.cpp \ entry-dialog.cpp \ find-dialog.cpp \ goto-dialog.cpp \ initial-dialog.cpp \ open-location-dialog.cpp \ + password-dialog.cpp \ preferences-dialog.cpp noinst_HEADERS = \ + connection-dialog.hpp \ document-location-dialog.hpp \ entry-dialog.hpp \ find-dialog.hpp \ goto-dialog.hpp \ initial-dialog.hpp \ open-location-dialog.hpp \ + password-dialog.hpp \ preferences-dialog.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code all: all-am @@ -267,12 +280,14 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/document-location-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/entry-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/find-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goto-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/initial-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open-location-dialog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/password-dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preferences-dialog.Po@am__quote@ .cpp.o: @@ -406,6 +421,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -414,18 +431,28 @@ 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 diff -Nru gobby-infinote-0.4.92/code/dialogs/password-dialog.cpp gobby-infinote-0.4.93/code/dialogs/password-dialog.cpp --- gobby-infinote-0.4.92/code/dialogs/password-dialog.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/password-dialog.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,73 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "dialogs/password-dialog.hpp" +#include "util/i18n.hpp" + +#include + +Gobby::PasswordDialog::PasswordDialog(Gtk::Window& parent, + const Glib::ustring& remote_id, + unsigned int retry_counter): + Gtk::Dialog(_("Password required"), parent), m_box(false, 12), + m_rightbox(false, 6), + m_promptbox(false, 12), + m_image(Gtk::Stock::DIALOG_AUTHENTICATION, Gtk::ICON_SIZE_DIALOG), + m_intro_label(Glib::ustring::compose( + (retry_counter == 0) + ? _("Connection to host \"%1\" requires a password.") + : _("Invalid password for host \"%1\". " + "Please try again."), + remote_id)), + m_prompt_label(_("Server _Password:"), true) +{ + m_prompt_label.set_mnemonic_widget(m_entry); + m_promptbox.pack_start(m_prompt_label, Gtk::PACK_SHRINK); + m_entry.set_visibility(false); + m_entry.set_activates_default(true); + m_promptbox.pack_start(m_entry, Gtk::PACK_EXPAND_WIDGET); + m_rightbox.pack_start(m_intro_label, Gtk::PACK_SHRINK); + m_rightbox.pack_start(m_promptbox, Gtk::PACK_SHRINK); + m_box.pack_start(m_image, Gtk::PACK_SHRINK); + m_box.pack_start(m_rightbox, Gtk::PACK_EXPAND_WIDGET); + + m_box.show_all(); + + get_vbox()->set_spacing(6); + get_vbox()->pack_start(m_box, Gtk::PACK_EXPAND_WIDGET); + + set_resizable(false); + set_border_width(12); +} + +Glib::ustring Gobby::PasswordDialog::get_password() const +{ + return m_entry.get_text(); +} + +void Gobby::PasswordDialog::on_show() +{ + Gtk::Dialog::on_show(); + + // We can't do this in the constructor, because the buttons are added + // by the caller after the widget has been constructed. + set_default_response(Gtk::RESPONSE_ACCEPT); + + m_entry.select_region(0, m_entry.get_text().length()); + m_entry.grab_focus(); +} diff -Nru gobby-infinote-0.4.92/code/dialogs/password-dialog.hpp gobby-infinote-0.4.93/code/dialogs/password-dialog.hpp --- gobby-infinote-0.4.92/code/dialogs/password-dialog.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/password-dialog.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,55 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_PASSWORDDIALOG_HPP_ +#define _GOBBY_PASSWORDDIALOG_HPP_ + +#include +#include +#include +#include +#include + +namespace Gobby +{ + +class PasswordDialog: public Gtk::Dialog +{ +public: + PasswordDialog(Gtk::Window& parent, + const Glib::ustring& remote_id, + unsigned int retry_counter); + + Glib::ustring get_password() const; + +protected: + virtual void on_show(); + + Gtk::HBox m_box; + Gtk::VBox m_rightbox; + Gtk::HBox m_promptbox; + Gtk::Image m_image; + Gtk::Label m_intro_label; + Gtk::Label m_prompt_label; + Gtk::Entry m_entry; +}; + +} + +#endif // _GOBBY_PASSWORDDIALOG_HPP_ + diff -Nru gobby-infinote-0.4.92/code/dialogs/preferences-dialog.cpp gobby-infinote-0.4.93/code/dialogs/preferences-dialog.cpp --- gobby-infinote-0.4.92/code/dialogs/preferences-dialog.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/preferences-dialog.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,9 +21,12 @@ #include "util/i18n.hpp" #include +#include #include #include +#include + namespace { using namespace Gobby; @@ -205,7 +208,7 @@ void Gobby::PreferencesDialog::Group::add(Gtk::Widget& widget) { - m_box.pack_start(widget, Gtk::PACK_SHRINK); + m_box.pack_start(widget, Gtk::PACK_EXPAND_WIDGET); } Gobby::PreferencesDialog::Page::Page(): @@ -219,9 +222,9 @@ set_border_width(12); } -void Gobby::PreferencesDialog::Page::add(Gtk::Widget& widget) +void Gobby::PreferencesDialog::Page::add(Gtk::Widget& widget, bool expand) { - m_box.pack_start(widget, Gtk::PACK_SHRINK); + m_box.pack_start(widget, expand ? Gtk::PACK_EXPAND_WIDGET : Gtk::PACK_SHRINK); } Gobby::PreferencesDialog::User::User(Gtk::Window& parent, @@ -289,14 +292,14 @@ // Disable until we support self-hosting: // m_group_paths.show(); - add(m_group_settings); - add(m_group_paths); + add(m_group_settings, false); + add(m_group_paths, false); } Gobby::PreferencesDialog::Editor::Editor(Preferences& preferences): m_group_tab(_("Tab Stops")), m_group_indentation(_("Indentation")), - m_group_homeend(_("Home/End Behaviour")), + m_group_homeend(_("Home/End Behavior")), m_group_saving(_("File Saving")), m_lbl_tab_width(_("_Tab width:"), Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER, true), @@ -383,10 +386,10 @@ m_group_saving.add(m_box_autosave_interval); m_group_saving.show(); - add(m_group_tab); - add(m_group_indentation); - add(m_group_homeend); - add(m_group_saving); + add(m_group_tab, false); + add(m_group_indentation, false); + add(m_group_homeend, false); + add(m_group_saving, false); } void Gobby::PreferencesDialog::Editor::on_autosave_enabled_toggled() @@ -401,13 +404,15 @@ m_group_curline(_("Current Line") ), m_group_margin(_("Right Margin") ), m_group_bracket(_("Bracket Matching") ), + m_group_spaces(_("Whitespace Display") ), m_btn_wrap_text(_("Enable text wrapping") ), m_btn_wrap_words(_("Do not split words over two lines") ), m_btn_linenum_display(_("Display line numbers") ), m_btn_curline_highlight(_("Highlight current line") ), m_btn_margin_display(_("Display right margin") ), m_lbl_margin_pos(_("Right margin at column:") ), - m_btn_bracket_highlight(_("Highlight matching bracket") ) + m_btn_bracket_highlight(_("Highlight matching bracket") ), + m_cmb_spaces_display(preferences.view.whitespace_display) { Gtk::WrapMode mode = preferences.view.wrap_mode; bool linenum_display = preferences.view.linenum_display; @@ -452,6 +457,27 @@ connect_option(m_btn_bracket_highlight, preferences.view.bracket_highlight); + // TODO: When we require a higher version of GtkSourceView, then + // we should add GTK_SOURCE_DRAW_SPACES_NBSP here. + const int SOURCE_DRAW_SPACES = GTK_SOURCE_DRAW_SPACES_SPACE; + + m_cmb_spaces_display.add( + _("Display no whitespace"), + static_cast(0)); + m_cmb_spaces_display.add( + _("Display spaces"), + static_cast( + SOURCE_DRAW_SPACES)); + m_cmb_spaces_display.add( + _("Display tabs"), + static_cast( + GTK_SOURCE_DRAW_SPACES_TAB)); + m_cmb_spaces_display.add( + _("Display tabs and spaces"), + static_cast( + SOURCE_DRAW_SPACES | GTK_SOURCE_DRAW_SPACES_TAB)); + m_cmb_spaces_display.show(); + m_box_margin_pos.set_spacing(6); m_box_margin_pos.set_sensitive(margin_display); m_box_margin_pos.pack_start(m_lbl_margin_pos, Gtk::PACK_SHRINK); @@ -474,12 +500,16 @@ m_group_bracket.add(m_btn_bracket_highlight); m_group_bracket.show(); - - add(m_group_wrap); - add(m_group_linenum); - add(m_group_curline); - add(m_group_margin); - add(m_group_bracket); + + m_group_spaces.add(m_cmb_spaces_display); + m_group_spaces.show(); + + add(m_group_wrap, false); + add(m_group_linenum, false); + add(m_group_curline, false); + add(m_group_margin, false); + add(m_group_bracket, false); + add(m_group_spaces, false); } void Gobby::PreferencesDialog::View::on_wrap_text_toggled() @@ -495,7 +525,10 @@ Gobby::PreferencesDialog::Appearance::Appearance(Preferences& preferences): m_group_toolbar(_("Toolbar") ), m_group_font(_("Font") ), - m_cmb_toolbar_style(preferences.appearance.toolbar_style) + m_group_scheme(_("Color Scheme")), + m_cmb_toolbar_style(preferences.appearance.toolbar_style), + m_list(Gtk::ListStore::create(m_columns)), + m_tree(m_list) { const Pango::FontDescription& font = preferences.appearance.font; @@ -519,8 +552,68 @@ m_group_font.add(m_btn_font); m_group_font.show(); - add(m_group_toolbar); - add(m_group_font); + Gtk::TreeViewColumn column_name; + Gtk::CellRendererText renderer_name; + column_name.pack_start(renderer_name, false); + column_name.add_attribute(renderer_name.property_text(), m_columns.name); + + m_tree.append_column(column_name);//"Scheme Name", m_columns.name); + m_tree.append_column("Scheme description", m_columns.description); + + Pango::AttrList list; + Pango::Attribute attr(Pango::Attribute::create_attr_weight(Pango::WEIGHT_BOLD)); + list.insert(attr); + renderer_name.property_attributes() = list; + + m_tree.set_headers_visible(false); + m_tree.show(); + + Gtk::ScrolledWindow* scroll = Gtk::manage(new Gtk::ScrolledWindow); + scroll->set_shadow_type(Gtk::SHADOW_IN); + scroll->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); + scroll->add(m_tree); + scroll->show(); + + m_group_scheme.add(*scroll); + m_group_scheme.show(); + + GtkSourceStyleSchemeManager* manager = gtk_source_style_scheme_manager_get_default(); + const gchar* const* ids = gtk_source_style_scheme_manager_get_scheme_ids(manager); + + Glib::ustring current_scheme = preferences.appearance.scheme_id; + + for (const gchar* const* id = ids; *id != NULL; ++id) + { + GtkSourceStyleScheme* scheme = gtk_source_style_scheme_manager_get_scheme(manager, *id); + const gchar* name = gtk_source_style_scheme_get_name(scheme); + const gchar* desc = gtk_source_style_scheme_get_description(scheme); + + Gtk::TreeIter iter = m_list->append(); + (*iter)[m_columns.name] = name; + (*iter)[m_columns.description] = desc; + (*iter)[m_columns.scheme] = scheme; + + if (current_scheme == gtk_source_style_scheme_get_id(scheme)) + m_tree.get_selection()->select(iter); + } + + m_tree.get_selection()->signal_changed().connect( + sigc::bind( + sigc::mem_fun(*this, &Appearance::on_scheme_changed), + sigc::ref(preferences))); + + m_list->set_sort_column_id(m_columns.name, Gtk::SORT_ASCENDING); // This should do it + + add(m_group_toolbar, false); + add(m_group_font, false); + add(m_group_scheme, true); +} + +void Gobby::PreferencesDialog::Appearance::on_scheme_changed(Preferences& preferences) +{ + Gtk::TreeIter iter = m_tree.get_selection()->get_selected(); + GtkSourceStyleScheme* scheme = (*iter)[m_columns.scheme]; + preferences.appearance.scheme_id = gtk_source_style_scheme_get_id(scheme); } Gobby::PreferencesDialog::Security::Security(Preferences& preferences): @@ -552,8 +645,8 @@ m_group_connection_policy.add(m_cmb_connection_policy); m_group_connection_policy.show(); - add(m_group_trust_file); - add(m_group_connection_policy); + add(m_group_trust_file, false); + add(m_group_connection_policy, false); } Gobby::PreferencesDialog::PreferencesDialog(Gtk::Window& parent, diff -Nru gobby-infinote-0.4.92/code/dialogs/preferences-dialog.hpp gobby-infinote-0.4.93/code/dialogs/preferences-dialog.hpp --- gobby-infinote-0.4.92/code/dialogs/preferences-dialog.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/dialogs/preferences-dialog.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -112,7 +112,7 @@ { public: Page(); - void add(Gtk::Widget& widget); + void add(Gtk::Widget& widget, bool expand); protected: Gtk::VBox m_box; @@ -186,6 +186,7 @@ Group m_group_curline; Group m_group_margin; Group m_group_bracket; + Group m_group_spaces; Gtk::CheckButton m_btn_wrap_text; Gtk::CheckButton m_btn_wrap_words; @@ -200,6 +201,8 @@ Gtk::SpinButton m_ent_margin_pos; Gtk::CheckButton m_btn_bracket_highlight; + PreferencesComboBox + m_cmb_spaces_display; }; class Appearance: public Page @@ -208,11 +211,32 @@ Appearance(Preferences& preferences); protected: + class Columns: public Gtk::TreeModelColumnRecord + { + public: + Gtk::TreeModelColumn scheme; + Gtk::TreeModelColumn name; + Gtk::TreeModelColumn description; + Columns() + { + add(scheme); + add(name); + add(description); + } + }; + + void on_scheme_changed(Preferences& preferences); + Group m_group_toolbar; Group m_group_font; + Group m_group_scheme; PreferencesComboBox m_cmb_toolbar_style; Gtk::FontButton m_btn_font; + + Columns m_columns; + Glib::RefPtr m_list; + Gtk::TreeView m_tree; }; class Security: public Page diff -Nru gobby-infinote-0.4.92/code/features.hpp.in gobby-infinote-0.4.93/code/features.hpp.in --- gobby-infinote-0.4.92/code/features.hpp.in 2009-04-26 10:57:46.000000000 +0100 +++ gobby-infinote-0.4.93/code/features.hpp.in 2009-12-19 23:16:28.000000000 +0000 @@ -69,6 +69,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 @@ -84,5 +87,5 @@ /* Version number of package */ #undef VERSION -/* Define whether to integrate into the GNOME desktop environment. */ -#undef WITH_GNOME +/* Whether support for unique is enabled */ +#undef WITH_UNIQUE diff -Nru gobby-infinote-0.4.92/code/main.cpp gobby-infinote-0.4.93/code/main.cpp --- gobby-infinote-0.4.92/code/main.cpp 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/main.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -33,8 +33,13 @@ #include #include +#ifdef WITH_UNIQUE +# include +#endif + #include // bindtextdomain #include +#include namespace { @@ -74,6 +79,104 @@ return GOBBY_LOCALEDIR; #endif } + +#ifdef WITH_UNIQUE + int send_message_with_uris(UniqueApp* app, + gint message_id, + const std::vector& uris) + { + std::vector uri_cstrs(uris.size() + 1); + for(int i = 0; i < uris.size(); ++i) + uri_cstrs[i] = uris[i].c_str(); + + UniqueMessageData* message = unique_message_data_new(); + unique_message_data_set_uris( + message, const_cast(&uri_cstrs[0])); + UniqueResponse response = unique_app_send_message( + app, message_id, message); + unique_message_data_free(message); + + if(response == UNIQUE_RESPONSE_OK) + { + return 0; + } + else + { + std::cerr + << "error sending URIs to existing gobby " + "instance (libunique): " + << static_cast(response) + << std::endl; + return -1; + } + } + + int my_unique_activate(UniqueApp* app) { + UniqueResponse response = + unique_app_send_message(app, UNIQUE_ACTIVATE, NULL); + if(response != UNIQUE_RESPONSE_OK) + { + std::cerr + << "error activating existing gobby " + "instance (libunique): " + << static_cast(response) + << std::endl; + return -1; + } + else + { + return 0; + } + } + + int my_unique_send_file_args(UniqueApp* app, + int argc, + const char* const* argv) + { + std::vector uris(argc); + for(int i = 0; i < argc; ++i) + { + uris[i] = Gio::File::create_for_commandline_arg( + argv[i])->get_uri(); + } + return send_message_with_uris(app, UNIQUE_OPEN, uris); + } + + int my_unique_send_hostname_args( + UniqueApp* app, + const std::vector& hostnames) + { + std::vector uris(hostnames); + for(int i = 0; i < uris.size(); ++i) + { + uris[i].insert(0, "infinote://"); + } + return send_message_with_uris( + app, Gobby::UNIQUE_GOBBY_CONNECT, uris); + } + + int my_unique_check_other(UniqueApp* app, + int argc, const char* const* argv, + const std::vector& hostnames) + { + if(argc == 0 && hostnames.empty()) + { + return my_unique_activate(app); + } + + if(argc) { + if(my_unique_send_file_args(app, argc, argv) != 0) + return -1; + } + + if(!hostnames.empty()) { + if (my_unique_send_hostname_args(app, hostnames)) + return -1; + } + + return 0; + } +#endif // WITH_UNIQUE } int main(int argc, char* argv[]) try @@ -85,7 +188,9 @@ bindtextdomain(GETTEXT_PACKAGE, gobby_localedir().c_str()); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + bool new_instance = false; bool display_version = false; + std::vector hostnames; Glib::OptionGroup opt_group_gobby("gobby", _("Gobby options"), _("Options related to Gobby")); @@ -96,6 +201,22 @@ _("Display version information and exit")); opt_group_gobby.add_entry(opt_version, display_version); + Glib::OptionEntry opt_new_instance; + opt_new_instance.set_short_name('n'); + opt_new_instance.set_long_name("new-instance"); + opt_new_instance.set_description( + _("Also start a new Gobby instance when there is one " + "running already")); + opt_group_gobby.add_entry(opt_new_instance, new_instance); + + Glib::OptionEntry opt_connect; + opt_connect.set_short_name('c'); + opt_connect.set_long_name("connect"); + opt_connect.set_description( + _("Connect to given host on startup, can be given multiple times")); + opt_connect.set_arg_description(_("HOSTNAME")); + opt_group_gobby.add_entry(opt_connect, hostnames); + Glib::OptionContext opt_ctx; opt_ctx.set_help_enabled(true); opt_ctx.set_ignore_unknown_options(false); @@ -125,6 +246,23 @@ return EXIT_SUCCESS; } +#ifdef WITH_UNIQUE + UniqueApp* app = unique_app_new_with_commands( + "de._0x539.gobby", NULL, + "UNIQUE_GOBBY_CONNECT", Gobby::UNIQUE_GOBBY_CONNECT, + NULL); + + if(!new_instance && unique_app_is_running(app)) + { + int exit_code = my_unique_check_other( + app, + argc - 1, argv + 1, + hostnames); + g_object_unref(app); + return exit_code; + } +#endif // WITH_UNIQUE + GError* error = NULL; if(!inf_init(&error)) { @@ -142,9 +280,29 @@ Gobby::Config config(Gobby::config_filename("config.xml")); // Create window - Gobby::Window wnd(icon_manager, config); + Gobby::Window wnd( + argc-1, + argv+1, + icon_manager, + config +#ifdef WITH_UNIQUE + , app +#endif + ); + +#ifdef WITH_UNIQUE + g_object_unref(app); +#endif + wnd.show(); + for(std::vector::const_iterator i = hostnames.begin(); + i != hostnames.end(); + ++ i) + { + wnd.connect_to_host(*i); + } + wnd.signal_hide().connect(sigc::ptr_fun(&Gtk::Main::quit) ); kit->run(); diff -Nru gobby-infinote-0.4.92/code/Makefile.am gobby-infinote-0.4.93/code/Makefile.am --- gobby-infinote-0.4.92/code/Makefile.am 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/code/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -11,6 +11,6 @@ appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code diff -Nru gobby-infinote-0.4.92/code/Makefile.in gobby-infinote-0.4.93/code/Makefile.in --- gobby-infinote-0.4.92/code/Makefile.in 2009-04-26 10:57:36.000000000 +0100 +++ gobby-infinote-0.4.93/code/Makefile.in 2009-12-19 23:16:17.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -95,6 +96,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -104,6 +107,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -128,11 +132,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -203,6 +209,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = util core dialogs operations commands noinst_LIBRARIES = libgobby.a libgobby_a_SOURCES = \ @@ -212,7 +220,7 @@ noinst_HEADERS = window.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code all: features.hpp @@ -304,7 +312,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -329,7 +337,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -515,6 +523,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -523,18 +533,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 diff -Nru gobby-infinote-0.4.92/code/operations/Makefile.am gobby-infinote-0.4.93/code/operations/Makefile.am --- gobby-infinote-0.4.92/code/operations/Makefile.am 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -3,19 +3,23 @@ libgobby_operations_a_SOURCES = \ operations.cpp \ operation-delete.cpp \ + operation-export-html.cpp \ operation-new.cpp \ operation-open.cpp \ + operation-open-multiple.cpp \ operation-save.cpp noinst_HEADERS = \ operations.hpp \ operation-delete.hpp \ + operation-export-html.hpp \ operation-new.hpp \ operation-open.hpp \ + operation-open-multiple.hpp \ operation-save.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code diff -Nru gobby-infinote-0.4.92/code/operations/Makefile.in gobby-infinote-0.4.93/code/operations/Makefile.in --- gobby-infinote-0.4.92/code/operations/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/Makefile.in 2009-12-19 23:16:18.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -49,8 +50,9 @@ libgobby_operations_a_AR = $(AR) $(ARFLAGS) libgobby_operations_a_LIBADD = am_libgobby_operations_a_OBJECTS = operations.$(OBJEXT) \ - operation-delete.$(OBJEXT) operation-new.$(OBJEXT) \ - operation-open.$(OBJEXT) operation-save.$(OBJEXT) + operation-delete.$(OBJEXT) operation-export-html.$(OBJEXT) \ + operation-new.$(OBJEXT) operation-open.$(OBJEXT) \ + operation-open-multiple.$(OBJEXT) operation-save.$(OBJEXT) libgobby_operations_a_OBJECTS = $(am_libgobby_operations_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/code depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -87,6 +89,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -96,6 +100,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -120,11 +125,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -195,24 +202,30 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ noinst_LIBRARIES = libgobby-operations.a libgobby_operations_a_SOURCES = \ operations.cpp \ operation-delete.cpp \ + operation-export-html.cpp \ operation-new.cpp \ operation-open.cpp \ + operation-open-multiple.cpp \ operation-save.cpp noinst_HEADERS = \ operations.hpp \ operation-delete.hpp \ + operation-export-html.hpp \ operation-new.hpp \ operation-open.hpp \ + operation-open-multiple.hpp \ operation-save.hpp appicondir = $(datadir)/pixmaps pixmapdir = $(datadir)/pixmaps/gobby-0.5 -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code all: all-am @@ -263,7 +276,9 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/operation-delete.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/operation-export-html.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/operation-new.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/operation-open-multiple.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/operation-open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/operation-save.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/operations.Po@am__quote@ @@ -399,6 +414,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -407,18 +424,28 @@ 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 diff -Nru gobby-infinote-0.4.92/code/operations/operation-delete.cpp gobby-infinote-0.4.93/code/operations/operation-delete.cpp --- gobby-infinote-0.4.92/code/operations/operation-delete.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-delete.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,7 +21,7 @@ Gobby::OperationDelete::OperationDelete(Operations& operations, InfcBrowser* browser, - InfcBrowserIter* iter): + const InfcBrowserIter* iter): Operation(operations), m_name(infc_browser_iter_get_name(browser, iter)) { @@ -38,9 +38,8 @@ G_OBJECT(m_request), "finished", G_CALLBACK(on_request_finished_static), this); - m_message_handle = get_status_bar().add_message( - StatusBar::INFO, - Glib::ustring::compose(_("Removing node %1..."), m_name), 0); + m_message_handle = get_status_bar().add_info_message( + Glib::ustring::compose(_("Removing node %1..."), m_name)); } Gobby::OperationDelete::~OperationDelete() @@ -54,10 +53,9 @@ void Gobby::OperationDelete::on_request_failed(const GError* error) { - get_status_bar().add_message( - StatusBar::ERROR, - Glib::ustring::compose(_("Failed to delete node %1: %2"), - m_name, error->message), 5); + get_status_bar().add_error_message( + Glib::ustring::compose(_("Failed to delete node %1"), m_name), + error->message); fail(); } diff -Nru gobby-infinote-0.4.92/code/operations/operation-delete.hpp gobby-infinote-0.4.93/code/operations/operation-delete.hpp --- gobby-infinote-0.4.92/code/operations/operation-delete.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-delete.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -28,7 +28,7 @@ { public: OperationDelete(Operations& operations, InfcBrowser* browser, - InfcBrowserIter* iter); + const InfcBrowserIter* iter); virtual ~OperationDelete(); diff -Nru gobby-infinote-0.4.92/code/operations/operation-export-html.cpp gobby-infinote-0.4.93/code/operations/operation-export-html.cpp --- gobby-infinote-0.4.92/code/operations/operation-export-html.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-export-html.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,530 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "operations/operation-export-html.hpp" + +#include "util/i18n.hpp" + +#include +#include + +#include + +#include +#include +#include +#include +#include + +namespace +{ + char const gobby_icon[] = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB9gMEQwLEOi12dIAAAvuSURBVGje7Zl/cFTXdcc/b997u/t2V9Ki30hCEBAGgw3IEGPiH+MQGzshdpO4hcSJcezG+eEJdiF4HNdpaNJmOm7tIW7dpiWexh2Pm4KTVrELFv4RG8e4EyaG8MMFYSQLIfQDSfv713vv3nf7xy5CgMBIns44M5yZN3vvvrv7zvecc7/nnvPgklySS/IHLdrFLJozZ862WbNmhfP5fEBKqSulFIBSStm27Yxda5qmCAQCDiiKqyCbzVqe540+y/M8T9O0stqaWr19R/uisb9fDKYGV+gw1Az9z4O8kG7GxQBobW2d+vTTT7cK4QJQURFFKTV6lcCUxkXFT4/Hn+/7/T62b9tOMBB8pu2Ftq+eelZlyP/mvAUfaw0GzMTRroGeT55M3/W6bXecTzffxbqqUChg2/ZZyjI6h1NAOGs8/lxKyYaHNlBXV7tm9erVPwBYBNGli65sPDmY9EL1U+oarpj+8TkLpr362ZqKRz40gFAohGVZZ3x3JgjGAXHK+mfOi2EkUUqx6clNmqEb31+zZs2DU0P+9UsWzJvWWl9r7vvN/6Z9SnlXLprZ1DKzfu1iqJh0CJXiGM+T+P1+crkcsVjsvJ4YL2T8fj9VVZWj923bwfO8Iogfb+LuNXdvarls9nErYFKWixvXRwNlb+/tzMS7BrR8QVSaun4rUm6ZDAB/PB4P9vT00NjYMK71zw2TC1sfFMpTDJ8cRnoCx3b54oqbNXf3G82J7i6UUhi6xtLqcGTEkfRkcyPKJ4+Nt50vxEJlwH/5NO06TSPg8/nw+XzMnXs5L7W3U1tbi5SS/v7+D7T+2fO6ulpeefkVuru7kZ6H49ic2P4if3LdEt5/42Vcx0UqRUJ4OJ7HO73xX76Uc/54IiHkB+Kahs9TSkOB9CQg2bd/P42NjSSTSQKBwOSsr+CWW29BKUU2m2Okv4/X9/+OdF8P0nVRgKsUtlQci+eOpXLOAxOl0acAXUNDoc65qZRi1apVvPjiCzQ0NNDV1cXAwMAYRU9b+7TSiunTZ1BXV3sW/Xr8atMTLGmqo3/3LjzAQ5GTCqUkQ9nC9l3QNxEAUeA+AE+p88ZXe3s7x4/30tTUSGNjI+Xl5WdY+OywOTWOxWKjRgiFQgjXRc8kEX4XJ5tBKRCewvYUnSO5w5m8+/BEE9mnAeZPDyGkIpUVOELheQpdA7+ukbI9MgWPLVu2sH79egqFPENDJ8coejYrje+Z+vo63tq6hZaqChLvH8YrriArFa6QIpG3/30XpCcK4JMAf/2VaXz8YyFiCZvB4QL5rIOlQ01Ep3PI5Y5/6aOtrY0VK1ZcgE7PVdzvN5k9u2V0feeuN1naVE33yHDR+krhKsXR4cxBuyD+5oMocjwAMwAWNgYRtiCsK5ordETAoHPIZeObFstuXsVzzzTyzt4D/OL5/+C+r3+TYNC6KBAAQgg0TaPrwH6mhvzEOo9wKpdnhSJdELm44zz5BojJAAgBaEIghUQ6EukIfrUvR+0t63hq/fXU1ZSDUnz+thsYOJniz7+7jm8/8BC6bpxH8bFMVbzX3NzMqz/dTGtVlGOH96AAobyi9Ucy+35dkM9cTIIdD0APcK2wXTzXQ7qSPccKTP/cI6z89A2ELKt4AtEUhubSVF/OM5v/joe//xTfuv/+szbwmSxkmv5RFkonEvgLGdInBlBecW1GegymC6mUEI9e7AlhvLPQd6KWL+vmBcIWKE/xXGc9n7rxGkJWCLQg+EqXFgCfju04zG2pwTBMLCuIZQUJBq3SZ4BAIEAwGCQQ8I+G0Us/3cysmijJ3mMl6yuEp+hK5A/sLIjXLxbAeB7oD5i+ff1x5xNHT7p847lBnv3XtVRWVXOoo5NoRTmapoOmoaTAFQ7JZJoVN9/Atu3bWLBg4Rl0ejqcVIl56qmvr2f40EHqgh7SKSaujJQcz3nqPdt+bCIFzXgAIrG8vnfjf8euWb044ps31c/Sq1t5/j+3UzjwE37fVcD2Qhg+HVNmqQnkeWV/mi07XmNkeIjp05vHVfzUZ1VVFb97eQfN5RaJ9w4Ws66ncKVi2CqX78uhY5MGoOv6581AaPOia28N+zTb9+qRtxjJSmqqKnn33cOsX1rJbUtObWyJsMOIgp+hmEM6nSGZjJFOp8ehz6LymqZRVVXF7ue3sKjCoC+bLjKP9IgFowRa5jkc6WRSAAJW2WPR6tpvfuEb3ysvn1KL69pkD9WR73gWTfeRy9lIV+AJD0/I0UtJj5AJjuPgOC6pVPq8zKOU4n927iSqQ/L9TpQqnnny0qP5xhsZTqbURGtiAyAYijzaOPPy+//ovkciuk9HCBelFPUtS/jhj+bjieI5VjoST3qj7FQE4/HekCQQDFJbW0Nz87QL0ufWf/sZ88oCDHaMoICc8IiHq/nq+u+wZ+NGJgNgVtAKP/SZu9ZFlJS4QhQf5kn60i6RCgkaRCIW0hF4UhUVd4uekMKjMxFA13XePdRBX1/fuAc5pRTCdRFDA+RFCoXCUYq0hPmfuY2AZaEmbH/wVVbXfHvx8s+Vg8J1HYTrIFwb4Tro/jAjGZvuY73Mn3cZ299JFr3glpKc67GvJ0/M9giHQuzZcwDQME0T0zQwDAPDMEtzkwM72mmJhkkP9KEU5KQiU9nADV/68qinJuwBTdNXN82ap7nO6YIdpVDKwy7k2P3mS4hkF48+vJYV//AkVcEsCxpMpOvR0Vfgr3Y7LLx1Mf39A2ScJMeP97Bs2TI0TTuncxE79C4NWhalFLZSJDwf1999L4ZpTsr6AD4pZblhBnAdG9exEa6N69ok40PsenEzn12znG2//g3hcIiFdyzn74+Uc+ezce76eZy/2KdRf89CWiLT+NFj/0h0VZQHvvcgO3bsQNd1IpHI6OXXfSR7O0n19qBQ5KVCNMzk6pUrS7WxNzkPoKEJxy4Wl6pUP3mSd157jns23kllYyX3/O2fcucPHqHluhYic5eTKWRI2SkyToZUIcUL7k6CC4MEQ0HMr5hsfPwvqampYenSpZimCUA6MUTDnGb2vr2XyyJ+hvDzhYe+C0A8nhhT3U3QA4mRodDJE11FD7g2wrHpPbKbK2+aA1NgMD1IQiRovr6ZpEgSy8VIFBKkCilShRRpO014Rhg9pBdziaUTujnET372z3R1dY2GZXKoj/lXzaVp2eW8VZDIqXXMuuqqYgUVrZh0a9G46aabtu597RfLM7lceW3DDBWtbfJnkp3anFU30JfqQ3oSV7rY0qbgFsi7eXJujpyToyAK4/6p1WzRsbODZDKJ67oYhkH6ZB/xdI6MBl9+eC1X337vaB0dDofG6XJcJICVK1f+2cqVK5eOjIxcc+TIkXmxWKxpyE4vHBEjPi/tjQJwpIMtbGxhn1fxsSL9EsdxyOfzlJWV8fZbb+CzU9yxdiNTZ10xppunSCbThMOhyQFYt25dP9AGtD3++OPVpmlee/CfDv68P9VveaoIQHgC4YmJxablI5FI4DgOSin0yhl8cc29hCJl57QaLSuApmmT3MRjZMOGDcNPPPHEnvRIWhvuHSZQM7mNJbKC5PEkhmHi8xVP7Pd86wE6OjpIpVKYph9d92FZFpZlEY1GPwQLnSWVlZVDt6+4/Ze/3fbbTwymBquNKYYebApaRr2h6ZaOHtTRreKGlXmJLEi8goeX9GBQIYYl1RVVfP1L91FZWVnqpyp8Ph+zZ8/m6NGjJBKJYiLL5XBdB9eVBAIBstmsBlgf+v3A1q1b9b6+vhal1JUnTpxY1N3d/WAwEoyksilSmRSZTAZN0wiHwkTCEcrDZUytbWDG9Bk0NTURDAYIhcJUVFRgmsY5jd9CIc/w8DDxeAIpBUIIbNumvX2H29bW9jXgMJAC4sAIF6iNLyrwZs6c+V5ra+sUv9/vMwxDMwxDA6UphXJdVwkhlJRSua6rHMf2zmylM24P9dQax3F8tl3QfD5N7+09EejuPvY1oPvs3jKQKIFJTxhASeqB8P/j2yIdqAaqgNiFtthY72h8NCUMTC2BMc7jxgygfVQBjI2QypL3K0pzCRRKII9/1AGc8f4QqAOCJRDJDwi1S3JJLskfgvwfcPxaSBSG+m4AAAAASUVORK5CYII="; + + // Sort tags so that CSS declaration order corresponds to priority + struct TagComparator + { + bool operator()(GtkTextTag* first, GtkTextTag* second) const + { + return gtk_text_tag_get_priority(first) < + gtk_text_tag_get_priority(second); + } + }; + + typedef std::set priority_tag_set; + + // We don't use Glib::ustring::compose for now because + // it's formatting support does not compile properly under + // Windows. See https://bugzilla.gnome.org/show_bug.cgi?id=599340 + Glib::ustring uprintf(gchar const* fmt, ...) + { + va_list args; + va_start(args, fmt); + gchar* str = g_strdup_vprintf(fmt, args); + va_end(args); + Glib::ustring result; + try + { + result = str; + } + catch (...) + { + g_free(str); + throw; + } + g_free(str); + return result; + } + + unsigned int color_to_rgb(GdkColor* color) + { + return ((color->red & 0xff00) << 8) + | (color->green & 0xff00) + | ((color->blue & 0xff00) >> 8); + } + + Glib::ustring get_current_tags(priority_tag_set& tags, + GtkTextIter* iter) + { + GSList* current_tags = gtk_text_iter_get_tags(iter); + // make sure to free current_tags in an exception-safe manner: + Glib::SListHandle > handle( + current_tags, Glib::OWNERSHIP_SHALLOW); + Glib::ustring classes; + for(GSList* tag = current_tags; + tag != 0; + tag = tag->next) + { + if(!classes.empty()) + classes += ' '; + classes += uprintf( + "tag_%p", + static_cast(tag->data)); + tags.insert(GTK_TEXT_TAG(tag->data)); + } + + return classes; + } + + // write the Gtk::TextBuffer from document into content, inserting + // s for line breaks and authorship of chunks of text, also + // save all users and tags encountered and the total number of + // lines dumped + void dump_buffer(Gobby::TextSessionView& view, + xmlpp::Element* content, + std::set& users, + priority_tag_set& tags, + unsigned int& line_counter) + { + using namespace Gobby; + users.clear(); + tags.clear(); + line_counter = 1; + xmlpp::Element* last_node = content; + xmlpp::Element* line_no = last_node->add_child("span"); + line_no->set_attribute("class", "line_no"); + line_no->set_attribute("id", "line_1"); + + GtkTextBuffer* buffer = GTK_TEXT_BUFFER( + view.get_text_buffer()); + InfTextGtkBuffer* inf_buffer + = INF_TEXT_GTK_BUFFER( + inf_session_get_buffer( + INF_SESSION(view.get_session()))); + + GtkTextIter begin; + gtk_text_buffer_get_start_iter(buffer, &begin); + { + GtkTextIter end; + gtk_text_buffer_get_end_iter(buffer, &end); + gtk_source_buffer_ensure_highlight( + GTK_SOURCE_BUFFER(buffer), + &begin, + &end); + } + + // iterate through chunks of text during which the currently + // set tags do not change, write each as a + while(!gtk_text_iter_is_end(&begin)) + { + // add current tags as classes for CSS formatting + // (both for author of text and syntax highlighting) + Glib::ustring classes = get_current_tags(tags, &begin); + if(!classes.empty()) + { + last_node = last_node->add_child("span"); + last_node->set_attribute("class", classes); + + // add mouseover "written by" popup + // this only needs to happen when there are tags, + // because the presence of an author implies a tag + InfTextUser* user + = inf_text_gtk_buffer_get_author( + inf_buffer, + &begin); + if(user) + { + char const* user_name = + inf_user_get_name( + INF_USER(user)); + last_node->set_attribute( + "title", + uprintf(_("written by: %s"), + user_name)); + users.insert(user); + } + } + + GtkTextIter next = begin; + gtk_text_iter_forward_to_tag_toggle(&next, 0); + + // split text by newlines so we can + // insert line number elements + gchar* text = gtk_text_iter_get_text(&begin, &next); + try + { + gchar const* last_pos = text; + for(gchar const* i = last_pos; *i; ++i) + { + if(*i != '\n') + continue; + + ++line_counter; + + gchar const* next_pos = i; + ++next_pos; + last_node->add_child_text( + Glib::ustring(last_pos, + next_pos)); + last_pos = next_pos; + + line_no = last_node->add_child("span"); + line_no->set_attribute("class", + "line_no"); + line_no->set_attribute( + "id", + uprintf("line_%d", + line_counter)); + } + + last_node->add_child_text( + Glib::ustring(last_pos)); + } + catch(...) + { + g_free(text); + throw; + } + g_free(text); + + // if we do not have any tags, we did not add classes + // and consequently did not go into a new span + if(!classes.empty()) + last_node = last_node->get_parent(); + + begin = next; + } + } + + // some random interesting information/advertisement to be put at + // the end of the html output + void dump_info(xmlpp::Element* node, Gobby::TextSessionView& view) + { + using namespace Gobby; + // put current time + char const* time_str; + int const n = 128; + char buf[n]; + { + std::time_t now; + std::time(&now); + // TODO: localtime is not threadsafe + if(std::strftime(buf, n, "%c", localtime(&now))) + time_str = buf; + else + time_str = _(""); + } + + char const* hostname = view.get_hostname().c_str(); + char const* path = view.get_path().c_str(); + + // %1$s is session name/hostname + // %2$s is path within the session + // %3$s is current date as formatted by %c, + // %4$s is a link to the gobby site, it must be present because + // we need to handle that manually to insert a hyperlink + // instead of just printf'ing it. + char const* translated = + _("Document generated from %1$s:%2$s at %3$s by %4$s"); + char const* p = std::strstr(translated, "%4$s"); + g_assert(p); + node->add_child_text( + uprintf(Glib::ustring(translated, p).c_str(), + hostname, path, time_str)); + + xmlpp::Element* link = node->add_child("a"); + link->set_attribute("href", "http://gobby.0x539.de/"); + link->add_child_text(PACKAGE_STRING); + + if(*p != '\0') + node->add_child_text( + uprintf(p+4 , hostname, path, time_str)); + } + + // list each author before the actual text + void dump_user_list(xmlpp::Element* list, + const std::set& users) + { + for(std::set::const_iterator i = users.begin(); + i != users.end(); + ++i) + { + gdouble hue = inf_text_user_get_hue(*i); + hue = std::fmod(hue, 1); + + Gdk::Color c; + c.set_hsv(360.0 * hue, 0.35, 1.0); + gchar const* name = inf_user_get_name(INF_USER(*i)); + const unsigned int rgb = color_to_rgb(c.gobj()); + + xmlpp::Element* item = list->add_child("li"); + item->add_child_text(name); + item->set_attribute( + "style", + uprintf("background-color: #%06x;\n", rgb)); + } + } + + void dump_tags_style(xmlpp::Element* css, + const priority_tag_set& tags) + { + for(priority_tag_set::const_iterator i = tags.begin(); + i != tags.end(); + ++i) + { + GdkColor* fg, * bg; + gint weight; + gboolean underline; + PangoStyle style; + gboolean fg_set, bg_set, weight_set, + underline_set, style_set; + g_object_get(G_OBJECT(*i), + "background-gdk", &bg, + "foreground-gdk", &fg, + "weight", &weight, + "underline", &underline, + "style", &style, + "background-set", &bg_set, + "foreground-set", &fg_set, + "weight-set", &weight_set, + "underline-set", &underline_set, + "style-set", &style_set, + NULL); + const unsigned int bg_rgb = color_to_rgb(bg); + const unsigned int fg_rgb = color_to_rgb(fg); + gdk_color_free(fg); + gdk_color_free(bg); + css->add_child_text( + uprintf(".tag_%p {\n", + static_cast(*i))); + if(fg_set) + css->add_child_text(uprintf( + " color: #%06x;\n", + fg_rgb)); + if(bg_set) + css->add_child_text(uprintf( + " background-color: #%06x;\n", + bg_rgb)); + if(weight_set) + css->add_child_text(uprintf( + " font-weight: %d;\n", + weight)); + if(underline_set) + css->add_child_text(uprintf( + " text-decoration: %s;\n", + underline ? "underline" : "none")); + if(style_set) + css->add_child_text(uprintf( + " font-style: %s;\n", + (style == PANGO_STYLE_ITALIC) ? + "italic" : "none")); + css->add_child_text("}\n"); + } + } + + // generate xhtml representation of the document and write it to the + // specified location in the filesystem + std::string export_html(Gobby::TextSessionView& view) + { + using namespace Gobby; + xmlpp::Document output; + + output.set_internal_subset("html", + "-//W3C//DTD XHTML 1.1//EN", + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"); + + xmlpp::Element + * root = output.create_root_node( + "html", + "http://www.w3.org/1999/xhtml"), + * head = root->add_child("head"), + * body = root->add_child("body"), + * title = head->add_child("title"), + * style = head->add_child("style"), + * h1 = body->add_child("h1"), + * h2 = body->add_child("h2"), + * user_list = body->add_child("ul"), + * content = body->add_child("pre"), + * info = body->add_child("p"), + * icon = h1->add_child("img"); + + icon->set_attribute("src", gobby_icon); + icon->set_attribute("width", "48"); + icon->set_attribute("height", "48"); + icon->set_attribute("alt", "a gobby document:"); + icon->set_attribute("class", "icon"); + + const Glib::ustring& document_name = view.get_title(); + title->add_child_text(document_name + " - infinote document"); + + h1->add_child_text(document_name); + + content->set_attribute("class", "document"); + + std::set users; + priority_tag_set tags; + unsigned int line_counter; + dump_buffer(view, content, users, tags, line_counter); + + h2->add_child_text(_("Participants")); + + info->set_attribute("class", "info"); + dump_info(info, view); + + style->set_attribute("type", "text/css"); + dump_user_list(user_list, users); + dump_tags_style(style, tags); + if(!user_list->cobj()->children) + { + body->remove_child(h2); + body->remove_child(user_list); + } + + style->add_child_text( + ".document {\n" + " border-top: 1px solid gray;\n" + " border-bottom: 1px solid black;\n" + " padding-bottom: 1.2em;\n" + " counter-reset: line;\n" + "}\n" + ".line_no:before {\n" + " content: counter(line);\n" + " counter-increment: line;\n" + "}\n" + ".info {\n" + " font-size: small;\n" + "}\n"); + + style->add_child_text( + uprintf( + ".line_no {\n" + " position: absolute;\n" + " float: left;\n" + " clear: left;\n" + " margin-left: -%1$uem;\n" + " color: gray;\n" + "}\n" + ".document {\n" + " padding-left: %1$uem\n" + "}\n", + static_cast( + std::log(line_counter) + / std::log(10))+1)); + + return output.write_to_string("utf-8"); + } +} // anonymous namespace + +Gobby::OperationExportHtml::OperationExportHtml(Operations& operations, + TextSessionView& view, + const std::string& uri): + Operation(operations), m_index(0), + m_xml(export_html(view)) +{ + m_file = Gio::File::create_for_uri(uri); + m_file->replace_async( + sigc::mem_fun(*this, &OperationExportHtml::on_file_replace)); + + m_message_handle = get_status_bar().add_info_message( + Glib::ustring::compose( + _("Exporting document %1 to %2 in HTML..."), + view.get_title(), uri)); +} + +Gobby::OperationExportHtml::~OperationExportHtml() +{ + // TODO: Cancel outstanding async operations? + get_status_bar().remove_message(m_message_handle); + + // Reset file explicitely before closing stream so that, on failure, + // existing files are not overriden with the temporary files we + // actually wrote to, at least for local files. + m_file.reset(); +} + +void Gobby::OperationExportHtml::on_file_replace( + const Glib::RefPtr& result) +{ + try + { + m_stream = m_file->replace_finish(result); + + m_stream->write_async( + m_xml.c_str(), + m_xml.length(), + sigc::mem_fun( + *this, + &OperationExportHtml::on_stream_write)); + } + catch(const Glib::Exception& ex) + { + error(ex.what()); + } +} + +void Gobby::OperationExportHtml::on_stream_write( + const Glib::RefPtr& result) +{ + try + { + gssize size = m_stream->write_finish(result); + // On size < 0 an exception should have been thrown. + g_assert(size >= 0); + + m_index += size; + if(m_index < m_xml.length()) + { + // Write next chunk + m_stream->write_async( + m_xml.c_str() + m_index, + m_xml.length() - m_index, + sigc::mem_fun( + *this, + &OperationExportHtml:: + on_stream_write)); + } + else + { + m_stream->close(); + finish(); + } + } + catch(const Glib::Exception& ex) + { + error(ex.what()); + } +} + +void Gobby::OperationExportHtml::error(const Glib::ustring& message) +{ + get_status_bar().add_error_message( + Glib::ustring::compose( + _("Failed to export document %1 to HTML"), m_file->get_uri()), + message); + + fail(); +} diff -Nru gobby-infinote-0.4.92/code/operations/operation-export-html.hpp gobby-infinote-0.4.93/code/operations/operation-export-html.hpp --- gobby-infinote-0.4.92/code/operations/operation-export-html.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-export-html.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,59 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_OPERATIONS_OPERATION_EXPORT_HTML_HPP_ +#define _GOBBY_OPERATIONS_OPERATION_EXPORT_HTML_HPP_ + +#include "operations/operations.hpp" +#include "core/documentinfostorage.hpp" + +#include +#include + +#include + +namespace Gobby +{ + +class OperationExportHtml: public Operations::Operation, public sigc::trackable +{ +public: + OperationExportHtml(Operations& operations, TextSessionView& view, + const std::string& uri); + + virtual ~OperationExportHtml(); + +protected: + void on_file_replace(const Glib::RefPtr& result); + void on_stream_write(const Glib::RefPtr& result); + + void error(const Glib::ustring& message); + +protected: + const std::string m_xml; + std::string::size_type m_index; + + Glib::RefPtr m_file; + Glib::RefPtr m_stream; + + StatusBar::MessageHandle m_message_handle; +}; + +} + +#endif // _GOBBY_OPERATIONS_OPERATION_EXPORT_HTML_HPP_ diff -Nru gobby-infinote-0.4.92/code/operations/operation-new.cpp gobby-infinote-0.4.93/code/operations/operation-new.cpp --- gobby-infinote-0.4.92/code/operations/operation-new.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-new.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -23,7 +23,7 @@ Gobby::OperationNew::OperationNew(Operations& operations, InfcBrowser* browser, - InfcBrowserIter* parent, + const InfcBrowserIter* parent, const Glib::ustring& name, bool directory): Operation(operations), m_name(name), m_directory(directory) @@ -51,11 +51,10 @@ G_OBJECT(m_request), "finished", G_CALLBACK(on_request_finished_static), this); - m_message_handle = get_status_bar().add_message( - StatusBar::INFO, + m_message_handle = get_status_bar().add_info_message( Glib::ustring::compose( directory ? _("Creating directory %1...") - : _("Creating document %1..."), name), 0); + : _("Creating document %1..."), name)); } Gobby::OperationNew::~OperationNew() @@ -69,12 +68,12 @@ void Gobby::OperationNew::on_request_failed(const GError* error) { - get_status_bar().add_message( - StatusBar::ERROR, + get_status_bar().add_error_message( Glib::ustring::compose( - m_directory ? _("Failed to create directory %1: %2") - : _("Failed to create document %1: %2"), - m_name, error->message), 5); + m_directory ? _("Failed to create directory %1") + : _("Failed to create document %1"), + m_name), + error->message); fail(); } diff -Nru gobby-infinote-0.4.92/code/operations/operation-new.hpp gobby-infinote-0.4.93/code/operations/operation-new.hpp --- gobby-infinote-0.4.92/code/operations/operation-new.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-new.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -28,7 +28,7 @@ { public: OperationNew(Operations& operations, InfcBrowser* browser, - InfcBrowserIter* parent, const Glib::ustring& name, + const InfcBrowserIter* parent, const Glib::ustring& name, bool directory); virtual ~OperationNew(); diff -Nru gobby-infinote-0.4.92/code/operations/operation-open.cpp gobby-infinote-0.4.93/code/operations/operation-open.cpp --- gobby-infinote-0.4.92/code/operations/operation-open.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-open.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -29,13 +29,6 @@ namespace { - bool operator==(const InfcBrowserIter& iter1, - const InfcBrowserIter& iter2) - { - return iter1.node == iter2.node && - iter1.node_id == iter2.node_id; - } - // These are the charsets that we try to convert a file from when // autodetecting the encoding. const char* get_autodetect_encoding(unsigned int index) @@ -64,13 +57,12 @@ Gobby::OperationOpen::OperationOpen(Operations& operations, const Preferences& preferences, InfcBrowser* browser, - InfcBrowserIter* parent, + const InfcBrowserIter* parent, const std::string& name, const std::string& uri, const char* encoding): Operation(operations), m_preferences(preferences), m_name(name), - m_browser(browser), m_parent(*parent), - m_encoding_auto_detect_index(-1), + m_parent(browser, parent), m_encoding_auto_detect_index(-1), m_eol_style(DocumentInfoStorage::EOL_CR), m_request(NULL), m_finished_id(0), m_failed_id(0), m_raw_pos(0) { @@ -92,17 +84,19 @@ m_file->read_async(sigc::mem_fun( *this, &OperationOpen::on_file_read)); - m_message_handle = get_status_bar().add_message( - StatusBar::INFO, + m_message_handle = get_status_bar().add_info_message( Glib::ustring::compose( - _("Opening document %1..."), uri), 0); + _("Opening document %1..."), uri)); - m_node_removed_id = g_signal_connect( - G_OBJECT(m_browser), "node-removed", - G_CALLBACK(&on_node_removed_static), this); + m_parent.signal_node_removed().connect( + sigc::mem_fun( + *this, &OperationOpen::on_node_removed)); m_content = GTK_TEXT_BUFFER(gtk_source_buffer_new(NULL)); - g_object_ref(m_browser); + // Disable GtkSourceView's Undo by beginning a not undoable + // action lasting forever. We have our own (local group) Undo. + gtk_source_buffer_begin_not_undoable_action( + GTK_SOURCE_BUFFER(m_content)); } catch(const Gio::Error& err) { @@ -114,12 +108,6 @@ { // TODO: Cancel outstanding async operations? - if(m_browser != NULL) - { - g_signal_handler_disconnect(m_browser, m_node_removed_id); - g_object_unref(m_browser); - } - if(m_request != NULL) { g_signal_handler_disconnect(m_request, m_finished_id); @@ -131,19 +119,10 @@ get_status_bar().remove_message(m_message_handle); } -void Gobby::OperationOpen::on_node_removed(InfcBrowserIter* iter) +void Gobby::OperationOpen::on_node_removed() { - InfcBrowserIter check = m_parent; - - do - { - if(*iter == check) - { - error(_("The directory into which the new document " - "should have been inserted was removed")); - return; - } - } while(infc_browser_iter_get_parent(m_browser, &check)); + error(_("The directory into which the new document " + "was supposed to be inserted has been removed")); } void Gobby::OperationOpen::on_file_read( @@ -397,22 +376,23 @@ inf_text_gtk_buffer_new(m_content, user_table); g_object_unref(user_table); + InfcBrowser* browser = m_parent.get_browser(); InfCommunicationManager* communication_manager = - infc_browser_get_communication_manager(m_browser); + infc_browser_get_communication_manager(browser); InfIo* io; - g_object_get(G_OBJECT(m_browser), "io", &io, NULL); + g_object_get(G_OBJECT(browser), "io", &io, NULL); InfTextSession* session = inf_text_session_new_with_user_table( communication_manager, INF_TEXT_BUFFER(text_gtk_buffer), io, - user_table, NULL, NULL); + user_table, INF_SESSION_RUNNING, NULL, NULL); g_object_unref(io); g_object_unref(text_gtk_buffer); m_request = infc_browser_add_note_with_content( - m_browser, &m_parent, m_name.c_str(), Plugins::TEXT, - INF_SESSION(session), TRUE); + m_parent.get_browser(), &m_parent.get_browser_iter(), + m_name.c_str(), Plugins::TEXT, INF_SESSION(session), TRUE); g_object_unref(session); // Note infc_browser_add_note_with_content does not return a @@ -425,6 +405,10 @@ m_finished_id = g_signal_connect( G_OBJECT(m_request), "finished", G_CALLBACK(on_request_finished_static), this); + + // TODO: We can remove the node watch here, but need to have the + // browser available in on_request_finished then. Maybe just + // disconnect the signal, or bind it. } void Gobby::OperationOpen::on_request_failed(const GError* error) @@ -441,17 +425,18 @@ info.uri = m_file->get_uri(); info.encoding = m_encoding; info.eol_style = m_eol_style; - get_info_storage().set_info(m_browser, iter, info); + get_info_storage().set_info(m_parent.get_browser(), iter, info); finish(); } void Gobby::OperationOpen::error(const Glib::ustring& message) { - get_status_bar().add_message( - StatusBar::ERROR, - Glib::ustring::compose(_("Failed to open document \"%1\": %2"), - m_file->get_uri(), message), 5); + get_status_bar().add_error_message( + Glib::ustring::compose( + _("Failed to open document \"%1\""), + m_file->get_uri()), + message); fail(); } diff -Nru gobby-infinote-0.4.92/code/operations/operation-open.hpp gobby-infinote-0.4.93/code/operations/operation-open.hpp --- gobby-infinote-0.4.92/code/operations/operation-open.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-open.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,6 +21,7 @@ #include "operations/operations.hpp" #include "core/documentinfostorage.hpp" +#include "core/nodewatch.hpp" #include #include @@ -32,7 +33,7 @@ { public: OperationOpen(Operations& operations, const Preferences& preferences, - InfcBrowser* browser, InfcBrowserIter* parent, + InfcBrowser* browser, const InfcBrowserIter* parent, const std::string& name, const std::string& uri, const char* encoding /* NULL means auto-detect */); @@ -40,15 +41,6 @@ protected: static void - on_node_removed_static(InfcBrowser* browser, - InfcBrowserIter* iter, - gpointer user_data) - { - static_cast(user_data)-> - on_node_removed(iter); - } - - static void on_request_failed_static(InfcNodeRequest* request, const GError* error, gpointer user_data) @@ -66,7 +58,7 @@ on_request_finished(iter); } - void on_node_removed(InfcBrowserIter* iter); + void on_node_removed(); void on_file_read(const Glib::RefPtr& result); void on_stream_read(const Glib::RefPtr& result); @@ -82,9 +74,7 @@ protected: const Preferences& m_preferences; std::string m_name; - InfcBrowser* m_browser; - InfcBrowserIter m_parent; - gulong m_node_removed_id; + NodeWatch m_parent; int m_encoding_auto_detect_index; std::auto_ptr m_iconv; diff -Nru gobby-infinote-0.4.92/code/operations/operation-open-multiple.cpp gobby-infinote-0.4.93/code/operations/operation-open-multiple.cpp --- gobby-infinote-0.4.92/code/operations/operation-open-multiple.cpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-open-multiple.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,176 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +// TODO: Show "Querying file name(s)..." in statusbar when querying file +// names without actually opening a file because of waiting for the file name. + +#include "operations/operation-open-multiple.hpp" +#include "operations/operation-open.hpp" +#include "util/i18n.hpp" + +Gobby::OperationOpenMultiple::OperationOpenMultiple( + Operations& operations, + const Preferences& prefs, + InfcBrowser* browser, + const InfcBrowserIter* parent, + unsigned int num_uris): + Operation(operations), m_preferences(prefs), + m_parent(browser, parent), m_num_uris(num_uris), + m_current(NULL) +{ + m_parent.signal_node_removed().connect( + sigc::mem_fun(*this, + &OperationOpenMultiple::on_node_removed)); +} + +void Gobby::OperationOpenMultiple::add_uri(const Glib::ustring& uri, + const char* name, + const char* encoding) +{ + g_assert(m_num_uris > 0); + -- m_num_uris; + + Glib::RefPtr file = Gio::File::create_for_uri(uri); + + info_list::iterator iter = m_infos.insert(m_infos.end(), Info()); + Info& info = *iter; + + info.uri = uri; + info.encoding = encoding; + + if(name == NULL) + { + try + { + // Query file name + file->query_info_async( + sigc::bind( + sigc::mem_fun( + *this, + &OperationOpenMultiple:: + on_query_info), + file, iter), + G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME); + } + catch(const Gio::Error& ex) + { + single_error(iter, ex.what()); + } + } + else + { + info.name = name; + if(!m_current) load_info(iter); + } +} + +void Gobby::OperationOpenMultiple::on_node_removed() +{ + fatal_error(_("Parent folder was removed")); +} + +void Gobby::OperationOpenMultiple::on_query_info( + const Glib::RefPtr& result, + const Glib::RefPtr& file, + const info_list::iterator& info) +{ + try + { + Glib::RefPtr file_info = + file->query_info_finish(result); + + info->name = file_info->get_display_name(); + if(!m_current) load_info(info); + } + catch(const Gio::Error& ex) + { + single_error(info, ex.what()); + } +} + +void Gobby::OperationOpenMultiple::on_finished( + bool success, + const info_list::iterator& info) +{ + m_infos.erase(info); + m_current = NULL; + + if(!m_num_uris && m_infos.empty()) + { + // All documents loaded + finish(); + } + else + { + // Find the next info with name set + for(info_list::iterator iter = m_infos.begin(); + iter != m_infos.end(); ++iter) + { + if(!iter->name.empty()) + { + load_info(iter); + break; + } + } + + // If no info was found, then wait for names to become + // available, either by the user adding more uris via + // add_uri(), or by query info results. + } +} + +void Gobby::OperationOpenMultiple::load_info(const info_list::iterator& iter) +{ + g_assert(m_current == NULL); + g_assert(!iter->name.empty()); + + m_current = m_operations.create_document( + m_parent.get_browser(), &m_parent.get_browser_iter(), + iter->name, m_preferences, iter->uri, iter->encoding); + + m_current->signal_finished().connect( + sigc::bind( + sigc::mem_fun( + *this, &OperationOpenMultiple::on_finished), + iter)); +} + +void Gobby::OperationOpenMultiple::single_error( + const info_list::iterator& iter, + const Glib::ustring& message) +{ + get_status_bar().add_error_message( + Glib::ustring::compose( + _("Failed to open document \"%1\""), iter->uri), + message); + + m_infos.erase(iter); + + // Finish operation if there are no more URIs to load + if(!m_num_uris && m_infos.empty()) + finish(); +} + +void Gobby::OperationOpenMultiple::fatal_error(const Glib::ustring& message) +{ + get_status_bar().add_error_message( + _("Failed to open multiple documents"), + message); + + fail(); +} diff -Nru gobby-infinote-0.4.92/code/operations/operation-open-multiple.hpp gobby-infinote-0.4.93/code/operations/operation-open-multiple.hpp --- gobby-infinote-0.4.92/code/operations/operation-open-multiple.hpp 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-open-multiple.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,77 @@ +/* Gobby - GTK-based collaborative text editor + * Copyright (C) 2008, 2009 Armin Burgmeier + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _GOBBY_OPERATIONS_OPERATION_OPEN_MULTIPLE_HPP_ +#define _GOBBY_OPERATIONS_OPERATION_OPEN_MULTIPLE_HPP_ + +#include "operations/operations.hpp" +#include "core/nodewatch.hpp" + +#include + +#include + +namespace Gobby +{ + +class OperationOpenMultiple: + public Operations::Operation, public sigc::trackable +{ +public: + OperationOpenMultiple(Operations& operations, + const Preferences& preferences, + InfcBrowser* browser, + const InfcBrowserIter* parent, + unsigned int num_uris); + + void add_uri(const Glib::ustring& uri, + const char* name /* Autodetected if NULL */, + const char* encoding /* Autodetected if NULL */); + +protected: + struct Info + { + Glib::ustring uri; + std::string name; + const char* encoding; + }; + + typedef std::list info_list; + + void on_node_removed(); + void on_query_info(const Glib::RefPtr& result, + const Glib::RefPtr& file, + const info_list::iterator& info); + void on_finished(bool success, const info_list::iterator& info); + + void load_info(const info_list::iterator& iter); + void single_error(const info_list::iterator& iter, + const Glib::ustring& message); + void fatal_error(const Glib::ustring& message); + + const Preferences& m_preferences; + NodeWatch m_parent; + unsigned int m_num_uris; + + info_list m_infos; + OperationOpen* m_current; +}; + +} + +#endif // _GOBBY_OPERATIONS_OPERATION_OPEN_MULTIPLE_HPP_ diff -Nru gobby-infinote-0.4.92/code/operations/operation-save.cpp gobby-infinote-0.4.93/code/operations/operation-save.cpp --- gobby-infinote-0.4.92/code/operations/operation-save.cpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-save.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -23,20 +23,20 @@ #include Gobby::OperationSave::OperationSave(Operations& operations, - DocWindow& document, + TextSessionView& view, Folder& folder, const std::string& uri, const std::string& encoding, DocumentInfoStorage::EolStyle eol_style): - Operation(operations), m_document(&document), + Operation(operations), m_view(&view), m_start_time(std::time(NULL)), m_current_line_index(0), m_iconv(encoding.c_str(), "UTF-8"), m_encoding(encoding), m_eol_style(eol_style), - m_storage_key(document.get_info_storage_key()), m_buffer_size(0), + m_storage_key(view.get_info_storage_key()), m_buffer_size(0), m_buffer_index(0) { // Load content so that the session can go on while saving - GtkTextBuffer* buffer = GTK_TEXT_BUFFER(document.get_text_buffer()); + GtkTextBuffer* buffer = GTK_TEXT_BUFFER(view.get_text_buffer()); GtkTextIter prev; GtkTextIter pos; GtkTextIter old_pos; @@ -69,10 +69,9 @@ m_file->replace_async(sigc::mem_fun(*this, &OperationSave::on_file_replace)); - m_message_handle = get_status_bar().add_message( - StatusBar::INFO, + m_message_handle = get_status_bar().add_info_message( Glib::ustring::compose(_("Saving document %1 to %2..."), - document.get_title(), uri), 0); + view.get_title(), uri)); folder.signal_document_removed().connect( sigc::mem_fun(*this, &OperationSave::on_document_removed)); @@ -96,13 +95,13 @@ m_file.reset(); } -void Gobby::OperationSave::on_document_removed(DocWindow& document) +void Gobby::OperationSave::on_document_removed(SessionView& view) { // We keep the document to unset the modified flag when the operation // is complete, however, if the document is removed in the meanwhile, // then we don't need to care anymore. - if(m_document == &document) - m_document = NULL; + if(m_view == &view) + m_view = NULL; } void Gobby::OperationSave::on_file_replace( @@ -154,14 +153,13 @@ m_stream->close(); - if(m_document != NULL) + if(m_view != NULL) { // TODO: Don't unset modified flag if the document has // changed in the meanwhile, but set // buffer-modified-time in algorithm. gtk_text_buffer_set_modified( - GTK_TEXT_BUFFER( - m_document->get_text_buffer()), + GTK_TEXT_BUFFER(m_view->get_text_buffer()), FALSE); } @@ -285,10 +283,10 @@ void Gobby::OperationSave::error(const Glib::ustring& message) { - get_status_bar().add_message( - StatusBar::ERROR, - Glib::ustring::compose(_("Failed to save document %1: %2"), - m_file->get_uri(), message), 5); + get_status_bar().add_error_message( + Glib::ustring::compose(_("Failed to save document %1"), + m_file->get_uri()), + message); fail(); } diff -Nru gobby-infinote-0.4.92/code/operations/operation-save.hpp gobby-infinote-0.4.93/code/operations/operation-save.hpp --- gobby-infinote-0.4.92/code/operations/operation-save.hpp 2009-04-21 19:58:07.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operation-save.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -33,22 +33,24 @@ class OperationSave: public Operations::Operation, public sigc::trackable { public: - OperationSave(Operations& operations, DocWindow& document, + // TODO: This should maybe just take a text buffer to save, not a + // textsessionview. + OperationSave(Operations& operations, TextSessionView& view, Folder& folder, const std::string& uri, const std::string& encoding, DocumentInfoStorage::EolStyle eol_style); virtual ~OperationSave(); - // Note these can return NULL in case the document has been removed + // Note these can return NULL in case the view has been closed // in the meanwhile. - DocWindow* get_document() { return m_document; } - const DocWindow* get_document() const { return m_document; } + TextSessionView* get_view() { return m_view; } + const TextSessionView* get_view() const { return m_view; } std::time_t get_start_time() const { return m_start_time; } protected: - void on_document_removed(DocWindow& document); + void on_document_removed(SessionView& view); void on_file_replace(const Glib::RefPtr& result); void on_stream_write(const Glib::RefPtr& result); @@ -56,7 +58,7 @@ void write_next(); void error(const Glib::ustring& message); protected: - DocWindow* m_document; + TextSessionView* m_view; std::time_t m_start_time; typedef std::pair Line; diff -Nru gobby-infinote-0.4.92/code/operations/operations.cpp gobby-infinote-0.4.93/code/operations/operations.cpp --- gobby-infinote-0.4.92/code/operations/operations.cpp 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operations.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -18,8 +18,10 @@ #include "operations/operation-new.hpp" #include "operations/operation-open.hpp" +#include "operations/operation-open-multiple.hpp" #include "operations/operation-save.hpp" #include "operations/operation-delete.hpp" +#include "operations/operation-export-html.hpp" #include "operations/operations.hpp" @@ -45,7 +47,7 @@ Gobby::OperationNew* Gobby::Operations::create_directory(InfcBrowser* browser, - InfcBrowserIter* parent, + const InfcBrowserIter* parent, const Glib::ustring& name) { OperationNew* op = new OperationNew(*this, browser, parent, @@ -57,7 +59,7 @@ Gobby::OperationNew* Gobby::Operations::create_document(InfcBrowser* browser, - InfcBrowserIter* parent, + const InfcBrowserIter* parent, const Glib::ustring& name) { OperationNew* op = new OperationNew(*this, browser, parent, @@ -69,7 +71,7 @@ Gobby::OperationOpen* Gobby::Operations::create_document(InfcBrowser* browser, - InfcBrowserIter* parent, + const InfcBrowserIter* parent, const Glib::ustring& name, const Preferences& preferences, const Glib::ustring& from_uri, @@ -83,20 +85,34 @@ return op; } +Gobby::OperationOpenMultiple* +Gobby::Operations::create_documents(InfcBrowser* browser, + const InfcBrowserIter* parent, + const Preferences& prefs, + unsigned int num_uris) +{ + OperationOpenMultiple* op = new OperationOpenMultiple(*this, prefs, + browser, parent, + num_uris); + + m_operations.insert(op); + return op; +} + Gobby::OperationSave* -Gobby::Operations::save_document(DocWindow& document, +Gobby::Operations::save_document(TextSessionView& view, Folder& folder, const std::string& uri, const std::string& encoding, DocumentInfoStorage::EolStyle eol_style) { - OperationSave* prev_op = get_save_operation_for_document(document); + OperationSave* prev_op = get_save_operation_for_document(view); // Cancel previous save operation: if(prev_op != NULL) fail_operation(prev_op); - OperationSave* op = new OperationSave(*this, document, folder, uri, + OperationSave* op = new OperationSave(*this, view, folder, uri, encoding, eol_style); m_operations.insert(op); @@ -106,15 +122,25 @@ Gobby::OperationDelete* Gobby::Operations::delete_node(InfcBrowser* browser, - InfcBrowserIter* iter) + const InfcBrowserIter* iter) { OperationDelete* op = new OperationDelete(*this, browser, iter); m_operations.insert(op); return op; } +Gobby::OperationExportHtml* +Gobby::Operations::export_html(TextSessionView& view, + const std::string& uri) +{ + OperationExportHtml* op = + new OperationExportHtml(*this, view, uri); + m_operations.insert(op); + return op; +} + Gobby::OperationSave* -Gobby::Operations::get_save_operation_for_document(DocWindow& document) +Gobby::Operations::get_save_operation_for_document(TextSessionView& view) { for(OperationSet::iterator iter = m_operations.begin(); iter != m_operations.end(); ++ iter) @@ -123,7 +149,7 @@ OperationSave* save_op = dynamic_cast(op); if(save_op != NULL) { - if(save_op->get_document() == &document) + if(save_op->get_view() == &view) return save_op; } } diff -Nru gobby-infinote-0.4.92/code/operations/operations.hpp gobby-infinote-0.4.93/code/operations/operations.hpp --- gobby-infinote-0.4.92/code/operations/operations.hpp 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/code/operations/operations.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -21,6 +21,7 @@ #include "core/documentinfostorage.hpp" #include "core/statusbar.hpp" +#include "core/textsessionview.hpp" #include @@ -34,8 +35,10 @@ class OperationNew; class OperationOpen; +class OperationOpenMultiple; class OperationSave; class OperationDelete; +class OperationExportHtml; class Operations: public sigc::trackable { @@ -75,9 +78,10 @@ m_operations.finish_operation(this); } + Operations& m_operations; + private: SignalFinished m_signal_finished; - Operations& m_operations; }; typedef sigc::signal SignalBeginSaveOperation; @@ -86,30 +90,38 @@ ~Operations(); OperationNew* create_directory(InfcBrowser* browser, - InfcBrowserIter* parent, + const InfcBrowserIter* parent, const Glib::ustring& name); OperationNew* create_document(InfcBrowser* browser, - InfcBrowserIter* parent, + const InfcBrowserIter* parent, const Glib::ustring& name); OperationOpen* create_document(InfcBrowser* browser, - InfcBrowserIter* parent, + const InfcBrowserIter* parent, const Glib::ustring& name, const Preferences& preferences, const Glib::ustring& from_uri, const char* encoding); - OperationSave* save_document(DocWindow& document, + OperationOpenMultiple* create_documents(InfcBrowser* browser, + const InfcBrowserIter* parent, + const Preferences& prefs, + unsigned int num_uris); + + OperationSave* save_document(TextSessionView& view, Folder& folder, const std::string& uri, const std::string& encoding, DocumentInfoStorage::EolStyle eol_style); OperationDelete* delete_node(InfcBrowser* browser, - InfcBrowserIter* iter); + const InfcBrowserIter* iter); + + OperationExportHtml* export_html(TextSessionView& view, + const std::string& uri); - OperationSave* get_save_operation_for_document(DocWindow& window); + OperationSave* get_save_operation_for_document(TextSessionView& view); SignalBeginSaveOperation signal_begin_save_operation() const { diff -Nru gobby-infinote-0.4.92/code/util/color.cpp gobby-infinote-0.4.93/code/util/color.cpp --- gobby-infinote-0.4.92/code/util/color.cpp 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/code/util/color.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -161,20 +161,30 @@ namespace Gobby { + void hsv_to_rgb(double& rh, double &gs, double &gv) + { + ::hsv_to_rgb(&rh, &gs, &gv); + } + + void rgb_to_hsv(double &rh, double &gs, double &gv) + { + ::rgb_to_hsv(&rh, &gs, &gv); + } + double hue_from_gdk_color(const Gdk::Color& color) { double r = color.get_red() / 65535.0; double g = color.get_green() / 65535.0; double b = color.get_blue() / 65535.0; - rgb_to_hsv(&r, &g, &b); + ::rgb_to_hsv(&r, &g, &b); return r; } Gdk::Color hue_to_gdk_color(double hue, double saturation, double value) { - hsv_to_rgb(&hue, &saturation, &value); + ::hsv_to_rgb(&hue, &saturation, &value); Gdk::Color color; color.set_red(static_cast(hue * 65535.0)); color.set_green(static_cast(saturation * 65535.0)); diff -Nru gobby-infinote-0.4.92/code/util/color.hpp gobby-infinote-0.4.93/code/util/color.hpp --- gobby-infinote-0.4.92/code/util/color.hpp 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/code/util/color.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -23,6 +23,9 @@ namespace Gobby { + void hsv_to_rgb(double& rh, double &gs, double &gv); + void rgb_to_hsv(double &rh, double &gs, double &gv); + double hue_from_gdk_color(const Gdk::Color& color); Gdk::Color hue_to_gdk_color(double hue, double saturation, diff -Nru gobby-infinote-0.4.92/code/util/Makefile.am gobby-infinote-0.4.93/code/util/Makefile.am --- gobby-infinote-0.4.92/code/util/Makefile.am 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/code/util/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -21,5 +21,5 @@ resolv.hpp \ serialize.hpp -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code diff -Nru gobby-infinote-0.4.92/code/util/Makefile.in gobby-infinote-0.4.93/code/util/Makefile.in --- gobby-infinote-0.4.92/code/util/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/code/util/Makefile.in 2009-12-19 23:16:18.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -87,6 +88,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -96,6 +99,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -120,11 +124,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -195,6 +201,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ noinst_LIBRARIES = libgobby-util.a libgobby_util_a_SOURCES = \ closebutton.cpp \ @@ -217,7 +225,7 @@ resolv.hpp \ serialize.hpp -AM_CPPFLAGS = $(gobby_CFLAGS) $(infinote_CFLAGS) \ +AM_CPPFLAGS = $(gobby_CFLAGS) $(unique_CFLAGS) $(infinote_CFLAGS) \ -I$(top_srcdir)/code all: all-am @@ -407,6 +415,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -415,18 +425,28 @@ 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 diff -Nru gobby-infinote-0.4.92/code/window.cpp gobby-infinote-0.4.93/code/window.cpp --- gobby-infinote-0.4.92/code/window.cpp 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/window.cpp 2009-12-19 23:13:04.000000000 +0000 @@ -19,47 +19,94 @@ #include "features.hpp" #include "window.hpp" -#include "core/docwindow.hpp" +#include "commands/file-tasks/task-open.hpp" +#include "commands/file-tasks/task-open-multiple.hpp" #include "core/iconmanager.hpp" #include "core/noteplugin.hpp" -#include "core/closableframe.hpp" #include "util/i18n.hpp" #include -Gobby::Window::Window(const IconManager& icon_mgr, Config& config): - Gtk::Window(Gtk::WINDOW_TOPLEVEL), m_config(config), +Gobby::Window::Window(unsigned int argc, const char* const argv[], + const IconManager& icon_mgr, + Config& config +#ifdef WITH_UNIQUE + , UniqueApp* app +#endif + ): + Gtk::Window(Gtk::WINDOW_TOPLEVEL), + m_argc(argc), m_argv(argv), m_config(config), m_lang_manager(gtk_source_language_manager_get_default()), m_preferences(m_config), m_icon_mgr(icon_mgr), +#ifdef WITH_UNIQUE + m_app(app), +#endif m_header(m_preferences, m_lang_manager), m_browser(*this, Plugins::TEXT, m_statusbar, m_preferences), - m_folder(m_preferences, m_lang_manager), - m_statusbar(m_folder, m_preferences), + m_text_folder(false, m_preferences, m_lang_manager), + m_chat_folder(true, m_preferences, m_lang_manager), + m_chat_frame(_("Chat"), IconManager::STOCK_CHAT, + m_preferences.appearance.show_chat), + m_statusbar(*this, m_text_folder, m_preferences), m_info_storage(INF_GTK_BROWSER_MODEL(m_browser.get_store())), - m_operations(m_info_storage, m_statusbar), - m_commands_autosave(m_folder, m_operations, m_info_storage, - m_preferences), - m_commands_browser(m_browser, m_folder, m_info_storage, m_statusbar, - m_preferences), - m_commands_browser_context(*this, m_browser, m_file_chooser, + m_operations(m_info_storage, m_statusbar), + m_browser_commands(m_browser, m_text_folder, m_statusbar), + m_browser_context_commands(*this, m_browser, m_file_chooser, m_operations, m_preferences), - m_commands_folder(m_folder), - m_commands_file(*this, m_header, m_browser, m_folder, m_statusbar, - m_file_chooser, m_operations, m_info_storage, + m_auth_commands(*this, m_browser, m_statusbar, m_preferences), + m_autosave_commands(m_text_folder, m_operations, m_info_storage, + m_preferences), + m_subscription_commands(m_browser, m_text_folder, + m_chat_folder, m_info_storage), + m_synchronization_commands(m_subscription_commands), + m_user_join_commands(m_subscription_commands, m_preferences), + m_text_folder_commands(m_text_folder), + m_chat_folder_commands(m_chat_folder), + m_file_commands(*this, m_header, m_browser, m_text_folder, + m_statusbar, m_file_chooser, m_operations, + m_info_storage, m_preferences), + m_edit_commands(*this, m_header, m_text_folder, m_statusbar, m_preferences), - m_commands_edit(*this, m_header, m_folder, m_statusbar, + m_view_commands(m_header, m_text_folder, m_chat_frame, m_chat_folder, m_preferences), - m_commands_view(m_header, m_folder, m_preferences), - m_commands_help(*this, m_header, m_icon_mgr), - m_title_bar(*this, m_folder) + m_help_commands(*this, m_header, m_icon_mgr), + m_title_bar(*this, m_text_folder) { +#ifdef WITH_UNIQUE + g_object_ref(app); + + unique_app_watch_window(app, gobj()); + g_signal_connect(app, "message-received", + G_CALLBACK(on_message_received_static), this); +#endif // WITH_UNIQUE + + m_chat_frame.signal_show().connect( + sigc::mem_fun(*this, &Window::on_chat_show), true); + m_chat_frame.signal_hide().connect( + sigc::mem_fun(*this, &Window::on_chat_hide), false); + m_header.show(); m_browser.show(); - m_folder.show(); + m_text_folder.show(); + m_chat_folder.show(); // Build UI - add_accel_group(m_header.get_accel_group() ); + Glib::RefPtr group = m_header.get_accel_group(); + // Add focus shortcuts; unfortunately gtkmm does not wrap that API + GClosure* closure = g_cclosure_new( + G_CALLBACK(on_switch_to_chat_static), this, NULL); + gtk_accel_group_connect(group->gobj(), GDK_m, GDK_CONTROL_MASK, + static_cast(0), closure); + //g_closure_unref(closure); + GClosure* closure2 = g_cclosure_new( + G_CALLBACK(on_switch_to_text_static), this, NULL); + gtk_accel_group_connect(group->gobj(), GDK_m, + static_cast( + GDK_CONTROL_MASK | GDK_SHIFT_MASK), + static_cast(0), closure2); + //g_closure_unref(closure2); + add_accel_group(group); Gtk::Frame* frame_browser = Gtk::manage(new ClosableFrame( _("Document Browser"), IconManager::STOCK_DOCLIST, @@ -70,11 +117,19 @@ Gtk::Frame* frame_text = Gtk::manage(new Gtk::Frame); frame_text->set_shadow_type(Gtk::SHADOW_IN); - frame_text->add(m_folder); + frame_text->add(m_text_folder); frame_text->show(); + m_chat_frame.set_shadow_type(Gtk::SHADOW_IN); + m_chat_frame.add(m_chat_folder); + // frame_chat manages visibility itself + + m_chat_paned.pack1(*frame_text, true, false); + m_chat_paned.pack2(m_chat_frame, false, false); + m_chat_paned.show(); + m_paned.pack1(*frame_browser, false, false); - m_paned.pack2(*frame_text, true, false); + m_paned.pack2(m_chat_paned, true, false); m_paned.show(); m_mainbox.pack_start(m_header, Gtk::PACK_SHRINK); @@ -96,6 +151,10 @@ { // Serialise preferences into config m_preferences.serialize(m_config); + +#ifdef WITH_UNIQUE + g_object_unref(m_app); +#endif } bool Gobby::Window::on_delete_event(GdkEventAny* event) @@ -161,6 +220,7 @@ Gtk::Window::on_realize(); m_paned.set_position(m_paned.get_width() * 2 / 5); + m_chat_paned.set_position(m_chat_paned.get_height() * 7 / 10); } void Gobby::Window::on_show() @@ -176,6 +236,31 @@ sigc::mem_fun(*this, &Window::on_initial_dialog_hide)); } + + // Open files passed on the command line + // TODO: Only do this when the Window is shown the first time + if(m_argc == 1) + { + Glib::RefPtr file( + Gio::File::create_for_commandline_arg(m_argv[0])); + m_file_commands.set_task(new TaskOpen(m_file_commands, file)); + } + else if(m_argc > 1) + { + TaskOpenMultiple* task = + new TaskOpenMultiple(m_file_commands); + + const char* const* arg = m_argv; + do + { + Glib::RefPtr file( + Gio::File::create_for_commandline_arg(*arg)); + task->add_file(file->get_uri()); + } while(*++arg); + + m_file_commands.set_task(task); + } + } void Gobby::Window::on_initial_dialog_hide() @@ -184,3 +269,133 @@ // Don't show again m_config.get_root()["initial"].set_value("run", true); } + +bool Gobby::Window::on_switch_to_chat() +{ + SessionView* view = m_chat_folder.get_current_document(); + if(!view) return false; + + ChatSessionView* chat_view = dynamic_cast(view); + if(!chat_view) return false; + + m_preferences.appearance.show_chat = true; + InfGtkChat* chat = chat_view->get_chat(); + GtkWidget* entry = inf_gtk_chat_get_entry(chat); + gtk_widget_grab_focus(GTK_WIDGET(entry)); + return true; +} + +bool Gobby::Window::on_switch_to_text() +{ + SessionView* view = m_text_folder.get_current_document(); + if(!view) return false; + + TextSessionView* text_view = dynamic_cast(view); + if(!text_view) return false; + + GtkSourceView* gtk_view = text_view->get_text_view(); + gtk_widget_grab_focus(GTK_WIDGET(gtk_view)); + // TODO: Turn chat back off if previously activated + // via on_switch_to_chat()? + return true; +} + +void Gobby::Window::on_chat_hide() +{ + Gtk::Widget* focus = get_focus(); + // Actually this always returns NULL if m_chat_frame has focus, + // because the focus is removed again. I think it's good enough + // though. + if(focus == NULL || focus == &m_chat_frame || + focus->is_ancestor(m_chat_frame)) + { + on_switch_to_text(); + } +} + +void Gobby::Window::on_chat_show() +{ + Gtk::Widget* focus = get_focus(); + if(!focus) on_switch_to_chat(); +} + +#ifdef WITH_UNIQUE +UniqueResponse Gobby::Window::on_message_received(UniqueCommand command, + UniqueMessageData* message, + guint time) +try +{ + struct uris_holder + { + uris_holder(gchar** uris): uris(uris) {} + ~uris_holder() { if(uris) g_strfreev(uris); } + operator gchar* const*() const { return uris; } + + gchar** uris; + + private: + uris_holder(const uris_holder&); + uris_holder& operator=(const uris_holder&); + }; + + switch (command) + { + case UNIQUE_ACTIVATE: + gtk_window_set_screen(gobj(), + unique_message_data_get_screen(message)); + present(time); + return UNIQUE_RESPONSE_OK; + case UNIQUE_OPEN: + { + uris_holder uris( + unique_message_data_get_uris(message)); + if(!uris || !uris[0]) + return UNIQUE_RESPONSE_FAIL; + if(uris[1]) // multiple files? + { + TaskOpenMultiple* task = + new TaskOpenMultiple(m_file_commands); + for(const gchar* const* p = uris; *p; ++p) + task->add_file(*p); + m_file_commands.set_task(task); + } + else + { + TaskOpen* task = new TaskOpen( + m_file_commands, + Gio::File::create_for_uri(*uris)); + m_file_commands.set_task(task); + } + return UNIQUE_RESPONSE_OK; + } + case UNIQUE_GOBBY_CONNECT: + { + uris_holder uris(unique_message_data_get_uris(message)); + if(!uris || !uris[0]) + return UNIQUE_RESPONSE_FAIL; + for(const gchar* const* p = uris; *p; ++p) + { + const gchar protocol[] = "infinote://"; + if(!g_str_has_prefix(*p, protocol)) + return UNIQUE_RESPONSE_FAIL; + connect_to_host(*p + sizeof(protocol) - 1); + } + return UNIQUE_RESPONSE_OK; + } + default: + return UNIQUE_RESPONSE_PASSTHROUGH; + } +} +// For example, connect_to_host might throw Glib::ThreadError +catch(const Glib::Exception& error) +{ + // TODO: Do we want to show a dialog here? + g_warning("Failed to process IPC message: %s", error.what().c_str()); + return UNIQUE_RESPONSE_FAIL; +} +catch (...) +{ + g_assert_not_reached(); + return UNIQUE_RESPONSE_FAIL; +} +#endif // WITH_UNIQUE diff -Nru gobby-infinote-0.4.92/code/window.hpp gobby-infinote-0.4.93/code/window.hpp --- gobby-infinote-0.4.92/code/window.hpp 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/code/window.hpp 2009-12-19 23:13:04.000000000 +0000 @@ -23,7 +23,11 @@ #include "commands/autosave-commands.hpp" #include "commands/browser-commands.hpp" +#include "commands/subscription-commands.hpp" +#include "commands/synchronization-commands.hpp" +#include "commands/user-join-commands.hpp" #include "commands/browser-context-commands.hpp" +#include "commands/auth-commands.hpp" #include "commands/folder-commands.hpp" #include "commands/file-commands.hpp" #include "commands/edit-commands.hpp" @@ -40,6 +44,7 @@ #include "core/statusbar.hpp" #include "core/preferences.hpp" #include "core/filechooser.hpp" +#include "core/closableframe.hpp" #include "core/titlebar.hpp" #include "util/config.hpp" @@ -48,21 +53,52 @@ #include #include +#ifdef WITH_UNIQUE +# include +#endif + #include namespace Gobby { +#ifdef WITH_UNIQUE +const int UNIQUE_GOBBY_CONNECT = 1; +#endif + class Window : public Gtk::Window { public: - Window(const IconManager& icon_mgr, Config& config); + Window(unsigned int argc, const char* const argv[], + const IconManager& icon_mgr, Config& config +#ifdef WITH_UNIQUE + , UniqueApp* app +#endif + ); ~Window(); - const Folder& get_folder() const { return m_folder; } - Folder& get_folder() { return m_folder; } + const Folder& get_text_folder() const { return m_text_folder; } + Folder& get_text_folder() { return m_text_folder; } + + void connect_to_host(const Glib::ustring& hostname) + { + m_browser.connect_to_host(hostname); + } protected: +#ifdef WITH_UNIQUE + static UniqueResponse + on_message_received_static(UniqueApp* app, + UniqueCommand command, + UniqueMessageData* message, + guint time, + gpointer user_data) + { + return static_cast(user_data)->on_message_received( + command, message, time); + } +#endif + // Gtk::Window overrides virtual bool on_delete_event(GdkEventAny* event); virtual bool on_key_press_event(GdkEventKey* event); @@ -72,19 +108,66 @@ void on_initial_dialog_hide(); + static gboolean on_switch_to_chat_static(GtkAccelGroup* group, + GObject* acceleratable, + guint keyval, + GdkModifierType modifier, + gpointer user_data) + { + return static_cast(user_data)->on_switch_to_chat(); + } + + static gboolean on_switch_to_text_static(GtkAccelGroup* group, + GObject* acceleratable, + guint keyval, + GdkModifierType modifier, + gpointer user_data) + { + return static_cast(user_data)->on_switch_to_text(); + } + + bool on_switch_to_chat(); + bool on_switch_to_text(); + + void on_chat_hide(); + void on_chat_show(); + +#ifdef WITH_UNIQUE + UniqueResponse on_message_received(UniqueCommand command, + UniqueMessageData* message, + guint time); +#endif + + // Command line arguments + // TODO: We only require these in on_show to initially open files + // passed on the command line. We can't do it in the constructor + // already, because otherwise the main window is shown after the + // document location dialog, and therefore ends up having focus, + // which it shouldn't. Maybe we'll find a better solution which does + // not require these member variables. + const unsigned int m_argc; + const char* const* m_argv; + // Config Config& m_config; GtkSourceLanguageManager* m_lang_manager; Preferences m_preferences; const IconManager& m_icon_mgr; +#ifdef WITH_UNIQUE + UniqueApp* m_app; +#endif + // GUI Gtk::VBox m_mainbox; Gtk::HPaned m_paned; + Gtk::VPaned m_chat_paned; Header m_header; Browser m_browser; - Folder m_folder; + Folder m_text_folder; + Folder m_chat_folder; + ClosableFrame m_chat_frame; StatusBar m_statusbar; // Functionality @@ -92,14 +175,22 @@ FileChooser m_file_chooser; Operations m_operations; - AutosaveCommands m_commands_autosave; - BrowserCommands m_commands_browser; - BrowserContextCommands m_commands_browser_context; - FolderCommands m_commands_folder; - FileCommands m_commands_file; - EditCommands m_commands_edit; - ViewCommands m_commands_view; - HelpCommands m_commands_help; + BrowserCommands m_browser_commands; + BrowserContextCommands m_browser_context_commands; + + AuthCommands m_auth_commands; + + AutosaveCommands m_autosave_commands; + SubscriptionCommands m_subscription_commands; + SynchronizationCommands m_synchronization_commands; + UserJoinCommands m_user_join_commands; + + FolderCommands m_text_folder_commands; + FolderCommands m_chat_folder_commands; + FileCommands m_file_commands; + EditCommands m_edit_commands; + ViewCommands m_view_commands; + HelpCommands m_help_commands; TitleBar m_title_bar; diff -Nru gobby-infinote-0.4.92/compile gobby-infinote-0.4.93/compile --- gobby-infinote-0.4.92/compile 2008-11-27 17:15:54.000000000 +0000 +++ gobby-infinote-0.4.93/compile 2009-12-14 09:54:28.000000000 +0000 @@ -1,9 +1,10 @@ #! /bin/sh # Wrapper for compilers which do not understand `-c -o'. -scriptversion=2005-05-14.22 +scriptversion=2009-10-06.20; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software +# Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -103,13 +104,13 @@ fi # Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. -# Note: use `[/.-]' here to ensure that we don't use the same name +# Note: use `[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break @@ -124,9 +125,9 @@ ret=$? if test -f "$cofile"; then - mv "$cofile" "$ofile" + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then - mv "${cofile}bj" "$ofile" + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" @@ -138,5 +139,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 gobby-infinote-0.4.92/config.guess gobby-infinote-0.4.93/config.guess --- gobby-infinote-0.4.92/config.guess 2009-03-17 13:25:12.000000000 +0000 +++ gobby-infinote-0.4.93/config.guess 2009-09-11 01:48:20.000000000 +0100 @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. -timestamp='2009-02-03' +timestamp='2009-08-19' # 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 @@ -27,16 +27,16 @@ # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` @@ -139,7 +139,8 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -if [ "${UNAME_SYSTEM}" = "Linux" ] ; then +case "${UNAME_SYSTEM}" in +Linux|GNU/*) eval $set_cc_for_build cat << EOF > $dummy.c #include @@ -154,7 +155,8 @@ #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep LIBC= | sed -e 's: ::g'` -fi + ;; +esac # Note: order is significant - the case branches are not exclusive. @@ -187,7 +189,7 @@ arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -341,6 +343,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 ;; @@ -670,7 +675,7 @@ # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null + grep -q __LP64__ then HP_ARCH="hppa2.0w" else @@ -836,6 +841,9 @@ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we @@ -860,7 +868,7 @@ exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -896,40 +904,17 @@ m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; - mips:Linux:*:*) + mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef mips - #undef mipsel + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 + CPU=${UNAME_MACHINE} #else CPU= #endif @@ -961,12 +946,12 @@ EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-gnu + echo sparc-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level @@ -1015,14 +1000,6 @@ elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-${LIBC}" ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-${LIBC}aout" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-${LIBC}oldld" - exit ;; esac # This should get integrated into the C code below, but now we hack if [ "$LIBC" != "gnu" ] ; then echo "$TENTATIVE" && exit 0 ; fi @@ -1090,7 +1067,7 @@ i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) @@ -1134,8 +1111,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 @@ -1195,7 +1175,7 @@ rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) diff -Nru gobby-infinote-0.4.92/config.sub gobby-infinote-0.4.93/config.sub --- gobby-infinote-0.4.92/config.sub 2009-03-17 13:25:12.000000000 +0000 +++ gobby-infinote-0.4.93/config.sub 2009-09-11 01:48:20.000000000 +0100 @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. -timestamp='2009-02-03' +timestamp='2009-08-19' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -32,13 +32,16 @@ # Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -149,10 +152,13 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -272,6 +278,7 @@ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ | mt \ | msp430 \ | nios | nios2 \ @@ -336,7 +343,7 @@ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -466,6 +473,10 @@ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; c90) basic_machine=c90-cray os=-unicos @@ -718,6 +729,9 @@ basic_machine=ns32k-utek os=-sysv ;; + microblaze) + basic_machine=microblaze-xilinx + ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -1277,7 +1291,7 @@ # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ @@ -1630,7 +1644,7 @@ -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) diff -Nru gobby-infinote-0.4.92/configure gobby-infinote-0.4.93/configure --- gobby-infinote-0.4.92/configure 2009-04-26 10:57:36.000000000 +0100 +++ gobby-infinote-0.4.93/configure 2009-12-19 23:16:16.000000000 +0000 @@ -1,20 +1,22 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for gobby 0.4.92. +# Generated by GNU Autoconf 2.64 for gobby 0.4.93. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008 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=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which @@ -22,23 +24,15 @@ 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 - as_nl=' ' export as_nl @@ -46,7 +40,13 @@ 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 -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +# 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 @@ -57,7 +57,7 @@ as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; - case $arg in + case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; @@ -80,13 +80,6 @@ } fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - # IFS # We need space, tab and new line, in precisely that order. Quoting is @@ -96,15 +89,15 @@ 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 ;; @@ -116,12 +109,16 @@ fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# 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='> ' @@ -133,330 +130,300 @@ LANGUAGE=C export LANGUAGE -# 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 || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - # 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=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_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=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. + 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 ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. + 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 crew@0x539.de +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 fi - -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 +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 - 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 +## --------------------- ## +## 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 - 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 +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" -fi -fi +} # as_fn_mkdir_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith -(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 bug-autoconf@gnu.org about your system, - echo including any error possibly output before this message. - echo This can help us improve future autoconf versions. - echo Configuration will now proceed without shell functions. -} +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/= @@ -473,8 +440,7 @@ s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (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 @@ -484,29 +450,18 @@ 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 @@ -536,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 @@ -555,10 +510,10 @@ if test -d "$1"; then test -d "$1/."; else - case $1 in + 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 ' @@ -572,7 +527,6 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - exec 7<&0 &1 # Name of the host. @@ -591,14 +545,14 @@ subdirs= MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='gobby' PACKAGE_TARNAME='gobby' -PACKAGE_VERSION='0.4.92' -PACKAGE_STRING='gobby 0.4.92' +PACKAGE_VERSION='0.4.93' +PACKAGE_STRING='gobby 0.4.93' PACKAGE_BUGREPORT='crew@0x539.de' +PACKAGE_URL='' ac_unique_file="code/window.hpp" # Factoring default headers for most tests. @@ -639,6 +593,14 @@ ac_subst_vars='LTLIBOBJS LIBOBJS +HAVE_GNOME_DOC_UTILS_FALSE +HAVE_GNOME_DOC_UTILS_TRUE +DISTCHECK_CONFIGURE_FLAGS +ENABLE_SK_FALSE +ENABLE_SK_TRUE +DOC_USER_FORMATS +OMF_DIR +HELP_DIR GETTEXT_PACKAGE ALL_LINGUAS INTLTOOL_PERL @@ -683,8 +645,10 @@ USE_NLS EGREP GREP -WITH_GNOME_FALSE -WITH_GNOME_TRUE +WITH_UNIQUE_FALSE +WITH_UNIQUE_TRUE +unique_LIBS +unique_CFLAGS infinote_LIBS infinote_CFLAGS gobby_LIBS @@ -782,6 +746,7 @@ program_transform_name prefix exec_prefix +PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION @@ -794,8 +759,12 @@ enable_option_checking enable_maintainer_mode enable_dependency_tracking -with_gnome +with_unique enable_nls +with_help_dir +with_omf_dir +with_help_formats +enable_scrollkeeper ' ac_precious_vars='build_alias host_alias @@ -813,7 +782,9 @@ gobby_CFLAGS gobby_LIBS infinote_CFLAGS -infinote_LIBS' +infinote_LIBS +unique_CFLAGS +unique_LIBS' # Initialize some variables set by options. @@ -922,8 +893,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + 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 @@ -949,8 +919,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + 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 @@ -1154,8 +1123,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + 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 @@ -1171,8 +1139,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } + 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 @@ -1202,17 +1169,17 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { $as_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 && - { $as_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 ;; @@ -1229,15 +1196,13 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { $as_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_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 - { (exit 1); exit 1; }; } ;; + fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1260,8 +1225,7 @@ [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - { $as_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' @@ -1291,11 +1255,9 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { $as_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" || - { $as_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. @@ -1334,13 +1296,11 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { $as_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" || { $as_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 @@ -1366,7 +1326,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 gobby 0.4.92 to adapt to many kinds of systems. +\`configure' configures gobby 0.4.93 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1436,7 +1396,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gobby 0.4.92:";; + short | recursive ) echo "Configuration of gobby 0.4.93:";; esac cat <<\_ACEOF @@ -1449,12 +1409,16 @@ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-nls do not use Native Language Support + --disable-scrollkeeper do not make updates to the scrollkeeper database Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-gnome integrate into the GNOME desktop environment - [default=no] + --with-unique Enables support for single-instance [default=auto] + --with-help-dir=DIR path to help docs + --with-omf-dir=DIR path to OMF files + --with-help-formats=FORMATS + list of formats Some influential environment variables: CXX C++ compiler command @@ -1475,6 +1439,9 @@ C compiler flags for infinote, overriding pkg-config infinote_LIBS linker flags for infinote, overriding pkg-config + unique_CFLAGS + C compiler flags for unique, overriding pkg-config + unique_LIBS linker flags for unique, 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. @@ -1539,25 +1506,420 @@ done fi -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -gobby configure 0.4.92 -generated by GNU Autoconf 2.63 +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +gobby configure 0.4.93 +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_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_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_cxx_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_cxx_try_compile + +# 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_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } >/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 + + 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_cpp + +# 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 +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 crew@0x539.de ## +## ---------------------------- ## +_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 + +# 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;} + +} # ac_fn_c_check_header_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. */ -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} _ACEOF - exit +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;} + +} # ac_fn_c_check_func 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 gobby $as_me 0.4.92, which was -generated by GNU Autoconf 2.63. Invocation command line was +It was created by gobby $as_me 0.4.93, which was +generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ @@ -1593,8 +1955,8 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" -done + $as_echo "PATH: $as_dir" + done IFS=$as_save_IFS } >&5 @@ -1631,9 +1993,9 @@ 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 @@ -1649,13 +2011,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 @@ -1680,13 +2042,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -1758,39 +2120,41 @@ 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 an explicitly selected file to automatically selected ones. @@ -1809,7 +2173,7 @@ do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then - { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 + { $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" @@ -1820,7 +2184,7 @@ # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then - { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 + { $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";; @@ -1828,7 +2192,7 @@ esac fi else - { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -1843,11 +2207,11 @@ eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 + { $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=: ;; ,);; @@ -1857,17 +2221,17 @@ 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:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 + { $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:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 + { $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:$LINENO: former value: \`$ac_old_val'" >&5 + { $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:$LINENO: current value: \`$ac_new_val'" >&5 + { $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 @@ -1879,43 +2243,20 @@ 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 - { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { $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:$LINENO: error: changes in the environment can compromise the build" >&5 + { $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_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } + 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' @@ -1928,24 +2269,16 @@ 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 - { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -$as_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, @@ -1971,10 +2304,10 @@ # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +{ $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 +if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -1982,11 +2315,11 @@ 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. @@ -2023,7 +2356,7 @@ ;; esac -done + done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir @@ -2039,7 +2372,7 @@ INSTALL=$ac_install_sh fi fi -{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +{ $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}. @@ -2050,7 +2383,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +{ $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 @@ -2074,11 +2407,8 @@ # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". - { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -$as_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 @@ -2087,13 +2417,10 @@ # Ok. : else - { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -$as_echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 +{ $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" @@ -2114,14 +2441,116 @@ am_missing_run="$MISSING --run " else am_missing_run= - { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 + { $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 -{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +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 +{ $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 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if 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. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then + if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2129,7 +2558,7 @@ 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 #( @@ -2141,7 +2570,7 @@ esac done done -done + done IFS=$as_save_IFS fi @@ -2157,7 +2586,7 @@ MKDIR_P="$ac_install_sh -d" fi fi -{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" @@ -2170,9 +2599,9 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2183,24 +2612,24 @@ 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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $AWK" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -2208,11 +2637,11 @@ test -n "$AWK" && break done -{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +{ $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 +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 @@ -2230,11 +2659,11 @@ rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2254,9 +2683,7 @@ am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -$as_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 @@ -2272,7 +2699,7 @@ # Define the identity of the package. PACKAGE='gobby' - VERSION='0.4.92' + VERSION='0.4.93' cat >>confdefs.h <<_ACEOF @@ -2295,112 +2722,10 @@ AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -install_sh=${install_sh-"\$(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 -{ $as_echo "$as_me:$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:$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:$LINENO: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:$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. -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:$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:$LINENO: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:$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:$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" +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. @@ -2414,16 +2739,17 @@ -{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 + +{ $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 - { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 + { $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= @@ -2443,35 +2769,27 @@ # Extract host information. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 -{ $as_echo "$as_me:$LINENO: checking build system type" >&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 +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 && - { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -$as_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` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -$as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -$as_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='-' @@ -2487,28 +2805,24 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:$LINENO: checking host system type" >&5 +{ $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 +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` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -$as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -$as_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='-' @@ -2540,9 +2854,9 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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_CXX+set}" = set; then +if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then @@ -2553,24 +2867,24 @@ 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_CXX="$ac_tool_prefix$ac_prog" - $as_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 CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - { $as_echo "$as_me:$LINENO: result: $CXX" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -2584,9 +2898,9 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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_CXX+set}" = set; then +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then @@ -2597,24 +2911,24 @@ 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_CXX="$ac_prog" - $as_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_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -2627,7 +2941,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $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 @@ -2638,64 +2952,49 @@ fi fi # Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_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.out.dSYM 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. -{ $as_echo "$as_me:$LINENO: checking for C++ compiler default output file name" >&5 +{ $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[^ ]*//'` @@ -2712,17 +3011,17 @@ 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_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, @@ -2739,7 +3038,7 @@ # 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 @@ -2758,84 +3057,75 @@ else ac_file='' fi - -{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } -if test -z "$ac_file"; then +if test -z "$ac_file"; then : $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +{ { $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:$LINENO: error: C++ compiler cannot create executables -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C++ compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; }; } +{ 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. -{ $as_echo "$as_me:$LINENO: checking whether the C++ compiler works" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' - { (case "(($ac_try" in + { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_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 - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { { $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:$LINENO: error: cannot run C++ compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot run C++ compiled programs. +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 -{ $as_echo "$as_me:$LINENO: result: yes" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -rm -f -r a.out a.out.dSYM 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. -{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +{ $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:$LINENO: result: $cross_compiling" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } -{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +{ $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" +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:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_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 @@ -2850,32 +3140,24 @@ esac done else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { { $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:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -$as_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_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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +{ $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 -{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +{ $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 +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 @@ -2887,17 +3169,17 @@ } _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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_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 @@ -2910,31 +3192,23 @@ $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +{ { $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:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error "cannot compute suffix of object files: cannot compile +See \`config.log' for more details." "$LINENO" 5; } fi - rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +{ $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_cxx_compiler_gnu+set}" = set; then +if test "${ac_cv_cxx_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 @@ -2948,37 +3222,16 @@ 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - $as_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_cxx_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes @@ -2987,20 +3240,16 @@ fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then +if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3011,35 +3260,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CXXFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3050,36 +3275,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cxx_werror_flag=$ac_save_cxx_werror_flag +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -3090,42 +3291,17 @@ 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then +if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS @@ -3159,7 +3335,7 @@ .PHONY: am__doit END # If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +{ $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= @@ -3187,12 +3363,12 @@ fi -{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 +{ $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 @@ -3212,9 +3388,9 @@ depcc="$CXX" am_compiler_list= -{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +{ $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_CXX_dependencies_compiler_type+set}" = set; then +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -3240,6 +3416,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 @@ -3257,7 +3438,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 @@ -3267,19 +3458,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 @@ -3303,7 +3498,7 @@ fi fi -{ $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type @@ -3326,9 +3521,9 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3339,24 +3534,24 @@ 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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3366,9 +3561,9 @@ ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3379,24 +3574,24 @@ 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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3405,7 +3600,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $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 @@ -3419,9 +3614,9 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3432,24 +3627,24 @@ 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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3459,9 +3654,9 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3473,18 +3668,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" - $as_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 @@ -3503,10 +3698,10 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3518,9 +3713,9 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3531,24 +3726,24 @@ 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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3562,9 +3757,9 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3575,24 +3770,24 @@ 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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -3605,7 +3800,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $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 @@ -3616,62 +3811,42 @@ fi -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +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_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error "no acceptable C compiler found in \$PATH +See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_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 -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +{ $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 +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 @@ -3685,37 +3860,16 @@ 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +{ $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 @@ -3724,20 +3878,16 @@ fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +{ $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 +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 @@ -3748,35 +3898,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 @@ -3787,36 +3913,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 @@ -3827,42 +3929,17 @@ 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +{ $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 @@ -3879,18 +3956,14 @@ CFLAGS= fi fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +{ $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 +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 @@ -3947,32 +4020,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 @@ -3983,17 +4033,19 @@ # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 + { $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' @@ -4003,9 +4055,9 @@ depcc="$CC" am_compiler_list= -{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +{ $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 +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 @@ -4031,6 +4083,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 @@ -4048,7 +4105,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 @@ -4058,19 +4125,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 @@ -4094,7 +4165,7 @@ fi fi -{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +{ $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 @@ -4114,14 +4185,14 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +{ $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 + if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -4136,11 +4207,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 @@ -4149,78 +4216,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 @@ -4232,7 +4255,7 @@ else ac_cv_prog_CPP=$CPP fi -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +{ $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 @@ -4243,100 +4266,49 @@ # 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 -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - rm -f conftest.err conftest.$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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { { $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:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } +as_fn_error "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c @@ -4345,115 +4317,23 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:$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 - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - -done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 +{ $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 - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi -{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +{ $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 +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 @@ -4471,11 +4351,11 @@ rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -4483,9 +4363,9 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -4496,24 +4376,24 @@ 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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -4523,9 +4403,9 @@ ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -4536,24 +4416,24 @@ 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" - $as_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 - { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -4562,7 +4442,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $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 @@ -4573,22 +4453,18 @@ fi if test "x$CC" != xcc; then - { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else - { $as_echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then +if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+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 @@ -4604,63 +4480,63 @@ # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* -if { (case "(($ac_try" in +if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - test -f conftest2.$ac_objext && { (case "(($ac_try" in + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_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 eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&5' - { (case "(($ac_try" in + { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_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 ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* - if { (case "(($ac_try" in + if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - test -f conftest2.$ac_objext && { (case "(($ac_try" in + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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=$? - $as_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 # cc works too. : @@ -4677,15 +4553,13 @@ fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } -cat >>confdefs.h <<\_ACEOF -#define NO_MINUS_C_MINUS_O 1 -_ACEOF +$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi @@ -4731,13 +4605,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -4745,8 +4619,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" @@ -4769,29 +4643,29 @@ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 + { $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 - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 + { $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 -{ $as_echo "$as_me:$LINENO: checking whether to enable WIN32 specific flags" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable WIN32 specific flags" >&5 $as_echo_n "checking whether to enable WIN32 specific flags... " >&6; } case "$host_os" in *mingw*) win32=true - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. set dummy ${ac_tool_prefix}windres; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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_WINDRES+set}" = set; then +if test "${ac_cv_prog_WINDRES+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then @@ -4802,24 +4676,24 @@ 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_WINDRES="${ac_tool_prefix}windres" - $as_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 WINDRES=$ac_cv_prog_WINDRES if test -n "$WINDRES"; then - { $as_echo "$as_me:$LINENO: result: $WINDRES" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 $as_echo "$WINDRES" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -4829,9 +4703,9 @@ ac_ct_WINDRES=$WINDRES # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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_WINDRES+set}" = set; then +if test "${ac_cv_prog_ac_ct_WINDRES+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_WINDRES"; then @@ -4842,24 +4716,24 @@ 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_WINDRES="windres" - $as_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_WINDRES=$ac_cv_prog_ac_ct_WINDRES if test -n "$ac_ct_WINDRES"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_WINDRES" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5 $as_echo "$ac_ct_WINDRES" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -4868,7 +4742,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $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 @@ -4881,7 +4755,7 @@ ;; *) win32=false - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac @@ -4894,21 +4768,17 @@ fi -required_libs="libxml++-2.6 glibmm-2.4 >= 2.16.0 giomm-2.4 >= 2.16.4 gtkmm-2.4 >= 2.12.0 gthread-2.0 gtksourceview-2.0" +required_libs="libxml++-2.6 glibmm-2.4 >= 2.18.0 giomm-2.4 >= 2.18.0 gtkmm-2.4 >= 2.12.0 gthread-2.0 gtksourceview-2.0 >= 2.4 libgsasl >= 0.2.21" # Check if we are running on OS X, for special link handling. if test "x$build_vendor" = "xapple" ; then -cat >>confdefs.h <<\_ACEOF -#define PLATFORM_OSX 1 -_ACEOF +$as_echo "#define PLATFORM_OSX 1" >>confdefs.h target=`pkg-config --variable=target gtk+-2.0` if test "$target" = "quartz" ; then -cat >>confdefs.h <<\_ACEOF -#define PLATFORM_OSX_NATIVE 1 -_ACEOF +$as_echo "#define PLATFORM_OSX_NATIVE 1" >>confdefs.h required_libs="$required_libs ige-mac-integration" fi @@ -4940,13 +4810,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -4954,8 +4824,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" @@ -4978,11 +4848,11 @@ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 + { $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 - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 + { $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 @@ -4995,9 +4865,9 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in @@ -5010,14 +4880,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" - $as_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 ;; @@ -5025,10 +4895,10 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5038,9 +4908,9 @@ ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in @@ -5053,14 +4923,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" - $as_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 ;; @@ -5068,10 +4938,10 @@ fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi @@ -5080,7 +4950,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +{ $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 @@ -5093,13 +4963,13 @@ fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 - { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi @@ -5107,18 +4977,18 @@ fi pkg_failed=no -{ $as_echo "$as_me:$LINENO: checking for gobby" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobby" >&5 $as_echo_n "checking for gobby... " >&6; } if test -n "$gobby_CFLAGS"; then pkg_cv_gobby_CFLAGS="$gobby_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$required_libs\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$required_libs\""; } >&5 ($PKG_CONFIG --exists --print-errors "$required_libs") 2>&5 ac_status=$? - $as_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_gobby_CFLAGS=`$PKG_CONFIG --cflags "$required_libs" 2>/dev/null` else pkg_failed=yes @@ -5130,11 +5000,11 @@ pkg_cv_gobby_LIBS="$gobby_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$required_libs\"") >&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$required_libs\""; } >&5 ($PKG_CONFIG --exists --print-errors "$required_libs") 2>&5 ac_status=$? - $as_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_gobby_LIBS=`$PKG_CONFIG --libs "$required_libs" 2>/dev/null` else pkg_failed=yes @@ -5160,18 +5030,7 @@ # Put the nasty error message in config.log where it belongs echo "$gobby_PKG_ERRORS" >&5 - { { $as_echo "$as_me:$LINENO: error: Package requirements ($required_libs) were not met: - -$gobby_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 gobby_CFLAGS -and gobby_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&5 -$as_echo "$as_me: error: Package requirements ($required_libs) were not met: + as_fn_error "Package requirements ($required_libs) were not met: $gobby_PKG_ERRORS @@ -5181,22 +5040,11 @@ Alternatively, you may set the environment variables gobby_CFLAGS and gobby_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 - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { { $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:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables gobby_CFLAGS -and gobby_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +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. @@ -5205,30 +5053,29 @@ 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 gobby_CFLAGS=$pkg_cv_gobby_CFLAGS gobby_LIBS=$pkg_cv_gobby_LIBS - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : fi pkg_failed=no -{ $as_echo "$as_me:$LINENO: checking for infinote" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for infinote" >&5 $as_echo_n "checking for infinote... " >&6; } if test -n "$infinote_CFLAGS"; then pkg_cv_infinote_CFLAGS="$infinote_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3\"") >&5 - ($PKG_CONFIG --exists --print-errors "libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_infinote_CFLAGS=`$PKG_CONFIG --cflags "libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3" 2>/dev/null` + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_infinote_CFLAGS=`$PKG_CONFIG --cflags "libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4" 2>/dev/null` else pkg_failed=yes fi @@ -5239,12 +5086,12 @@ pkg_cv_infinote_LIBS="$infinote_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3\"") >&5 - ($PKG_CONFIG --exists --print-errors "libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4") 2>&5 ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - pkg_cv_infinote_LIBS=`$PKG_CONFIG --libs "libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3" 2>/dev/null` + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_infinote_LIBS=`$PKG_CONFIG --libs "libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4" 2>/dev/null` else pkg_failed=yes fi @@ -5262,25 +5109,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - infinote_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3" 2>&1` + infinote_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4" 2>&1` else - infinote_PKG_ERRORS=`$PKG_CONFIG --print-errors "libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3" 2>&1` + infinote_PKG_ERRORS=`$PKG_CONFIG --print-errors "libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$infinote_PKG_ERRORS" >&5 - { { $as_echo "$as_me:$LINENO: error: Package requirements (libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3) were not met: - -$infinote_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 infinote_CFLAGS -and infinote_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. -" >&5 -$as_echo "$as_me: error: Package requirements (libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3) were not met: + as_fn_error "Package requirements (libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4) were not met: $infinote_PKG_ERRORS @@ -5290,22 +5126,11 @@ Alternatively, you may set the environment variables infinote_CFLAGS and infinote_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 - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + { { $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:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables infinote_CFLAGS -and infinote_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +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. @@ -5314,12 +5139,11 @@ 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 infinote_CFLAGS=$pkg_cv_infinote_CFLAGS infinote_LIBS=$pkg_cv_infinote_LIBS - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : fi @@ -5350,13 +5174,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -5364,8 +5188,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" @@ -5388,48 +5212,194 @@ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 + { $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 - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 + { $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 -# As we could not yet auto-detect the GNOME desktop environment, it's the -# user's choice to enable GNOME integration or not. +# Check for unique (optional) -# Check whether --with-gnome was given. -if test "${with_gnome+set}" = set; then - withval=$with_gnome; ac_cv_with_gnome=$withval +# Check whether --with-unique was given. +if test "${with_unique+set}" = set; then : + withval=$with_unique; use_unique=$withval else - ac_cv_with_gnome=no + use_unique=auto fi -{ $as_echo "$as_me:$LINENO: checking whether to integrate into the GNOME desktop environment" >&5 -$as_echo_n "checking whether to integrate into the GNOME desktop environment... " >&6; } -if test "${ac_cv_with_gnome+set}" = set; then - $as_echo_n "(cached) " >&6 +if test "x$use_unique" = "xauto"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unique" >&5 +$as_echo_n "checking for unique... " >&6; } + +if test -n "$unique_CFLAGS"; then + pkg_cv_unique_CFLAGS="$unique_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"unique-1.0 >= 1.1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "unique-1.0 >= 1.1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_unique_CFLAGS=`$PKG_CONFIG --cflags "unique-1.0 >= 1.1.2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$unique_LIBS"; then + pkg_cv_unique_LIBS="$unique_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"unique-1.0 >= 1.1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "unique-1.0 >= 1.1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_unique_LIBS=`$PKG_CONFIG --libs "unique-1.0 >= 1.1.2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + unique_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "unique-1.0 >= 1.1.2" 2>&1` + else + unique_PKG_ERRORS=`$PKG_CONFIG --print-errors "unique-1.0 >= 1.1.2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$unique_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_unique=no +elif test $pkg_failed = untried; then + use_unique=no +else + unique_CFLAGS=$pkg_cv_unique_CFLAGS + unique_LIBS=$pkg_cv_unique_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + use_unique=yes +fi +elif test "x$use_unique" = "xyes"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unique" >&5 +$as_echo_n "checking for unique... " >&6; } + +if test -n "$unique_CFLAGS"; then + pkg_cv_unique_CFLAGS="$unique_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"unique-1.0 >= 1.1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "unique-1.0 >= 1.1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_unique_CFLAGS=`$PKG_CONFIG --cflags "unique-1.0 >= 1.1.2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$unique_LIBS"; then + pkg_cv_unique_LIBS="$unique_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"unique-1.0 >= 1.1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "unique-1.0 >= 1.1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_unique_LIBS=`$PKG_CONFIG --libs "unique-1.0 >= 1.1.2" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + unique_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "unique-1.0 >= 1.1.2" 2>&1` + else + unique_PKG_ERRORS=`$PKG_CONFIG --print-errors "unique-1.0 >= 1.1.2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$unique_PKG_ERRORS" >&5 + + as_fn_error "Package requirements (unique-1.0 >= 1.1.2) were not met: + +$unique_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 unique_CFLAGS +and unique_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" "$LINENO" 5 +elif test $pkg_failed = untried; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "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 unique_CFLAGS +and unique_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." "$LINENO" 5; } else - ac_cv_with_gnome=no + unique_CFLAGS=$pkg_cv_unique_CFLAGS + unique_LIBS=$pkg_cv_unique_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_with_gnome" >&5 -$as_echo "$ac_cv_with_gnome" >&6; } -if test "x$ac_cv_with_gnome" = "xyes" ; then -cat >>confdefs.h <<\_ACEOF -#define WITH_GNOME 1 -_ACEOF +if test "x$use_unique" = "xyes"; then + +$as_echo "#define WITH_UNIQUE 1" >>confdefs.h fi - if test x$ac_cv_with_gnome != xno; then - WITH_GNOME_TRUE= - WITH_GNOME_FALSE='#' + + if test "x$use_unique" = "xyes"; then + WITH_UNIQUE_TRUE= + WITH_UNIQUE_FALSE='#' else - WITH_GNOME_TRUE='#' - WITH_GNOME_FALSE= + WITH_UNIQUE_TRUE='#' + WITH_UNIQUE_FALSE= fi cat >confcache <<\_ACEOF @@ -5459,13 +5429,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -5473,8 +5443,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" @@ -5497,11 +5467,11 @@ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 + { $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 - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 + { $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 @@ -5511,9 +5481,9 @@ ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`" -{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +{ $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 +if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -5524,7 +5494,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do + 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 @@ -5544,7 +5514,7 @@ $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" @@ -5559,26 +5529,24 @@ $ac_path_GREP_found && break 3 done done -done + done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +{ $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 +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 @@ -5592,7 +5560,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do + 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 @@ -5612,7 +5580,7 @@ $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" @@ -5627,12 +5595,10 @@ $ac_path_EGREP_found && break 3 done done -done + done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } + 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 @@ -5640,21 +5606,17 @@ fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" -{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +{ $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 +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 @@ -5669,48 +5631,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 @@ -5720,18 +5657,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 @@ -5741,14 +5674,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 @@ -5775,118 +5704,34 @@ 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -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 +if ac_fn_c_try_run "$LINENO"; then : -( exit $ac_status ) -ac_cv_header_stdc=no +else + ac_cv_header_stdc=no fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +{ $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 -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF +$as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+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 -/* 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then +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 `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -5897,151 +5742,12 @@ - -for ac_header in locale.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 -{ $as_echo "$as_me:$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:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------- ## -## Report this to crew@0x539.de ## -## ---------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then + 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 `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_LOCALE_H 1 _ACEOF fi @@ -6049,227 +5755,61 @@ done if test $ac_cv_header_locale_h = yes; then - { $as_echo "$as_me:$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 -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - am_cv_val_LC_MESSAGES=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - am_cv_val_LC_MESSAGES=no -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$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 - - fi - fi - USE_NLS=yes - - - gt_cv_have_gettext=no - - CATOBJEXT=NONE - XGETTEXT=: - INTLLIBS= - - if test "${ac_cv_header_libintl_h+set}" = set; then - { $as_echo "$as_me:$LINENO: checking for libintl.h" >&5 -$as_echo_n "checking for libintl.h... " >&6; } -if test "${ac_cv_header_libintl_h+set}" = set; then - $as_echo_n "(cached) " >&6 -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 -$as_echo "$ac_cv_header_libintl_h" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking libintl.h usability" >&5 -$as_echo_n "checking libintl.h usability... " >&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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking libintl.h presence" >&5 -$as_echo_n "checking libintl.h presence... " >&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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 - $as_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 -{ $as_echo "$as_me:$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:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ---------------------------- ## -## Report this to crew@0x539.de ## -## ---------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for libintl.h" >&5 -$as_echo_n "checking for libintl.h... " >&6; } -if test "${ac_cv_header_libintl_h+set}" = set; then + { $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 - ac_cv_header_libintl_h=$ac_header_preproc + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_val_LC_MESSAGES=yes +else + am_cv_val_LC_MESSAGES=no fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 -$as_echo "$ac_cv_header_libintl_h" >&6; } - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -if test "x$ac_cv_header_libintl_h" = x""yes; then +{ $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 + +$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h + + fi + fi + USE_NLS=yes + + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + 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 # - { $as_echo "$as_me:$LINENO: checking for ngettext in libc" >&5 + { $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 +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 @@ -6282,54 +5822,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else - $as_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 -rf conftest.dSYM -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 -{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5 +{ $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 - { $as_echo "$as_me:$LINENO: checking for dgettext in libc" >&5 + { $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 +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 @@ -6342,141 +5853,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else - $as_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 -rf conftest.dSYM -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 -{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5 +{ $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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+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 -/* 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi @@ -6491,18 +5887,14 @@ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then - { $as_echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 + { $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 +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. @@ -6520,55 +5912,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else - $as_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 -rf conftest.dSYM -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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 +{ $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:$LINENO: checking for ngettext in -lintl" >&5 +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 +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. @@ -6586,55 +5949,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else - $as_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 -rf conftest.dSYM -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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 +{ $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:$LINENO: checking for dgettext in -lintl" >&5 +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 +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. @@ -6652,43 +5986,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else - $as_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 -rf conftest.dSYM -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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 +{ $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 +if test "x$ac_cv_lib_intl_dgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes fi @@ -6698,22 +6007,18 @@ if test "$gt_cv_func_dgettext_libintl" != "yes" ; then - { $as_echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5 + { $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:$LINENO: result: " >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } - { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 + { $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 +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. @@ -6731,55 +6036,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else - $as_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 -rf conftest.dSYM -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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 +{ $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:$LINENO: checking for dcgettext in -lintl" >&5 +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 +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. @@ -6797,43 +6073,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else - $as_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 -rf conftest.dSYM -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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 +{ $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 +if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else @@ -6841,116 +6092,26 @@ fi else - : -fi - - fi - - # - # If we found libintl, then check in it for bind_textdomain_codeset(); - # we'll prefer libc if neither have bind_textdomain_codeset(), - # and both have dgettext and ngettext - # - if test "$gt_cv_func_dgettext_libintl" = "yes" ; then - glib_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $libintl_extra_libs" - unset ac_cv_func_bind_textdomain_codeset - -for ac_func in bind_textdomain_codeset -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+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 -/* 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" + : fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + for ac_func in bind_textdomain_codeset +do : + 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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi @@ -6980,15 +6141,13 @@ 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in @@ -7013,118 +6172,28 @@ fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then - { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+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 -/* 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""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 `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= - { $as_echo "$as_me:$LINENO: checking if msgfmt accepts -c" >&5 + { $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 @@ -7139,14 +6208,14 @@ "Content-Transfer-Encoding: 8bit\n" _ACEOF -if { ($as_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=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - MSGFMT_OPTS=-c; { $as_echo "$as_me:$LINENO: result: yes" >&5 + $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:$LINENO: result: no" >&5 +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 @@ -7154,9 +6223,9 @@ # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in @@ -7169,14 +6238,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" - $as_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" @@ -7185,19 +6254,19 @@ fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in @@ -7222,18 +6291,14 @@ fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $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 @@ -7245,121 +6310,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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - case $host in + case $host in *-*-solaris*) - { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 -$as_echo_n "checking for bind_textdomain_codeset... " >&6; } -if test "${ac_cv_func_bind_textdomain_codeset+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 -/* 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_bind_textdomain_codeset=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_bind_textdomain_codeset=no -fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 -$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; } -if test "x$ac_cv_func_bind_textdomain_codeset" = x""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 @@ -7374,10 +6332,8 @@ ;; esac fi - -rm -rf conftest.dSYM -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 @@ -7391,9 +6347,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 @@ -7401,7 +6355,7 @@ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else - { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 + { $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 @@ -7434,7 +6388,7 @@ if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else - { $as_echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 + { $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 @@ -7459,7 +6413,7 @@ fi done LINGUAS=$NEW_LINGUAS - { $as_echo "$as_me:$LINENO: result: $LINGUAS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi @@ -7512,16 +6466,16 @@ - { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5 + { $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 - { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } @@ -7529,35 +6483,31 @@ case "$am__api_version" in 1.01234) - { { $as_echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5 -$as_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 - { $as_echo "$as_me:$LINENO: checking for intltool >= 0.35.0" >&5 + { $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; }'` - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - { { $as_echo "$as_me:$LINENO: error: Your intltool is too old. You need intltool 0.35.0 or later." >&5 -$as_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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in @@ -7570,14 +6520,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" - $as_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 ;; @@ -7585,19 +6535,19 @@ fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_UPDATE" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in @@ -7610,14 +6560,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" - $as_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 ;; @@ -7625,19 +6575,19 @@ fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_MERGE" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in @@ -7650,14 +6600,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" - $as_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 ;; @@ -7665,18 +6615,16 @@ fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_EXTRACT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - { { $as_echo "$as_me:$LINENO: error: The intltool scripts were not found. Please install intltool." >&5 -$as_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 $< $@' @@ -7798,9 +6746,9 @@ # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in @@ -7813,14 +6761,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" - $as_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 ;; @@ -7828,19 +6776,19 @@ fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then - { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_MSGMERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in @@ -7853,14 +6801,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" - $as_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 ;; @@ -7868,19 +6816,19 @@ fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then - { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in @@ -7893,14 +6841,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" - $as_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 ;; @@ -7908,19 +6856,19 @@ fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in @@ -7933,14 +6881,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" - $as_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" @@ -7949,33 +6897,29 @@ fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 -$as_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 - { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 -$as_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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $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 +if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in @@ -7988,14 +6932,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" - $as_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 ;; @@ -8003,41 +6947,35 @@ fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then - { $as_echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then - { { $as_echo "$as_me:$LINENO: error: perl not found" >&5 -$as_echo "$as_me: error: perl not found" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "perl not found" "$LINENO" 5 fi -{ $as_echo "$as_me:$LINENO: checking for perl >= 5.8.1" >&5 +{ $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_echo "$as_me:$LINENO: error: perl 5.8.1 is required for intltool" >&5 -$as_echo "$as_me: error: perl 5.8.1 is required for intltool" >&2;} - { (exit 1); exit 1; }; } + 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:$LINENO: result: $IT_PERL_VERSION" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then - { $as_echo "$as_me:$LINENO: checking for XML::Parser" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - { $as_echo "$as_me:$LINENO: result: ok" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else - { { $as_echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5 -$as_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 @@ -8047,11 +6985,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 @@ -8063,155 +6997,139 @@ 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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$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 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - case $host in + case $host in *-*-solaris*) - { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 -$as_echo_n "checking for bind_textdomain_codeset... " >&6; } -if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then - $as_echo_n "(cached) " >&6 + 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 - 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 + DATADIRNAME=lib +fi -/* 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. */ + ;; + *) + DATADIRNAME=lib + ;; + esac +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi -#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; -} + + +GETTEXT_PACKAGE=gobby05 + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "${GETTEXT_PACKAGE}" _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 ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 + + +# Help file building + +gdu_cv_version_required=0.9.0 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking gnome-doc-utils >= $gdu_cv_version_required" >&5 +$as_echo_n "checking gnome-doc-utils >= $gdu_cv_version_required... " >&6; } +if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-doc-utils >= \$gdu_cv_version_required\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gnome-doc-utils >= $gdu_cv_version_required") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_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 && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_bind_textdomain_codeset=yes + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + gdu_cv_have_gdu=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + gdu_cv_have_gdu=no +fi + +if test "$gdu_cv_have_gdu" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gnome-doc-utils not found: documentation will not be built." >&5 +$as_echo "$as_me: WARNING: gnome-doc-utils not found: documentation will not be built." >&2;} +fi + + + +# Check whether --with-help-dir was given. +if test "${with_help_dir+set}" = set; then : + withval=$with_help_dir; +else + with_help_dir='${datadir}/gnome/help' +fi + +HELP_DIR="$with_help_dir" + - ac_cv_func_bind_textdomain_codeset=no -fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 -$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; } -if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then - DATADIRNAME=share +# Check whether --with-omf-dir was given. +if test "${with_omf_dir+set}" = set; then : + withval=$with_omf_dir; else - DATADIRNAME=lib + with_omf_dir='${datadir}/omf' fi - ;; - *) - DATADIRNAME=lib - ;; - esac +OMF_DIR="$with_omf_dir" + + + +# Check whether --with-help-formats was given. +if test "${with_help_formats+set}" = set; then : + withval=$with_help_formats; +else + with_help_formats='' fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +DOC_USER_FORMATS="$with_help_formats" + + +# Check whether --enable-scrollkeeper was given. +if test "${enable_scrollkeeper+set}" = set; then : + enableval=$enable_scrollkeeper; +else + enable_scrollkeeper=yes fi + if test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"; then + ENABLE_SK_TRUE= + ENABLE_SK_FALSE='#' +else + ENABLE_SK_TRUE='#' + ENABLE_SK_FALSE= +fi +DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS" + if test "$gdu_cv_have_gdu" = "yes"; then + HAVE_GNOME_DOC_UTILS_TRUE= + HAVE_GNOME_DOC_UTILS_FALSE='#' +else + HAVE_GNOME_DOC_UTILS_TRUE='#' + HAVE_GNOME_DOC_UTILS_FALSE= +fi -GETTEXT_PACKAGE=gobby05 -cat >>confdefs.h <<_ACEOF -#define GETTEXT_PACKAGE "${GETTEXT_PACKAGE}" -_ACEOF # AC_DEFINE(GOBBY_CONFIGDIR, [".gobby-0.5"], # [where to store Gobby's config files, # relative to the user's home directory]) -ac_config_files="$ac_config_files Makefile m4/Makefile po/Makefile.in code/Makefile code/util/Makefile code/core/Makefile code/dialogs/Makefile code/operations/Makefile code/commands/Makefile code/commands/file-tasks/Makefile contrib/Makefile icons/Makefile icons/hicolor/Makefile icons/hicolor/48x48/Makefile icons/hicolor/48x48/apps/Makefile icons/hicolor/48x48/actions/Makefile icons/hicolor/scalable/Makefile icons/hicolor/scalable/apps/Makefile icons/hicolor/scalable/actions/Makefile icons/HighContrastLargePrint/Makefile icons/HighContrastLargePrint/48x48/Makefile icons/HighContrastLargePrint/48x48/apps/Makefile icons/HighContrastLargePrint/48x48/actions/Makefile icons/HighContrastLargePrint/scalable/Makefile icons/HighContrastLargePrint/scalable/apps/Makefile icons/HighContrastLargePrint/scalable/actions/Makefile icons/HighContrastLargePrintInverse/Makefile icons/HighContrastLargePrintInverse/48x48/Makefile icons/HighContrastLargePrintInverse/48x48/apps/Makefile icons/HighContrastLargePrintInverse/48x48/actions/Makefile icons/HighContrastLargePrintInverse/scalable/Makefile icons/HighContrastLargePrintInverse/scalable/apps/Makefile icons/HighContrastLargePrintInverse/scalable/actions/Makefile win32/Makefile" +ac_config_files="$ac_config_files Makefile m4/Makefile po/Makefile.in code/Makefile code/util/Makefile code/core/Makefile code/dialogs/Makefile code/operations/Makefile code/commands/Makefile code/commands/file-tasks/Makefile icons/Makefile icons/hicolor/Makefile icons/hicolor/48x48/Makefile icons/hicolor/48x48/apps/Makefile icons/hicolor/48x48/actions/Makefile icons/hicolor/48x48/status/Makefile icons/hicolor/scalable/Makefile icons/hicolor/scalable/apps/Makefile icons/hicolor/scalable/actions/Makefile icons/hicolor/scalable/status/Makefile icons/HighContrastLargePrint/Makefile icons/HighContrastLargePrint/48x48/Makefile icons/HighContrastLargePrint/48x48/apps/Makefile icons/HighContrastLargePrint/48x48/actions/Makefile icons/HighContrastLargePrint/scalable/Makefile icons/HighContrastLargePrint/scalable/apps/Makefile icons/HighContrastLargePrint/scalable/actions/Makefile icons/HighContrastLargePrintInverse/Makefile icons/HighContrastLargePrintInverse/48x48/Makefile icons/HighContrastLargePrintInverse/48x48/apps/Makefile icons/HighContrastLargePrintInverse/48x48/actions/Makefile icons/HighContrastLargePrintInverse/scalable/Makefile icons/HighContrastLargePrintInverse/scalable/apps/Makefile icons/HighContrastLargePrintInverse/scalable/actions/Makefile help/Makefile win32/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -8240,13 +7158,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -8254,8 +7172,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" @@ -8278,11 +7196,11 @@ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 + { $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 - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 + { $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 @@ -8302,8 +7220,8 @@ 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 @@ -8311,59 +7229,50 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_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 - { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_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__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_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 "${WIN32_TRUE}" && test -z "${WIN32_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"WIN32\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"WIN32\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${WITH_GNOME_TRUE}" && test -z "${WITH_GNOME_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"WITH_GNOME\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"WITH_GNOME\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } + as_fn_error "conditional \"WIN32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${WITH_UNIQUE_TRUE}" && test -z "${WITH_UNIQUE_FALSE}"; then + as_fn_error "conditional \"WITH_UNIQUE\" 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 "${ENABLE_SK_TRUE}" && test -z "${ENABLE_SK_FALSE}"; then + as_fn_error "conditional \"ENABLE_SK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_GNOME_DOC_UTILS_TRUE}" && test -z "${HAVE_GNOME_DOC_UTILS_FALSE}"; then + as_fn_error "conditional \"HAVE_GNOME_DOC_UTILS\" 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" -{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +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. @@ -8373,17 +7282,18 @@ debug=false ac_cs_recheck=false ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -## --------------------- ## -## 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=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which @@ -8391,23 +7301,15 @@ 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 - as_nl=' ' export as_nl @@ -8415,7 +7317,13 @@ 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 -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +# 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 @@ -8426,7 +7334,7 @@ as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; - case $arg in + case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; @@ -8449,13 +7357,6 @@ } fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - # IFS # We need space, tab and new line, in precisely that order. Quoting is @@ -8465,15 +7366,15 @@ 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 ;; @@ -8485,12 +7386,16 @@ fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# 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='> ' @@ -8502,7 +7407,89 @@ LANGUAGE=C export LANGUAGE -# Required to use basename. +# 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 + + if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -8516,8 +7503,12 @@ 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\(//\)$' \| \ @@ -8537,76 +7528,25 @@ } 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" || - { $as_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 @@ -8635,8 +7575,56 @@ 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 @@ -8655,10 +7643,10 @@ if test -d "$1"; then test -d "$1/."; else - case $1 in + 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 ' @@ -8673,13 +7661,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 gobby $as_me 0.4.92, which was -generated by GNU Autoconf 2.63. Invocation command line was +This file was extended by gobby $as_me 0.4.93, which was +generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -8711,10 +7705,11 @@ 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 [OPTION]... [FILE]... +Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit @@ -8736,16 +7731,16 @@ Configuration commands: $config_commands -Report bugs to ." +Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -gobby config.status 0.4.92 -configured by $0, generated by GNU Autoconf 2.63, +gobby config.status 0.4.93 +configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2008 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." @@ -8788,20 +7783,19 @@ case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac - CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" + as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac - CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" + as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - { $as_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 ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ @@ -8809,11 +7803,10 @@ ac_cs_silent=: ;; # This is an error. - -*) { $as_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 @@ -8878,15 +7871,16 @@ "code/operations/Makefile") CONFIG_FILES="$CONFIG_FILES code/operations/Makefile" ;; "code/commands/Makefile") CONFIG_FILES="$CONFIG_FILES code/commands/Makefile" ;; "code/commands/file-tasks/Makefile") CONFIG_FILES="$CONFIG_FILES code/commands/file-tasks/Makefile" ;; - "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;; "icons/Makefile") CONFIG_FILES="$CONFIG_FILES icons/Makefile" ;; "icons/hicolor/Makefile") CONFIG_FILES="$CONFIG_FILES icons/hicolor/Makefile" ;; "icons/hicolor/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES icons/hicolor/48x48/Makefile" ;; "icons/hicolor/48x48/apps/Makefile") CONFIG_FILES="$CONFIG_FILES icons/hicolor/48x48/apps/Makefile" ;; "icons/hicolor/48x48/actions/Makefile") CONFIG_FILES="$CONFIG_FILES icons/hicolor/48x48/actions/Makefile" ;; + "icons/hicolor/48x48/status/Makefile") CONFIG_FILES="$CONFIG_FILES icons/hicolor/48x48/status/Makefile" ;; "icons/hicolor/scalable/Makefile") CONFIG_FILES="$CONFIG_FILES icons/hicolor/scalable/Makefile" ;; "icons/hicolor/scalable/apps/Makefile") CONFIG_FILES="$CONFIG_FILES icons/hicolor/scalable/apps/Makefile" ;; "icons/hicolor/scalable/actions/Makefile") CONFIG_FILES="$CONFIG_FILES icons/hicolor/scalable/actions/Makefile" ;; + "icons/hicolor/scalable/status/Makefile") CONFIG_FILES="$CONFIG_FILES icons/hicolor/scalable/status/Makefile" ;; "icons/HighContrastLargePrint/Makefile") CONFIG_FILES="$CONFIG_FILES icons/HighContrastLargePrint/Makefile" ;; "icons/HighContrastLargePrint/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES icons/HighContrastLargePrint/48x48/Makefile" ;; "icons/HighContrastLargePrint/48x48/apps/Makefile") CONFIG_FILES="$CONFIG_FILES icons/HighContrastLargePrint/48x48/apps/Makefile" ;; @@ -8901,12 +7895,11 @@ "icons/HighContrastLargePrintInverse/scalable/Makefile") CONFIG_FILES="$CONFIG_FILES icons/HighContrastLargePrintInverse/scalable/Makefile" ;; "icons/HighContrastLargePrintInverse/scalable/apps/Makefile") CONFIG_FILES="$CONFIG_FILES icons/HighContrastLargePrintInverse/scalable/apps/Makefile" ;; "icons/HighContrastLargePrintInverse/scalable/actions/Makefile") CONFIG_FILES="$CONFIG_FILES icons/HighContrastLargePrintInverse/scalable/actions/Makefile" ;; + "help/Makefile") CONFIG_FILES="$CONFIG_FILES help/Makefile" ;; "win32/Makefile") CONFIG_FILES="$CONFIG_FILES win32/Makefile" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; - *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -$as_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 @@ -8933,7 +7926,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. @@ -8944,11 +7937,7 @@ { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || -{ - $as_echo "$as_me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} +} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -8956,10 +7945,16 @@ if test -n "$CONFIG_FILES"; then -ac_cr=' ' +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' + ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi @@ -8973,24 +7968,18 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_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 @@ -9079,9 +8068,7 @@ else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 -$as_echo "$as_me: error: could not setup config files machinery" >&2;} - { (exit 1); exit 1; }; } + || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), @@ -9122,9 +8109,7 @@ if test -z "$ac_t"; then break elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -9209,9 +8194,7 @@ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 -$as_echo "$as_me: error: could not setup config headers machinery" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -9224,9 +8207,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 -$as_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 @@ -9254,12 +8235,10 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -$as_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 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - ac_file_inputs="$ac_file_inputs '$ac_f'" + as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't @@ -9270,7 +8249,7 @@ `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 + { $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. @@ -9283,9 +8262,7 @@ case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } ;; + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -9313,47 +8290,7 @@ 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=`$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_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_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 @@ -9410,7 +8347,6 @@ # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= - ac_sed_dataroot=' /datarootdir/ { p @@ -9420,12 +8356,11 @@ /@docdir@/p /@infodir@/p /@localedir@/p -/@mandir@/p -' +/@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -9435,7 +8370,7 @@ s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; + s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF @@ -9464,14 +8399,12 @@ $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } + || 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"; } && - { $as_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 $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;} @@ -9481,9 +8414,7 @@ -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -9494,25 +8425,19 @@ $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } + || 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:$LINENO: $ac_file is unchanged" >&5 + { $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" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } + || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 -$as_echo "$as_me: error: could not create -" >&2;} - { (exit 1); exit 1; }; } + || as_fn_error "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" @@ -9550,34 +8475,35 @@ s/.*/./; q'`/stamp-h$_am_stamp_count ;; - :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || # Autoconf 2.62 quotes --file arguments for eval, but not when files -# are listed without --file. Let's play safe and only enable the eval -# if we detect the quoting. -case $CONFIG_FILES in -*\'*) eval set x "$CONFIG_FILES" ;; -*) set x $CONFIG_FILES ;; -esac -shift -for mf -do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || + "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\(//\)$' \| \ @@ -9600,28 +8526,28 @@ 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\(//\)$' \| \ @@ -9644,60 +8570,19 @@ 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=`$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 + 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" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" done -done +} ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then - { { $as_echo "$as_me:$LINENO: error: po/Makefile.in.in was not created by intltoolize." >&5 -$as_echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2;} - { (exit 1); exit 1; }; } + 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" @@ -9720,15 +8605,12 @@ 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_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -9749,10 +8631,10 @@ 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:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 + { $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 gobby-infinote-0.4.92/configure.ac gobby-infinote-0.4.93/configure.ac --- gobby-infinote-0.4.92/configure.ac 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/configure.ac 2009-12-19 23:13:04.000000000 +0000 @@ -2,8 +2,9 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT([gobby], [0.4.92], [crew@0x539.de]) +AC_INIT([gobby], [0.4.93], [crew@0x539.de]) AM_INIT_AUTOMAKE(1.9 check-news) +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES]) AM_MAINTAINER_MODE AC_CONFIG_SRCDIR([code/window.hpp]) AC_CONFIG_HEADER([code/features.hpp]) @@ -36,7 +37,7 @@ esac AM_CONDITIONAL(WIN32, test x$win32 = xtrue) -required_libs="libxml++-2.6 glibmm-2.4 >= 2.16.0 giomm-2.4 >= 2.16.4 gtkmm-2.4 >= 2.12.0 gthread-2.0 gtksourceview-2.0" +required_libs="libxml++-2.6 glibmm-2.4 >= 2.18.0 giomm-2.4 >= 2.18.0 gtkmm-2.4 >= 2.12.0 gthread-2.0 gtksourceview-2.0 >= 2.4 libgsasl >= 0.2.21" # Check if we are running on OS X, for special link handling. if test "x$build_vendor" = "xapple" ; then @@ -52,22 +53,24 @@ # Checks for libraries. PKG_CHECK_MODULES([gobby], [$required_libs]) -PKG_CHECK_MODULES([infinote], [libinfinity-0.3 libinftext-0.3 libinfgtk-0.3 libinftextgtk-0.3]) +PKG_CHECK_MODULES([infinote], [libinfinity-0.4 libinftext-0.4 libinfgtk-0.4 libinftextgtk-0.4]) AC_CACHE_SAVE -# As we could not yet auto-detect the GNOME desktop environment, it's the -# user's choice to enable GNOME integration or not. -AC_ARG_WITH([gnome], - AS_HELP_STRING([--with-gnome], - [integrate into the GNOME desktop environment [[default=no]]]), - [ac_cv_with_gnome=$withval], [ac_cv_with_gnome=no]) -AC_CACHE_CHECK([whether to integrate into the GNOME desktop environment], - [ac_cv_with_gnome], [ac_cv_with_gnome=no]) -if test "x$ac_cv_with_gnome" = "xyes" ; then - AC_DEFINE([WITH_GNOME], 1, - [Define whether to integrate into the GNOME desktop environment.]) +# Check for unique (optional) +AC_ARG_WITH([unique], AS_HELP_STRING([--with-unique], + [Enables support for single-instance [[default=auto]]]), + [use_unique=$withval], [use_unique=auto]) +if test "x$use_unique" = "xauto"; then + PKG_CHECK_MODULES([unique], [unique-1.0 >= 1.1.2], [use_unique=yes], [use_unique=no]) +elif test "x$use_unique" = "xyes"; then + PKG_CHECK_MODULES([unique], [unique-1.0 >= 1.1.2]) fi -AM_CONDITIONAL(WITH_GNOME, test x$ac_cv_with_gnome != xno) + +if test "x$use_unique" = "xyes"; then + AC_DEFINE([WITH_UNIQUE], 1, [Whether support for unique is enabled]) +fi + +AM_CONDITIONAL([WITH_UNIQUE], test "x$use_unique" = "xyes") AC_CACHE_SAVE # Glib i18n/gettext support. @@ -80,6 +83,11 @@ AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["${GETTEXT_PACKAGE}"], [gettext domain]) +# Help file building +GNOME_DOC_INIT([0.9.0],, + [AC_MSG_WARN([[gnome-doc-utils not found: documentation will not be built.]])]) + + # AC_DEFINE(GOBBY_CONFIGDIR, [".gobby-0.5"], # [where to store Gobby's config files, # relative to the user's home directory]) @@ -97,16 +105,16 @@ code/commands/Makefile code/commands/file-tasks/Makefile - contrib/Makefile - icons/Makefile icons/hicolor/Makefile icons/hicolor/48x48/Makefile icons/hicolor/48x48/apps/Makefile icons/hicolor/48x48/actions/Makefile + icons/hicolor/48x48/status/Makefile icons/hicolor/scalable/Makefile icons/hicolor/scalable/apps/Makefile icons/hicolor/scalable/actions/Makefile + icons/hicolor/scalable/status/Makefile icons/HighContrastLargePrint/Makefile icons/HighContrastLargePrint/48x48/Makefile icons/HighContrastLargePrint/48x48/apps/Makefile @@ -122,6 +130,8 @@ icons/HighContrastLargePrintInverse/scalable/apps/Makefile icons/HighContrastLargePrintInverse/scalable/actions/Makefile + help/Makefile + win32/Makefile ]) diff -Nru gobby-infinote-0.4.92/contrib/gobby-0.5.desktop.in gobby-infinote-0.4.93/contrib/gobby-0.5.desktop.in --- gobby-infinote-0.4.92/contrib/gobby-0.5.desktop.in 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/contrib/gobby-0.5.desktop.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,10 +0,0 @@ -[Desktop Entry] -_Name=Gobby Collaborative Editor (0.5) -_Comment=Edit text files collaboratively -Exec=gobby-0.5 -Terminal=false -Type=Application -Icon=gobby-0.5.png -Categories=TextEditor;Network; -StartupNotify=true -MimeType=text/plain; diff -Nru gobby-infinote-0.4.92/contrib/Makefile.am gobby-infinote-0.4.93/contrib/Makefile.am --- gobby-infinote-0.4.92/contrib/Makefile.am 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/contrib/Makefile.am 1970-01-01 01:00:00.000000000 +0100 @@ -1,10 +0,0 @@ -if WITH_GNOME -# GNOME-specific installation. -desktopdir = $(datadir)/applications -desktop_in_files = gobby-0.5.desktop.in -desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) - -@INTLTOOL_DESKTOP_RULE@ -endif - -EXTRA_DIST = gobby-0.5.desktop.in diff -Nru gobby-infinote-0.4.92/contrib/Makefile.in gobby-infinote-0.4.93/contrib/Makefile.in --- gobby-infinote-0.4.92/contrib/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/contrib/Makefile.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,374 +0,0 @@ -# Makefile.in generated by automake 1.10.2 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. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = contrib -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/code/features.hpp -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -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|^.*/||'`; -am__installdirs = "$(DESTDIR)$(desktopdir)" -desktopDATA_INSTALL = $(INSTALL_DATA) -DATA = $(desktop_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PKG_CONFIG = @PKG_CONFIG@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -WINDRES = @WINDRES@ -XGETTEXT = @XGETTEXT@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -gobby_CFLAGS = @gobby_CFLAGS@ -gobby_LIBS = @gobby_LIBS@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infinote_CFLAGS = @infinote_CFLAGS@ -infinote_LIBS = @infinote_LIBS@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -# GNOME-specific installation. -@WITH_GNOME_TRUE@desktopdir = $(datadir)/applications -@WITH_GNOME_TRUE@desktop_in_files = gobby-0.5.desktop.in -@WITH_GNOME_TRUE@desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) -EXTRA_DIST = gobby-0.5.desktop.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu contrib/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu contrib/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - 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 -install-desktopDATA: $(desktop_DATA) - @$(NORMAL_INSTALL) - test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" - @list='$(desktop_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \ - $(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \ - done - -uninstall-desktopDATA: - @$(NORMAL_UNINSTALL) - @list='$(desktop_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \ - rm -f "$(DESTDIR)$(desktopdir)/$$f"; \ - done -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(desktopdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-desktopDATA - -install-dvi: install-dvi-am - -install-exec-am: - -install-html: install-html-am - -install-info: install-info-am - -install-man: - -install-pdf: install-pdf-am - -install-ps: install-ps-am - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-desktopDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am \ - install-desktopDATA install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am uninstall uninstall-am uninstall-desktopDATA - - -@WITH_GNOME_TRUE@@INTLTOOL_DESKTOP_RULE@ -# 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 gobby-infinote-0.4.92/debian/changelog gobby-infinote-0.4.93/debian/changelog --- gobby-infinote-0.4.92/debian/changelog 2009-12-26 21:00:32.000000000 +0000 +++ gobby-infinote-0.4.93/debian/changelog 2009-12-26 21:00:32.000000000 +0000 @@ -1,3 +1,15 @@ +gobby-infinote (0.4.93-1~karmic0) karmic; urgency=low + + * Backport to Ubuntu Karmic. + + -- Philipp Kern Sat, 26 Dec 2009 21:54:30 +0100 + +gobby-infinote (0.4.93-1) unstable; urgency=low + + * New upstream release + + -- Philipp Kern Tue, 22 Dec 2009 21:56:22 +0100 + gobby-infinote (0.4.92-2) experimental; urgency=low * Install .desktop file by passing --with-gnome to configure. diff -Nru gobby-infinote-0.4.92/debian/control gobby-infinote-0.4.93/debian/control --- gobby-infinote-0.4.92/debian/control 2009-12-26 21:00:32.000000000 +0000 +++ gobby-infinote-0.4.93/debian/control 2009-12-26 21:00:32.000000000 +0000 @@ -2,8 +2,8 @@ Section: net Priority: optional Maintainer: Philipp Kern -Build-Depends: debhelper (>= 7), autotools-dev, libxml++2.6-dev, libgtkmm-2.4-dev (>> 1:2.12.0), libinfinity-0.3-dev, libgtksourceview2.0-dev, gettext, intltool -Standards-Version: 3.8.1 +Build-Depends: debhelper (>= 7.0.50), autotools-dev, libxml++2.6-dev, libglibmm-2.4-dev (>> 2.18.0), libgtkmm-2.4-dev (>> 1:2.12.0), libinfinity-0.4-dev, libgtksourceview2.0-dev (>> 2.4), libgsasl7-dev (>> 0.2.21), libunique-dev, gettext, intltool, gnome-doc-utils, rarian-compat +Standards-Version: 3.8.3 Homepage: http://gobby.0x539.de Package: gobby-0.5 @@ -23,7 +23,7 @@ the Gtk+ toolkit. A dedicated server is available in the infinoted package. Package: gobby-0.5-dbg -Section: devel +Section: debug Priority: extra Architecture: any Depends: ${misc:Depends}, gobby-0.5 (= ${binary:Version}) diff -Nru gobby-infinote-0.4.92/debian/rules gobby-infinote-0.4.93/debian/rules --- gobby-infinote-0.4.92/debian/rules 2009-12-26 21:00:32.000000000 +0000 +++ gobby-infinote-0.4.93/debian/rules 2009-12-26 21:00:32.000000000 +0000 @@ -2,11 +2,12 @@ build: build-stamp build-stamp: - dh build --before configure - dh_auto_configure -- --with-gnome - dh build --after configure + dh build touch build-stamp +override_dh_auto_configure: + dh_auto_configure -- --with-unique + clean: dh clean @@ -21,11 +22,13 @@ touch install-stamp binary-arch: install - dh_strip -a --dbg-package=gobby-0.5-dbg - dh binary-arch --remaining + dh binary-arch binary-indep: install dh binary-indep +override_dh_strip: + dh_strip -a --dbg-package=gobby-0.5-dbg + binary: binary-arch binary-indep diff -Nru gobby-infinote-0.4.92/depcomp gobby-infinote-0.4.93/depcomp --- gobby-infinote-0.4.92/depcomp 2008-11-27 17:15:54.000000000 +0000 +++ gobby-infinote-0.4.93/depcomp 2009-12-14 09:54:28.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 @@ -87,6 +87,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 +201,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 +337,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 +418,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 +469,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 +521,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 +559,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 +592,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 +627,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 gobby-infinote-0.4.92/gnome-doc-utils.make gobby-infinote-0.4.93/gnome-doc-utils.make --- gobby-infinote-0.4.92/gnome-doc-utils.make 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/gnome-doc-utils.make 2009-11-29 11:48:22.000000000 +0000 @@ -0,0 +1,639 @@ +# gnome-doc-utils.make - make magic for building documentation +# Copyright (C) 2004-2005 Shaun McCance +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +################################################################################ +## @@ Generating Header Files + +## @ DOC_H_FILE +## The name of the header file to generate +DOC_H_FILE ?= + +## @ DOC_H_DOCS +## The input DocBook files for generating the header file +DOC_H_DOCS ?= + +$(DOC_H_FILE): $(DOC_H_DOCS); + @rm -f $@.tmp; touch $@.tmp; + echo 'const gchar* documentation_credits[] = {' >> $@.tmp + list='$(DOC_H_DOCS)'; for doc in $$list; do \ + xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \ + if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \ + xsltproc --path "$$xmlpath" $(_credits) $$doc; \ + done | sort | uniq \ + | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \ + | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp + echo ' NULL' >> $@.tmp + echo '};' >> $@.tmp + echo >> $@.tmp + list='$(DOC_H_DOCS)'; for doc in $$list; do \ + xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \ + if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \ + docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \ + echo $$xmlpath; \ + ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \ + for id in $$ids; do \ + echo '#define HELP_'`echo $$docid`'_'`echo $$id \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \ + done; \ + echo >> $@.tmp; \ + done; + cp $@.tmp $@ && rm -f $@.tmp + +dist-check-gdu: +if !HAVE_GNOME_DOC_UTILS + @echo "*** GNOME Doc Utils must be installed in order to make dist" + @false +endif + +.PHONY: dist-doc-header +dist-doc-header: $(DOC_H_FILE) + @if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \ + $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)"; + +doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header) + +.PHONY: clean-doc-header +_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header) +clean-local: $(_clean_doc_header) +distclean-local: $(_clean_doc_header) +mostlyclean-local: $(_clean_doc_header) +maintainer-clean-local: $(_clean_doc_header) +clean-doc-header: + rm -f $(DOC_H_FILE) + +all: $(DOC_H_FILE) + + +################################################################################ +## @@ Generating Documentation Files + +## @ DOC_MODULE +## The name of the document being built +DOC_MODULE ?= + +## @ DOC_ID +## The unique identifier for a Mallard document +DOC_ID ?= + +## @ DOC_PAGES +## Page files in a Mallard document +DOC_PAGES ?= + +## @ DOC_ENTITIES +## Files included with a SYSTEM entity +DOC_ENTITIES ?= + +## @ DOC_INCLUDES +## Files included with XInclude +DOC_INCLUDES ?= + +## @ DOC_FIGURES +## Figures and other external data +DOC_FIGURES ?= + +## @ DOC_FORMATS +## The default formats to be built and installed +DOC_FORMATS ?= docbook +_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS)) + +## @ DOC_LINGUAS +## The languages this document is translated into +DOC_LINGUAS ?= +_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)), \ + $(filter $(LINGUAS),$(DOC_LINGUAS)), \ + $(DOC_LINGUAS)) + +_DOC_ABS_SRCDIR = @abs_srcdir@ + + +################################################################################ +## Variables for Bootstrapping + +_xml2po ?= `which xml2po` +_xml2po_mode = $(if $(DOC_ID),mallard,docbook) + +_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` +_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` +_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` +_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl +_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl +_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl + +if ENABLE_SK +_ENABLE_SK = true +_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir` +_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir` +_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml +endif + + +################################################################################ +## @@ Rules for OMF Files + +db2omf_args = \ + --stringparam db2omf.basename $(DOC_MODULE) \ + --stringparam db2omf.format $(3) \ + --stringparam db2omf.dtd \ + $(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 \ + | sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/') \ + --stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2))) \ + --stringparam db2omf.omf_dir "$(OMF_DIR)" \ + --stringparam db2omf.help_dir "$(HELP_DIR)" \ + --stringparam db2omf.omf_in "$(_DOC_OMF_IN)" \ + $(if $(_ENABLE_SK), \ + --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)") \ + $(_db2omf) $(2) + +## @ _DOC_OMF_IN +## The OMF input file +_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in)) + +## @ _DOC_OMF_DB +## The OMF files for DocBook output +_DOC_OMF_DB = $(if $(_DOC_OMF_IN), \ + $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf)) + +$(_DOC_OMF_DB) : $(_DOC_OMF_IN) +$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml + @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \ + echo "The file '$(_skcontentslist)' does not exist." >&2; \ + echo "Please check your ScrollKeeper installation." >&2; \ + exit 1; } + xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; } + +## @ _DOC_OMF_HTML +## The OMF files for HTML output +_DOC_OMF_HTML = $(if $(_DOC_OMF_IN), \ + $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf)) + +$(_DOC_OMF_HTML) : $(_DOC_OMF_IN) +$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml +if ENABLE_SK + @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \ + echo "The file '$(_skcontentslist)' does not exist" >&2; \ + echo "Please check your ScrollKeeper installation." >&2; \ + exit 1; } +endif + xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; } + +## @ _DOC_OMF_ALL +## All OMF output files to be built +# FIXME +_DOC_OMF_ALL = \ + $(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB)) \ + $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML)) + +.PHONY: omf +omf: $(_DOC_OMF_ALL) + + +################################################################################ +## @@ C Locale Documents + +## @ _DOC_C_MODULE +## The top-level documentation file in the C locale +_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml) + +## @ _DOC_C_PAGES +## Page files in a Mallard document in the C locale +_DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page)) + +## @ _DOC_C_ENTITIES +## Files included with a SYSTEM entity in the C locale +_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent)) + +## @ _DOC_C_XINCLUDES +## Files included with XInclude in the C locale +_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc)) + +## @ _DOC_C_DOCS +## All documentation files in the C locale +_DOC_C_DOCS = \ + $(_DOC_C_ENTITIES) $(_DOC_C_INCLUDES) \ + $(_DOC_C_PAGES) $(_DOC_C_MODULE) + +## @ _DOC_C_DOCS_NOENT +## All documentation files in the C locale, +## except files included with a SYSTEM entity +_DOC_C_DOCS_NOENT = \ + $(_DOC_C_MODULE) $(_DOC_C_INCLUDES) \ + $(_DOC_C_PAGES) + +## @ _DOC_C_FIGURES +## All figures and other external data in the C locale +_DOC_C_FIGURES = $(if $(DOC_FIGURES), \ + $(foreach fig,$(DOC_FIGURES),C/$(fig)), \ + $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png))) + +## @ _DOC_C_HTML +## All HTML documentation in the C locale +# FIXME: probably have to shell escape to determine the file names +_DOC_C_HTML = $(foreach f, \ + $(shell xsltproc --xinclude \ + --stringparam db.chunk.basename "$(DOC_MODULE)" \ + $(_chunks) "C/$(DOC_MODULE).xml"), \ + C/$(f).xhtml) + +############################################################################### +## @@ Other Locale Documentation + +## @ _DOC_POFILES +## The .po files used for translating the document +_DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID), \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po)) + +.PHONY: po +po: $(_DOC_POFILES) + +## @ _DOC_LC_MODULES +## The top-level documentation files in all other locales +_DOC_LC_MODULES = $(if $(DOC_MODULE), \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml)) + +## @ _DOC_LC_PAGES +## Page files in a Mallard document in all other locales +_DOC_LC_PAGES = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES), \ + $(lc)/$(notdir $(page)) )) + +## @ _DOC_LC_XINCLUDES +## Files included with XInclude in all other locales +_DOC_LC_INCLUDES = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES), \ + $(lc)/$(notdir $(inc)) )) + +## @ _DOC_LC_HTML +## All HTML documentation in all other locales +# FIXME: probably have to shell escape to determine the file names +_DOC_LC_HTML = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML), \ + $(lc)/$(notdir $(doc)) )) + +## @ _DOC_LC_DOCS +## All documentation files in all other locales +_DOC_LC_DOCS = \ + $(_DOC_LC_MODULES) $(_DOC_LC_INCLUDES) $(_DOC_LC_PAGES) \ + $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML)) + +## @ _DOC_LC_FIGURES +## All figures and other external data in all other locales +_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS), \ + $(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) ) + +_DOC_SRC_FIGURES = \ + $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS), \ + $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) )) + +$(_DOC_POFILES): + @if ! test -d $(dir $@); then \ + echo "mkdir $(dir $@)"; \ + mkdir "$(dir $@)"; \ + fi + @if test ! -f $@ -a -f $(srcdir)/$@; then \ + echo "cp $(srcdir)/$@ $@"; \ + cp "$(srcdir)/$@" "$@"; \ + fi; + @docs=; \ + list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \ + docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \ + done; \ + if ! test -f $@; then \ + echo "(cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \ + else \ + echo "(cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \ + fi + +# FIXME: fix the dependancy +# FIXME: hook xml2po up +$(_DOC_LC_DOCS) : $(_DOC_POFILES) +$(_DOC_LC_DOCS) : $(_DOC_C_DOCS) + if ! test -d $(dir $@); then mkdir $(dir $@); fi + if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \ + po="$(dir $@)$(patsubst %/$(notdir $@),%,$@).po"; \ + if [ -f "$${po}" ]; then po="../$${po}"; else po="$(_DOC_ABS_SRCDIR)/$${po}"; fi; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -p "$${po}" \ + "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp) + +## @ _DOC_POT +## A pot file +_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot) +.PHONY: pot +pot: $(_DOC_POT) +$(_DOC_POT): $(_DOC_C_DOCS_NOENT) + $(_xml2po) -m $(_xml2po_mode) -e -o $@ $^ + + +################################################################################ +## @@ All Documentation + +## @ _DOC_HTML_ALL +## All HTML documentation, only if it's built +_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \ + $(_DOC_C_HTML) $(_DOC_LC_HTML)) + +_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml) + +$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS) + xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@) + + +################################################################################ +## All + +all: \ + $(_DOC_C_DOCS) $(_DOC_LC_DOCS) \ + $(_DOC_OMF_ALL) $(_DOC_DSK_ALL) \ + $(_DOC_HTML_ALL) $(_DOC_POFILES) + + +################################################################################ +## Clean + +.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir + +clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML) +clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML) +clean-doc-lc: + rm -f $(_DOC_LC_DOCS) + @list='$(_DOC_POFILES)'; for po in $$list; do \ + if ! test "$$po" -ef "$(srcdir)/$$po"; then \ + echo "rm -f $$po"; \ + rm -f "$$po"; \ + fi; \ + done + @for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc/.xml2po.mo"; then \ + echo "rm -f $$lc/.xml2po.mo"; \ + rm -f "$$lc/.xml2po.mo"; \ + fi; \ + done +clean-doc-dir: clean-doc-lc + @for lc in C $(_DOC_REAL_LINGUAS); do \ + for dir in `find $$lc -depth -type d`; do \ + if ! test $$dir -ef $(srcdir)/$$dir; then \ + echo "rmdir $$dir"; \ + rmdir "$$dir"; \ + fi; \ + done; \ + done + +_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf) +_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk) +_clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc) +_clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir) + +clean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +distclean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +mostlyclean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +maintainer-clean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) + + + +################################################################################ +## Dist + +.PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk +doc-dist-hook: \ + $(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs) \ + $(if $(_DOC_C_FIGURES),dist-doc-figs) \ + $(if $(_DOC_OMF_IN),dist-doc-omf) +# $(if $(_DOC_DSK_IN),dist-doc-dsk) + +dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES) + @for lc in C $(_DOC_REAL_LINGUAS); do \ + echo " $(mkinstalldirs) $(distdir)/$$lc"; \ + $(mkinstalldirs) "$(distdir)/$$lc"; \ + done + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \ + for doc in $$list; do \ + if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \ + docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + if ! test -d "$(distdir)/$$docdir"; then \ + echo "$(mkinstalldirs) $(distdir)/$$docdir"; \ + $(mkinstalldirs) "$(distdir)/$$docdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \ + $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \ + done + +dist-doc-figs: $(_DOC_SRC_FIGURES) + @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \ + for fig in $$list; do \ + if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$fig"; then \ + figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + if ! test -d "$(distdir)/$$figdir"; then \ + echo "$(mkinstalldirs) $(distdir)/$$figdir"; \ + $(mkinstalldirs) "$(distdir)/$$figdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \ + $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \ + fi; \ + done; + +dist-doc-omf: + @if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \ + $(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))" + +dist-doc-dsk: + @if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \ + $(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))" + + + +################################################################################ +## Check + +.PHONY: check-doc-docs check-doc-omf +check: \ + $(if $(DOC_MODULE),check-doc-docs) \ + $(if $(DOC_ID),check-doc-pages) \ + $(if $(_DOC_OMF_IN),check-doc-omf) + +check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) + @for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \ + xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \ + done + +check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES) + for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + for page in $(DOC_PAGES); do \ + echo "xmllint --noout --noent --path $$xmlpath --xinclude --relaxng $(_malrng) $$d$$lc/$$page"; \ + xmllint --noout --noent --path "$$xmlpath" --xinclude --relaxng "$(_malrng)" "$$d$$lc/$$page"; \ + done; \ + done + +check-doc-omf: $(_DOC_OMF_ALL) + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \ + xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \ + done + + + +################################################################################ +## Install + +.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk + +_doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE)) + +install-data-local: \ + $(if $(DOC_MODULE)$(DOC_ID),install-doc-docs) \ + $(if $(_DOC_HTML_ALL),install-doc-html) \ + $(if $(_DOC_C_FIGURES),install-doc-figs) \ + $(if $(_DOC_OMF_IN),install-doc-omf) +# $(if $(_DOC_DSK_IN),install-doc-dsk) + +install-doc-docs: + @for lc in C $(_DOC_REAL_LINGUAS); do \ + echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \ + $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \ + done + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \ + if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \ + docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \ + if ! test -d "$$docdir"; then \ + echo "$(mkinstalldirs) $$docdir"; \ + $(mkinstalldirs) "$$docdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \ + done + +install-doc-figs: + @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \ + for lc in C $(_DOC_REAL_LINGUAS); do \ + figsymlink=false; \ + if test -f "$$lc/$$fig"; then \ + figfile="$$lc/$$fig"; \ + elif test -f "$(srcdir)/$$lc/$$fig"; then \ + figfile="$(srcdir)/$$lc/$$fig"; \ + else \ + figsymlink=true; \ + fi; \ + figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \ + if ! test -d "$$figdir"; then \ + echo "$(mkinstalldirs) $$figdir"; \ + $(mkinstalldirs) "$$figdir"; \ + fi; \ + figbase=`echo $$fig | sed -e 's/^.*\///'`; \ + if $$figsymlink; then \ + echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \ + ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \ + else \ + echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \ + $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \ + fi; \ + done; \ + done + +install-doc-html: + echo install-html + +install-doc-omf: + $(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir) + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \ + done + @if test "x$(_ENABLE_SK)" = "xtrue"; then \ + echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \ + scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \ + fi; + +install-doc-dsk: + echo install-dsk + + + +################################################################################ +## Uninstall + +.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk +uninstall-local: \ + $(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs) \ + $(if $(_DOC_HTML_ALL),uninstall-doc-html) \ + $(if $(_DOC_C_FIGURES),uninstall-doc-figs) \ + $(if $(_DOC_OMF_IN),uninstall-doc-omf) +# $(if $(_DOC_DSK_IN),uninstall-doc-dsk) + +uninstall-doc-docs: + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \ + echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + done + +uninstall-doc-figs: + @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \ + echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \ + rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \ + done; + +uninstall-doc-omf: + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + if test "x$(_ENABLE_SK)" = "xtrue"; then \ + echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + fi; \ + echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + done diff -Nru gobby-infinote-0.4.92/gobby-0.5.desktop.in gobby-infinote-0.4.93/gobby-0.5.desktop.in --- gobby-infinote-0.4.92/gobby-0.5.desktop.in 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/gobby-0.5.desktop.in 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,10 @@ +[Desktop Entry] +_Name=Gobby Collaborative Editor (0.5) +_Comment=Edit text files collaboratively +Exec=gobby-0.5 +Terminal=false +Type=Application +Icon=gobby-0.5 +Categories=TextEditor;Network; +StartupNotify=true +MimeType=text/plain; diff -Nru gobby-infinote-0.4.92/gobby-0.5.xpm gobby-infinote-0.4.93/gobby-0.5.xpm --- gobby-infinote-0.4.92/gobby-0.5.xpm 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/gobby-0.5.xpm 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,403 @@ +/* XPM */ +static char * gobby_0_5_xpm[] = { +"32 32 368 2", +" c None", +". c #404040", +"+ c #666666", +"@ c #646464", +"# c #585858", +"$ c #4E4E4E", +"% c #474747", +"& c #464646", +"* c #585658", +"= c #909090", +"- c #EDEDED", +"; c #F4F4F4", +"> c #FEFEFE", +", c #FDFDFD", +"' c #FCFCFC", +") c #FBFBFB", +"! c #FAFAF9", +"~ c #F9F9F8", +"{ c #F8F8F7", +"] c #F7F7F6", +"^ c #F6F6F5", +"/ c #F5F5F4", +"( c #F3F3F3", +"_ c #BEBBBE", +": c #676667", +"< c #551B13", +"[ c #814D35", +"} c #632F22", +"| c #8F8F8F", +"1 c #F1F1F1", +"2 c #FAFAFA", +"3 c #F9F9F9", +"4 c #F8F8F8", +"5 c #F7F7F7", +"6 c #F6F6F6", +"7 c #F4F4F3", +"8 c #F3F3F2", +"9 c #C4C2C3", +"0 c #E0DFE0", +"a c #5C5B5C", +"b c #A55B50", +"c c #5E281B", +"d c #704B35", +"e c #763E2B", +"f c #DBDBDB", +"g c #D8D8D8", +"h c #D7D7D6", +"i c #D6D6D5", +"j c #D5D5D4", +"k c #D4D4D3", +"l c #D3D3D2", +"m c #D9D9D8", +"n c #F2F2F2", +"o c #C1BFC1", +"p c #C8C7C7", +"q c #703F3A", +"r c #AC5547", +"s c #922B1C", +"t c #612016", +"u c #5F261A", +"v c #080503", +"w c #110E0A", +"x c #1E1C19", +"y c #8A8A8A", +"z c #F5F5F5", +"A c #E8E8E8", +"B c #E7E7E7", +"C c #E6E6E6", +"D c #E5E5E5", +"E c #E4E4E3", +"F c #E3E3E2", +"G c #E2E2E1", +"H c #EBEBEA", +"I c #ABAAAB", +"J c #ACAAAB", +"K c #A0999B", +"L c #99574F", +"M c #9B3524", +"N c #932D1B", +"O c #812719", +"P c #60160E", +"Q c #000000", +"R c #020101", +"S c #5C5C5B", +"T c #DBDBDA", +"U c #DADADA", +"V c #DADAD9", +"W c #D8D8D7", +"X c #D6D6D6", +"Y c #DDDDDD", +"Z c #EAEAEA", +"` c #F0F0EF", +" . c #E7E7E6", +".. c #9F7873", +"+. c #AF5C4D", +"@. c #962E1C", +"#. c #8E2B1A", +"$. c #772314", +"%. c #020201", +"&. c #040301", +"*. c #EEEEEE", +"=. c #D9D9D9", +"-. c #E5E5E3", +";. c #9B635B", +">. c #A03C2B", +",. c #942D1C", +"'. c #832819", +"). c #5B130C", +"!. c #533B13", +"~. c #452F0F", +"{. c #36230A", +"]. c #3A2309", +"^. c #44290B", +"/. c #A4A4A3", +"(. c #EAEAE9", +"_. c #D3D3D3", +":. c #D1D1D1", +"<. c #D0D0D0", +"[. c #CFCFCF", +"}. c #AF9593", +"|. c #AD5D50", +"1. c #972E1C", +"2. c #8F2C1A", +"3. c #722014", +"4. c #D8942E", +"5. c #DF922B", +"6. c #D98624", +"7. c #C4751D", +"8. c #6A4F2F", +"9. c #757162", +"0. c #56544D", +"a. c #BCBCBC", +"b. c #D5D5D5", +"c. c #D2D2D2", +"d. c #D2D2D1", +"e. c #D1D1D0", +"f. c #E5E5E4", +"g. c #EEEEED", +"h. c #9C6963", +"i. c #A54635", +"j. c #952D1C", +"k. c #842819", +"l. c #5A120B", +"m. c #DD9029", +"n. c #D98825", +"o. c #B56D1C", +"p. c #948E7B", +"q. c #E9E0C6", +"r. c #FAF1D3", +"s. c #EFE6C7", +"t. c #AFAA98", +"u. c #C4C4C3", +"v. c #CECECD", +"w. c #CDCDCC", +"x. c #CDC1C0", +"y. c #A45D52", +"z. c #982F1D", +"A. c #902C1B", +"B. c #6D1C12", +"C. c #130C03", +"D. c #D78422", +"E. c #D57F20", +"F. c #736F61", +"G. c #F5EDD1", +"H. c #FAF3DD", +"I. c #FAF2D6", +"J. c #EAE3CC", +"K. c #79766E", +"L. c #D0D0CF", +"M. c #CFCFCE", +"N. c #E0E0DF", +"O. c #EFEFEE", +"P. c #9F7471", +"Q. c #AA4E3F", +"R. c #862919", +"S. c #500E09", +"T. c #A9651A", +"U. c #2D1A07", +"V. c #D6D0BA", +"W. c #AEA999", +"X. c #B5B0A0", +"Y. c #BBB6A7", +"Z. c #B5AE9D", +"`. c #A19B8A", +" + c #A9A491", +".+ c #E8E6E5", +"++ c #9E6058", +"@+ c #9C3220", +"#+ c #912C1B", +"$+ c #6C271E", +"%+ c #212932", +"&+ c #4C3B2A", +"*+ c #3E2509", +"=+ c #EBE3CD", +"-+ c #B0812D", +";+ c #DE9F34", +">+ c #D2912E", +",+ c #E0942C", +"'+ c #895518", +")+ c #BBB5A1", +"!+ c #CBCBCA", +"~+ c #AA8A87", +"{+ c #AB5143", +"]+ c #982E1C", +"^+ c #852818", +"/+ c #694643", +"(+ c #151C22", +"_+ c #485B6D", +":+ c #7694B4", +"<+ c #6F859A", +"[+ c #4B443C", +"}+ c #EFE9D2", +"|+ c #B17E29", +"1+ c #E6A033", +"2+ c #E2982E", +"3+ c #DD8F29", +"4+ c #835117", +"5+ c #B9B3A0", +"6+ c #C5C5C5", +"7+ c #CCCCCC", +"8+ c #9C655E", +"9+ c #9F3625", +"0+ c #912D1B", +"a+ c #7B3C35", +"b+ c #807E7D", +"c+ c #47586B", +"d+ c #728FAE", +"e+ c #708EAC", +"f+ c #6E8BA8", +"g+ c #868B8F", +"h+ c #ECE4CE", +"i+ c #8E6322", +"j+ c #DE912A", +"k+ c #DA8825", +"l+ c #5F3F1D", +"m+ c #BAB5A1", +"n+ c #A99796", +"o+ c #A45144", +"p+ c #992F1C", +"q+ c #84281A", +"r+ c #A18583", +"s+ c #818181", +"t+ c #232A30", +"u+ c #6C87A4", +"v+ c #6B87A4", +"w+ c #6A86A2", +"x+ c #6884A0", +"y+ c #717F8C", +"z+ c #DBD4BE", +"A+ c #4C412A", +"B+ c #DC8E29", +"C+ c #DA8926", +"D+ c #C8791F", +"E+ c #36331F", +"F+ c #AEA996", +"G+ c #9B9B9B", +"H+ c #956660", +"I+ c #A33D2C", +"J+ c #804740", +"K+ c #2D343C", +"L+ c #657F9A", +"M+ c #647E9A", +"N+ c #637D98", +"O+ c #53697C", +"P+ c #4F5E56", +"Q+ c #8D887A", +"R+ c #697560", +"S+ c #5F552A", +"T+ c #644B1B", +"U+ c #4D5828", +"V+ c #556B4C", +"W+ c #606754", +"X+ c #2B412B", +"Y+ c #C7C8C7", +"Z+ c #EBEAE8", +"`+ c #8A4439", +" @ c #9B2F1D", +".@ c #822B1D", +"+@ c #B5A09D", +"@@ c #DCDCDB", +"#@ c #2D363F", +"$@ c #5E7690", +"%@ c #5D768F", +"&@ c #596E85", +"*@ c #47594B", +"=@ c #93C393", +"-@ c #6E976E", +";@ c #6FA46F", +">@ c #6AAC6A", +",@ c #57A257", +"'@ c #439743", +")@ c #2A7E2A", +"!@ c #2E882E", +"~@ c #2E892E", +"{@ c #374B37", +"]@ c #DED9D3", +"^@ c #905943", +"/@ c #75291C", +"(@ c #7E4942", +"_@ c #E3E3E1", +":@ c #24282A", +"<@ c #252C32", +"[@ c #374553", +"}@ c #3B4848", +"|@ c #6AA36A", +"1@ c #70AF70", +"2@ c #67AB67", +"3@ c #5CA55C", +"4@ c #4D9D4D", +"5@ c #3E943E", +"6@ c #2F8C2F", +"7@ c #286628", +"8@ c #969795", +"9@ c #CFC3B7", +"0@ c #A07559", +"a@ c #95725A", +"b@ c #D9D3CD", +"c@ c #E1E1E0", +"d@ c #324332", +"e@ c #4E9D4E", +"f@ c #4A9B4A", +"g@ c #449744", +"h@ c #3B923B", +"i@ c #2B802B", +"j@ c #676F67", +"k@ c #96877A", +"l@ c #AB9380", +"m@ c #E8E8E6", +"n@ c #E9E9E8", +"o@ c #233823", +"p@ c #2B812B", +"q@ c #287328", +"r@ c #5F685F", +"s@ c #CBCBC9", +"t@ c #C6C6C5", +"u@ c #CACAC9", +"v@ c #D2D2D0", +"w@ c #E0E0E0", +"x@ c #323E32", +"y@ c #273F27", +"z@ c #294929", +"A@ c #2A4D2A", +"B@ c #2A542A", +"C@ c #295829", +"D@ c #295129", +"E@ c #2B4E2B", +"F@ c #345134", +"G@ c #405440", +"H@ c #676F66", +"I@ c #B4B4B4", +"J@ c #C2C2C1", +"K@ c #B3B3B2", +"L@ c #AEAEAC", +"M@ c #A9A9A8", +"N@ c #6A6A6A", +"O@ c #616161", +"P@ c #898989", +"Q@ c #828282", +"R@ c #858585", +"S@ c #888888", +"T@ c #878787", +"U@ c #848484", +"V@ c #848483", +"W@ c #838383", +"X@ c #838382", +"Y@ c #7E7E7E", +"Z@ c #727272", +"`@ c #4A4A49", +" ", +" ", +" ", +" . + @ # $ % % % % % % % & & * ", +" = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } ", +" | 1 ( , ' ) 2 3 4 5 6 / 7 8 9 0 a b c d e ", +" | - ( f g g h i j k l m ( n o / p q r s t u ", +" v w x y ' z A B C C D E F G H I J K L M N O P ", +" Q Q Q Q R S z F T U V m W X Y Z ` ...+.@.#.$. ", +" %.&.Q Q Q Q Q *.*.U =.=.W h i F A A -.;.>.,.'.). ", +" Q !.~.{.].^.Q /.(.i j _.l :.<.[.j W }.|.1.2.3. ", +" Q 4.5.6.7.8.9.0.a.X b.k l c.d.e.f.g.h.i.j.k.l. ", +" Q m.n.o.p.q.r.s.t.u.c.c.:.<.[.v.w.x.y.z.A.B. ", +" C.D.E.F.G.H.H.I.J.K.c.d.e.L.M.N.O.P.Q.1.R.S. ", +" T.U.V.W.X.Y.Z.`. +c.:.<.[.v.w..+++@+#+$+ ", +" %+&+*+=+-+;+>+,+'+)+!+e.L.M.v.=.~+{+]+^+/+ ", +" (+_+:+<+[+}+|+1+2+3+4+5+6+<.[.v.w.7+8+9+0+a+b+ ", +" c+d+e+f+g+h+i+2+j+k+l+m+M.L.M.v.w.n+o+p+q+r+s+ ", +"t+u+v+w+x+y+z+A+B+C+D+E+F+G+M.v.w.7+H+I+N J+h s+ ", +"K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+` O.Z+`+ @.@+@@@s+ ", +"#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@i g.]@^@/@(@_@<.s+ ", +":@<@[@}@|@1@2@3@4@5@6@6@6@6@7@8@H 9@0@a@b@G c@s+ ", +" # d@e@f@g@h@6@6@6@6@6@6@i@j@F k@l@m@n@G h s+ ", +" o@p@6@6@6@6@6@6@6@6@6@q@r@N.-.s@t@u@v@w@s+ ", +" x@y@z@A@B@C@D@E@F@G@H@I@(.H G J@K@L@M@N@ ", +" O@P@Q@s+R@S@T@R@U@U@V@W@W@X@Y@Z@+ `@ ", +" ", +" ", +" ", +" ", +" ", +" "}; Binary files /tmp/jWNTNsUqqE/gobby-infinote-0.4.92/help/C/figures/main_window.png and /tmp/G8qc5JaENh/gobby-infinote-0.4.93/help/C/figures/main_window.png differ Binary files /tmp/jWNTNsUqqE/gobby-infinote-0.4.92/help/C/figures/preferences_appearance.png and /tmp/G8qc5JaENh/gobby-infinote-0.4.93/help/C/figures/preferences_appearance.png differ Binary files /tmp/jWNTNsUqqE/gobby-infinote-0.4.92/help/C/figures/preferences_editor.png and /tmp/G8qc5JaENh/gobby-infinote-0.4.93/help/C/figures/preferences_editor.png differ Binary files /tmp/jWNTNsUqqE/gobby-infinote-0.4.92/help/C/figures/preferences_security.png and /tmp/G8qc5JaENh/gobby-infinote-0.4.93/help/C/figures/preferences_security.png differ Binary files /tmp/jWNTNsUqqE/gobby-infinote-0.4.92/help/C/figures/preferences_user.png and /tmp/G8qc5JaENh/gobby-infinote-0.4.93/help/C/figures/preferences_user.png differ Binary files /tmp/jWNTNsUqqE/gobby-infinote-0.4.92/help/C/figures/preferences_view.png and /tmp/G8qc5JaENh/gobby-infinote-0.4.93/help/C/figures/preferences_view.png differ diff -Nru gobby-infinote-0.4.92/help/C/gobby.xml gobby-infinote-0.4.93/help/C/gobby.xml --- gobby-infinote-0.4.92/help/C/gobby.xml 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/help/C/gobby.xml 2009-12-19 23:57:10.000000000 +0000 @@ -0,0 +1,436 @@ + + + + +]> + + +
+ + &appname; Manual + + &appname; is a text editor that allows multiple + persons to edit documents collaboratively over the network. + + + 2009 + Philipp Kern + + + + Philipp + Kern + + 0x539 dev group +
+ phil@0x539.de +
+
+
+
+ + + &appname; Manual &manrevision; + 2009-05-10 + + + This manual explains how to use Gobby &appversion;, a collaborative editor. + + Feedback + To report a bug or make a suggestion regarding this manual, + please file a ticket on http://gobby.0x539.de. + The application &appname; and this manual + are both licensed under the GNU General Public License (GPL) version 2 + or any later version. They are distributed in the hope that they will + be useful, but WITHOUT ANY WARRANTY; without even the implied warrenty + of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Please see + the GNU General Public License for more details. + +
+ + Introduction + + &appname; is a text editor that allows multiple + persons to edit documents collaboratively over the network. Changes + to the documents are instantly synced to other interested parties. + It uses an algorithm which does not require locking or a central + coordinator but instead merges the changes on all participating peers. + + + That said, &appname; is currently relying on a + central server that relays the editing actions to other users. + A public server can be found on gobby.0x539.de. If you + want to host such a server yourself, please look at the + infinoted daemon. As it is not needed + algorithmically future versions might be able to do real peer-to-peer + communication. Support for editing over the instant messaging + protocol Jabber/XMPP is planed. + + + Depending on the setup of the server, connections can be encrypted + through Transport Layer Security (TLS). + There is no support for user authentication yet. + + + &appname; is cross-platform and supports so far + Microsoft Windows, Linux, Mac OS X and other Unix-like platforms. It + is developed on Linux and regularly tested on Windows. As it is developed + using the Gtk+ toolkit it integrates nicely into the GNOME desktop + environment. + + + In contrast to the older Gobby 0.4 this + version also supports local undo and redo, which means that you can undo + your own changes regardless if someone else changed the document in the + meantime. + + + + Getting Started + + Starting Gobby + Choose + Applications + Internet + Gobby Collaborative Editor (0.5) + to start the application. + You may also start &appname; from + the command line: + +gobby-0.5 + + + + Main Window + The Gobby main window is split into + two parts: a document and server browser on the left and an editor + part on the right. + + + + + + + Main Window + + + + + + + Setting Preferences + Choose + Edit + Preferences + to open Gobby's + Preferences window. The window has five tabs: + + + + User - + personal settings like user name and user color (see + ) + + + + Editor - + text editor settings like indentation and auto saving + (see ) + + + View - + control how the text files being edited should be presented + on the screen (see ) + + + Appearance - + font and window layout settings (see ) + + + Security - + controls security parameters like trusted certificates and + encryption enforcing (see ) + + + + Personalization + + + + + + + Preferences: User tab + + + + + + Text Editing Preferences + + + + + + + Preferences: Editor tab + + + + + + Tab Stops - The Tab width setting controls the display of tab characters. In conjunction with Insert spaces instead of tabs it also determins the amount of white space characters inserted into the text when the tab key is pressed. + + + Indentation - + + + Home/End Behavior - Smart home/end controls if the Home and End keys should move to the first/last non-space character before moving to the beginning/end of the line. + + + File Saving - + + + + + Text View Preferences + TODO + + + General Appearance + TODO + + + Security Settings + TODO + + + + Shortcuts + This section documents both the set of shortcuts denoted in the menus and those which do not have a corresponding menu entry. + + Gobby's Shortcuts + + + + + + Shortcut + Action + + + + + Ctrl-N + New document + + + Ctrl-O + Open document + + + Ctrl-S + Save current document + + + Ctrl-Shift-S + Save current document under a different filename + + + Ctrl-Shift-L + Save all open documents + + + Ctrl-Shift-H + Export as HTML (since 0.4.93) + + + Ctrl-T + Connect to Server (since 0.4.93) + + + Ctrl-W + Close current document + + + Ctrl-Q + Exit Gobby + + + Ctrl-M + Switch to chat (since 0.4.93) + + + Ctrl-Shift-M + Switch to text document (since 0.4.93) + + + Ctrl-Shift-C + Reset user colors in the current document (since 0.4.93) + + + F9 + Toggle document browser visibility + + + Shift-F9 + Toggle chat visibility (since 0.4.93) + + + Ctrl-F9 + Toggle document user list visibility + + + Ctrl-Shift-F9 + Toggle chat user list visibility (since 0.4.93) + + + Ctrl-Z + Undo + + + Ctrl-Shift-Z + Redo + + + Ctrl-F + Find + + + Ctrl-G + Find next + + + Ctrl-Shift-G + Find previous + + + Ctrl-H + Find and replace + + + Ctrl-I + Go to line + + + +
+ + GtkTextView's Shortcuts + + + + + + Shortcut + Action + + + + + Ctrl-Up + Go to the beginning of the line + + + Ctrl-Down + Go to the end of the line + + + Ctrl-Home + Go to the beginning of the document + + + Ctrl-End + Go to the end of the document + + + Ctrl-A + Select all + + + Shift-Ctrl-A + Deselect all + + + Insert + Toggle overwrite mode + + + F7 + Toggle caret visibility + + + +
+ + GtkSourceView's Shortcuts + + + + + + Shortcut + Action + + + + + Alt-Shift-Up + Move viewport one line up + + + Alt-Shift-Down + Move viewport one line down + + + Alt-Shift-PageUp + Move viewport one page up + + + Alt-Shift-PageDown + Move viewport one page down + + + Alt-Shift-Home + Move viewport to the beginning of the document + + + Alt-Shift-End + Move viewport to the end of document + + + +
+
+ + About Gobby + Gobby was written by Armin Burgmeier and others. + To report a bug or make a suggestion regarding this application or this + manual, please file a ticket on + http://gobby.0x539.de. + Please include a reachable email address in your bug report as we often + need to contact the reporters for further clarifications. + + Mailinglists + There are also two mailing lists which should provide a means of contact to other Gobby users and to the developers. + + + obby-announce: A moderated list used to announce new releases of Gobby and its foundation libraries. + + + obby-users: Discussions about Gobby's usage and installation problems. The announcements are also posted there. + + + More information about how to subscribe can be found on + http://gobby.0x539.de/trac/wiki/MailingLists + . + + + IRC channel + Questions can also be taken to the IRC channel + #infinote + on Freenode (irc.freenode.net). However, you might need to be patient due to you and the developers living in different time zones. + + +
diff -Nru gobby-infinote-0.4.92/help/gobby.omf.in gobby-infinote-0.4.93/help/gobby.omf.in --- gobby-infinote-0.4.92/help/gobby.omf.in 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/help/gobby.omf.in 2009-12-19 23:57:10.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + manual + + + + diff -Nru gobby-infinote-0.4.92/help/Makefile.am gobby-infinote-0.4.93/help/Makefile.am --- gobby-infinote-0.4.92/help/Makefile.am 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/help/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,14 @@ +include $(top_srcdir)/gnome-doc-utils.make + +dist-hook: doc-dist-hook + +DOC_MODULE = gobby +DOC_FIGURES = figures/main_window.png \ + figures/preferences_editor.png \ + figures/preferences_user.png \ + figures/preferences_appearance.png \ + figures/preferences_security.png \ + figures/preferences_view.png + +DOC_LINGUAS = + diff -Nru gobby-infinote-0.4.92/help/Makefile.in gobby-infinote-0.4.93/help/Makefile.in --- gobby-infinote-0.4.92/help/Makefile.in 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/help/Makefile.in 2009-12-19 23:16:18.000000000 +0000 @@ -0,0 +1,911 @@ +# Makefile.in generated by automake 1.10.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 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. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# gnome-doc-utils.make - make magic for building documentation +# Copyright (C) 2004-2005 Shaun McCance +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +################################################################################ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/gnome-doc-utils.make +subdir = help +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/code/features.hpp +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gobby_CFLAGS = @gobby_CFLAGS@ +gobby_LIBS = @gobby_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infinote_CFLAGS = @infinote_CFLAGS@ +infinote_LIBS = @infinote_LIBS@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ +_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header) +_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS)) +_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)), \ + $(filter $(LINGUAS),$(DOC_LINGUAS)), \ + $(DOC_LINGUAS)) + +_DOC_ABS_SRCDIR = @abs_srcdir@ +_xml2po_mode = $(if $(DOC_ID),mallard,docbook) +@ENABLE_SK_TRUE@_ENABLE_SK = true + +################################################################################ +db2omf_args = \ + --stringparam db2omf.basename $(DOC_MODULE) \ + --stringparam db2omf.format $(3) \ + --stringparam db2omf.dtd \ + $(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 \ + | sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/') \ + --stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2))) \ + --stringparam db2omf.omf_dir "$(OMF_DIR)" \ + --stringparam db2omf.help_dir "$(HELP_DIR)" \ + --stringparam db2omf.omf_in "$(_DOC_OMF_IN)" \ + $(if $(_ENABLE_SK), \ + --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)") \ + $(_db2omf) $(2) + +_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in)) +_DOC_OMF_DB = $(if $(_DOC_OMF_IN), \ + $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf)) + +_DOC_OMF_HTML = $(if $(_DOC_OMF_IN), \ + $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf)) + + +# FIXME +_DOC_OMF_ALL = \ + $(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB)) \ + $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML)) + + +################################################################################ +_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml) +_DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page)) +_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent)) +_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc)) +_DOC_C_DOCS = \ + $(_DOC_C_ENTITIES) $(_DOC_C_INCLUDES) \ + $(_DOC_C_PAGES) $(_DOC_C_MODULE) + +_DOC_C_DOCS_NOENT = \ + $(_DOC_C_MODULE) $(_DOC_C_INCLUDES) \ + $(_DOC_C_PAGES) + +_DOC_C_FIGURES = $(if $(DOC_FIGURES), \ + $(foreach fig,$(DOC_FIGURES),C/$(fig)), \ + $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png))) + + +# FIXME: probably have to shell escape to determine the file names +_DOC_C_HTML = $(foreach f, \ + $(shell xsltproc --xinclude \ + --stringparam db.chunk.basename "$(DOC_MODULE)" \ + $(_chunks) "C/$(DOC_MODULE).xml"), \ + C/$(f).xhtml) + + +############################################################################### +_DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID), \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po)) + +_DOC_LC_MODULES = $(if $(DOC_MODULE), \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml)) + +_DOC_LC_PAGES = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES), \ + $(lc)/$(notdir $(page)) )) + +_DOC_LC_INCLUDES = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES), \ + $(lc)/$(notdir $(inc)) )) + + +# FIXME: probably have to shell escape to determine the file names +_DOC_LC_HTML = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML), \ + $(lc)/$(notdir $(doc)) )) + +_DOC_LC_DOCS = \ + $(_DOC_LC_MODULES) $(_DOC_LC_INCLUDES) $(_DOC_LC_PAGES) \ + $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML)) + +_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS), \ + $(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) ) + +_DOC_SRC_FIGURES = \ + $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS), \ + $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) )) + +_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot) + +################################################################################ +_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \ + $(_DOC_C_HTML) $(_DOC_LC_HTML)) + +_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml) +_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf) +_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk) +_clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc) +_clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir) +_doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE)) +DOC_MODULE = gobby +DOC_FIGURES = figures/main_window.png \ + figures/preferences_editor.png \ + figures/preferences_user.png \ + figures/preferences_appearance.png \ + figures/preferences_security.png \ + figures/preferences_view.png + +DOC_LINGUAS = +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gnome-doc-utils.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu help/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu help/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + 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 +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-local \ + dist-hook distclean distclean-generic distclean-local distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-local mostlyclean mostlyclean-generic \ + mostlyclean-local pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-local + + +DOC_H_FILE ?= + +DOC_H_DOCS ?= + +$(DOC_H_FILE): $(DOC_H_DOCS); + @rm -f $@.tmp; touch $@.tmp; + echo 'const gchar* documentation_credits[] = {' >> $@.tmp + list='$(DOC_H_DOCS)'; for doc in $$list; do \ + xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \ + if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \ + xsltproc --path "$$xmlpath" $(_credits) $$doc; \ + done | sort | uniq \ + | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \ + | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp + echo ' NULL' >> $@.tmp + echo '};' >> $@.tmp + echo >> $@.tmp + list='$(DOC_H_DOCS)'; for doc in $$list; do \ + xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \ + if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \ + docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \ + echo $$xmlpath; \ + ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \ + for id in $$ids; do \ + echo '#define HELP_'`echo $$docid`'_'`echo $$id \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \ + done; \ + echo >> $@.tmp; \ + done; + cp $@.tmp $@ && rm -f $@.tmp + +dist-check-gdu: +@HAVE_GNOME_DOC_UTILS_FALSE@ @echo "*** GNOME Doc Utils must be installed in order to make dist" +@HAVE_GNOME_DOC_UTILS_FALSE@ @false + +.PHONY: dist-doc-header +dist-doc-header: $(DOC_H_FILE) + @if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \ + $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)"; + +doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header) + +.PHONY: clean-doc-header +clean-local: $(_clean_doc_header) +distclean-local: $(_clean_doc_header) +mostlyclean-local: $(_clean_doc_header) +maintainer-clean-local: $(_clean_doc_header) +clean-doc-header: + rm -f $(DOC_H_FILE) + +all: $(DOC_H_FILE) + +################################################################################ + +DOC_MODULE ?= + +DOC_ID ?= + +DOC_PAGES ?= + +DOC_ENTITIES ?= + +DOC_INCLUDES ?= + +DOC_FIGURES ?= + +DOC_FORMATS ?= docbook + +DOC_LINGUAS ?= + +################################################################################ + +_xml2po ?= `which xml2po` + +_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` +_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` +_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` +_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl +_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl +_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl +@ENABLE_SK_TRUE@_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir` +@ENABLE_SK_TRUE@_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir` +@ENABLE_SK_TRUE@_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml + +$(_DOC_OMF_DB) : $(_DOC_OMF_IN) +$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml + @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \ + echo "The file '$(_skcontentslist)' does not exist." >&2; \ + echo "Please check your ScrollKeeper installation." >&2; \ + exit 1; } + xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; } + +$(_DOC_OMF_HTML) : $(_DOC_OMF_IN) +$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml +@ENABLE_SK_TRUE@ @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \ +@ENABLE_SK_TRUE@ echo "The file '$(_skcontentslist)' does not exist" >&2; \ +@ENABLE_SK_TRUE@ echo "Please check your ScrollKeeper installation." >&2; \ +@ENABLE_SK_TRUE@ exit 1; } + xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; } + +.PHONY: omf +omf: $(_DOC_OMF_ALL) + +.PHONY: po +po: $(_DOC_POFILES) + +$(_DOC_POFILES): + @if ! test -d $(dir $@); then \ + echo "mkdir $(dir $@)"; \ + mkdir "$(dir $@)"; \ + fi + @if test ! -f $@ -a -f $(srcdir)/$@; then \ + echo "cp $(srcdir)/$@ $@"; \ + cp "$(srcdir)/$@" "$@"; \ + fi; + @docs=; \ + list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \ + docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \ + done; \ + if ! test -f $@; then \ + echo "(cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \ + else \ + echo "(cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \ + fi + +# FIXME: fix the dependancy +# FIXME: hook xml2po up +$(_DOC_LC_DOCS) : $(_DOC_POFILES) +$(_DOC_LC_DOCS) : $(_DOC_C_DOCS) + if ! test -d $(dir $@); then mkdir $(dir $@); fi + if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \ + po="$(dir $@)$(patsubst %/$(notdir $@),%,$@).po"; \ + if [ -f "$${po}" ]; then po="../$${po}"; else po="$(_DOC_ABS_SRCDIR)/$${po}"; fi; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -p "$${po}" \ + "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp) +.PHONY: pot +pot: $(_DOC_POT) +$(_DOC_POT): $(_DOC_C_DOCS_NOENT) + $(_xml2po) -m $(_xml2po_mode) -e -o $@ $^ + +$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS) + xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@) + +################################################################################ + +all: \ + $(_DOC_C_DOCS) $(_DOC_LC_DOCS) \ + $(_DOC_OMF_ALL) $(_DOC_DSK_ALL) \ + $(_DOC_HTML_ALL) $(_DOC_POFILES) + +################################################################################ + +.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir + +clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML) +clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML) +clean-doc-lc: + rm -f $(_DOC_LC_DOCS) + @list='$(_DOC_POFILES)'; for po in $$list; do \ + if ! test "$$po" -ef "$(srcdir)/$$po"; then \ + echo "rm -f $$po"; \ + rm -f "$$po"; \ + fi; \ + done + @for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc/.xml2po.mo"; then \ + echo "rm -f $$lc/.xml2po.mo"; \ + rm -f "$$lc/.xml2po.mo"; \ + fi; \ + done +clean-doc-dir: clean-doc-lc + @for lc in C $(_DOC_REAL_LINGUAS); do \ + for dir in `find $$lc -depth -type d`; do \ + if ! test $$dir -ef $(srcdir)/$$dir; then \ + echo "rmdir $$dir"; \ + rmdir "$$dir"; \ + fi; \ + done; \ + done + +clean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +distclean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +mostlyclean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +maintainer-clean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) + +################################################################################ + +.PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk +doc-dist-hook: \ + $(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs) \ + $(if $(_DOC_C_FIGURES),dist-doc-figs) \ + $(if $(_DOC_OMF_IN),dist-doc-omf) +# $(if $(_DOC_DSK_IN),dist-doc-dsk) + +dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES) + @for lc in C $(_DOC_REAL_LINGUAS); do \ + echo " $(mkinstalldirs) $(distdir)/$$lc"; \ + $(mkinstalldirs) "$(distdir)/$$lc"; \ + done + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \ + for doc in $$list; do \ + if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \ + docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + if ! test -d "$(distdir)/$$docdir"; then \ + echo "$(mkinstalldirs) $(distdir)/$$docdir"; \ + $(mkinstalldirs) "$(distdir)/$$docdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \ + $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \ + done + +dist-doc-figs: $(_DOC_SRC_FIGURES) + @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \ + for fig in $$list; do \ + if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$fig"; then \ + figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + if ! test -d "$(distdir)/$$figdir"; then \ + echo "$(mkinstalldirs) $(distdir)/$$figdir"; \ + $(mkinstalldirs) "$(distdir)/$$figdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \ + $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \ + fi; \ + done; + +dist-doc-omf: + @if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \ + $(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))" + +dist-doc-dsk: + @if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \ + $(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))" + +################################################################################ + +.PHONY: check-doc-docs check-doc-omf +check: \ + $(if $(DOC_MODULE),check-doc-docs) \ + $(if $(DOC_ID),check-doc-pages) \ + $(if $(_DOC_OMF_IN),check-doc-omf) + +check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) + @for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \ + xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \ + done + +check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES) + for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + for page in $(DOC_PAGES); do \ + echo "xmllint --noout --noent --path $$xmlpath --xinclude --relaxng $(_malrng) $$d$$lc/$$page"; \ + xmllint --noout --noent --path "$$xmlpath" --xinclude --relaxng "$(_malrng)" "$$d$$lc/$$page"; \ + done; \ + done + +check-doc-omf: $(_DOC_OMF_ALL) + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \ + xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \ + done + +################################################################################ + +.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk + +install-data-local: \ + $(if $(DOC_MODULE)$(DOC_ID),install-doc-docs) \ + $(if $(_DOC_HTML_ALL),install-doc-html) \ + $(if $(_DOC_C_FIGURES),install-doc-figs) \ + $(if $(_DOC_OMF_IN),install-doc-omf) +# $(if $(_DOC_DSK_IN),install-doc-dsk) + +install-doc-docs: + @for lc in C $(_DOC_REAL_LINGUAS); do \ + echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \ + $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \ + done + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \ + if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \ + docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \ + if ! test -d "$$docdir"; then \ + echo "$(mkinstalldirs) $$docdir"; \ + $(mkinstalldirs) "$$docdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \ + done + +install-doc-figs: + @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \ + for lc in C $(_DOC_REAL_LINGUAS); do \ + figsymlink=false; \ + if test -f "$$lc/$$fig"; then \ + figfile="$$lc/$$fig"; \ + elif test -f "$(srcdir)/$$lc/$$fig"; then \ + figfile="$(srcdir)/$$lc/$$fig"; \ + else \ + figsymlink=true; \ + fi; \ + figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \ + if ! test -d "$$figdir"; then \ + echo "$(mkinstalldirs) $$figdir"; \ + $(mkinstalldirs) "$$figdir"; \ + fi; \ + figbase=`echo $$fig | sed -e 's/^.*\///'`; \ + if $$figsymlink; then \ + echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \ + ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \ + else \ + echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \ + $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \ + fi; \ + done; \ + done + +install-doc-html: + echo install-html + +install-doc-omf: + $(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir) + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \ + done + @if test "x$(_ENABLE_SK)" = "xtrue"; then \ + echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \ + scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \ + fi; + +install-doc-dsk: + echo install-dsk + +################################################################################ + +.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk +uninstall-local: \ + $(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs) \ + $(if $(_DOC_HTML_ALL),uninstall-doc-html) \ + $(if $(_DOC_C_FIGURES),uninstall-doc-figs) \ + $(if $(_DOC_OMF_IN),uninstall-doc-omf) +# $(if $(_DOC_DSK_IN),uninstall-doc-dsk) + +uninstall-doc-docs: + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \ + echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + done + +uninstall-doc-figs: + @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \ + echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \ + rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \ + done; + +uninstall-doc-omf: + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + if test "x$(_ENABLE_SK)" = "xtrue"; then \ + echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + fi; \ + echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + done + +dist-hook: doc-dist-hook +# 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 gobby-infinote-0.4.92/icons/hicolor/48x48/actions/Makefile.in gobby-infinote-0.4.93/icons/hicolor/48x48/actions/Makefile.in --- gobby-infinote-0.4.92/icons/hicolor/48x48/actions/Makefile.in 2009-04-26 10:57:39.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/48x48/actions/Makefile.in 2009-12-19 23:16:22.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/gobby-0.5/icons/hicolor/48x48/actions icon_DATA = chat.png document-list.png user-list.png EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/hicolor/48x48/apps/Makefile.in gobby-infinote-0.4.93/icons/hicolor/48x48/apps/Makefile.in --- gobby-infinote-0.4.92/icons/hicolor/48x48/apps/Makefile.in 2009-04-26 10:57:39.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/48x48/apps/Makefile.in 2009-12-19 23:16:22.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/icons/hicolor/48x48/apps icon_DATA = gobby-0.5.png EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/hicolor/48x48/Makefile.am gobby-infinote-0.4.93/icons/hicolor/48x48/Makefile.am --- gobby-infinote-0.4.92/icons/hicolor/48x48/Makefile.am 2009-04-21 19:47:52.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/48x48/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -1 +1 @@ -SUBDIRS = apps actions +SUBDIRS = apps actions status diff -Nru gobby-infinote-0.4.92/icons/hicolor/48x48/Makefile.in gobby-infinote-0.4.93/icons/hicolor/48x48/Makefile.in --- gobby-infinote-0.4.92/icons/hicolor/48x48/Makefile.in 2009-04-26 10:57:38.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/48x48/Makefile.in 2009-12-19 23:16:22.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,7 +190,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = apps actions +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ +SUBDIRS = apps actions status all: all-recursive .SUFFIXES: @@ -225,7 +233,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -250,7 +258,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -434,6 +442,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -442,18 +452,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 diff -Nru gobby-infinote-0.4.92/icons/hicolor/48x48/status/Makefile.am gobby-infinote-0.4.93/icons/hicolor/48x48/status/Makefile.am --- gobby-infinote-0.4.92/icons/hicolor/48x48/status/Makefile.am 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/48x48/status/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,4 @@ +icondir = $(datadir)/gobby-0.5/icons/hicolor/48x48/status +icon_DATA = user-color-indicator.png + +EXTRA_DIST = $(icon_DATA) diff -Nru gobby-infinote-0.4.92/icons/hicolor/48x48/status/Makefile.in gobby-infinote-0.4.93/icons/hicolor/48x48/status/Makefile.in --- gobby-infinote-0.4.92/icons/hicolor/48x48/status/Makefile.in 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/48x48/status/Makefile.in 2009-12-19 23:16:22.000000000 +0000 @@ -0,0 +1,390 @@ +# Makefile.in generated by automake 1.10.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 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. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = icons/hicolor/48x48/status +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/code/features.hpp +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +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|^.*/||'`; +am__installdirs = "$(DESTDIR)$(icondir)" +iconDATA_INSTALL = $(INSTALL_DATA) +DATA = $(icon_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gobby_CFLAGS = @gobby_CFLAGS@ +gobby_LIBS = @gobby_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infinote_CFLAGS = @infinote_CFLAGS@ +infinote_LIBS = @infinote_LIBS@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ +icondir = $(datadir)/gobby-0.5/icons/hicolor/48x48/status +icon_DATA = user-color-indicator.png +EXTRA_DIST = $(icon_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/hicolor/48x48/status/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/hicolor/48x48/status/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + 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 +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" + @list='$(icon_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(iconDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(icondir)/$$f'"; \ + $(iconDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(icondir)/$$f"; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(icondir)/$$f'"; \ + rm -f "$(DESTDIR)$(icondir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ + uninstall-am uninstall-iconDATA + +# 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: Binary files /tmp/jWNTNsUqqE/gobby-infinote-0.4.92/icons/hicolor/48x48/status/user-color-indicator.png and /tmp/G8qc5JaENh/gobby-infinote-0.4.93/icons/hicolor/48x48/status/user-color-indicator.png differ diff -Nru gobby-infinote-0.4.92/icons/hicolor/Makefile.in gobby-infinote-0.4.93/icons/hicolor/Makefile.in --- gobby-infinote-0.4.92/icons/hicolor/Makefile.in 2009-04-26 10:57:39.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/Makefile.in 2009-12-19 23:16:23.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,6 +190,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = 48x48 scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor all: all-recursive @@ -226,7 +234,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -251,7 +259,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -435,6 +443,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -445,18 +455,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 diff -Nru gobby-infinote-0.4.92/icons/hicolor/scalable/actions/Makefile.in gobby-infinote-0.4.93/icons/hicolor/scalable/actions/Makefile.in --- gobby-infinote-0.4.92/icons/hicolor/scalable/actions/Makefile.in 2009-04-26 10:57:39.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/scalable/actions/Makefile.in 2009-12-19 23:16:23.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/gobby-0.5/icons/hicolor/scalable/actions icon_DATA = chat.svg document-list.svg user-list.svg EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/hicolor/scalable/apps/Makefile.in gobby-infinote-0.4.93/icons/hicolor/scalable/apps/Makefile.in --- gobby-infinote-0.4.92/icons/hicolor/scalable/apps/Makefile.in 2009-04-26 10:57:39.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/scalable/apps/Makefile.in 2009-12-19 23:16:23.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/icons/hicolor/scalable/apps icon_DATA = gobby-0.5.svg EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/hicolor/scalable/Makefile.am gobby-infinote-0.4.93/icons/hicolor/scalable/Makefile.am --- gobby-infinote-0.4.92/icons/hicolor/scalable/Makefile.am 2009-04-21 19:47:52.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/scalable/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -1 +1 @@ -SUBDIRS = apps actions +SUBDIRS = apps actions status diff -Nru gobby-infinote-0.4.92/icons/hicolor/scalable/Makefile.in gobby-infinote-0.4.93/icons/hicolor/scalable/Makefile.in --- gobby-infinote-0.4.92/icons/hicolor/scalable/Makefile.in 2009-04-26 10:57:39.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/scalable/Makefile.in 2009-12-19 23:16:23.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,7 +190,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = apps actions +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ +SUBDIRS = apps actions status all: all-recursive .SUFFIXES: @@ -225,7 +233,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -250,7 +258,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -434,6 +442,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -442,18 +452,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 diff -Nru gobby-infinote-0.4.92/icons/hicolor/scalable/status/Makefile.am gobby-infinote-0.4.93/icons/hicolor/scalable/status/Makefile.am --- gobby-infinote-0.4.92/icons/hicolor/scalable/status/Makefile.am 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/scalable/status/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,4 @@ +icondir = $(datadir)/gobby-0.5/icons/hicolor/scalable/status +icon_DATA = user-color-indicator.svg + +EXTRA_DIST = $(icon_DATA) diff -Nru gobby-infinote-0.4.92/icons/hicolor/scalable/status/Makefile.in gobby-infinote-0.4.93/icons/hicolor/scalable/status/Makefile.in --- gobby-infinote-0.4.92/icons/hicolor/scalable/status/Makefile.in 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/scalable/status/Makefile.in 2009-12-19 23:16:23.000000000 +0000 @@ -0,0 +1,390 @@ +# Makefile.in generated by automake 1.10.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 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. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = icons/hicolor/scalable/status +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/code/features.hpp +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +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|^.*/||'`; +am__installdirs = "$(DESTDIR)$(icondir)" +iconDATA_INSTALL = $(INSTALL_DATA) +DATA = $(icon_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gobby_CFLAGS = @gobby_CFLAGS@ +gobby_LIBS = @gobby_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infinote_CFLAGS = @infinote_CFLAGS@ +infinote_LIBS = @infinote_LIBS@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ +icondir = $(datadir)/gobby-0.5/icons/hicolor/scalable/status +icon_DATA = user-color-indicator.svg +EXTRA_DIST = $(icon_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/hicolor/scalable/status/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/hicolor/scalable/status/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + 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 +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" + @list='$(icon_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(iconDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(icondir)/$$f'"; \ + $(iconDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(icondir)/$$f"; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(icondir)/$$f'"; \ + rm -f "$(DESTDIR)$(icondir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ + uninstall-am uninstall-iconDATA + +# 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 gobby-infinote-0.4.92/icons/hicolor/scalable/status/user-color-indicator.svg gobby-infinote-0.4.93/icons/hicolor/scalable/status/user-color-indicator.svg --- gobby-infinote-0.4.92/icons/hicolor/scalable/status/user-color-indicator.svg 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/icons/hicolor/scalable/status/user-color-indicator.svg 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrint/48x48/actions/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrint/48x48/actions/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrint/48x48/actions/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrint/48x48/actions/Makefile.in 2009-12-19 23:16:18.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/gobby-0.5/icons/HighContrastLargePrint/48x48/actions icon_DATA = chat.png document-list.png user-list.png EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrint/48x48/apps/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrint/48x48/apps/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrint/48x48/apps/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrint/48x48/apps/Makefile.in 2009-12-19 23:16:19.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/icons/HighContrastLargePrint/48x48/apps icon_DATA = gobby-0.5.png EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrint/48x48/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrint/48x48/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrint/48x48/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrint/48x48/Makefile.in 2009-12-19 23:16:18.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,6 +190,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = apps actions all: all-recursive @@ -225,7 +233,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -250,7 +258,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -434,6 +442,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -442,18 +452,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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrint/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrint/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrint/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrint/Makefile.in 2009-12-19 23:16:19.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,6 +190,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = 48x48 scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/HighContrastLargePrint all: all-recursive @@ -226,7 +234,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -251,7 +259,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -435,6 +443,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -445,18 +455,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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrint/scalable/actions/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrint/scalable/actions/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrint/scalable/actions/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrint/scalable/actions/Makefile.in 2009-12-19 23:16:20.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/gobby-0.5/icons/HighContrastLargePrint/scalable/actions icon_DATA = chat.svg document-list.svg user-list.svg EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrint/scalable/apps/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrint/scalable/apps/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrint/scalable/apps/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrint/scalable/apps/Makefile.in 2009-12-19 23:16:20.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/icons/HighContrastLargePrint/scalable/apps icon_DATA = gobby-0.5.svg EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrint/scalable/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrint/scalable/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrint/scalable/Makefile.in 2009-04-26 10:57:37.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrint/scalable/Makefile.in 2009-12-19 23:16:19.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,6 +190,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = apps actions all: all-recursive @@ -225,7 +233,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -250,7 +258,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -434,6 +442,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -442,18 +452,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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/48x48/actions/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/48x48/actions/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/48x48/actions/Makefile.in 2009-04-26 10:57:38.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/48x48/actions/Makefile.in 2009-12-19 23:16:20.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/gobby-0.5/icons/HighContrastLargePrintInverse/48x48/actions icon_DATA = chat.png document-list.png user-list.png EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/48x48/apps/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/48x48/apps/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/48x48/apps/Makefile.in 2009-04-26 10:57:38.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/48x48/apps/Makefile.in 2009-12-19 23:16:20.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/icons/HighContrastLargePrintInverse/48x48/apps icon_DATA = gobby-0.5.png EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/48x48/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/48x48/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/48x48/Makefile.in 2009-04-26 10:57:38.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/48x48/Makefile.in 2009-12-19 23:16:20.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,6 +190,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = apps actions all: all-recursive @@ -225,7 +233,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -250,7 +258,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -434,6 +442,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -442,18 +452,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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/Makefile.in 2009-04-26 10:57:38.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/Makefile.in 2009-12-19 23:16:21.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,6 +190,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = 48x48 scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/HighContrastLargePrintInverse all: all-recursive @@ -226,7 +234,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -251,7 +259,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -435,6 +443,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -445,18 +455,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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/scalable/actions/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/scalable/actions/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/scalable/actions/Makefile.in 2009-04-26 10:57:38.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/scalable/actions/Makefile.in 2009-12-19 23:16:21.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/gobby-0.5/icons/HighContrastLargePrintInverse/scalable/actions icon_DATA = chat.svg document-list.svg user-list.svg EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/scalable/apps/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/scalable/apps/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/scalable/apps/Makefile.in 2009-04-26 10:57:38.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/scalable/apps/Makefile.in 2009-12-19 23:16:21.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -74,6 +75,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -83,6 +86,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -107,11 +111,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -182,6 +188,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ icondir = $(datadir)/icons/HighContrastLargePrintInverse/scalable/apps icon_DATA = gobby-0.5.svg EXTRA_DIST = $(icon_DATA) @@ -312,6 +320,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -320,18 +330,28 @@ 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 diff -Nru gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/scalable/Makefile.in gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/scalable/Makefile.in --- gobby-infinote-0.4.92/icons/HighContrastLargePrintInverse/scalable/Makefile.in 2009-04-26 10:57:38.000000000 +0100 +++ gobby-infinote-0.4.93/icons/HighContrastLargePrintInverse/scalable/Makefile.in 2009-12-19 23:16:21.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,6 +190,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = apps actions all: all-recursive @@ -225,7 +233,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -250,7 +258,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -434,6 +442,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -442,18 +452,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 diff -Nru gobby-infinote-0.4.92/icons/Makefile.in gobby-infinote-0.4.93/icons/Makefile.in --- gobby-infinote-0.4.92/icons/Makefile.in 2009-04-26 10:57:38.000000000 +0100 +++ gobby-infinote-0.4.93/icons/Makefile.in 2009-12-19 23:16:22.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -76,6 +77,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -85,6 +88,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -109,11 +113,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -184,6 +190,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ SUBDIRS = hicolor HighContrastLargePrint HighContrastLargePrintInverse all: all-recursive @@ -225,7 +233,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -250,7 +258,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -434,6 +442,8 @@ html: html-recursive +html-am: + info: info-recursive info-am: @@ -442,18 +452,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 diff -Nru gobby-infinote-0.4.92/INSTALL gobby-infinote-0.4.93/INSTALL --- gobby-infinote-0.4.92/INSTALL 2008-11-27 17:15:54.000000000 +0000 +++ gobby-infinote-0.4.93/INSTALL 2009-12-14 09:54:27.000000000 +0000 @@ -2,10 +2,12 @@ ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008 Free Software Foundation, Inc. +2006, 2007, 2008, 2009 Free Software Foundation, Inc. - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. Basic Installation ================== @@ -13,7 +15,11 @@ Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for -instructions specific to this package. +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses @@ -42,7 +48,7 @@ you want to change it or regenerate `configure' using a newer version of `autoconf'. -The simplest way to compile this package is: + The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. @@ -53,12 +59,22 @@ 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with - the package. + the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and - documentation. + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. - 5. You can remove the program binaries and object files from the + 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is @@ -67,8 +83,15 @@ all sorts of other programs in order to regenerate files that came with the distribution. - 6. Often, you can also type `make uninstall' to remove the installed - files again. + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. Compilers and Options ===================== @@ -93,7 +116,8 @@ own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have @@ -120,7 +144,8 @@ By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you @@ -131,15 +156,46 @@ In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. -Optional Features -================= - Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE @@ -152,6 +208,13 @@ you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + Particular systems ================== @@ -159,7 +222,7 @@ CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: - ./configure CC="cc -Ae" + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. @@ -174,6 +237,16 @@ ./configure CC="cc -nodtk" + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + Specifying the System Type ========================== @@ -189,7 +262,8 @@ where SYSTEM can have one of these forms: - OS KERNEL-OS + OS + KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't @@ -277,7 +351,7 @@ `configure' can determine that directory automatically. `--prefix=DIR' - Use DIR as the installation prefix. *Note Installation Names:: + Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. diff -Nru gobby-infinote-0.4.92/install-sh gobby-infinote-0.4.93/install-sh --- gobby-infinote-0.4.92/install-sh 2008-11-27 17:15:54.000000000 +0000 +++ gobby-infinote-0.4.93/install-sh 2009-12-14 09:54:27.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 gobby-infinote-0.4.92/m4/Makefile.in gobby-infinote-0.4.93/m4/Makefile.in --- gobby-infinote-0.4.92/m4/Makefile.in 2009-04-26 10:57:39.000000000 +0100 +++ gobby-infinote-0.4.93/m4/Makefile.in 2009-12-19 23:16:24.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -64,6 +65,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -73,6 +76,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -97,11 +101,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -172,6 +178,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ m4macros = \ ac_pkg_check_gtkmm.m4 @@ -283,6 +291,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -291,18 +301,28 @@ 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 diff -Nru gobby-infinote-0.4.92/Makefile.am gobby-infinote-0.4.93/Makefile.am --- gobby-infinote-0.4.92/Makefile.am 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/Makefile.am 2009-12-19 23:13:04.000000000 +0000 @@ -1,4 +1,8 @@ -SUBDIRS = m4 contrib win32 code . icons po +SUBDIRS = m4 win32 code . icons po + +if HAVE_GNOME_DOC_UTILS +SUBDIRS += help +endif # Tell aclocal where to find `.m4' files. ACLOCAL_AMFLAGS = -I m4 @@ -16,6 +20,7 @@ code/core/libgobby-core.a \ code/util/libgobby-util.a \ $(gobby_LIBS) \ + $(unique_LIBS) \ $(infinote_LIBS) \ $(LIBS) @@ -29,7 +34,29 @@ gobby_0_5_SOURCES = +# .desktop file +if !WIN32 +desktopdir = $(datadir)/applications +desktop_in_files = gobby-0.5.desktop.in +desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) +endif + +clean-local: + -rm -rf gobby-0.5.desktop + +@INTLTOOL_DESKTOP_RULE@ + # Dummy C++ source to cause C++ linking, otherwise some platforms don't link # correctly against libstdc++. See also #399. Note that this file does not # (need to) exist in the source tree. nodist_EXTRA_gobby_0_5_SOURCES = dummy.cpp + +# Debian seems to need an XPM of the program icon, so we provide one here. +# It's currently not used for anything else, though. +EXTRA_DIST = gobby-0.5.xpm + +# For the manual +EXTRA_DIST += gnome-doc-utils.make gobby-0.5.desktop.in +DISTCLEANFILES = gnome-doc-utils.make +DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper + diff -Nru gobby-infinote-0.4.92/Makefile.in gobby-infinote-0.4.93/Makefile.in --- gobby-infinote-0.4.92/Makefile.in 2009-04-26 10:57:40.000000000 +0100 +++ gobby-infinote-0.4.93/Makefile.in 2009-12-19 23:16:24.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -14,6 +15,7 @@ @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -32,8 +34,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +@HAVE_GNOME_DOC_UTILS_TRUE@am__append_1 = help bin_PROGRAMS = gobby-0.5$(EXEEXT) -@WIN32_TRUE@am__append_1 = -lws2_32 +@WIN32_TRUE@am__append_2 = -lws2_32 subdir = . DIST_COMMON = README $(am__configure_deps) $(dist_man_MANS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ @@ -49,7 +52,8 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/code/features.hpp CONFIG_CLEAN_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \ + "$(DESTDIR)$(desktopdir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_gobby_0_5_OBJECTS = @@ -62,7 +66,7 @@ code/dialogs/libgobby-dialogs.a code/core/libgobby-core.a \ code/util/libgobby-util.a $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) gobby_0_5_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(gobby_0_5_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/code @@ -85,11 +89,19 @@ man1dir = $(mandir)/man1 NROFF = nroff MANS = $(dist_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) +DATA = $(desktop_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) +DIST_SUBDIRS = m4 win32 code . icons po help DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -122,6 +134,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -131,6 +145,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -155,11 +170,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -230,7 +247,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = m4 contrib win32 code . icons po +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ +SUBDIRS = m4 win32 code . icons po $(am__append_1) # Tell aclocal where to find `.m4' files. ACLOCAL_AMFLAGS = -I m4 @@ -239,8 +258,8 @@ code/commands/file-tasks/libgobby-file-tasks.a \ code/operations/libgobby-operations.a \ code/dialogs/libgobby-dialogs.a code/core/libgobby-core.a \ - code/util/libgobby-util.a $(gobby_LIBS) $(infinote_LIBS) \ - $(LIBS) $(am__append_1) + code/util/libgobby-util.a $(gobby_LIBS) $(unique_LIBS) \ + $(infinote_LIBS) $(LIBS) $(am__append_2) @WIN32_TRUE@gobby_0_5_LDFLAGS = \ @WIN32_TRUE@ -Wl,--enable-runtime-pseudo-reloc \ @WIN32_TRUE@ -mwindows \ @@ -248,10 +267,22 @@ gobby_0_5_SOURCES = +# .desktop file +@WIN32_FALSE@desktopdir = $(datadir)/applications +@WIN32_FALSE@desktop_in_files = gobby-0.5.desktop.in +@WIN32_FALSE@desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) + # Dummy C++ source to cause C++ linking, otherwise some platforms don't link # correctly against libstdc++. See also #399. Note that this file does not # (need to) exist in the source tree. nodist_EXTRA_gobby_0_5_SOURCES = dummy.cpp + +# Debian seems to need an XPM of the program icon, so we provide one here. +# It's currently not used for anything else, though. + +# For the manual +EXTRA_DIST = gobby-0.5.xpm gnome-doc-utils.make gobby-0.5.desktop.in +DISTCLEANFILES = gnome-doc-utils.make all: all-recursive .SUFFIXES: @@ -382,6 +413,23 @@ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ done +install-desktopDATA: $(desktop_DATA) + @$(NORMAL_INSTALL) + test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" + @list='$(desktop_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \ + $(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \ + done + +uninstall-desktopDATA: + @$(NORMAL_UNINSTALL) + @list='$(desktop_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \ + rm -f "$(DESTDIR)$(desktopdir)/$$f"; \ + done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -390,7 +438,7 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -415,7 +463,7 @@ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -520,6 +568,19 @@ echo "NEWS not updated; not releasing" 1>&2; \ exit 1;; \ esac + @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 $(am__remove_distdir) test -d $(distdir) || mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -564,7 +625,8 @@ || exit 1; \ fi; \ done - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + -find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ @@ -669,10 +731,10 @@ exit 1; } >&2 check-am: all-am check: check-recursive -all-am: Makefile $(PROGRAMS) $(MANS) +all-am: Makefile $(PROGRAMS) $(MANS) $(DATA) installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(desktopdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive @@ -695,13 +757,14 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am +clean-am: clean-binPROGRAMS clean-generic clean-local mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) @@ -716,26 +779,38 @@ html: html-recursive +html-am: + info: info-recursive info-am: -install-data-am: install-man +install-data-am: install-desktopDATA install-man install-dvi: install-dvi-recursive +install-dvi-am: + install-exec-am: install-binPROGRAMS 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 @@ -757,7 +832,8 @@ ps-am: -uninstall-am: uninstall-binPROGRAMS uninstall-man +uninstall-am: uninstall-binPROGRAMS uninstall-desktopDATA \ + uninstall-man uninstall-man: uninstall-man1 @@ -766,21 +842,28 @@ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-binPROGRAMS \ - clean-generic ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \ - distclean distclean-compile distclean-generic distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-man1 \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-binPROGRAMS uninstall-man uninstall-man1 + clean-generic clean-local ctags ctags-recursive dist dist-all \ + dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ dist-zip \ + distcheck distclean distclean-compile distclean-generic \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-data install-data-am \ + install-desktopDATA install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-desktopDATA uninstall-man \ + uninstall-man1 + + +clean-local: + -rm -rf gobby-0.5.desktop +@INTLTOOL_DESKTOP_RULE@ # 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 gobby-infinote-0.4.92/missing gobby-infinote-0.4.93/missing --- gobby-infinote-0.4.92/missing 2008-11-27 17:15:54.000000000 +0000 +++ gobby-infinote-0.4.93/missing 2009-12-14 09:54:27.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 @@ -89,6 +89,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 +109,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 +148,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 +158,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 +167,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 +197,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 +220,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 +250,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 +273,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 +287,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 +320,7 @@ touch $file ;; - tar) + tar*) shift # We have already tried tar in the generic part. @@ -363,5 +373,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 gobby-infinote-0.4.92/mkinstalldirs gobby-infinote-0.4.93/mkinstalldirs --- gobby-infinote-0.4.92/mkinstalldirs 2008-11-27 17:15:54.000000000 +0000 +++ gobby-infinote-0.4.93/mkinstalldirs 2009-12-14 09:54:27.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 gobby-infinote-0.4.92/NEWS gobby-infinote-0.4.93/NEWS --- gobby-infinote-0.4.92/NEWS 2009-04-24 23:37:51.000000000 +0100 +++ gobby-infinote-0.4.93/NEWS 2009-12-19 23:54:38.000000000 +0000 @@ -1,6 +1,18 @@ Gobby ===== +Version 0.4.93: + * Added IRC-like chat + * Added functionality to export a document to HTML (#245) + * Sort browser entries + * Allow selecting multiple files when opening files + * Allow resetting user colors in a document (Bug #211) + * Added a Connect to Server option to the File menu + * Undo words instead of individual characters + * When starting Gobby twice then send commands to an existing Gobby (if any) + unless the -n command line option is given. + * Added an option to highlight spaces and tabs + Version 0.4.92: * Support running Gobby on Windows 2000. * Added Icons for HCLP and HCLPI icon themes (Bug #413, Patrick Wade). diff -Nru gobby-infinote-0.4.92/po/ca.po gobby-infinote-0.4.93/po/ca.po --- gobby-infinote-0.4.92/po/ca.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/ca.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1181 +0,0 @@ -# Catalan translation of Gobby. -# Copyright © 2005 Free Software Foundation, Inc. -# This file is distributed under the same license as the gobby package. -# Jordi Mallach , 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: gobby\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-11-26 11:53+0000\n" -"Last-Translator: Jordi Mallach \n" -"Language-Team: Catalan \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-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Crea un document..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Crea una sessió..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Obre un document..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Tanca un document obert" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Entrodueix el nom del document" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "Direcció" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Desa el document" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Direcció" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Servidor:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "El document %0% no existeix." - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Llista d'usuaris" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "Cap" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "Arxius" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Obre un document..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Obre un document..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Desa la sessió..." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "_Edita" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Cerca..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "Cerca:" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Cerca i reemplaça..." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Vés a la línia..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "Preferències" - -#: ../code/core/header.cpp:260 -#, fuzzy -msgid "_View" -msgstr "Visualitza" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Barra d'eines" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Llista d'usuaris" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "A_juda" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "Quant a" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Mostra el copyright del Gobby i els crèdits" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Llista d'usuaris" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Llista de documents" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Usuari" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Desa el document en una altra ubicació" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Entrodueix el nom del document" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Cerca..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Cercar" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Substitueix amb:" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "Distingeix entre majúscules i minúscules" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "Només paraules senceres" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "Reemplaça-ho _tot" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "_Reemplaça" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "_Reemplaça" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "No s'ha trobat «%0%» en el document." - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "No s'ha reemplaçat cap coincidència" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "S'ha reemplaçat %0% coincidència" -msgstr[1] "S'han reemplaçat %0% coincidències" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "Vés a la línia" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Número de línia:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "Vés a la línia" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Usuari" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Llista d'usuaris" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Nou nom:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Contrasenya d'usuari:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "Tabulacions" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "Sagnat" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Comportament d'Inici/Fi" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "Amplada del tabulador:" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Insereix espais en comptes de tabulacions" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "Habilita el sagnat automàtic" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "Inici/fi intel·ligent" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "Habilita el sagnat automàtic" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"Amb aquesta opció habilitada, les tecles Inici/Fi mouen al primer/últim " -"caràcter abans d'anar al principi/final de la línia." - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "Ajustament del text" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Números de línies" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Línia actual" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Marge dret" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "Emparellament de claus" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "Habilita l'ajustament del text" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "No separes paraules en dos línies" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Mostra els números de línia" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Ressalta la línia actual" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Mostra el marge dret" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Marge dret a la columna:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "Ressalta la clau emparellada" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Barra d'eines" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Tipus lletra" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Mostra només text" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Mostra només icones" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Mostra icones i text" - -#: ../code/dialogs/preferencesdialog.cpp:508 -#, fuzzy -msgid "Show text besides icons" -msgstr "Mostra només text" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "S'ha perdut la connexió" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "Preferències" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Usuari" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Editor" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Visualitza" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Aparença" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Crea un document..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Desa el document actual" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Obre un document..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Tanca un document obert" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Anomena i desa el document..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Carrega un fitxer a un document nou" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Llista de documents" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "Encara esteu connectats a una sessió" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "Voleu tancar el Gobby igualment?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -#, fuzzy -msgid "Gobby Collaborative Editor (0.5)" -msgstr "Un editor de text col·laboratiu" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "No s'ha pogut convertir l'entrada a UTF-8: la codificació és desconeguda " -#~ "o és entrada binària." - -#~ msgid "Character Encoding:" -#~ msgstr "Codificació de caràcters:" - -#~ msgid "Send" -#~ msgstr "Envia" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "No s'ha trobat la comanda '%0%'. Escriga /help per llistar les comandes " -#~ "existents." - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#, fuzzy -#~ msgid "Usage: /remove " -#~ msgstr "Desa el document" - -#~ msgid "Subscribe" -#~ msgstr "Subscriu-te" - -#~ msgid "Match as regular expression" -#~ msgstr "Fes coincidir com una expressió regular" - -#~ msgid "_Up" -#~ msgstr "A _dalt" - -#~ msgid "_Down" -#~ msgstr "A _baix" - -#~ msgid "Search and replace" -#~ msgstr "Cerca i reemplaça" - -#~ msgid "No document currently opened" -#~ msgstr "No hi ha cap document obert" - -#~ msgid "_Go to line" -#~ msgstr "_Vés a la línia" - -#~ msgid "Opens a new obby session" -#~ msgstr "Obre una sessió nova d'obby" - -#~ msgid "Join session..." -#~ msgstr "Uneix-te a una sessió..." - -#~ msgid "Joins an existing obby session" -#~ msgstr "Uneix a una sessió d'obby ja existent" - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Desa la sessió completa per a restaurar-la més endavant" - -#~ msgid "Quit session" -#~ msgstr "Desconnecta de la sessió" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Abandona la sessió d'obby que s'està executant" - -#~ msgid "Quit" -#~ msgstr "Surt" - -#~ msgid "Quits the application" -#~ msgstr "Surt de l'aplicació" - -#~ msgid "_Session" -#~ msgstr "_Sessió" - -#~ msgid "Creates a new document" -#~ msgstr "Crea un document nou" - -#~ msgid "Saves a document into a file" -#~ msgstr "Desa el document en un fitxer" - -#~ msgid "Close document" -#~ msgstr "Tanca el document" - -#~ msgid "Closes an opened document" -#~ msgstr "Tanca un document obert" - -#~ msgid "Search for a text in the current document" -#~ msgstr "Cerca un text al document actual" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "Cerca un text i reemplaça'l amb un altre" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "Mou el cursor a una línia especificada" - -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "" -#~ "Mostra un diàleg per a personalitzar el Gobby a les vostres necessitats" - -#~ msgid "Document preferences..." -#~ msgstr "Preferències del document..." - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "" -#~ "Mostra un diàleg de preferèncias que només s'aplica a aquest document" - -#~ msgid "Syntax" -#~ msgstr "Sintaxi" - -#~ msgid "_User" -#~ msgstr "_Usuari" - -#~ msgid "Set password..." -#~ msgstr "Estableix una contrasenya..." - -#~ msgid "Sets a password for this user" -#~ msgstr "Estableix una contrasenya per a aquest usuari" - -#~ msgid "Set colour..." -#~ msgstr "Estableix el color..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Estableix el color per a aquest usuari" - -#~ msgid "_Window" -#~ msgstr "_Finestra" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Mostra la llista d'usuaris que estan conectats" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Mostra la llista de documents de dins de la sessió actual" - -#~ msgid "Chat" -#~ msgstr "Xat" - -#~ msgid "Displays a chat to talk to other people in the session" -#~ msgstr "Mostra el xat per parlar amb l'altra gent a la sessió." - -#~ msgid "Unselects the current language" -#~ msgstr "Desselecciona el llenguatge actual" - -#~ msgid "Selects %0% as language" -#~ msgstr "Selecciona %0% com a llenguatge" - -#~ msgid "Create obby session" -#~ msgstr "Crea una sessió d'obby" - -#~ msgid "Port:" -#~ msgstr "Port:" - -#~ msgid "Name:" -#~ msgstr "Nom:" - -#~ msgid "Colour:" -#~ msgstr "Color:" - -#~ msgid "Password:" -#~ msgstr "Contrasenya:" - -#~ msgid "Restore session:" -#~ msgstr "Restaura la sessió:" - -#~ msgid "Restore session" -#~ msgstr "Restaura una sessió" - -#~ msgid "_Host" -#~ msgstr "_Servidor" - -#~ msgid "Opening obby session..." -#~ msgstr "S'està obrint la sessió d'obby..." - -#~ msgid "Join obby session" -#~ msgstr "Connecta a una sessió d'obby" - -#~ msgid "Local network" -#~ msgstr "Xarxa local" - -#~ msgid "Host" -#~ msgstr "Servidor" - -#~ msgid "Port" -#~ msgstr "Port" - -#~ msgid "Failure" -#~ msgstr "Fallada" - -#~ msgid "" -#~ "User password for user '%0%' required. You may either choose another user " -#~ "name, type in your user password or cancel the connection." -#~ msgstr "" -#~ "Es requereix la contrasenya per l'usuari «%0%». Podeu triar un altre nom " -#~ "d'usuari, introduir la vostra contrasenya d'usuari o cancel·lar la " -#~ "connexió." - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "El nom ja està en ús. Podeu triar un altre nom o cancel·lar la connexió." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "" -#~ "El color ja està en ús. Podeu triar un altre color o cancel·lar la " -#~ "connexió." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "Es requereix una contrasenya per a la sessió. Heu d'introduir la " -#~ "contrasenya per a poder unir-vos a la sessió d'obby." - -#~ msgid "Session password:" -#~ msgstr "Contrasenya de la sessió:" - -#~ msgid "Joining obby session..." -#~ msgstr "S'està unint a una sessió d'obby..." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "Posant l'encriptacio (TLS) de la conecció..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "S'ha enviat el paquet d'entrada, s'està esperant la resposta..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "S'ha entrat amb èxit, s'està sincronitzant la sessió..." - -#~ msgid "Windows" -#~ msgstr "Finestres" - -#~ msgid "Remember the positions and states" -#~ msgstr "Recorda les posicions i estats" - -#~ msgid "Highlight the window on incoming chat messages" -#~ msgstr "Remarcar la finestra dels missatges entrants del xat" - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "Obrir automàticament un nou creador remot de documents" - -#~ msgid "Pattern" -#~ msgstr "Patró" - -#~ msgid "Language" -#~ msgstr "Llengua" - -#~ msgid "Mime type" -#~ msgstr "Tipus Mime" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "Aquesta es una llista de tots els tipus d'arxiu reconeguts" - -#~ msgid "Pattern must not be empty." -#~ msgstr "El patró no pot ser buit" - -#~ msgid "There is no language with the mime type '%0%'." -#~ msgstr "Açí no està la llengua pel tipus mime '%0%'." - -#~ msgid "Behaviour" -#~ msgstr "Comportament" - -#, fuzzy -#~ msgid "Not connected" -#~ msgstr "Connectat" - -#~ msgid "Selected language: %0%" -#~ msgstr "Llenguatge seleccionat: %0%" - -#~ msgid "No language selected" -#~ msgstr "No hi ha cap llenguatge seleccionat" - -#~ msgid "Online" -#~ msgstr "En línia" - -#~ msgid "Offline" -#~ msgstr "Fora de línia" - -#~ msgid "" -#~ "Zeroconf initialisation failed. Probably you need to run avahi-daemon or " -#~ "mDNSResponder, depending on the library you use, as root prior to Gobby. " -#~ "Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Fallada en l'inicialització de Zeroconf. Probablement necesites arrencar " -#~ "el dimoni avahi o el mDNSResponder, depenent de la llibreria que estigui " -#~ "utilitzant, com a root abans de entrar al goby. El soport de zeroconf " -#~ "serà desactivat per aquesta sessió." - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "Utilitza l'extensió per defecte .obby si no es dóna cap" - -#~ msgid "Save obby session" -#~ msgstr "Desa la sessió d'obby" - -#~ msgid "Create document" -#~ msgstr "Crea un document" - -#~ msgid "Enter document name" -#~ msgstr "Entrodueix el nom del document" - -#~ msgid "Open new document" -#~ msgstr "Obre un document nou" - -#~ msgid "" -#~ "Click on \"Apply\" to apply the new settings to documents that are " -#~ "currently open. \"OK\" will just store the values to use them with newly " -#~ "created documents." -#~ msgstr "" -#~ "Feu clic en «Aplica» per a aplicar els nous paràmetres als documents que " -#~ "estan oberts. «D'acord» només emmagatzemarà els valors per a usar-los amb " -#~ "els documents de nova creació." - -#~ msgid "Set user password" -#~ msgstr "Estableix la contrasenya d'usuari" - -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "Estableix una contrasenya d'usuari per al vostre compte d'usuari. Quan " -#~ "intenteu entrar la pròxima vegada amb aquest usuari, se us demanarà la " -#~ "contrasenya." - -#~ msgid "" -#~ "These preferences affect only the currently active document \"%0%\". If " -#~ "you want to change global preferences, use the preferences menu item in " -#~ "the \"Edit\" menu." -#~ msgstr "" -#~ "Aquestes preferències només afecten al document actiu «%0%». Si voleu " -#~ "canviar les preferències globals, utilitzeu l'element del menú de " -#~ "preferències al menú «Edita»." - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "Ha fallat el canvi de color: el color ja està en ús" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "S'ha connectat a %0%:%1%" - -#~ msgid "Serving on port %0%" -#~ msgstr "S'està servint al port %0%" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "Voleu desar els canvis al document «%0%» abans de tancar?" - -#~ msgid "" -#~ "If you don't save, changes will be discarded, but may still be retrieved " -#~ "if you re-subscribe to the document as long as the session remains open." -#~ msgstr "" -#~ "Si no deses, es descartaran tots els canvis, pero podran ser recuperats " -#~ "si et re-suscrius al document sempre que la sessió encara sigui oberta." - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "Si no els deseu, es descartaran tots els canvis." - -#~ msgid "Close without saving" -#~ msgstr "Tancar sense desar" - -#~ msgid "Shows up a dialog to customise Gobby for your needs" -#~ msgstr "" -#~ "Mostra un diàleg per a personalitzar el Gobby a les vostres necessitats" - -#~ msgid "Passwords do not match" -#~ msgstr "Les contrasenyes no coincideixen" - -#~ msgid "%0% has joined" -#~ msgstr "%0% s'ha unit" - -#~ msgid "%0% has left" -#~ msgstr "%0% ha sortit" - -#~ msgid "Gobby" -#~ msgstr "Gobby" - -#~ msgid "Join an existing obby session" -#~ msgstr "Connecta a una sessió d'obby existent" - -#~ msgid "Colour" -#~ msgstr "Color" - -#~ msgid "Name" -#~ msgstr "Nom" - -#~ msgid "Subscribed" -#~ msgstr "Subscrit" - -#~ msgid "%0% pending change" -#~ msgid_plural "%0% pending changes" -#~ msgstr[0] "%0% canvi pendent" -#~ msgstr[1] "%0% canvis pendents" - -#~ msgid "Revision: %0%" -#~ msgstr "Revisió: %0%" diff -Nru gobby-infinote-0.4.92/po/ChangeLog gobby-infinote-0.4.93/po/ChangeLog --- gobby-infinote-0.4.92/po/ChangeLog 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/po/ChangeLog 2009-12-19 23:13:04.000000000 +0000 @@ -1,3 +1,36 @@ +2009-12-19 Armin Burgmeier + + * gobby05.pot: Added .pot file, to allow synchronization with + launchpad. + + * Makefile.in.in: Include gobby05.pot in distribution tarball. + +2009-12-19 Armin Burgmeier + + * en_GB.po: Update. + +2009-12-16 Armin Burgmeier + + * POTFILES.in: Updated. + +2009-12-03 Gabríel A. Pétursson + + * LINGUAS: + * en_GB.po: Added British English translation. + +2009-11-15 Armin Burgmeier + + * POTFILES.in: Updated. + + * LINGUAS: Removed all languages. + * *.po: Removed as these were just remains from Gobby 0.4.x which + contained only very few strings that are still valid, and a lot of + invalid fuzzy matches. + +2009-08-29 Armin Burgmeier + + * POTFILES.in: Updated. + 2009-04-24 Armin Burgmeier * POTFILES.in: Updated. diff -Nru gobby-infinote-0.4.92/po/de.po gobby-infinote-0.4.93/po/de.po --- gobby-infinote-0.4.92/po/de.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/de.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1143 +0,0 @@ -# Gobby i18n German Translation -# Copyright (C) 2005 0x539 dev group -# Philipp Kern , 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: Gobby 0.4.90\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-10-29 15:49+0000\n" -"Last-Translator: Philipp Kern \n" -"Language-Team: German Translation Team \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-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Dokument erstellen..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Sitzung eröffnen..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Dokument öffnen..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Schließt ein geöffnetes Dokument" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Umgang mit Dokumenten" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "Richtung" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Dokument speichern" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Richtung" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Host:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "Dokument %0% gibt es nicht" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Benutzerliste" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "Keine" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "Dateien" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Dokument öffnen..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Dokument öffnen..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Sitzung speichern..." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "_Bearbeiten" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Suchen..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "Suchen nach:" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Suchen und Ersetzen..." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Gehe zu Zeile..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "Einstellungen..." - -#: ../code/core/header.cpp:260 -#, fuzzy -msgid "_View" -msgstr "Ansicht" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Werkzeugleiste" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Benutzerliste" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "_Hilfe" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "_Info" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Zeigt Informationen zu Gobbys Copyright und den Mitwirkenden an" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Benutzerliste" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Dokumentenliste" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Benutzer" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Speichert ein Dokument in eine andere Datei" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Umgang mit Dokumenten" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Suchen..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Suchen" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Ersetzen durch:" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "Groß-/Kleinschreibung beachten" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "Nur ganze Wörter finden" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "_Alles ersetzen" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "E_rsetzen" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "E_rsetzen" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "\"%0%\" wurde nicht im Dokument gefunden." - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "Keine Übereinstimmung wurde ersetzt" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "%0% Übereinstimmung wurde ersetzt" -msgstr[1] "%0% Übereinstimmungen wurden übersetzt" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "Gehe zu Zeile" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Zeilennummer:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "Gehe zu Zeile" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Benutzer" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Benutzerliste" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Neuer Name:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Benutzerpasswort:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "Tabulatoren" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "Einrückung" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Pos1/Ende Verhalten" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "Tabulatorbreite:" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Leerstellen statt Tabulatoren einfügen" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "Automatische Einrückung aktivieren" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "Schlaues Pos1/Ende Verhalten" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "Automatische Einrückung aktivieren" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"Wenn diese Option aktiviert ist, springen die Pos1/Ende Tasten zum ersten/" -"letzten Zeichen bevor sie zur ersten/letzten Spalte springen." - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "Zeilenumbruch" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Zeilennummern" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Aktuelle Zeile" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Rechter Rand" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "Klammernpaare finden" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "Text-Umbruch aktivieren" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "Nur am Wortende umbrechen" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Zeilennummern anzeigen" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Aktuelle Zeile hervorheben" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Rechten Rand anzeigen" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Rechter Rand bei Spalte:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "Passende Klammer hervorheben" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Werkzeugleiste" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Schriftart" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Nur Text anzeigen" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Nur Symbole anzeigen" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Symbole und Text anzeigen" - -#: ../code/dialogs/preferencesdialog.cpp:508 -msgid "Show text besides icons" -msgstr "Text neben dem Symbol anzeigen" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "Verbindung verloren" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "Einstellungen" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Benutzer" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Editor" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Ansicht" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Erscheinungsbild" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Dokument erstellen..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Aktuelles Dokument speichern" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "ISO-8859-15" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Dokument öffnen..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Schließt ein geöffnetes Dokument" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Dokument speichern..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Lädt eine Datei in ein neues Dokument" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Dokumentenliste" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "Du bist noch zu einer Sitzung verbunden" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "Willst du Gobby trotzdem schließen?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "_Abbrechen" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "Gemeinschaftliches Editieren von Textdateien" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -msgid "Gobby Collaborative Editor (0.5)" -msgstr "Gobby Gemeinschaftseditor (0.5)" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "Konvertierung nach UTF-8 fehlgeschlagen: Entweder ist die Kodierung " -#~ "unbekannt oder es sind binäre Daten." - -#~ msgid "Character Encoding:" -#~ msgstr "Zeichenkodierung:" - -#~ msgid "Send" -#~ msgstr "Versenden" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "Kommando '%0%' nicht gefunden. Gib /help für eine Liste der verfügbaren " -#~ "Kommandos ein." - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "Benutzung: /remove " - -#~ msgid "Subscribe" -#~ msgstr "Abonnieren" - -#~ msgid "Match as regular expression" -#~ msgstr "Suchbegriff als regulären Ausdruck interpretieren" - -#~ msgid "_Up" -#~ msgstr "Ra_uf" - -#~ msgid "_Down" -#~ msgstr "Ru_nter" - -#~ msgid "Search and replace" -#~ msgstr "Suchen und Ersetzen" - -#~ msgid "No document currently opened" -#~ msgstr "Derzeit ist kein Dokument geöffnet" - -#~ msgid "_Go to line" -#~ msgstr "_Gehe zu Zeile" - -#~ msgid "Opens a new obby session" -#~ msgstr "Eröffnet eine neue Sitzung" - -#~ msgid "Join session..." -#~ msgstr "Sitzung beitreten..." - -#~ msgid "Joins an existing obby session" -#~ msgstr "Einer bestehenden Sitzung beitreten" - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Speichert die komplette Sitzung zur späteren Wiederherstellung" - -#~ msgid "Quit session" -#~ msgstr "Sitzung verlassen" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Verlässt die aktuell laufende Sitzung" - -#~ msgid "Quit" -#~ msgstr "Beenden" - -#~ msgid "Quits the application" -#~ msgstr "Beendet die Anwendung" - -#~ msgid "_Session" -#~ msgstr "_Sitzung" - -#~ msgid "Creates a new document" -#~ msgstr "Erstellt ein neues Dokument" - -#~ msgid "Saves a document into a file" -#~ msgstr "Speichert ein Dokument in eine Datei" - -#~ msgid "Close document" -#~ msgstr "Dokument schließen" - -#~ msgid "Search for a text in the current document" -#~ msgstr "Das aktuelle Dokument nach einem Text durchsuchen" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "Zeichenkette suchen und ersetzen" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "Bewegt den Cursor zu einer angegeben Zeile" - -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "Verändert Gobby nach Ihren Wünschen" - -#~ msgid "Document preferences..." -#~ msgstr "Dokumenten-Einstellungen" - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "" -#~ "Zeigt einen Einstellungsdialog der sich nur auf dieses Dokument bezieht" - -#~ msgid "Syntax" -#~ msgstr "Syntax" - -#~ msgid "_User" -#~ msgstr "B_enutzer" - -#~ msgid "Set password..." -#~ msgstr "Passwort setzen..." - -#~ msgid "Sets a password for this user" -#~ msgstr "Setzt ein Passwort für diesen Benutzer" - -#~ msgid "Set colour..." -#~ msgstr "Farbe setzen..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Setzt eine neue Farbe für diesen Benutzer" - -#~ msgid "_Window" -#~ msgstr "_Fenster" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Zeigt eine Liste aktueller Benutzer" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Zeigt eine Liste der Dokumente in der aktuellen Sitzung" - -#~ msgid "Chat" -#~ msgstr "Chat" - -#~ msgid "Displays a chat to talk to other people in the session" -#~ msgstr "" -#~ "Zeigt einen Chat an, um sich mit anderen Teilnehmern dieser Sitzung zu " -#~ "unterhalten" - -#~ msgid "Unselects the current language" -#~ msgstr "Sprachauswahl aufheben" - -#~ msgid "Selects %0% as language" -#~ msgstr "Wählt %0% als Sprache aus" - -#~ msgid "Create obby session" -#~ msgstr "obby Sitzung eröffnen" - -#~ msgid "Port:" -#~ msgstr "Port:" - -#~ msgid "Name:" -#~ msgstr "Name:" - -#~ msgid "Colour:" -#~ msgstr "Farbe:" - -#~ msgid "Password:" -#~ msgstr "Passwort:" - -#~ msgid "Restore session:" -#~ msgstr "Sitzungungsdatei:" - -#~ msgid "Restore session" -#~ msgstr "Sitzung wiederherstellen" - -#~ msgid "_Host" -#~ msgstr "_Host" - -#~ msgid "Opening obby session..." -#~ msgstr "Eröffne neue Sitzung..." - -#~ msgid "Join obby session" -#~ msgstr "Sitzung beitreten" - -#~ msgid "Local network" -#~ msgstr "Lokales Netzwerk" - -#~ msgid "Host" -#~ msgstr "Host" - -#~ msgid "Port" -#~ msgstr "Port" - -#~ msgid "Failure" -#~ msgstr "Fehler" - -#~ msgid "" -#~ "User password for user '%0%' required. You may either choose another user " -#~ "name, type in your user password or cancel the connection." -#~ msgstr "" -#~ "Für den Benutzer '%0%' ist ein Passwort hinterlegt. Du kannst entweder " -#~ "einen anderen Benutzernamen wählen, dein Benutzerpasswort eingeben oder " -#~ "die Verbindung trennen." - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Der Name ist bereits vergeben. Du kannst einen anderen wählen oder die " -#~ "Verbindung trennen." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Die Farbe wird bereits benutzt. Du kannst eine andere wählen oder die " -#~ "Verbindung trennen." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "Sitzungspasswort erforderlich. Du musst das Passwort eingeben, um die " -#~ "obby Sitzung bereten zu können." - -#~ msgid "Session password:" -#~ msgstr "Sitzungspasswort:" - -#~ msgid "Joining obby session..." -#~ msgstr "Trete der Sitzung bei..." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "TLS-Verschlüsselung wird eingerichtet..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "Anmeldepaket gesendet, warte auf Antwort..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "Erfolgreich angemeldet, synchronisiere Sitzung..." - -#~ msgid "Windows" -#~ msgstr "Fenster" - -#~ msgid "Remember the positions and states" -#~ msgstr "Positionen und Zustände merken" - -#~ msgid "Highlight the window on incoming chat messages" -#~ msgstr "Hebe das Fenster hervor, wenn neue Nachrichten eintreffen" - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "Öffne neu erzeugte Dokumente automatisch" - -#~ msgid "Pattern" -#~ msgstr "Muster" - -#~ msgid "Language" -#~ msgstr "Sprache" - -#~ msgid "Mime type" -#~ msgstr "Mime-Typ" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "Liste mit allen bekannten Dateitypen" - -#~ msgid "Pattern must not be empty." -#~ msgstr "Das Muster darf nicht leer sein." - -#~ msgid "There is no language with the mime type '%0%'." -#~ msgstr "Es gibt keine Sprace mit dem Mime-Typ '%0%'." - -#~ msgid "Behaviour" -#~ msgstr "Verhalten" - -#~ msgid "Not connected" -#~ msgstr "Nicht verbunden" - -#~ msgid "Selected language: %0%" -#~ msgstr "Ausgewählte Sprache: %0%" - -#~ msgid "No language selected" -#~ msgstr "Keine Sprache ausgewählt" - -#~ msgid "Online" -#~ msgstr "Angemeldet" - -#~ msgid "Offline" -#~ msgstr "Abgemeldet" - -#~ msgid "" -#~ "Zeroconf initialisation failed. Probably you need to run avahi-daemon or " -#~ "mDNSResponder, depending on the library you use, as root prior to Gobby. " -#~ "Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Zeroconf-Initialisierung fehlgeschlagen. Wahrscheinlich musst du avahi-" -#~ "daemon oder mDNSResponder starten, je nachdem welche Bibliothek benutzt " -#~ "wird. Zeroconf-Unterstützung ist für diese Sitzung deaktiviert." - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "Verwende Standarderweiterung (.obby), wenn nicht anders angegeben" - -#~ msgid "Save obby session" -#~ msgstr "obby Sitzung speichern" - -#~ msgid "Create document" -#~ msgstr "Dokument erstellen" - -#~ msgid "Enter document name" -#~ msgstr "Geben Sie bitte einen Namen für das Dokument ein" - -#~ msgid "Open new document" -#~ msgstr "Neues Dokument öffnen" - -#~ msgid "" -#~ "Click on \"Apply\" to apply the new settings to documents that are " -#~ "currently open. \"OK\" will just store the values to use them with newly " -#~ "created documents." -#~ msgstr "" -#~ "Klicke auf \"Anwenden\" um die neuen Einstellungen auch auf die aktuell " -#~ "geöffneten Dokumente anzuwenden. \"Ok\" speichert die Werte nur für neu " -#~ "erstellte Dokumente." - -#~ msgid "Set user password" -#~ msgstr "Benutzerpasswort setzen" - -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "Setze ein Benutzerpasswort für deinen Benutzerzugang. Wenn du das nächste " -#~ "Mal als dieser Benutzer einloggst, wirst du nach deinem Passwort gefragt " -#~ "werden." - -#~ msgid "" -#~ "These preferences affect only the currently active document \"%0%\". If " -#~ "you want to change global preferences, use the preferences menu item in " -#~ "the \"Edit\" menu." -#~ msgstr "" -#~ "Diese Einstellungen betreffen nur das aktuell aktive Dokument \"%0%\". " -#~ "Wenn du die globalen Einstellungen ändern willst, benutze den " -#~ "Einstellungen Menüpunkt im \"Edit\" Menü." - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "Farbwechsel fehlgeschlagen: Farbe wird bereits verwendet." - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "Mit %0%:%1% verbunden" - -#~ msgid "Serving on port %0%" -#~ msgstr "Dienst auf Port %0% aktiv" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "" -#~ "Sollen die Änderungen im Dokument \"%0%\" vor dem Schließen gespeichert " -#~ "werden?" - -#~ msgid "" -#~ "If you don't save, changes will be discarded, but may still be retrieved " -#~ "if you re-subscribe to the document as long as the session remains open." -#~ msgstr "" -#~ "Wenn das Dokument nicht gespeichert wird, werden die Änderungen zwar " -#~ "verworfen, können aber wieder durch ein Abonnement des Dokumentes " -#~ "wiederhergestellt werden solange die Session noch offen ist." - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "" -#~ "Wenn das Dokument nicht gespeichert wird, werden die Änderungen seit dem " -#~ "Letzten Speichern verworfen." - -#~ msgid "Close without saving" -#~ msgstr "Verwerfen" diff -Nru gobby-infinote-0.4.92/po/en_GB.po gobby-infinote-0.4.93/po/en_GB.po --- gobby-infinote-0.4.92/po/en_GB.po 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/po/en_GB.po 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,959 @@ +# British English translation for Gobby, the collaborative real-time text +# editor. +# Copyright (C) 2009 Gabríel A. Pétursson +# This file is distributed under the same license as the Gobby package. +# Gabríel A. Pétursson , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: gobby-0.4.93~dev\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-12-19 20:29+0100\n" +"PO-Revision-Date: 2009-12-03 19:26-0000\n" +"Last-Translator: Gabríel A. Pétursson \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n!=1;\n" + +#: ../code/commands/browser-commands.cpp:109 +msgid "Subscribing to %1..." +msgstr "Subscribing to %1..." + +#: ../code/commands/browser-commands.cpp:122 +msgid "Subscribing to chat on %1..." +msgstr "Subscribing to chat on %1..." + +#: ../code/commands/browser-commands.cpp:307 +msgid "Subscription failed" +msgstr "Subscription failed" + +#: ../code/commands/browser-context-commands.cpp:94 +msgid "Create Do_cument..." +msgstr "Create Do_cument..." + +#: ../code/commands/browser-context-commands.cpp:129 +msgid "Create Directory..." +msgstr "Create Directory..." + +#: ../code/commands/browser-context-commands.cpp:142 +msgid "_Open Document..." +msgstr "_Open Document..." + +#: ../code/commands/browser-context-commands.cpp:161 +msgid "D_elete" +msgstr "D_elete" + +#: ../code/commands/browser-context-commands.cpp:197 +msgid "Choose a name for the directory" +msgstr "Choose a name for the directory" + +#: ../code/commands/browser-context-commands.cpp:198 +msgid "Choose a name for the document" +msgstr "Choose a name for the document" + +#: ../code/commands/browser-context-commands.cpp:199 +msgid "_Directory Name:" +msgstr "_Directory Name:" + +#: ../code/commands/browser-context-commands.cpp:200 +msgid "_Document Name:" +msgstr "_Document Name:" + +#: ../code/commands/browser-context-commands.cpp:203 +msgid "C_reate" +msgstr "C_reate" + +#: ../code/commands/browser-context-commands.cpp:207 +msgid "New Directory" +msgstr "New Directory" + +#: ../code/commands/browser-context-commands.cpp:208 +#: ../code/commands/file-tasks/task-new.cpp:38 +msgid "New Document" +msgstr "New Document" + +#: ../code/commands/browser-context-commands.cpp:224 +#: ../code/commands/file-tasks/task-open-file.cpp:24 +msgid "Choose a text file to open" +msgstr "Choose a text file to open" + +#: ../code/commands/file-tasks/task-export-html.cpp:29 +msgid "Choose a location to export document \"%1\" to" +msgstr "Choose a location to export document \"%1\" to" + +#: ../code/commands/file-tasks/task-open.cpp:48 +msgid "Querying \"%1\"..." +msgstr "Querying \"%1\"..." + +#: ../code/commands/file-tasks/task-open.cpp:105 +#: ../code/operations/operation-open.cpp:437 +#: ../code/operations/operation-open-multiple.cpp:159 +msgid "Failed to open document \"%1\"" +msgstr "Failed to open document \"%1\"" + +#: ../code/commands/file-tasks/task-save.cpp:26 +msgid "Choose a location to save document \"%1\" to" +msgstr "Choose a location to save document \"%1\" to" + +#. Help browser could not be invoked, show an error message to the user. +#: ../code/commands/help-commands.cpp:69 +msgid "There was an error displaying help." +msgstr "There was an error displaying help." + +#: ../code/commands/help-commands.cpp:92 +msgid "Contributors:" +msgstr "Contributors:" + +#: ../code/commands/help-commands.cpp:98 +msgid "British English:" +msgstr "British English:" + +#: ../code/commands/help-commands.cpp:115 +msgid "" +"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.\n" +"\n" +"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.\n" +"\n" +"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." +msgstr "" +"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.\n" +"\n" +"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.\n" +"\n" +"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." + +#: ../code/commands/subscription-commands.cpp:259 +msgid "" +"The connection to the publisher of this document has been lost. Further " +"changes to the document could not be synchronized to others anymore, " +"therefore the document cannot be edited anymore.\n" +"\n" +"Please note also that it is possible that not all of your latest changes " +"have reached the publisher before the connection was lost." +msgstr "" +"The connection to the publisher of this document has been lost. Further " +"changes to the document could not be synchronised to others any longer, " +"therefore the document cannot be edited any longer.\n" +"\n" +"Please note also that it is possible that not all of your latest changes " +"have reached the publisher before the connection was lost." + +#: ../code/commands/synchronization-commands.cpp:32 +msgid "Synchronization in progress... %1%%" +msgstr "Synchronisation in progress... %1%%" + +#. Document cannot be used if an error happened +#. during synchronization. +#: ../code/commands/synchronization-commands.cpp:44 +msgid "This document cannot be used." +msgstr "This document cannot be used." + +#: ../code/commands/synchronization-commands.cpp:47 +#: ../code/commands/user-join-commands.cpp:40 +msgid "" +"If you have an idea what could have caused the problem, then you may attempt " +"to solve it and try again (after having closed this document). Otherwise it " +"is most likely a bug in the software. In that case, please file a bug report " +"at http://gobby.0x539.de/trac/newticket and provide as much information as " +"you can, including what you did when the problem occurred and how to " +"reproduce the problem (if possible) so that we can fix the problem in a " +"later version. Thank you." +msgstr "" +"If you have an idea what could have caused the problem, then you may attempt " +"to solve it and try again (after having closed this document). Otherwise it " +"is most likely a bug in the software. In that case, please file a bug report " +"at http://gobby.0x539.de/trac/newticket and provide as much information as " +"you can, including what you did when the problem occurred and how to " +"reproduce the problem (if possible) in order for us to fix the problem in a " +"later version. Thank you." + +#: ../code/commands/synchronization-commands.cpp:61 +msgid "Synchronization failed: %1" +msgstr "Synchronisation failed: %1" + +#. TODO: Adjust this for chat sessions +#: ../code/commands/user-join-commands.cpp:35 +msgid "" +"You can still watch others editing the document, but you cannot edit it " +"yourself." +msgstr "" +"You can still watch others editing the document, but you cannot edit it " +"yourself." + +#: ../code/commands/user-join-commands.cpp:54 +msgid "User Join failed: %1" +msgstr "User Join failed: %1" + +#: ../code/commands/user-join-commands.cpp:283 +msgid "User Join in progress..." +msgstr "User Join in progress..." + +#: ../code/core/browser.cpp:116 +msgid "_Direct Connection" +msgstr "_Direct Connection" + +#: ../code/core/browser.cpp:118 +msgid "Host Name:" +msgstr "Host Name:" + +#: ../code/core/browser.cpp:304 ../code/core/browser.cpp:428 +msgid "Connection to \"%1\" failed" +msgstr "Connection to \"%1\" failed" + +#: ../code/core/browser.cpp:357 +msgid "Could not resolve \"%1\"" +msgstr "Could not resolve \"%1\"" + +#: ../code/core/browser.cpp:431 +msgid "Device \"%1\" does not exist" +msgstr "Device \"%1\" does not exist" + +#: ../code/core/browser.cpp:467 +msgid "Resolving \"%1\"..." +msgstr "Resolving \"%1\"..." + +#: ../code/core/header.cpp:198 +msgid "_None" +msgstr "_None" + +#: ../code/core/header.cpp:222 +msgid "_File" +msgstr "_File" + +#: ../code/core/header.cpp:225 +msgid "_Open..." +msgstr "_Open..." + +#: ../code/core/header.cpp:228 +msgid "Open _Location..." +msgstr "Open _Location..." + +#: ../code/core/header.cpp:232 +msgid "Save _As..." +msgstr "Save _As..." + +#: ../code/core/header.cpp:236 ../code/core/iconmanager.cpp:40 +msgid "Save All" +msgstr "Save All" + +#: ../code/core/header.cpp:236 +msgid "Save all open files locally" +msgstr "Save all open files locally" + +#: ../code/core/header.cpp:238 +msgid "Export As _HTML..." +msgstr "Export As _HTML..." + +#: ../code/core/header.cpp:241 +msgid "Connect _to Server..." +msgstr "Connect _to Server..." + +#: ../code/core/header.cpp:246 +msgid "_Edit" +msgstr "_Edit" + +#: ../code/core/header.cpp:254 +msgid "_Find..." +msgstr "_Find..." + +#: ../code/core/header.cpp:256 +msgid "Find Ne_xt" +msgstr "Find Ne_xt" + +#: ../code/core/header.cpp:257 +msgid "Find next match of phrase searched for" +msgstr "Find next match of phrase searched for" + +#: ../code/core/header.cpp:260 +msgid "Find Pre_vious" +msgstr "Find Pre_vious" + +#: ../code/core/header.cpp:261 +msgid "Find previous match of phrase searched for" +msgstr "Find previous match of phrase searched for" + +#: ../code/core/header.cpp:266 +msgid "Find and Rep_lace..." +msgstr "Find and Rep_lace..." + +#: ../code/core/header.cpp:270 +msgid "Go to _Line..." +msgstr "Go to _Line..." + +#: ../code/core/header.cpp:274 +msgid "Pr_eferences..." +msgstr "Pr_eferences..." + +#: ../code/core/header.cpp:276 +msgid "_View" +msgstr "_View" + +#: ../code/core/header.cpp:279 +msgid "Reset User Colors" +msgstr "Reset User Colours" + +#: ../code/core/header.cpp:280 +msgid "Hide user colors in current document" +msgstr "Hide user colours in current document" + +#: ../code/core/header.cpp:283 +msgid "View Toolbar" +msgstr "View Toolbar" + +#: ../code/core/header.cpp:284 +msgid "Whether to show the toolbar" +msgstr "Whether to show the toolbar" + +#: ../code/core/header.cpp:288 +msgid "View Statusbar" +msgstr "View Statusbar" + +#: ../code/core/header.cpp:289 +msgid "Whether to show the statusbar" +msgstr "Whether to show the statusbar" + +#: ../code/core/header.cpp:293 +msgid "View Document Browser" +msgstr "View Document Browser" + +#: ../code/core/header.cpp:294 +msgid "Whether to show the document browser" +msgstr "Whether to show the document browser" + +#: ../code/core/header.cpp:298 +msgid "View Chat" +msgstr "View Chat" + +#: ../code/core/header.cpp:299 +msgid "Whether to show the chat pane" +msgstr "Whether to show the chat pane" + +#: ../code/core/header.cpp:303 +msgid "View Document User List" +msgstr "View Document User List" + +#: ../code/core/header.cpp:304 +msgid "Whether to show the user list for documents" +msgstr "Whether to show the user list for documents" + +#: ../code/core/header.cpp:308 +msgid "View Chat User List" +msgstr "View Chat User List" + +#: ../code/core/header.cpp:309 +msgid "Whether to show the user list for the chat" +msgstr "Whether to show the user list for the chat" + +#: ../code/core/header.cpp:313 +msgid "_Highlight Mode" +msgstr "_Highlight Mode" + +#: ../code/core/header.cpp:319 +msgid "_Help" +msgstr "_Help" + +#: ../code/core/header.cpp:322 +msgid "_Contents" +msgstr "_Contents" + +#: ../code/core/header.cpp:323 +msgid "Opens the Gobby manual" +msgstr "Opens the Gobby manual" + +#: ../code/core/header.cpp:326 +msgid "_About..." +msgstr "_About..." + +#: ../code/core/header.cpp:327 +msgid "Shows Gobby's copyright and credits" +msgstr "Shows Gobby's copyright and credits" + +#: ../code/core/iconmanager.cpp:46 +msgid "User list" +msgstr "User list" + +#: ../code/core/iconmanager.cpp:52 +msgid "Document list" +msgstr "Document list" + +#: ../code/core/iconmanager.cpp:58 ../code/window.cpp:49 +#: ../code/window.cpp.orig:49 +msgid "Chat" +msgstr "Chat" + +#: ../code/core/iconmanager.cpp:65 +msgid "User Color Indicator" +msgstr "User Colour Indicator" + +#: ../code/core/sessionuserview.cpp:41 +msgid "User List" +msgstr "User List" + +#: ../code/core/statusbar.cpp:395 ../code/core/statusbar.cpp.orig:401 +msgid "Ln %1, Col %2\t%3" +msgstr "Ln %1, Col %2\t%3" + +#: ../code/core/statusbar.cpp:398 ../code/core/statusbar.cpp.orig:404 +msgid "OVR" +msgstr "OVR" + +#: ../code/core/statusbar.cpp:398 ../code/core/statusbar.cpp.orig:404 +msgid "INS" +msgstr "INS" + +#: ../code/core/textsessionview.cpp:497 +msgid "Text written by %1" +msgstr "Text written by %1" + +#: ../code/core/textsessionview.cpp:503 +msgid "Unowned text" +msgstr "Ownerless text" + +#: ../code/core/userlist.cpp:105 +msgid "Users" +msgstr "Users" + +#: ../code/dialogs/connection-dialog.cpp:28 +msgid "Connect to Server" +msgstr "Connect to Server" + +#: ../code/dialogs/connection-dialog.cpp:32 +msgid "Please enter a host name with which to establish a connection." +msgstr "Please enter a host name with which to establish a connection." + +#: ../code/dialogs/connection-dialog.cpp:34 +msgid "_Remote Endpoint:" +msgstr "_Remote Endpoint:" + +#: ../code/dialogs/document-location-dialog.cpp:29 +msgid "Document Name:" +msgstr "Document Name:" + +#: ../code/dialogs/document-location-dialog.cpp:156 +msgid "Select document's target location" +msgstr "Select document's target location" + +#: ../code/dialogs/document-location-dialog.cpp:158 +msgid "Choose a directory to create the document into:" +msgstr "Choose a directory to create the document into:" + +#: ../code/dialogs/document-location-dialog.cpp:164 +msgid "Select documents' target location" +msgstr "Select documents' target location" + +#: ../code/dialogs/document-location-dialog.cpp:166 +msgid "Choose a directory to create the documents into:" +msgstr "Choose a directory to create the documents into:" + +#: ../code/dialogs/find-dialog.cpp:46 ../code/dialogs/find-dialog.cpp:144 +msgid "Find" +msgstr "Find" + +#: ../code/dialogs/find-dialog.cpp:49 +msgid "_Search for:" +msgstr "_Search for:" + +#: ../code/dialogs/find-dialog.cpp:51 +msgid "Replace _with:" +msgstr "Replace _with:" + +#: ../code/dialogs/find-dialog.cpp:53 +msgid "_Match case" +msgstr "_Match case" + +#: ../code/dialogs/find-dialog.cpp:54 +msgid "Match _entire word only" +msgstr "Match _entire word only" + +#: ../code/dialogs/find-dialog.cpp:55 +msgid "Search _backwards" +msgstr "Search _backwards" + +#: ../code/dialogs/find-dialog.cpp:56 +msgid "Wra_p around" +msgstr "Wra_p around" + +#: ../code/dialogs/find-dialog.cpp:102 +msgid "Replace _All" +msgstr "Replace _All" + +#: ../code/dialogs/find-dialog.cpp:104 +msgid "_Replace" +msgstr "_Replace" + +#: ../code/dialogs/find-dialog.cpp:144 +msgid "Replace" +msgstr "Replace" + +#: ../code/dialogs/find-dialog.cpp:163 ../code/dialogs/find-dialog.cpp:179 +msgid "Phrase \"%1\" has not been found" +msgstr "Phrase \"%1\" has not been found" + +#: ../code/dialogs/find-dialog.cpp:337 +msgid "No occurrence has been replaced" +msgstr "No occurrence has been replaced" + +#: ../code/dialogs/find-dialog.cpp:343 +msgid "%1 occurrence has been replaced" +msgid_plural "%1 occurrences have been replaced" +msgstr[0] "%1 occurrence has been replaced" +msgstr[1] "%1 occurrences have been replaced" + +#: ../code/dialogs/goto-dialog.cpp:27 +msgid "Go to line" +msgstr "Go to line" + +#: ../code/dialogs/goto-dialog.cpp:30 +msgid "Line _number:" +msgstr "Line _number:" + +#: ../code/dialogs/goto-dialog.cpp:51 +msgid "Go To _Line" +msgstr "Go To _Line" + +#: ../code/dialogs/initial-dialog.cpp:49 +msgid "Choose a user color" +msgstr "Choose a user colour" + +#: ../code/dialogs/initial-dialog.cpp:53 +msgid "Welcome to Gobby" +msgstr "Welcome to Gobby" + +#: ../code/dialogs/initial-dialog.cpp:62 +msgid "" +"Before we start, a few options need to be configured. You can later change " +"them by choosing Edit ▸ Preferences from the menu." +msgstr "" +"Before we start, a few options need to be configured. You can later change " +"them by choosing Edit ▸ Preferences from the menu." + +#: ../code/dialogs/initial-dialog.cpp:69 +msgid "User Name" +msgstr "User Name" + +#: ../code/dialogs/initial-dialog.cpp:71 +msgid "Your name as shown to other users." +msgstr "Your name as shown to other users." + +#: ../code/dialogs/initial-dialog.cpp:80 +msgid "User Color" +msgstr "User Colour" + +#: ../code/dialogs/initial-dialog.cpp:82 +msgid "The color with which text you have written is branded." +msgstr "The colour with which text you have written is branded." + +#: ../code/dialogs/open-location-dialog.cpp:27 +msgid "Open Location" +msgstr "Open Location" + +#: ../code/dialogs/open-location-dialog.cpp:28 +msgid "Enter the _location (URI) of the file you would like to open:" +msgstr "Enter the _location (URI) of the file you would like to open:" + +#: ../code/dialogs/password-dialog.cpp:27 +msgid "Password required" +msgstr "Password required" + +#: ../code/dialogs/password-dialog.cpp:33 +msgid "Connection to host \"%1\" requires a password." +msgstr "Connection to host \"%1\" requires a password." + +#: ../code/dialogs/password-dialog.cpp:34 +msgid "Invalid password for host \"%1\". Please try again." +msgstr "Invalid password for host \"%1\". Please try again." + +#: ../code/dialogs/password-dialog.cpp:37 +msgid "Server _Password:" +msgstr "Server _Password:" + +#: ../code/dialogs/preferences-dialog.cpp:232 +msgid "Settings" +msgstr "Settings" + +#: ../code/dialogs/preferences-dialog.cpp:233 +msgid "Paths" +msgstr "Paths" + +#: ../code/dialogs/preferences-dialog.cpp:235 +msgid "User name:" +msgstr "User name:" + +#: ../code/dialogs/preferences-dialog.cpp:237 +msgid "User color:" +msgstr "User colour:" + +#: ../code/dialogs/preferences-dialog.cpp:238 +msgid "Choose a new user color" +msgstr "Choose a new user colour" + +#: ../code/dialogs/preferences-dialog.cpp:241 +msgid "Host directory:" +msgstr "Host directory:" + +#: ../code/dialogs/preferences-dialog.cpp:283 +msgid "The directory into which locally hosted sessions are permanently stored" +msgstr "" +"The directory into which locally hosted sessions are permanently stored" + +#: ../code/dialogs/preferences-dialog.cpp:300 +msgid "Tab Stops" +msgstr "Tab Stops" + +#: ../code/dialogs/preferences-dialog.cpp:301 +msgid "Indentation" +msgstr "Indentation" + +#: ../code/dialogs/preferences-dialog.cpp:302 +msgid "Home/End Behavior" +msgstr "Home/End Behavior" + +#: ../code/dialogs/preferences-dialog.cpp:303 +msgid "File Saving" +msgstr "File Saving" + +#: ../code/dialogs/preferences-dialog.cpp:304 +msgid "_Tab width:" +msgstr "_Tab width:" + +#: ../code/dialogs/preferences-dialog.cpp:306 +msgid "Insert _spaces instead of tabs" +msgstr "Insert _spaces instead of tabs" + +#: ../code/dialogs/preferences-dialog.cpp:307 +msgid "Enable automatic _indentation" +msgstr "Enable automatic _indentation" + +#: ../code/dialogs/preferences-dialog.cpp:308 +msgid "Smart _home/end" +msgstr "Smart _home/end" + +#: ../code/dialogs/preferences-dialog.cpp:309 +msgid "Enable _automatic saving of documents" +msgstr "Enable _automatic saving of documents" + +#: ../code/dialogs/preferences-dialog.cpp:311 +msgid "Autosave interval in _minutes:" +msgstr "Autosave interval in _minutes:" + +#: ../code/dialogs/preferences-dialog.cpp:332 +msgid "" +"With this option enabled, Home/End keys move to first/last character before " +"going to the start/end of the line." +msgstr "" +"With this option enabled, Home/End keys move to first/last character before " +"going to the start/end of the line." + +#: ../code/dialogs/preferences-dialog.cpp:402 +msgid "Text Wrapping" +msgstr "Text Wrapping" + +#: ../code/dialogs/preferences-dialog.cpp:403 +msgid "Line Numbers" +msgstr "Line Numbers" + +#: ../code/dialogs/preferences-dialog.cpp:404 +msgid "Current Line" +msgstr "Current Line" + +#: ../code/dialogs/preferences-dialog.cpp:405 +msgid "Right Margin" +msgstr "Right Margin" + +#: ../code/dialogs/preferences-dialog.cpp:406 +msgid "Bracket Matching" +msgstr "Bracket Matching" + +#: ../code/dialogs/preferences-dialog.cpp:407 +msgid "Whitespace Display" +msgstr "Whitespace Display" + +#: ../code/dialogs/preferences-dialog.cpp:408 +msgid "Enable text wrapping" +msgstr "Enable text wrapping" + +#: ../code/dialogs/preferences-dialog.cpp:409 +msgid "Do not split words over two lines" +msgstr "Do not split words over two lines" + +#: ../code/dialogs/preferences-dialog.cpp:410 +msgid "Display line numbers" +msgstr "Display line numbers" + +#: ../code/dialogs/preferences-dialog.cpp:411 +msgid "Highlight current line" +msgstr "Highlight current line" + +#: ../code/dialogs/preferences-dialog.cpp:412 +msgid "Display right margin" +msgstr "Display right margin" + +#: ../code/dialogs/preferences-dialog.cpp:413 +msgid "Right margin at column:" +msgstr "Right margin at column:" + +#: ../code/dialogs/preferences-dialog.cpp:414 +msgid "Highlight matching bracket" +msgstr "Highlight matching bracket" + +#: ../code/dialogs/preferences-dialog.cpp:461 +msgid "Display no whitespace" +msgstr "Display no whitespace" + +#: ../code/dialogs/preferences-dialog.cpp:464 +msgid "Display spaces" +msgstr "Display spaces" + +#: ../code/dialogs/preferences-dialog.cpp:469 +msgid "Display tabs" +msgstr "Display tabs" + +#: ../code/dialogs/preferences-dialog.cpp:473 +msgid "Display tabs and spaces" +msgstr "Display tabs and spaces" + +#: ../code/dialogs/preferences-dialog.cpp:525 +msgid "Toolbar" +msgstr "Toolbar" + +#: ../code/dialogs/preferences-dialog.cpp:526 +msgid "Font" +msgstr "Font" + +#: ../code/dialogs/preferences-dialog.cpp:527 +msgid "Color Scheme" +msgstr "Colour Scheme" + +#: ../code/dialogs/preferences-dialog.cpp:534 +msgid "Show text only" +msgstr "Show text only" + +#: ../code/dialogs/preferences-dialog.cpp:536 +msgid "Show icons only" +msgstr "Show icons only" + +#: ../code/dialogs/preferences-dialog.cpp:538 +msgid "Show both icons and text" +msgstr "Show both icons and text" + +#: ../code/dialogs/preferences-dialog.cpp:540 +msgid "Show text besides icons" +msgstr "Show text besides icons" + +#: ../code/dialogs/preferences-dialog.cpp:619 +msgid "Trusted CAs" +msgstr "Trusted CAs" + +#: ../code/dialogs/preferences-dialog.cpp:620 +msgid "Secure Connection" +msgstr "Secure Connection" + +#: ../code/dialogs/preferences-dialog.cpp:621 +msgid "Select a file containing trusted CAs" +msgstr "Select a file containing trusted CAs" + +#: ../code/dialogs/preferences-dialog.cpp:638 +msgid "Use TLS if possible" +msgstr "Use TLS where possible" + +#: ../code/dialogs/preferences-dialog.cpp:641 +msgid "Always use TLS" +msgstr "Always use TLS" + +#: ../code/dialogs/preferences-dialog.cpp:653 +msgid "Preferences" +msgstr "Preferences" + +#: ../code/dialogs/preferences-dialog.cpp:658 +msgid "User" +msgstr "User" + +#: ../code/dialogs/preferences-dialog.cpp:659 +msgid "Editor" +msgstr "Editor" + +#: ../code/dialogs/preferences-dialog.cpp:660 +msgid "View" +msgstr "View" + +#: ../code/dialogs/preferences-dialog.cpp:661 +msgid "Appearance" +msgstr "Appearance" + +#: ../code/dialogs/preferences-dialog.cpp:662 +msgid "Security" +msgstr "Security" + +#: ../code/main.cpp:196 +msgid "Gobby options" +msgstr "Gobby options" + +#: ../code/main.cpp:196 +msgid "Options related to Gobby" +msgstr "Options related to Gobby" + +#: ../code/main.cpp:201 +msgid "Display version information and exit" +msgstr "Display version information and exit" + +#: ../code/main.cpp:208 +msgid "Also start a new Gobby instance when there is one running already" +msgstr "Also start a new Gobby instance when there is one running already" + +#: ../code/main.cpp:216 +msgid "Connect to given host on startup, can be given multiple times" +msgstr "Connect to given host on startup, can be given multiple times" + +#: ../code/main.cpp:217 +msgid "HOSTNAME" +msgstr "HOSTNAME" + +#: ../code/operations/operation-delete.cpp:42 +msgid "Removing node %1..." +msgstr "Removing node %1..." + +#: ../code/operations/operation-delete.cpp:57 +msgid "Failed to delete node %1" +msgstr "Failed to delete node %1" + +#: ../code/operations/operation-export-html.cpp:166 +#, c-format +msgid "written by: %s" +msgstr "written by: %s" + +#: ../code/operations/operation-export-html.cpp:239 +msgid "" +msgstr "" + +#: ../code/operations/operation-export-html.cpp:252 +#, c-format +msgid "Document generated from %1$s:%2$s at %3$s by %4$s" +msgstr "Document generated from %1$s:%2$s at %3$s by %4$s" + +#: ../code/operations/operation-export-html.cpp:393 +msgid "Participants" +msgstr "Participants" + +#: ../code/operations/operation-export-html.cpp:454 +msgid "Exporting document %1 to %2 in HTML..." +msgstr "Exporting document %1 to %2 in HTML..." + +#: ../code/operations/operation-export-html.cpp:526 +msgid "Failed to export document %1 to HTML" +msgstr "Failed to export document %1 to HTML" + +#: ../code/operations/operation-new.cpp:56 +msgid "Creating directory %1..." +msgstr "Creating directory %1..." + +#: ../code/operations/operation-new.cpp:57 +msgid "Creating document %1..." +msgstr "Creating document %1..." + +#: ../code/operations/operation-new.cpp:73 +msgid "Failed to create directory %1" +msgstr "Failed to create directory %1" + +#: ../code/operations/operation-new.cpp:74 +msgid "Failed to create document %1" +msgstr "Failed to create document %1" + +#. Translators: This is the 8 bit encoding that is tried when +#. autodetecting a file's encoding. +#: ../code/operations/operation-open.cpp:38 +msgid "ISO-8859-1" +msgstr "ISO-8859-1" + +#: ../code/operations/operation-open.cpp:89 +msgid "Opening document %1..." +msgstr "Opening document %1..." + +#: ../code/operations/operation-open.cpp:124 +msgid "" +"The directory into which the new document was supposed to be inserted has " +"been removed" +msgstr "" +"The directory into which the new document was supposed to be inserted has " +"been removed" + +#: ../code/operations/operation-open.cpp:313 +msgid "The file contains data not in the specified encoding" +msgstr "The file contains data not in the specified encoding" + +#: ../code/operations/operation-open.cpp:324 +msgid "" +"The file either contains data in an unknown encoding, or it contains binary " +"data." +msgstr "" +"The file either contains data in an unknown encoding, or it contains binary " +"data." + +#: ../code/operations/operation-open-multiple.cpp:84 +msgid "Parent folder was removed" +msgstr "Parent folder was removed" + +#: ../code/operations/operation-open-multiple.cpp:172 +msgid "Failed to open multiple documents" +msgstr "Failed to open multiple documents" + +#: ../code/operations/operation-save.cpp:73 +msgid "Saving document %1 to %2..." +msgstr "Saving document %1 to %2..." + +#: ../code/operations/operation-save.cpp:226 +msgid "" +"The document contains one or more characters that cannot be encoded in the " +"specified character coding." +msgstr "" +"The document contains one or more characters that cannot be encoded in the " +"specified character coding." + +#: ../code/operations/operation-save.cpp:287 +msgid "Failed to save document %1" +msgstr "Failed to save document %1" + +#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 +msgid "Could not create directory \"%1\": %2" +msgstr "Could not create directory \"%1\": %2" + +#: ../code/window.cpp:112 ../code/window.cpp.orig:111 +msgid "Document Browser" +msgstr "Document Browser" + +#: ../code/window.cpp:168 ../code/window.cpp.orig:167 +msgid "You are still connected to a session" +msgstr "You are still connected to a session" + +#: ../code/window.cpp:176 ../code/window.cpp.orig:175 +msgid "Do you want to close Gobby nevertheless?" +msgstr "Do you want to close Gobby nevertheless?" + +#: ../code/window.cpp:182 ../code/window.cpp.orig:181 +msgid "C_ancel" +msgstr "C_ancel" + +#: ../gobby-0.5.desktop.in.h:1 +msgid "Edit text files collaboratively" +msgstr "Edit text files collaboratively" + +#: ../gobby-0.5.desktop.in.h:2 +msgid "Gobby Collaborative Editor (0.5)" +msgstr "Gobby Collaborative Editor (0.5)" diff -Nru gobby-infinote-0.4.92/po/es.po gobby-infinote-0.4.93/po/es.po --- gobby-infinote-0.4.92/po/es.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/es.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1213 +0,0 @@ -# Gobby i10n Spanish Translation -# Copyright (C) 2005 0x539 dev group -# This file is distributed under the same license as the Gobby package. -# Mario Palomo Torrero , 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: Gobby 0.2.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-09-23 11:02+0000\n" -"Last-Translator: Rolando Espinoza La Fuente \n" -"Language-Team: Mario Palomo Torrero \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-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Crear documento..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Crear sesión..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Abrir documento..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Cierra un documento abierto" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Gestionar documento" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "Dirección" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Guardar documento" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Dirección" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Host:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "El document %0% no existe" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Lista de usuarios" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "Ninguna" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "Ficheros" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Abrir documento..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Abrir documento..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Guardar sesión" - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "_Editar" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Buscar..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "Buscar:" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Buscar y reemplazar..." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Ir a la línea..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "Preferencias..." - -#: ../code/core/header.cpp:260 -msgid "_View" -msgstr "_Ver" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Barra de Herramientas" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Lista de usuarios" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "A_yuda" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "Acerca de" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Muestra el copyright y los créditos de Gobby" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Lista de usuarios" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Lista de documentos" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Usuario" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Guarda un documento en otro lugar" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Gestionar documento" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Buscar..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Buscar" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Reemplazar:" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "Distinguir mayúsculas y minúsculas" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "Sólo palabras completas" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "Reemplaz_ar todo" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "_Reemplazar" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "_Reemplazar" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "%0% no encontrado en el documento." - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "Ninguna sustitución realizada" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "%0% sustitución realizada" -msgstr[1] "%0% sustituciones realizadas" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "Ir a la línea" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Número de línea:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "Ir a la línea" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Usuario" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Lista de usuarios" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Nuevo nombre:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Contraseña de usuario:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "Tabuladores" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "Identado" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Comportamiento de Inicio/Fin" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "Ancho de tabulador:" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Insertar espacios en lugar de tabuladores" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "Habilitar identado automático" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "Inicio/Fin inteligente" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "Habilitar identado automático" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"Con esta opción habilitada, las teclas Inicio/Fin se mueven al primer/último " -"caracter antes de ir al inicio/fin de la línea." - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "Ajuste de texto" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Números de línea" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Línea actual" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Margen derecho" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "Corchetes coincidentes" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "Habilitar ajuste de texto" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "No dividir palabras en dos líneas" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Mostrar números de línea" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Resaltar línea actual" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Mostrar línea en margen derecho" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Margen derecho en la columna:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "Resaltar corchete coincidente" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Barra de Herramientas" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Tipo de letra" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Mostrar sólo texto" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Mostrar sólo iconos" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Mostrar texto e iconos" - -#: ../code/dialogs/preferencesdialog.cpp:508 -#, fuzzy -msgid "Show text besides icons" -msgstr "Mostrar texto además de iconos" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "Conexión perdida" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "Preferencias" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Usuario" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Editor" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Ver" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Apariencia" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Crear documento..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Guardar documento actual" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Abrir documento..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Cierra un documento abierto" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Guardar documento como..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Carga un archivo dentro un nuevo documento" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Lista de documentos" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "Todavía está conectado a una sesión" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "¿Quiere cerrar Gobby de todas formas?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -#, fuzzy -msgid "Gobby Collaborative Editor (0.5)" -msgstr "Un editor de texto colaborativo" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "Error al convertir la entrada a UTF-8: La codificación es desconocida o " -#~ "se trata de datos binarios." - -#~ msgid "Character Encoding:" -#~ msgstr "Codificación de Caracteres" - -#~ msgid "Send" -#~ msgstr "Enviar" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "Comando '%0%' no encontrado. Escriba /help para mostrar la lista de " -#~ "comandos." - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "Uso: /remove " - -#~ msgid "Subscribe" -#~ msgstr "Suscribirse" - -#~ msgid "Match as regular expression" -#~ msgstr "Expresión regular" - -#~ msgid "_Up" -#~ msgstr "S_ubir" - -#~ msgid "_Down" -#~ msgstr "_Bajar" - -#~ msgid "Search and replace" -#~ msgstr "Buscar y reemplazar" - -#~ msgid "No document currently opened" -#~ msgstr "Ningún documento abierto actualmente" - -#~ msgid "_Go to line" -#~ msgstr "_Ir a la línea" - -#~ msgid "Opens a new obby session" -#~ msgstr "Abrir una nueva sesión obby" - -#~ msgid "Join session..." -#~ msgstr "Unirse a una sesión" - -#~ msgid "Joins an existing obby session" -#~ msgstr "Unirse a una sesión obby existente" - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Guarda la sesión completa para restaurarla más tarde" - -#~ msgid "Quit session" -#~ msgstr "Cerrar sesión" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Dejar la sesión obby actual abierta" - -#~ msgid "Quit" -#~ msgstr "Salir" - -#~ msgid "Quits the application" -#~ msgstr "Salir de la aplicación" - -#~ msgid "_Session" -#~ msgstr "_Sesión" - -#~ msgid "Creates a new document" -#~ msgstr "Crea un nuevo documento" - -#~ msgid "Saves a document into a file" -#~ msgstr "Guarda un documento en un archivo" - -#~ msgid "Close document" -#~ msgstr "Cerrar documento" - -#~ msgid "Search for a text in the current document" -#~ msgstr "Guardar documento actual" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "Encuentra un texto y lo reemplaza por otro" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "Mover el cursor a la línea indicada" - -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "Muestra un diálogo para configurar Gobby con sus preferencias" - -#~ msgid "Document preferences..." -#~ msgstr "Preferencias del documento..." - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "" -#~ "Muestra un diálogo de preferencias que se aplicarán sólo a este documento" - -#~ msgid "Syntax" -#~ msgstr "Sintaxis" - -#~ msgid "_User" -#~ msgstr "_Usuario" - -#~ msgid "Set password..." -#~ msgstr "Establecer contraseña..." - -#~ msgid "Sets a password for this user" -#~ msgstr "Establece una contraseña para este usuario" - -#~ msgid "Set colour..." -#~ msgstr "Establecer color..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Establece un nuevo color para este usuario" - -#~ msgid "_Window" -#~ msgstr "_Ventana" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Muestra la lista de usuarios actualmente conectados" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Muestra una lista de los documentos dentro de la sesión actual" - -#~ msgid "Chat" -#~ msgstr "Chat" - -#~ msgid "Displays a chat to talk to other people in the session" -#~ msgstr "Mostrar un chat para hablar con otras personas en la sesión" - -#~ msgid "Unselects the current language" -#~ msgstr "Desactiva el lenguaje actual" - -#~ msgid "Selects %0% as language" -#~ msgstr "Selecciona el lenguaje %0%" - -#~ msgid "Create obby session" -#~ msgstr "Crear sesión obby" - -#~ msgid "Port:" -#~ msgstr "Puerto:" - -#~ msgid "Name:" -#~ msgstr "Nombre:" - -#~ msgid "Colour:" -#~ msgstr "Color:" - -#~ msgid "Password:" -#~ msgstr "Contraseña:" - -#~ msgid "Restore session:" -#~ msgstr "Crear sesión..." - -#~ msgid "Restore session" -#~ msgstr "Crear sesión..." - -#~ msgid "_Host" -#~ msgstr "_Host" - -#~ msgid "Opening obby session..." -#~ msgstr "Abriendo sesión obby..." - -#~ msgid "Join obby session" -#~ msgstr "Unirse a una sesión obby" - -#~ msgid "Local network" -#~ msgstr "Red local" - -#~ msgid "Host" -#~ msgstr "Máquina" - -#~ msgid "Port" -#~ msgstr "Puerto" - -#, fuzzy -#~ msgid "Failure" -#~ msgstr "Fallo" - -#~ msgid "" -#~ "User password for user '%0%' required. You may either choose another user " -#~ "name, type in your user password or cancel the connection." -#~ msgstr "" -#~ "Se requiere la contraseña de usuario para %0%. Puede elegir otro nombre " -#~ "de usuario, escribir la contraseña o cancelar la conexión." - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Nombre ya utilizado. Puede elegir otro nombre o cancelar la conexión." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "Color ya utilizado. Puede elegir otro color o cancelar la conexión." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "Se requiere contraseña de sesión. Tiene que escribir la contraseña para " -#~ "poder unirse a la sesión obby." - -#~ msgid "Session password:" -#~ msgstr "Contraseña de sesión:" - -#~ msgid "Joining obby session..." -#~ msgstr "Uniéndose a sesión obby..." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "Estableciendo cifrado de conexión (TLS)..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "Paquete de ingreso enviado, esperando respuesta..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "Ingreso correcto, sincronizando sesión..." - -#~ msgid "Windows" -#~ msgstr "Ventanas" - -#~ msgid "Remember the positions and states" -#~ msgstr "Recordar las posiciones y los estados" - -#, fuzzy -#~ msgid "Highlight the window on incoming chat messages" -#~ msgstr "Realzar la ventana de mensajes de entrada" - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "Abrir automáticamente nuevos documentos crados remotamente" - -#~ msgid "Pattern" -#~ msgstr "Patrón" - -#~ msgid "Language" -#~ msgstr "Lenguaje" - -#~ msgid "Mime type" -#~ msgstr "Tipo MIME" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "Esto es una lista de todos los tipos de fichero reconocidos" - -#~ msgid "Pattern must not be empty." -#~ msgstr "El patrón no debe estar vacio" - -#~ msgid "There is no language with the mime type '%0%'." -#~ msgstr "No hay lenguaje con el tipo MIME '%0%'" - -#~ msgid "Behaviour" -#~ msgstr "Comportamiento" - -#~ msgid "Not connected" -#~ msgstr "No conectado" - -#~ msgid "Selected language: %0%" -#~ msgstr "Lenguaje seleccionado: %0%" - -#~ msgid "No language selected" -#~ msgstr "Ningún lenguaje seleccionado" - -#~ msgid "Online" -#~ msgstr "Conectado" - -#~ msgid "Offline" -#~ msgstr "Desconectado" - -#, fuzzy -#~ msgid "" -#~ "Zeroconf initialisation failed. Probably you need to run avahi-daemon or " -#~ "mDNSResponder, depending on the library you use, as root prior to Gobby. " -#~ "Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Falló la inicialización de Zeroconf. Probablemente se necesite ejecutar " -#~ "mDNSResponder como root antes de ejecutar Gobby. El soporte Zeroconf está " -#~ "desactivado para esta sesión." - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "Usar extensión .obby si no se pone ninguna" - -#~ msgid "Save obby session" -#~ msgstr "Guardar sesión obby" - -#~ msgid "Create document" -#~ msgstr "Crear documento" - -#~ msgid "Enter document name" -#~ msgstr "Introducir el nombre del documento" - -#~ msgid "Open new document" -#~ msgstr "Abrir nuevo documento" - -#~ msgid "" -#~ "Click on \"Apply\" to apply the new settings to documents that are " -#~ "currently open. \"OK\" will just store the values to use them with newly " -#~ "created documents." -#~ msgstr "" -#~ "Pulse sobre \"Aplicar\" para aplicar las nuevas configuraciones a " -#~ "documentos que actualmente están abiertos. \"Aceptar\" guardará los " -#~ "valores para usarlos cuando se creen nuevos documentos." - -#~ msgid "Set user password" -#~ msgstr "Establecer contraseña de usuario" - -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "Establezca la contraseña de usuario para su cuenta. Cuando intente " -#~ "acceder de nuevo con este usuario se le preguntará por su contraseña." - -#~ msgid "" -#~ "These preferences affect only the currently active document \"%0%\". If " -#~ "you want to change global preferences, use the preferences menu item in " -#~ "the \"Edit\" menu." -#~ msgstr "" -#~ "Estas preferencias sólo afectan al documento activo \"%0%\". Si se quiere " -#~ "cambiar las preferencias globales, utilice el submenú de preferencias en " -#~ "el menu \"Editar\"." - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "Error al cambiar de color: ese color ya se está usando" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "Conectado a %0%:%1%" - -#~ msgid "Serving on port %0%" -#~ msgstr "Servidor en puerto %0%" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "¿Guardar cambios al documento %0% antes de cerrar?" - -#~ msgid "" -#~ "If you don't save, changes will be discarded, but may still be retrieved " -#~ "if you re-subscribe to the document as long as the session remains open." -#~ msgstr "" -#~ "Si no se guarda, los cambios se perderán, pero aún se podrán recuperar si " -#~ "se vuelve a suscribir al documento mientras las sesión permanezca abierta." - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "Si no se guarda, los cambios se perderán." - -#~ msgid "Close without saving" -#~ msgstr "Cerrar sin guardar" - -#~ msgid "Shows up a dialog to customise Gobby for your needs" -#~ msgstr "Muestra un diálogo para configurar Gobby con sus preferencias" - -#~ msgid "" -#~ "Howl initialisation failed. Probably you need to run mDNSResponder as " -#~ "root prior to Gobby. Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Falló la inicialización Howl. Probablemente se necesite ejecutar " -#~ "mDNSResponder como root antes de ejecutar Gobby. El soporte Zeroconf está " -#~ "desactivado para esta sesión." - -#~ msgid "Could not open file '%0%' for writing" -#~ msgstr "No se pudo abrir el fichero %0% para escritura" - -#~ msgid "Passwords do not match" -#~ msgstr "Las contraseñas no coinciden" - -#~ msgid "%0% has joined" -#~ msgstr "%0% conectado" - -#~ msgid "%0% has left" -#~ msgstr "%0% desconectado" - -#~ msgid "Gobby" -#~ msgstr "Gobby" - -#~ msgid "Colour" -#~ msgstr "Color" - -#~ msgid "Name" -#~ msgstr "Nombre" - -#~ msgid "Subscribed" -#~ msgstr "Subscrito" - -#~ msgid "%0% pending change" -#~ msgid_plural "%0% pending changes" -#~ msgstr[0] "%0% cambios pendientes" -#~ msgstr[1] "%0% cambios pendientes" - -#~ msgid "Revision: %0%" -#~ msgstr "Revisión: %0%" - -#~ msgid "Waiting for welcome packet..." -#~ msgstr "Esperando paquete de bienvenida..." - -#~ msgid "" -#~ "You are not subscribed to the document \"%0%\".\n" -#~ "\n" -#~ "To view changes that others make or to edit the document yourself, you " -#~ "have to subscribe to this document. Use the following button to perform " -#~ "this.\n" -#~ "\n" -#~ msgstr "" -#~ "No está suscrito al documento \"%0%\".\n" -#~ "\n" -#~ "Para ver los cambios que otros hacen o para editar el documento, es " -#~ "necesario suscribirse a este documento. Utilice el siguiente botón para " -#~ "hacer esto.\n" -#~ "\n" - -#~ msgid "Enter user password" -#~ msgstr "Introducir contraseña de usuario" - -#~ msgid "Peer %0% (%1%) not found in peer list" -#~ msgstr "Equipo %0% (%1%) no encontrado en la lista" - -#~ msgid "Waiting for thread to finish..." -#~ msgstr "Esperando que el thread termine..." - -#~ msgid "" -#~ "The document \"%0%\" has been changed since it was saved to disk. Are you " -#~ "sure that you want to close it?" -#~ msgstr "" -#~ "El documento \"%0%\" ha cambiado desde la última vez que se guardó. " -#~ "¿Seguro que quiere cerrarlo?" diff -Nru gobby-infinote-0.4.92/po/fr.po gobby-infinote-0.4.93/po/fr.po --- gobby-infinote-0.4.92/po/fr.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/fr.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1229 +0,0 @@ -# Gobby l10n French Translation -# Copyright (C) 2005 0x539 dev group -# This file is distributed under the same license as the Gobby package. -# Peer Janssen , 2005. -# Partially reviewed by Mohammed Adnene Trojette , 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: Gobby 0.2.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-12-17 13:56+0000\n" -"Last-Translator: Peer Janssen \n" -"Language-Team: Peer Janssen \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-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Créer un document..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Créer une séance..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Ouvrir document..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Ferme un document actuellement ouvert" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Entrer le nom du document" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "Orientation" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Enregistrer le document" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Orientation" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Host :" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "Le document %0% n'existe pas" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Liste des Utilisateurs" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "Aucun" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "Fichiers" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Ouvrir document..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Ouvrir document..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Enregistrer une séance..." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "Édit_er" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Rechercher..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "Trouver :" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Rechercher et remplacer..." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Aller à la ligne..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "Préférences..." - -#: ../code/core/header.cpp:260 -#, fuzzy -msgid "_View" -msgstr "Affichage" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Barre d'outils" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Liste des Utilisateurs" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "_Aide" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "À propos" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Affiche les infos de copyright et les remerciements concernant Gobby" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Liste des Utilisateurs" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Liste des documents" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Utilisateur" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Sauvegarde un document dans un autre fichier" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Entrer le nom du document" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Rechercher..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Rechercher" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Remplacer par :" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "Respecter la casse" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "Recherche sur le mot complet" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "Remplacer _tout" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "_Remplacer" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "_Remplacer" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "\"%0%\" est introuvable dans le document." - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "Aucun occurence n'a été remplacée" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "%0% occurence a été remplacée" -msgstr[1] "%0% occurences ont été remplacées" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "Aller à la ligne" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Numéro de ligne:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "Aller à la ligne" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Utilisateur" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Liste des Utilisateurs" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Nouveau nom :" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Mot de passe utilisateur:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "Tabulations" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "Marge gauche automatique" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Fonction des touches Début/Fin" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "Largeur des tabulations :" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Insertion d'espaces au lieu de tabulations" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "Activer la marge gauche automatique" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "Début/Fin intelligent" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "Activer la marge gauche automatique" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"Si cette option est activée, les touches Début/Fin déplacent le curseur au " -"premier/dernier caractère avant d'aller au début/à la fin de la ligne." - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "Adapter longueur" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Numérotation des lignes" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Ligne actuelle" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Marge droite" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "Parenthèse correspondante" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "Activer l'adaptation automatique de la longueur des lignes" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "Ne pas couper les mots sur deux lignes" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Afficher les numéros des lignes" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Mettre en surbrillance la ligne actuelle" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Afficher la marge droite" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Marge droite à la colonne :" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "Mettre en surbrillance les parenthèses jumelées" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Barre d'outils" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Police de caractère" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Afficher uniquement le texte" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Afficher uniquement les icônes" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Afficher les icônes et le texte" - -#: ../code/dialogs/preferencesdialog.cpp:508 -#, fuzzy -msgid "Show text besides icons" -msgstr "Afficher uniquement le texte" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "Perte de la connexion" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "Préférences" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Utilisateur" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Editeur" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Affichage" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Apparence de la fenêtre Gobby" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Créer un document..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Enregistrer le document actuel" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Ouvrir document..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Ferme un document actuellement ouvert" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Enregistrer le document sous..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Charge un fichier dans un nouveau document" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Liste des documents" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "Vous êtes toujours connecté à la séance" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "Voulez-vous fermer Gobby malgré tout?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "Edition collaborative de fichier texte" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -#, fuzzy -msgid "Gobby Collaborative Editor (0.5)" -msgstr "Editeur collaboratif Gobby (0.5)" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "Le texte n'a pas pu être converti en UTF-8 : Soit le codage n'est pas " -#~ "connu, soit il s'agit de données binaires." - -#~ msgid "Character Encoding:" -#~ msgstr "Encodage de caractère" - -#~ msgid "Send" -#~ msgstr "Envoyer" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "La commande '%0%' n'a pas été trouvée. Entrez /help pour obtenir la liste " -#~ "des commandes." - -#~ msgid "%0%: %1%" -#~ msgstr "%0% : %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "Utilisation : /remove " - -#~ msgid "Subscribe" -#~ msgstr "Rejoindre" - -#~ msgid "Match as regular expression" -#~ msgstr "Accepter l'expression" - -#~ msgid "_Up" -#~ msgstr "_Haut" - -#~ msgid "_Down" -#~ msgstr "_Bas" - -#~ msgid "Search and replace" -#~ msgstr "Rechercher & remplacer" - -#~ msgid "No document currently opened" -#~ msgstr "Aucun document n'est ouvert actuellement" - -#~ msgid "_Go to line" -#~ msgstr "_Aller à la ligne..." - -#~ msgid "Opens a new obby session" -#~ msgstr "Ouvrir une nouvelle séance « obby »" - -#~ msgid "Join session..." -#~ msgstr "Rejoindre séance..." - -#~ msgid "Joins an existing obby session" -#~ msgstr "Participer à une séance « obby » déjà en cours" - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Enregistre la séance en entier pour une restauration ultérieure" - -#~ msgid "Quit session" -#~ msgstr "Quitter la séance" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Quitter la séance obby en cours" - -#~ msgid "Quit" -#~ msgstr "Quitter" - -#~ msgid "Quits the application" -#~ msgstr "Quitte l'application" - -#~ msgid "_Session" -#~ msgstr "_Séance" - -#~ msgid "Creates a new document" -#~ msgstr "Créé un nouveau document" - -#~ msgid "Saves a document into a file" -#~ msgstr "Sauvegarde un document dans un fichier" - -#~ msgid "Close document" -#~ msgstr "Fermer le document" - -#~ msgid "Search for a text in the current document" -#~ msgstr "Rechercher du texte dans le document courant" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "Rechercher un texte et le remplacer par un autre" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "Déplacer le curseur vers une ligne précise" - -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "Afficher un dialogue pour personnaliser Gobby" - -#~ msgid "Document preferences..." -#~ msgstr "Préférences du document..." - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "" -#~ "Affiche les Préférences qui s'appliquent spécifiquement à ce document" - -#~ msgid "Syntax" -#~ msgstr "Syntaxe" - -#~ msgid "_User" -#~ msgstr "_Utilisateur" - -#~ msgid "Set password..." -#~ msgstr "Définir un mot de passe..." - -#~ msgid "Sets a password for this user" -#~ msgstr "Définis un mot de passe pour cet utilisateur" - -#~ msgid "Set colour..." -#~ msgstr "Choisir une couleur..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Choisir une nouvelle couleur pour cet utilisateur" - -#~ msgid "_Window" -#~ msgstr "_Fenêtre" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Affiche la liste des utilisateurs connectés" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Affiche la liste des documents de la séance actuelle" - -#~ msgid "Chat" -#~ msgstr "Messagerie instantanée (chat)" - -#~ msgid "Displays a chat to talk to other people in the session" -#~ msgstr "" -#~ "Affiche la messagerie instantanée pour communiquer avec les autres " -#~ "membres de la session" - -#~ msgid "Unselects the current language" -#~ msgstr "Déselectionner la langue actuelle" - -#~ msgid "Selects %0% as language" -#~ msgstr "Selectionne la langue %0%" - -#~ msgid "Create obby session" -#~ msgstr "Créer une séance « obby »" - -#~ msgid "Port:" -#~ msgstr "Port :" - -#~ msgid "Name:" -#~ msgstr "Nom :" - -#~ msgid "Colour:" -#~ msgstr "Couleur :" - -#~ msgid "Password:" -#~ msgstr "Mot de passe :" - -#~ msgid "Restore session:" -#~ msgstr "Créer une séance..." - -#~ msgid "Restore session" -#~ msgstr "Créer une séance" - -#~ msgid "_Host" -#~ msgstr "_Host" - -#~ msgid "Opening obby session..." -#~ msgstr "Ouvrir une nouvelle séance obby..." - -#~ msgid "Join obby session" -#~ msgstr "Joindre une séance « obby »" - -#~ msgid "Local network" -#~ msgstr "Réseau local" - -#~ msgid "Host" -#~ msgstr "Host" - -#~ msgid "Port" -#~ msgstr "Port" - -#~ msgid "Failure" -#~ msgstr "Échec" - -#~ msgid "" -#~ "User password for user '%0%' required. You may either choose another user " -#~ "name, type in your user password or cancel the connection." -#~ msgstr "" -#~ "Indiquez le mot de passe de l'utilisateur '%0%'. Vous devez modifier " -#~ "votre nom, renseigner votre mot de passe utilisateur ou annuler la " -#~ "connection." - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Ce nom est déjà utilisé. Vous devez choisir un autre nom ou annuler la " -#~ "connection." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Cette couleur est déjà utilisée. Vous devez choisir une autre couleur ou " -#~ "annuler la connection." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "Le mot de passe de la session est nécessaire. Saisissez le mot de passe " -#~ "pour rejoindre la séance obby." - -#~ msgid "Session password:" -#~ msgstr "Mot de passe de la séance" - -#~ msgid "Joining obby session..." -#~ msgstr "Joindre une séance « obby »..." - -#, fuzzy -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "Mise en place de la connection de cryptage (TLS)..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "Paquet « login » envoyé, attente de la réponse..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "Identification réussie. Synchronisation de la séance..." - -#~ msgid "Windows" -#~ msgstr "Fenêtres" - -#~ msgid "Remember the positions and states" -#~ msgstr "Mémoriser les positions et attributs" - -#, fuzzy -#~ msgid "Highlight the window on incoming chat messages" -#~ msgstr "" -#~ "Mettre en valeur la fenêtre lorsque des messages instantanés vous " -#~ "parviennent." - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "Ouvrir automatiquement les nouveaux documents créés à distances." - -#, fuzzy -#~ msgid "Pattern" -#~ msgstr "Modèle" - -#~ msgid "Language" -#~ msgstr "Langue" - -#, fuzzy -#~ msgid "Mime type" -#~ msgstr "Type Mime" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "Voici la liste des formats de fichiers reconnus" - -#, fuzzy -#~ msgid "Pattern must not be empty." -#~ msgstr "Le modèle ne doit pas rester vide" - -#, fuzzy -#~ msgid "There is no language with the mime type '%0%'." -#~ msgstr "Aucune langue ne correspond au type de mime '%0%'." - -#~ msgid "Behaviour" -#~ msgstr "Comportement" - -#~ msgid "Not connected" -#~ msgstr "Non connecté" - -#~ msgid "Selected language: %0%" -#~ msgstr "Langue selectionnée : %0%" - -#~ msgid "No language selected" -#~ msgstr "Aucune langue selectionnée" - -#~ msgid "Online" -#~ msgstr "En ligne" - -#~ msgid "Offline" -#~ msgstr "Hors ligne" - -#, fuzzy -#~ msgid "" -#~ "Zeroconf initialisation failed. Probably you need to run avahi-daemon or " -#~ "mDNSResponder, depending on the library you use, as root prior to Gobby. " -#~ "Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Howl initialisation failed. Probably you need to run mDNSResponder as " -#~ "root prior to Gobby. Zeroconf support is deactivated for this session." - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "" -#~ "Utiliser l'extension .obby par défaut si aucune autre n'est précisée" - -#~ msgid "Save obby session" -#~ msgstr "Créer une séance obby" - -#~ msgid "Create document" -#~ msgstr "Créer un document" - -#~ msgid "Enter document name" -#~ msgstr "Entrer le nom du document" - -#~ msgid "Open new document" -#~ msgstr "Ouvrir un nouveau document" - -#~ msgid "" -#~ "Click on \"Apply\" to apply the new settings to documents that are " -#~ "currently open. \"OK\" will just store the values to use them with newly " -#~ "created documents." -#~ msgstr "" -#~ "Cliquer sur « Appliquer » pour appliquer les nouvaux réglages aux " -#~ "documents actuellement ouverts. Cliquer sur « OK » pour utiliser les " -#~ "réglages pour les documents nouveaux." - -#~ msgid "Set user password" -#~ msgstr "Définir un mot de passe utilisateur" - -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "Définir un mot de passe pour votre compte d'utilisateur. Lors de votre " -#~ "prochaine connexion, votre mot de passe vous sera demandé." - -#~ msgid "" -#~ "These preferences affect only the currently active document \"%0%\". If " -#~ "you want to change global preferences, use the preferences menu item in " -#~ "the \"Edit\" menu." -#~ msgstr "" -#~ "Ces préférences affectent uniquement le document \"%0%\", actuellement " -#~ "actif. Si vous désirez changer les préférences générales, utiliser la " -#~ "boîte de dialogue préférences du menu \"Éditer\"." - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "Echec lors du changement de couleur : la couleur est déjà utilisée" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "Connecté au port %0%:%1%" - -#~ msgid "Serving on port %0%" -#~ msgstr "Utilisé sur le port %0%" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "Sauvegarder les changements \"%0%\" avant de fermer?" - -#~ msgid "" -#~ "If you don't save, changes will be discarded, but may still be retrieved " -#~ "if you re-subscribe to the document as long as the session remains open." -#~ msgstr "" -#~ "Si vous n'enregistrez pas, les modifications seront abandonnées mais " -#~ "pourront être récupérées si vous participez de nouveau au document." - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "Si vous n'enregistrez pas, les modifications seront perdues." - -#~ msgid "Close without saving" -#~ msgstr "Fermer sans enregistrer" - -#~ msgid "Shows up a dialog to customise Gobby for your needs" -#~ msgstr "Afficher un dialogue pour personnaliser Gobby" - -#~ msgid "Shows up a list of users that are currently joined" -#~ msgstr "Affiche la liste des utilisateurs connectés" - -#~ msgid "Shows up a list of documents within the current session" -#~ msgstr "Affiche la liste des documents de la séance actuelle" - -#, fuzzy -#~ msgid "Shows up a chat to talk to other people in the session" -#~ msgstr "Affiche la liste des documents de la séance actuelle" - -#~ msgid "" -#~ "Howl initialisation failed. Probably you need to run mDNSResponder as " -#~ "root prior to Gobby. Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Howl initialisation failed. Probably you need to run mDNSResponder as " -#~ "root prior to Gobby. Zeroconf support is deactivated for this session." - -#~ msgid "Could not open file '%0%' for writing" -#~ msgstr "Impossible d'ouvrir le fichier '%0%' en écriture" - -#~ msgid "Passwords do not match" -#~ msgstr "Les mots de passe ne sont pas identiques" - -#~ msgid "%0% has joined" -#~ msgstr "%0% est arrivé(e)" - -#~ msgid "%0% has left" -#~ msgstr "%0% est parti(e)" - -#~ msgid "Gobby" -#~ msgstr "Gobby" - -#~ msgid "Colour" -#~ msgstr "Couleur" - -#~ msgid "Name" -#~ msgstr "Nom" - -#~ msgid "Subscribed" -#~ msgstr "S'abonner" - -#~ msgid "%0% pending change" -#~ msgid_plural "%0% pending changes" -#~ msgstr[0] "%0% modification en attente" -#~ msgstr[1] "%0% modification en attente" - -#~ msgid "Revision: %0%" -#~ msgstr "Révision : %0%" - -#~ msgid "Waiting for welcome packet..." -#~ msgstr "Attendre le paquet d'accueil..." - -#~ msgid "" -#~ "You are not subscribed to the document \"%0%\".\n" -#~ "\n" -#~ "To view changes that others make or to edit the document yourself, you " -#~ "have to subscribe to this document. Use the following button to perform " -#~ "this.\n" -#~ "\n" -#~ msgstr "" -#~ "Vous n'êtes pas abonné au document « %0% ».\n" -#~ "\n" -#~ "Pour voir les modifications des autres ou pour modifier vous-mêmes le " -#~ "document, vous devez vous abonner à ce document. À cet effet, utilisez le " -#~ "bouton suivant.\n" -#~ "\n" - -#~ msgid "Enter user password" -#~ msgstr "Entrer le mot de passe utilisateur" - -#~ msgid "Peer %0% (%1%) not found in peer list" -#~ msgstr "%0% (%1%) ne se trouve pas dans la liste des copin(e)s" - -#~ msgid "Waiting for thread to finish..." -#~ msgstr "Attendre la fin du thread..." diff -Nru gobby-infinote-0.4.92/po/gobby05.pot gobby-infinote-0.4.93/po/gobby05.pot --- gobby-infinote-0.4.92/po/gobby05.pot 1970-01-01 01:00:00.000000000 +0100 +++ gobby-infinote-0.4.93/po/gobby05.pot 2009-12-19 23:13:04.000000000 +0000 @@ -0,0 +1,757 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-08-29 17:46-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#. Document cannot be used if an error happened +#. during synchronization. +#: ../code/commands/browser-commands.cpp:54 +msgid "This document cannot be used." +msgstr "" + +#: ../code/commands/browser-commands.cpp:57 +msgid "" +"You can still watch others editing the document, but you cannot edit it " +"yourself." +msgstr "" + +#: ../code/commands/browser-commands.cpp:64 +msgid "" +"If you have an idea what could have caused the problem, then you may attempt " +"to solve it and try again (after having closed this document). Otherwise it " +"is most likely a bug in the software. In that case, please file a bug report " +"at http://gobby.0x539.de/trac/newticket and provide as much information as " +"you can, including what you did when the problem occurred and how to " +"reproduce the problem (if possible) so that we can fix the problem in a " +"later version. Thank you." +msgstr "" + +#: ../code/commands/browser-commands.cpp:255 +msgid "Subscribing to %1..." +msgstr "" + +#: ../code/commands/browser-commands.cpp:272 +msgid "Subscription already in progress" +msgstr "" + +#: ../code/commands/browser-commands.cpp:350 +#: ../code/commands/browser-commands.cpp:461 +msgid "Synchronization in progress... %1%%" +msgstr "" + +#: ../code/commands/browser-commands.cpp:371 +msgid "Subscription failed: %1" +msgstr "" + +#: ../code/commands/browser-commands.cpp:487 +msgid "" +"The connection to the publisher of this document has been lost. Further " +"changes to the document could not be synchronized to others anymore, " +"therefore the document cannot be edited anymore.\n" +"\n" +"Please note also that it is possible that not all of your latest changes " +"have reached the publisher before the connection was lost." +msgstr "" + +#: ../code/commands/browser-commands.cpp:575 +msgid "User Join in progress..." +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:92 +msgid "Create Do_cument..." +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:127 +msgid "Create Directory..." +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:140 +msgid "_Open Document..." +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:159 +msgid "D_elete" +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:183 +msgid "Choose a name for the directory" +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:184 +msgid "Choose a name for the document" +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:185 +msgid "_Directory Name:" +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:186 +msgid "_Document Name:" +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:189 +msgid "C_reate" +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:193 +msgid "New Directory" +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:194 +#: ../code/commands/file-tasks/task-new.cpp:38 +msgid "New Document" +msgstr "" + +#: ../code/commands/browser-context-commands.cpp:210 +#: ../code/commands/file-tasks/task-open-file.cpp:24 +msgid "Choose a text file to open" +msgstr "" + +#: ../code/commands/file-tasks/task-open.cpp:48 +msgid "Querying \"%1\"..." +msgstr "" + +#: ../code/commands/file-tasks/task-open.cpp:105 +#: ../code/operations/operation-open.cpp:435 +#: ../code/operations/operation-open-multiple.cpp:159 +msgid "Failed to open document \"%1\": %2" +msgstr "" + +#: ../code/commands/file-tasks/task-save.cpp:26 +msgid "Choose a location to save document \"%1\" to" +msgstr "" + +#. Help browser could not be invoked, show an error message to the user. +#: ../code/commands/help-commands.cpp:69 +msgid "There was an error displaying help." +msgstr "" + +#: ../code/commands/help-commands.cpp:96 +msgid "" +"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.\n" +"\n" +"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.\n" +"\n" +"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." +msgstr "" + +#: ../code/core/browser.cpp:41 +msgid "_Direct Connection" +msgstr "" + +#: ../code/core/browser.cpp:43 +msgid "Host Name:" +msgstr "" + +#: ../code/core/browser.cpp:208 +msgid "Device \"%1\" does not exist" +msgstr "" + +#: ../code/core/browser.cpp:246 +msgid "Resolving %1..." +msgstr "" + +#: ../code/core/docwindow.cpp:253 +msgid "User List" +msgstr "" + +#: ../code/core/docwindow.cpp:576 +msgid "Text written by %1" +msgstr "" + +#: ../code/core/docwindow.cpp:582 +msgid "Unowned text" +msgstr "" + +#: ../code/core/header.cpp:191 ../code/core/header.cpp.orig:191 +msgid "_None" +msgstr "" + +#: ../code/core/header.cpp:213 ../code/core/header.cpp.orig:213 +msgid "_File" +msgstr "" + +#: ../code/core/header.cpp:216 ../code/core/header.cpp.orig:216 +msgid "_Open..." +msgstr "" + +#: ../code/core/header.cpp:219 ../code/core/header.cpp.orig:219 +msgid "Open _Location..." +msgstr "" + +#: ../code/core/header.cpp:223 ../code/core/header.cpp.orig:223 +msgid "Save _As..." +msgstr "" + +#: ../code/core/header.cpp:227 ../code/core/header.cpp.orig:227 +#: ../code/core/iconmanager.cpp:48 +msgid "Save All" +msgstr "" + +#: ../code/core/header.cpp:227 ../code/core/header.cpp.orig:227 +msgid "Save all open files locally" +msgstr "" + +#: ../code/core/header.cpp:232 ../code/core/header.cpp.orig:232 +msgid "_Edit" +msgstr "" + +#: ../code/core/header.cpp:240 ../code/core/header.cpp.orig:240 +msgid "_Find..." +msgstr "" + +#: ../code/core/header.cpp:242 ../code/core/header.cpp.orig:242 +msgid "Find Ne_xt" +msgstr "" + +#: ../code/core/header.cpp:243 ../code/core/header.cpp.orig:243 +msgid "Find next match of phrase searched for" +msgstr "" + +#: ../code/core/header.cpp:246 ../code/core/header.cpp.orig:246 +msgid "Find Pre_vious" +msgstr "" + +#: ../code/core/header.cpp:247 ../code/core/header.cpp.orig:247 +msgid "Find previous match of phrase searched for" +msgstr "" + +#: ../code/core/header.cpp:252 ../code/core/header.cpp.orig:252 +msgid "Find and Rep_lace..." +msgstr "" + +#: ../code/core/header.cpp:256 ../code/core/header.cpp.orig:256 +msgid "Go to _Line..." +msgstr "" + +#: ../code/core/header.cpp:260 ../code/core/header.cpp.orig:260 +msgid "Pr_eferences..." +msgstr "" + +#: ../code/core/header.cpp:262 ../code/core/header.cpp.orig:262 +msgid "_View" +msgstr "" + +#: ../code/core/header.cpp:265 ../code/core/header.cpp.orig:265 +msgid "View Toolbar" +msgstr "" + +#: ../code/core/header.cpp:266 ../code/core/header.cpp.orig:266 +msgid "Whether to show the toolbar" +msgstr "" + +#: ../code/core/header.cpp:270 ../code/core/header.cpp.orig:270 +msgid "View Statusbar" +msgstr "" + +#: ../code/core/header.cpp:271 ../code/core/header.cpp.orig:271 +msgid "Whether to show the statusbar" +msgstr "" + +#: ../code/core/header.cpp:275 ../code/core/header.cpp.orig:275 +msgid "View Document Browser" +msgstr "" + +#: ../code/core/header.cpp:276 ../code/core/header.cpp.orig:276 +msgid "Whether to show the document browser" +msgstr "" + +#: ../code/core/header.cpp:280 ../code/core/header.cpp.orig:280 +msgid "View User List" +msgstr "" + +#: ../code/core/header.cpp:281 ../code/core/header.cpp.orig:281 +msgid "Whether to show the user list" +msgstr "" + +#: ../code/core/header.cpp:285 ../code/core/header.cpp.orig:285 +msgid "_Highlight Mode" +msgstr "" + +#: ../code/core/header.cpp:291 ../code/core/header.cpp.orig:291 +msgid "_Help" +msgstr "" + +#: ../code/core/header.cpp:294 ../code/core/header.cpp.orig:294 +msgid "_Contents" +msgstr "" + +#: ../code/core/header.cpp:295 ../code/core/header.cpp.orig:295 +msgid "Opens the Gobby manual" +msgstr "" + +#: ../code/core/header.cpp:298 ../code/core/header.cpp.orig:298 +msgid "_About..." +msgstr "" + +#: ../code/core/header.cpp:299 ../code/core/header.cpp.orig:299 +msgid "Shows Gobby's copyright and credits" +msgstr "" + +#: ../code/core/iconmanager.cpp:39 +msgid "User list" +msgstr "" + +#: ../code/core/iconmanager.cpp:45 +msgid "Document list" +msgstr "" + +#: ../code/core/statusbar.cpp:246 +msgid "Ln %1, Col %2" +msgstr "" + +#: ../code/core/userlist.cpp:126 +msgid "Users" +msgstr "" + +#: ../code/dialogs/document-location-dialog.cpp:29 +msgid "Document Name:" +msgstr "" + +#: ../code/dialogs/document-location-dialog.cpp:156 +msgid "Select document's target location" +msgstr "" + +#: ../code/dialogs/document-location-dialog.cpp:158 +msgid "Choose a directory to create the document into:" +msgstr "" + +#: ../code/dialogs/document-location-dialog.cpp:164 +msgid "Select documents' target location" +msgstr "" + +#: ../code/dialogs/document-location-dialog.cpp:166 +msgid "Choose a directory to create the documents into:" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:46 ../code/dialogs/find-dialog.cpp:144 +msgid "Find" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:49 +msgid "_Search for:" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:51 +msgid "Replace _with:" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:53 +msgid "_Match case" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:54 +msgid "Match _entire word only" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:55 +msgid "Search _backwards" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:56 +msgid "Wra_p around" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:102 +msgid "Replace _All" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:104 +msgid "_Replace" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:144 +msgid "Replace" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:163 ../code/dialogs/find-dialog.cpp:179 +msgid "Phrase \"%1\" has not been found" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:332 +msgid "No occurence has been replaced" +msgstr "" + +#: ../code/dialogs/find-dialog.cpp:338 +msgid "%1 occurence has been replaced" +msgid_plural "%1 occurences have been replaced" +msgstr[0] "" +msgstr[1] "" + +#: ../code/dialogs/goto-dialog.cpp:27 +msgid "Go to line" +msgstr "" + +#: ../code/dialogs/goto-dialog.cpp:30 +msgid "Line _number:" +msgstr "" + +#: ../code/dialogs/goto-dialog.cpp:51 +msgid "Go To _Line" +msgstr "" + +#: ../code/dialogs/initial-dialog.cpp:49 +msgid "Choose a user color" +msgstr "" + +#: ../code/dialogs/initial-dialog.cpp:53 +msgid "Welcome to Gobby" +msgstr "" + +#: ../code/dialogs/initial-dialog.cpp:62 +msgid "" +"Before we start, a few options need to be configured. You can later change " +"them by choosing Edit ▸ Preferences from the menu." +msgstr "" + +#: ../code/dialogs/initial-dialog.cpp:69 +msgid "User Name" +msgstr "" + +#: ../code/dialogs/initial-dialog.cpp:71 +msgid "Your name as shown to other users." +msgstr "" + +#: ../code/dialogs/initial-dialog.cpp:80 +msgid "User Color" +msgstr "" + +#: ../code/dialogs/initial-dialog.cpp:82 +msgid "The color with which text you have written is branded." +msgstr "" + +#: ../code/dialogs/open-location-dialog.cpp:27 +msgid "Open Location" +msgstr "" + +#: ../code/dialogs/open-location-dialog.cpp:28 +msgid "Enter the _location (URI) of the file you would like to open:" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:229 +msgid "Settings" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:230 +msgid "Paths" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:232 +msgid "User name:" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:234 +msgid "User color:" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:235 +msgid "Choose a new user color" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:238 +msgid "Host directory:" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:280 +msgid "The directory into which locally hosted sessions are permanently stored" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:297 +msgid "Tab Stops" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:298 +msgid "Indentation" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:299 +msgid "Home/End Behaviour" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:300 +msgid "File Saving" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:301 +msgid "_Tab width:" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:303 +msgid "Insert _spaces instead of tabs" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:304 +msgid "Enable automatic _indentation" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:305 +msgid "Smart _home/end" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:306 +msgid "Enable _automatic saving of documents" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:308 +msgid "Autosave interval in _minutes:" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:329 +msgid "" +"With this option enabled, Home/End keys move to first/last character before " +"going to the start/end of the line." +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:399 +msgid "Text Wrapping" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:400 +msgid "Line Numbers" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:401 +msgid "Current Line" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:402 +msgid "Right Margin" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:403 +msgid "Bracket Matching" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:404 +msgid "Enable text wrapping" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:405 +msgid "Do not split words over two lines" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:406 +msgid "Display line numbers" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:407 +msgid "Highlight current line" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:408 +msgid "Display right margin" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:409 +msgid "Right margin at column:" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:410 +msgid "Highlight matching bracket" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:496 +msgid "Toolbar" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:497 +msgid "Font" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:502 +msgid "Show text only" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:504 +msgid "Show icons only" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:506 +msgid "Show both icons and text" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:508 +msgid "Show text besides icons" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:527 +msgid "Trusted CAs" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:528 +msgid "Secure Connection" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:529 +msgid "Select a file containing trusted CAs" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:546 +msgid "Use TLS if possible" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:549 +msgid "Always use TLS" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:561 +msgid "Preferences" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:566 +msgid "User" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:567 +msgid "Editor" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:568 +msgid "View" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:569 +msgid "Appearance" +msgstr "" + +#: ../code/dialogs/preferences-dialog.cpp:570 +msgid "Security" +msgstr "" + +#: ../code/main.cpp:96 +msgid "Gobby options" +msgstr "" + +#: ../code/main.cpp:96 +msgid "Options related to Gobby" +msgstr "" + +#: ../code/main.cpp:101 +msgid "Display version information and exit" +msgstr "" + +#: ../code/main.cpp:108 +msgid "Also start a new Gobby instance when there is one running already" +msgstr "" + +#: ../code/operations/operation-delete.cpp:43 +msgid "Removing node %1..." +msgstr "" + +#: ../code/operations/operation-delete.cpp:59 +msgid "Failed to delete node %1: %2" +msgstr "" + +#: ../code/operations/operation-new.cpp:57 +msgid "Creating directory %1..." +msgstr "" + +#: ../code/operations/operation-new.cpp:58 +msgid "Creating document %1..." +msgstr "" + +#: ../code/operations/operation-new.cpp:75 +msgid "Failed to create directory %1: %2" +msgstr "" + +#: ../code/operations/operation-new.cpp:76 +msgid "Failed to create document %1: %2" +msgstr "" + +#. Translators: This is the 8 bit encoding that is tried when +#. autodetecting a file's encoding. +#: ../code/operations/operation-open.cpp:38 +msgid "ISO-8859-1" +msgstr "" + +#: ../code/operations/operation-open.cpp:90 +msgid "Opening document %1..." +msgstr "" + +#: ../code/operations/operation-open.cpp:121 +msgid "" +"The directory into which the new document was supposed to be inserted has " +"been removed" +msgstr "" + +#: ../code/operations/operation-open.cpp:310 +msgid "The file contains data not in the specified encoding" +msgstr "" + +#: ../code/operations/operation-open.cpp:321 +msgid "" +"The file either contains data in an unknown encoding, or it contains binary " +"data." +msgstr "" + +#: ../code/operations/operation-open-multiple.cpp:84 +msgid "Parent folder was removed" +msgstr "" + +#: ../code/operations/operation-open-multiple.cpp:173 +msgid "Failed to open multiple documents: %1" +msgstr "" + +#: ../code/operations/operation-save.cpp:74 +msgid "Saving document %1 to %2..." +msgstr "" + +#: ../code/operations/operation-save.cpp:228 +msgid "" +"The document contains one or more characters that cannot be encoded in the " +"specified character coding." +msgstr "" + +#: ../code/operations/operation-save.cpp:290 +msgid "Failed to save document %1: %2" +msgstr "" + +#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 +msgid "Could not create directory \"%1\": %2" +msgstr "" + +#: ../code/window.cpp:85 +msgid "Document Browser" +msgstr "" + +#: ../code/window.cpp:133 +msgid "You are still connected to a session" +msgstr "" + +#: ../code/window.cpp:141 +msgid "Do you want to close Gobby nevertheless?" +msgstr "" + +#: ../code/window.cpp:147 +msgid "C_ancel" +msgstr "" + +#: ../gobby-0.5.desktop.in.h:1 +msgid "Edit text files collaboratively" +msgstr "" + +#: ../gobby-0.5.desktop.in.h:2 +msgid "Gobby Collaborative Editor (0.5)" +msgstr "" diff -Nru gobby-infinote-0.4.92/po/it.po gobby-infinote-0.4.93/po/it.po --- gobby-infinote-0.4.92/po/it.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/it.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1134 +0,0 @@ -# Italian translation for gobby -# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 -# This file is distributed under the same license as the gobby package. -# FIRST AUTHOR , 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: gobby\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-06-17 15:05+0000\n" -"Last-Translator: Milo Casagrande \n" -"Language-Team: Italian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Crea documento..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Crea sessione..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Apri documento..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Chiude un documento aperto" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Gestione documento" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "Direzione" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Salva documento" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Direzione" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Host:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "Il documento %0% non esiste" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Elenco utenti" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "Nessuna" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "File" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Apri documento..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Apri documento..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Salva sessione..." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "_Modifica" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Trova..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "Cerca:" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Trova e sostituisci..." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Vai alla riga..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "Preferenze..." - -#: ../code/core/header.cpp:260 -#, fuzzy -msgid "_View" -msgstr "Visualizzazione" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Barra degli strumenti" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Elenco utenti" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "A_iuto" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "I_nformazioni" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Mostra copyright e informazioni di Gobby" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Elenco utenti" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Elenco documenti" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Utente" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Salva un documento in un'altra posizione" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Gestione documento" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Trova..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Cerca" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Sostituisci con:" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "Corrispondenza esatta" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "Considerare solo parole intere" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "Sostituisci _tutto" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "Sost_ituisci" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "Sost_ituisci" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "«%0%« non è stato trovato nel documento." - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "Nessuna occorrenza è stata sostituita" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "%0% occorrenza sostituita" -msgstr[1] "%0% occorrenze sostituite" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "Vai alla riga" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Numero riga:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "Vai alla riga" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Utente" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Elenco utenti" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Nuovo nome:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Password utente:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "Tabulazioni" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "Rientro" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Comportamento tasti Inizio/Fine" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "Larghezza tabulazioni:" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Inserire spazi invece di tabulazioni" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "Abilitare rientro automatico" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "Inizio/Fine intelligente" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "Abilitare rientro automatico" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"Con questa opzione abilitata, i tasti Inizio/Fine posizionano il cursore al " -"primo/ultimo carattere prima di spostarlo all'inizio/fine della riga." - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "A capo automatico" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Numeri di riga" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Riga corrente" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Margine destro" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "Cossispendenza parentesi" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "Abilitare a capo automatico" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "Non separare le parole su due righe" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Visualizzare i numeri di riga" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Evidenziare la riga corrente" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Visualizzare il margine destro" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Margine destro alla colonna:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "Evidenziare la parentesi corrispondente" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Barra degli strumenti" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Tipo di carattere" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Solo testo" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Solo icone" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Icone e testo" - -#: ../code/dialogs/preferencesdialog.cpp:508 -msgid "Show text besides icons" -msgstr "Mostra il testo sotto le icone" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "Connessione interrotta" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "Preferenze" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Utente" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Editor" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Visualizzazione" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Aspetto" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Crea documento..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Salva documento corrente" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Apri documento..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Chiude un documento aperto" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Salva documento come..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Carica un file in un nuovo documento" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Elenco documenti" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "Si è ancora connessi in una sessione" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "Chiudere Gobby in ogni caso?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -#, fuzzy -msgid "Gobby Collaborative Editor (0.5)" -msgstr "Un editor di testo collaborativo" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "Conversione input in UTF-8 fallita: codifica sconosciuta o input binario." - -#~ msgid "Character Encoding:" -#~ msgstr "Codifica caratteri:" - -#~ msgid "Send" -#~ msgstr "Invia" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "Comando «%0%» non trovato. Digitare /help per l'elenco dei comandi " -#~ "esistenti." - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "Uso: /remove " - -#~ msgid "Subscribe" -#~ msgstr "Sottoscrivi" - -#~ msgid "Match as regular expression" -#~ msgstr "Corrispondenza come espressione regolare" - -#~ msgid "_Up" -#~ msgstr "_Su" - -#~ msgid "_Down" -#~ msgstr "_Giù" - -#~ msgid "Search and replace" -#~ msgstr "Cerca e sostituisci" - -#~ msgid "No document currently opened" -#~ msgstr "Nessun documento aperto" - -#~ msgid "_Go to line" -#~ msgstr "_Vai alla riga" - -#~ msgid "Opens a new obby session" -#~ msgstr "Apre una nuova sessione" - -#~ msgid "Join session..." -#~ msgstr "Accedi sessione..." - -#~ msgid "Joins an existing obby session" -#~ msgstr "Entra in una sessione esistente" - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Salva la sessione completa per un ripristino futuro" - -#~ msgid "Quit session" -#~ msgstr "Termina sessione" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Esce dalla sessione in corso" - -#~ msgid "Quit" -#~ msgstr "Esci" - -#~ msgid "Quits the application" -#~ msgstr "Esce dal programma" - -#~ msgid "_Session" -#~ msgstr "_Sessione" - -#~ msgid "Creates a new document" -#~ msgstr "Crea un nuovo documento" - -#~ msgid "Saves a document into a file" -#~ msgstr "Salva un documento su un file" - -#~ msgid "Close document" -#~ msgstr "Chiudi documento" - -#~ msgid "Search for a text in the current document" -#~ msgstr "Cerca una stringa di testo nel documento" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "Cerca e sostituisce del testo" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "Muove il cursore alla riga specificata" - -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "" -#~ "Visualizza un dialogo per personalizzare Gobby alle proprie esigenze" - -#~ msgid "Document preferences..." -#~ msgstr "Preferenze del documento..." - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "Mostra un dialogo per le preferenze del documento attuale" - -#~ msgid "Syntax" -#~ msgstr "Sintassi" - -#~ msgid "_User" -#~ msgstr "_Utente" - -#~ msgid "Set password..." -#~ msgstr "Imposta password..." - -#~ msgid "Sets a password for this user" -#~ msgstr "Imposta una password per questo utente" - -#~ msgid "Set colour..." -#~ msgstr "Imposta colore..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Imposta un nuovo colore per questo utente" - -#~ msgid "_Window" -#~ msgstr "Fi_nestra" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Visualizza l'elenco degli utenti attualmente nella sessione" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Visualizza l'elenco dei documenti della sessione corrente" - -#~ msgid "Chat" -#~ msgstr "Chat" - -#~ msgid "Displays a chat to talk to other people in the session" -#~ msgstr "" -#~ "Visualizza una chat per parlare con altre persone durante la sessione" - -#~ msgid "Unselects the current language" -#~ msgstr "Deseleziona il linguaggio corrente" - -#~ msgid "Selects %0% as language" -#~ msgstr "Seleziona %0% come linguaggio" - -#~ msgid "Create obby session" -#~ msgstr "Crea sessione obby" - -#~ msgid "Port:" -#~ msgstr "Porta:" - -#~ msgid "Name:" -#~ msgstr "Nome :" - -#~ msgid "Colour:" -#~ msgstr "Colore:" - -#~ msgid "Password:" -#~ msgstr "Password:" - -#~ msgid "Restore session:" -#~ msgstr "Ripristina sessione:" - -#~ msgid "Restore session" -#~ msgstr "Ripristina sessione" - -#~ msgid "_Host" -#~ msgstr "A_vvia" - -#~ msgid "Opening obby session..." -#~ msgstr "Apertura sessione obby..." - -#~ msgid "Join obby session" -#~ msgstr "Accedi sessione obby" - -#~ msgid "Local network" -#~ msgstr "Rete locale" - -#~ msgid "Host" -#~ msgstr "Host" - -#~ msgid "Port" -#~ msgstr "Porta" - -#~ msgid "Failure" -#~ msgstr "Fallimento" - -#~ msgid "" -#~ "User password for user '%0%' required. You may either choose another user " -#~ "name, type in your user password or cancel the connection." -#~ msgstr "" -#~ "È richiesta la password per l'utente «%0%». È possibile cambiare il nome " -#~ "utente, digitare la password o annullare la connessione." - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "Nome già in uso. Sceglierne un altro o annullare la connessione." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "Colore già in uso. Sceglierne un altro o annullare la connessione." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "È necessaria la password di sessione. Digitare la password per poter " -#~ "accedere alla sessione." - -#~ msgid "Session password:" -#~ msgstr "Password di sessione:" - -#~ msgid "Joining obby session..." -#~ msgstr "Accesso alla sessione obby..." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "Impostazione connessione cifrata (TLS)..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "Pacchetto di accesso inviato, in attesa della risposta..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "Accesso eseguito con successo, sincronizzazione della sessione..." - -#~ msgid "Windows" -#~ msgstr "Finestre" - -#~ msgid "Remember the positions and states" -#~ msgstr "Ricordare la posizione e lo stato" - -#~ msgid "Highlight the window on incoming chat messages" -#~ msgstr "Evidenziare la finestra con i messaggi in entrata" - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "Aprire nuovi documenti remoti automaticamente" - -#~ msgid "Pattern" -#~ msgstr "Estensione" - -#~ msgid "Language" -#~ msgstr "Linguaggio" - -#~ msgid "Mime type" -#~ msgstr "Tipo MIME" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "Questo è un elenco di tutti i tipi di file riconosciuti" - -#~ msgid "Pattern must not be empty." -#~ msgstr "L'estensione non può essere vuota." - -#~ msgid "There is no language with the mime type '%0%'." -#~ msgstr "Nessun linguaggio con un tipo di MIME «%0%»." - -#~ msgid "Behaviour" -#~ msgstr "Comportamento" - -#~ msgid "Not connected" -#~ msgstr "Non connesso" - -#~ msgid "Selected language: %0%" -#~ msgstr "Linguaggio selezionato: %0%" - -#~ msgid "No language selected" -#~ msgstr "Nessun linguaggio selezionato" - -#~ msgid "Online" -#~ msgstr "Online" - -#~ msgid "Offline" -#~ msgstr "Offline" - -#~ msgid "" -#~ "Zeroconf initialisation failed. Probably you need to run avahi-daemon or " -#~ "mDNSResponder, depending on the library you use, as root prior to Gobby. " -#~ "Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Inizializzazione di Zeroconf fallita. Probabilmente è necessario eseguire " -#~ "avahi-daemon o mDNSResponder, in base alla libreria usata, come root " -#~ "prima di Gobby. Il supporto a Zeroconf è disabilitato per questa sessione." - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "Usare l'estensione predefinita «.obby» se nessuna è specificata" - -#~ msgid "Save obby session" -#~ msgstr "Salva la sessione obby" - -#~ msgid "Create document" -#~ msgstr "Crea documento" - -#~ msgid "Enter document name" -#~ msgstr "Inserire il nome del documento" - -#~ msgid "Open new document" -#~ msgstr "Apri nuovo documento" - -#~ msgid "" -#~ "Click on \"Apply\" to apply the new settings to documents that are " -#~ "currently open. \"OK\" will just store the values to use them with newly " -#~ "created documents." -#~ msgstr "" -#~ "Fare clic su «Applica» per applicare le nuove impostazioni ai documenti " -#~ "aperti. «OK» conserva i valori per usarli con i nuovi documenti creati." - -#~ msgid "Set user password" -#~ msgstr "Imposta password utente" - -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "Impostare una password per il proprio account. Al prossimo accesso con " -#~ "questo utente, verrà richiesta la password." - -#~ msgid "" -#~ "These preferences affect only the currently active document \"%0%\". If " -#~ "you want to change global preferences, use the preferences menu item in " -#~ "the \"Edit\" menu." -#~ msgstr "" -#~ "Queste preferenze riguardano solamente il documento «%0%». Se si desidera " -#~ "modificare le preferenze globali, scegliere «Preferenze...» dal menù " -#~ "«Modifica»." - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "Cambiamento colore fallito: colore già in uso" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "Connesso a %0%:%1%" - -#~ msgid "Serving on port %0%" -#~ msgstr "Sulla porta %0%" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "Salvare i cambiamenti al documento «%0%» prima di uscire?" - -#~ msgid "" -#~ "If you don't save, changes will be discarded, but may still be retrieved " -#~ "if you re-subscribe to the document as long as the session remains open." -#~ msgstr "" -#~ "Non salvando, i cambiamenti andranno persi, ma potranno essere recuperati " -#~ "riaprendo il documento fintantoché la sessione rimane aperta." - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "Non salvando, i cambiamenti andranno persi." - -#~ msgid "Close without saving" -#~ msgstr "Chiudi senza salvare" - -#~ msgid "Could not open file '%0%' for writing" -#~ msgstr "Impossibile aprire il file «%0%» in scrittura" diff -Nru gobby-infinote-0.4.92/po/ko.po gobby-infinote-0.4.93/po/ko.po --- gobby-infinote-0.4.92/po/ko.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/ko.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1114 +0,0 @@ -# Korean translation for gobby -# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 -# This file is distributed under the same license as the gobby package. -# FIRST AUTHOR , 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: gobby\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-10-26 03:09+0000\n" -"Last-Translator: Oh, A-Reum \n" -"Language-Team: Korean \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "문서 만들기..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "세션 만들기..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "문서 열기.." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "열려있는 문서 종료" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "문서 관리" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "위치" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "문서 저장" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "위치" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "호스트:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "존재하지 않는 문서 %0%" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "사용자 목록" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "아래(D)" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "파일" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "문서 열기.." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "문서 열기.." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "세션 저장하기..." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "편집(_E)" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "찾기..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "찾을 문자:" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "찾아 바꾸기..." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "줄 찾아가기..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "속성..." - -#: ../code/core/header.cpp:260 -#, fuzzy -msgid "_View" -msgstr "뷰" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "툴바" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "사용자 목록" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "도움말(_H)" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "Gobby에 대하여" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Gobby의 저작권 보기" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "사용자 목록" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "문서 목록" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "사용자" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "다른위치에 문서 저장하기" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "문서 관리" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "찾기..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "찾기" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "변경할 문자:" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "대/소문자 구분" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "단어 단위로" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "모두 바꾸기(_A)" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "바꾸기(R)" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "바꾸기(R)" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "\"%0%\" 을/를 찾을 수 없습니다." - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "변경사항 없음" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "변경사항 없음" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "줄 찾아가기" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "줄 번호:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "줄 찾아가기" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "사용자" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "사용자 목록" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "새 이름:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "사용자 비밀번호:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "탭 간격" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "정렬" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Home/End 키 행동" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "탭 크기:" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "탭 대신에 빈공간 삽입" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "자동 정렬" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "home/end 키 설정" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "자동 정렬" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"이 옵션이 선택되면, Home/End 키를 사용했을 경우 문장의 처음과 끝부분에 커서" -"가 가기 전에 해당 줄의 문장의 시작부분과 끝부분에 커서가 가게 됩니다." - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "줄 바꿈" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "줄 번호" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "현재 줄" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "가로 여백" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "괄호 매칭" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "자동 줄 바꿈" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "단어를 두 줄로 나누지 않음" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "줄 번호 표시" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "현재 줄 강조" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "가로 여백 표시" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "가로 여백 칸 수:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "매칭되는 괄호 강조" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "툴바" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "글자체" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "문자만 보기" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "아이콘만 보기" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "문자와 아이콘 모두 보기" - -#: ../code/dialogs/preferencesdialog.cpp:508 -msgid "Show text besides icons" -msgstr "아이콘 위에 텍스트 보여주기" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "연결 실패" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "속성" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "사용자" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "편집기" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "뷰" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "외관" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "문서 만들기..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "현재 문서 저장" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "문서 열기.." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "열려있는 문서 종료" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "다른이름으로 문서 저장하기.." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "새 문서에서 파일 불러오기" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "문서 목록" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "아직 세션에 연결되어있습니다." - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "그래도 종료하시겠습니까?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -#, fuzzy -msgid "Gobby Collaborative Editor (0.5)" -msgstr "공동 제작 문서 편집기" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "UTF-8로 변환 실패: 인코딩을 알 수 없거나 2진 입력 입니다." - -#~ msgid "Character Encoding:" -#~ msgstr "문자 인코딩:" - -#~ msgid "Send" -#~ msgstr "보내기" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "'%0%' 명령어가 없습니다. /help 명령어로 사용 가능한 명령어를 확인하시기 바" -#~ "랍니다." - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "사용법 : /remove <문서명>" - -#~ msgid "Subscribe" -#~ msgstr "문서참여" - -#~ msgid "Match as regular expression" -#~ msgstr "보통의 표현과 매치" - -#~ msgid "_Up" -#~ msgstr "위(_U)" - -#~ msgid "Search and replace" -#~ msgstr "찾아 바꾸기" - -#~ msgid "No document currently opened" -#~ msgstr "현재 열려있는 문서 없음" - -#~ msgid "_Go to line" -#~ msgstr "줄 찾아가기(_G)" - -#~ msgid "Opens a new obby session" -#~ msgstr "새 obby 세션 열기" - -#~ msgid "Join session..." -#~ msgstr "세션 참가하기..." - -#~ msgid "Joins an existing obby session" -#~ msgstr "현재 있는 obby 세션에 참석" - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "최근 복구된 완전한 세션 저장" - -#~ msgid "Quit session" -#~ msgstr "세션 종료" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "현재 실행중인 obby 세션 나가기" - -#~ msgid "Quit" -#~ msgstr "종료" - -#~ msgid "Quits the application" -#~ msgstr "어플리케이션 종료" - -#~ msgid "_Session" -#~ msgstr "세션(_S)" - -#~ msgid "Creates a new document" -#~ msgstr "새로운 문서 생성" - -#~ msgid "Saves a document into a file" -#~ msgstr "문서를 파일로 저장" - -#~ msgid "Close document" -#~ msgstr "문서 닫기" - -#~ msgid "Search for a text in the current document" -#~ msgstr "현재 문서에서 문자 찾기" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "문자를 찾고 다른 문자로 바꾸기" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "커서를 특정 줄로 옮김" - -#~ msgid "Document preferences..." -#~ msgstr "문서 속성..." - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "이 문서에 적용된 대화 속성 보기" - -#~ msgid "Syntax" -#~ msgstr "언어" - -#~ msgid "_User" -#~ msgstr "사용자(_U)" - -#~ msgid "Set password..." -#~ msgstr "비밀번호 설정..." - -#~ msgid "Sets a password for this user" -#~ msgstr "이 사용자의 비밀번호 설정" - -#~ msgid "Set colour..." -#~ msgstr "색 선택..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "이 사용자의 색 설정" - -#~ msgid "_Window" -#~ msgstr "창(_W)" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "현재 참석하고 있는 사용자 목록을 보여줌" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "현재 세션에 속해있는 문서 목록을 보여줌" - -#~ msgid "Chat" -#~ msgstr "채팅" - -#~ msgid "Displays a chat to talk to other people in the session" -#~ msgstr "세션의 다른 사람들과의 대화를 보여줌" - -#~ msgid "Unselects the current language" -#~ msgstr "현재 언어 미설정" - -#~ msgid "Selects %0% as language" -#~ msgstr "%0% 언어 선택" - -#~ msgid "Create obby session" -#~ msgstr "obby 세션 생성하기" - -#~ msgid "Port:" -#~ msgstr "포트:" - -#~ msgid "Name:" -#~ msgstr "이름:" - -#~ msgid "Colour:" -#~ msgstr "색상:" - -#~ msgid "Password:" -#~ msgstr "비밀번호:" - -#~ msgid "Restore session:" -#~ msgstr "세션 복구:" - -#~ msgid "Restore session" -#~ msgstr "세션 복구" - -#~ msgid "_Host" -#~ msgstr "호스트(_H)" - -#~ msgid "Opening obby session..." -#~ msgstr "obby 세션 열기..." - -#~ msgid "Join obby session" -#~ msgstr "obby 세션에 참석" - -#~ msgid "Local network" -#~ msgstr "로컬네트워크" - -#~ msgid "Host" -#~ msgstr "호스트" - -#~ msgid "Port" -#~ msgstr "포트" - -#~ msgid "Failure" -#~ msgstr "실패" - -#~ msgid "" -#~ "User password for user '%0%' required. You may either choose another user " -#~ "name, type in your user password or cancel the connection." -#~ msgstr "" -#~ "'%0%'의 사용자 비밀번호가 필요합니다. 다른 사용자 이름을 선택하고, 당신" -#~ "의 사용자 비밀번호를 입력하거나 연겨를 취소하세요." - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "이미 사용중인 이름입니다. 다른 이름을 선택하거나 연결을 취소하십시오." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "" -#~ "현재 색상은 이미 사용중입니다. 다른 색상을 고르시거나 연결을 취소하세요." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "세션 비밀번호가 필요합니다. obby 세션에 참여할 수 있는 비밀번호를 입력하세" -#~ "요." - -#~ msgid "Session password:" -#~ msgstr "세션 비밀번호:" - -#~ msgid "Joining obby session..." -#~ msgstr "obby 세션에 참석..." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "연결 암호화 설정 (TLS)..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "접속 패킷을 보내는 중, 응답을 기다리세요..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "로그인 성공, 세션 동기화중..." - -#~ msgid "Windows" -#~ msgstr "창" - -#~ msgid "Remember the positions and states" -#~ msgstr "위치와 상태 기억하기" - -#~ msgid "Highlight the window on incoming chat messages" -#~ msgstr "새로 받은 채팅 메시지 강조" - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "새 원격 문서 자동 열기" - -#~ msgid "Pattern" -#~ msgstr "패턴" - -#~ msgid "Language" -#~ msgstr "언어" - -#~ msgid "Mime type" -#~ msgstr "MIME 유형" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "이것은 허용되는 파일 형태 목록이다." - -#~ msgid "Pattern must not be empty." -#~ msgstr "패턴을 채워주세요." - -#~ msgid "There is no language with the mime type '%0%'." -#~ msgstr "MIME 유형 '%0%'에 해당하는 언어가 없습니다." - -#~ msgid "Behaviour" -#~ msgstr "행동" - -#~ msgid "Not connected" -#~ msgstr "연결되지 않음" - -#~ msgid "Selected language: %0%" -#~ msgstr "선택된 언어: %0%" - -#~ msgid "No language selected" -#~ msgstr "선택된 언어 없음" - -#~ msgid "Online" -#~ msgstr "온라인" - -#~ msgid "Offline" -#~ msgstr "오프라인" - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "확장자명이 주어지지 않은 경우 기본 확장자 .obby를 사용하세요." - -#~ msgid "Save obby session" -#~ msgstr "obby 세션 저장하기" - -#~ msgid "Create document" -#~ msgstr "문서 만들기" - -#~ msgid "Enter document name" -#~ msgstr "문서 이름 입력" - -#~ msgid "Open new document" -#~ msgstr "새 문서 열기" - -#~ msgid "" -#~ "Click on \"Apply\" to apply the new settings to documents that are " -#~ "currently open. \"OK\" will just store the values to use them with newly " -#~ "created documents." -#~ msgstr "" -#~ "\"적용\" 을 클릭하면 현재 열려있는 문서에 새로운 설정이 적용됩니다. \"확인" -#~ "\" 을 클릭하면 설정이 저장되고 새로 생성되는 문서들 부터 그 설정이 사용됩" -#~ "니다." - -#~ msgid "Set user password" -#~ msgstr "사용자 비밀번호 설정" - -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "당신의 사용자 계정에 비밀번호를 설정하세요. 이 사용자가 다음에 로그인 했" -#~ "을 경우 , 당신은 당신의 비밀번호를 입력해야 합니다." - -#~ msgid "" -#~ "These preferences affect only the currently active document \"%0%\". If " -#~ "you want to change global preferences, use the preferences menu item in " -#~ "the \"Edit\" menu." -#~ msgstr "" -#~ "이 속성은 현재 사용중인 문서 \"%0%\" 에만 적용됩니다. 만약 모든 문서의 속" -#~ "성을 바꾸고 싶으시면, \"편집\" 메뉴에 속성에서 변경하세요." - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "색 바꾸기 실패: 이미 사용중인 색" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "%0%:%1% 에 연결" - -#~ msgid "Serving on port %0%" -#~ msgstr "%0% 포트에 저장" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "종료하기 전에 \"%0%\" 문서의 변경사항을 저장하시겠습니까?" - -#~ msgid "" -#~ "If you don't save, changes will be discarded, but may still be retrieved " -#~ "if you re-subscribe to the document as long as the session remains open." -#~ msgstr "" -#~ "저장하지 않으면 변경사항은 적용되지 않습니다. 하지만 세션이 아직 열려있으" -#~ "면 문서를 다시 불러올 수 있기 때문에 문서를 다시 부활시킬 수 있습니다." - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "저장하지 않으면, 변경사항은 반영되지 않습니다." - -#~ msgid "Close without saving" -#~ msgstr "저장하지 않고 종료" diff -Nru gobby-infinote-0.4.92/po/LINGUAS gobby-infinote-0.4.93/po/LINGUAS --- gobby-infinote-0.4.92/po/LINGUAS 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/LINGUAS 2009-12-19 23:13:04.000000000 +0000 @@ -1,12 +1 @@ -ca -de -es -fr -ko -it -pl -pt -pt_BR -ru -sv -zh_CN +en_GB diff -Nru gobby-infinote-0.4.92/po/Makefile.in.in gobby-infinote-0.4.93/po/Makefile.in.in --- gobby-infinote-0.4.92/po/Makefile.in.in 2009-04-24 21:58:13.000000000 +0100 +++ gobby-infinote-0.4.93/po/Makefile.in.in 2009-12-19 21:09:30.000000000 +0000 @@ -56,13 +56,13 @@ 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) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) -DISTFILES = Makefile.in.in POTFILES.in $(POFILES) +DISTFILES = Makefile.in.in POTFILES.in $(POFILES) $(GETTEXT_PACKAGE).pot EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ diff -Nru gobby-infinote-0.4.92/po/pl.po gobby-infinote-0.4.93/po/pl.po --- gobby-infinote-0.4.92/po/pl.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/pl.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1017 +0,0 @@ -# Polish translation for gobby -# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 -# This file is distributed under the same license as the gobby package. -# FIRST AUTHOR , 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: gobby\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-10-19 18:46+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Polish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Utwórz dokument. . ." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Utwórz sesję. . ." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Otwórz dokument. . ." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Zamyka otwarty dokument" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Wpisz nazwę dokumentu" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "Kierunek" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Zapisz dokument" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Kierunek" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Host:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "Dokument %0% nie istnieje" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Lista użytkowników" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "W _dół" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "Pliki" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Otwórz dokument. . ." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Otwórz dokument. . ." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Zapisz sesję. . ." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "_Edycja" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Znajdź..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "Znajdź:" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Znajdź i zamień. . ." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Idź do linii. . ." - -#: ../code/core/header.cpp:258 -msgid "Pr_eferences..." -msgstr "" - -#: ../code/core/header.cpp:260 -#, fuzzy -msgid "_View" -msgstr "Widok" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Pasek narzędzi" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Lista użytkowników" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "_Pomoc" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "O Gobby" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Lista użytkowników" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Lista dokumentów" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Użytkownik" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Zapisuje dokument do innej lokalizacji" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Lista dokumentów" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Znajdź..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Szukaj" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Zamień na:" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "Uwzględniaj wielkość liter" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "Dopasuj tylko całe wyrazy" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "Zastąp _wszystkie" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "_Zastąp" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "_Zastąp" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "\"%0%\" nie został odnaleziony w dokumencie" - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:338 -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "Idź do linii" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Numer wiersza:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "Idź do linii" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Użytkownik" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Lista użytkowników" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Nowa nazwa:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Hasło użytkownika:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Zachowanie" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -msgid "_Tab width:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Wstaw spacje zamiast Tabów" - -#: ../code/dialogs/preferencesdialog.cpp:304 -msgid "Enable automatic _indentation" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:305 -msgid "Smart _home/end" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:306 -msgid "Enable _automatic saving of documents" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "Zawijanie tekstu" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Numery wierszy" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Bieżący wiersz" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Prawy margines" - -#: ../code/dialogs/preferencesdialog.cpp:403 -msgid "Bracket Matching" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "Włącz łamanie tekstu" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "Nie dziel słów na dwie linijki" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Wyświetlaj numery wierszy" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Podświetl bierzącą linię" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Wyświetlaj prawy margines" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Prawy margines w kolumnie:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Pasek narzędzi" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Czcionka" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Pokaż tylko tekst" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Pokaż tylko ikony" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Pokaż ikony i tekst" - -#: ../code/dialogs/preferencesdialog.cpp:508 -msgid "Show text besides icons" -msgstr "Pokaż tekst oprócz ikon" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -msgid "Secure Connection" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Użytkownik" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Edytor" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Widok" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Wygląd" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Utwórz dokument. . ." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Zapisz bierzący dokument" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Otwórz dokument. . ." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Zamyka otwarty dokument" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Zapisz dokument jako. . ." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Ładuje plik do nowego dokumentu" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Lista dokumentów" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "Jesteś nadal podłączony do sesji" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -msgid "Gobby Collaborative Editor (0.5)" -msgstr "" - -#~ msgid "Character Encoding:" -#~ msgstr "Kodowanie znaków:" - -#~ msgid "Send" -#~ msgstr "Wyślij" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "Polecenie '%0%' nie zostało odnalezione. Wpisz /help aby uzyskać listę " -#~ "istniejących poleceń." - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "Użycie: /remove " - -#~ msgid "Subscribe" -#~ msgstr "Subskrybuj" - -#, fuzzy -#~ msgid "Match as regular expression" -#~ msgstr "Dopasuj jako wyrażenie regularne" - -#~ msgid "_Up" -#~ msgstr "W _górę" - -#~ msgid "Search and replace" -#~ msgstr "Znajdź i zamień" - -#~ msgid "No document currently opened" -#~ msgstr "Żaden dokument nie jest obecnie otwarty" - -#~ msgid "_Go to line" -#~ msgstr "_Idź do linii" - -#~ msgid "Join session..." -#~ msgstr "Dołącz do sesji. . ." - -#~ msgid "Joins an existing obby session" -#~ msgstr "Dołącza do istniejącej sesji obby" - -#, fuzzy -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Zapisuje całą sesję dla przyszłego przywrócenia" - -#~ msgid "Quit session" -#~ msgstr "Wyjdź z sesji" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Opuszcza obecnie działającą sesję obby" - -#~ msgid "Quit" -#~ msgstr "Wyjdź" - -#~ msgid "Quits the application" -#~ msgstr "Zamyka aplikację" - -#~ msgid "_Session" -#~ msgstr "_Sesja" - -#~ msgid "Creates a new document" -#~ msgstr "Tworzy nowy dokument" - -#~ msgid "Saves a document into a file" -#~ msgstr "Zapisuje dokument do pliku" - -#~ msgid "Close document" -#~ msgstr "Zamknij dokument" - -#~ msgid "Syntax" -#~ msgstr "Składnia" - -#~ msgid "_User" -#~ msgstr "_Użytkownik" - -#~ msgid "Set password..." -#~ msgstr "Ustaw hasło. . ." - -#~ msgid "Sets a password for this user" -#~ msgstr "Ustawia hasło dla tego użytkownika" - -#~ msgid "Set colour..." -#~ msgstr "Ustaw kolor. . ." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Ustawia nowy kolor dla tego użytkownika" - -#~ msgid "_Window" -#~ msgstr "_Okno" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Wyświetla listę użytkowników którzy aktualnie dołączyli" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Wyświetla listę dokumentów w bierzącej sesji" - -#~ msgid "Unselects the current language" -#~ msgstr "Odznacza bierzący język" - -#~ msgid "Selects %0% as language" -#~ msgstr "Zaznacza %0% jako język" - -#~ msgid "Create obby session" -#~ msgstr "Utwórz sesję obby" - -#~ msgid "Port:" -#~ msgstr "Port:" - -#~ msgid "Name:" -#~ msgstr "Nazwa:" - -#~ msgid "Colour:" -#~ msgstr "Kolor:" - -#~ msgid "Password:" -#~ msgstr "Hasło:" - -#~ msgid "Restore session:" -#~ msgstr "Przywróć sesję:" - -#~ msgid "Restore session" -#~ msgstr "Przywróć sesję" - -#~ msgid "_Host" -#~ msgstr "_Host" - -#~ msgid "Opening obby session..." -#~ msgstr "Otwieranie sesji obby. . ." - -#~ msgid "Join obby session" -#~ msgstr "Dołącz do sesji obby" - -#~ msgid "Local network" -#~ msgstr "Sieć lokalna" - -#~ msgid "Host" -#~ msgstr "Host" - -#~ msgid "Port" -#~ msgstr "Port" - -#~ msgid "Failure" -#~ msgstr "Niepowodzenie" - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Nazwa jest już w użyciu. Możesz wybrać inną nazwę lub anulować połączenie." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Kolor jest już w użyciu. Możesz wybrać inny kolor lub anulować połączenie." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "Hasło sesji jest wymagane. Musisz wpisać hasło aby móc dołączyć do sesji " -#~ "obby." - -#~ msgid "Session password:" -#~ msgstr "Hasło sesji:" - -#~ msgid "Joining obby session..." -#~ msgstr "Dołączanie do sesji obby. . ." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "Ustawianie szyfrowania połączenia (TLS)..." - -#~ msgid "Windows" -#~ msgstr "Okna" - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "Otwórz automatycznie zdalnie utworzone dokumenty" - -#~ msgid "Pattern" -#~ msgstr "Wzorzec" - -#~ msgid "Language" -#~ msgstr "Język" - -#~ msgid "Mime type" -#~ msgstr "typ MIME" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "To jest lista wszystkich rozpoznanych typów plików" - -#~ msgid "Pattern must not be empty." -#~ msgstr "Wzorzec nie może być pusty." - -#~ msgid "Not connected" -#~ msgstr "Niepołączony" - -#~ msgid "Selected language: %0%" -#~ msgstr "Wybrany język: %0%" - -#~ msgid "No language selected" -#~ msgstr "Nie wybrano języka" - -#~ msgid "Save obby session" -#~ msgstr "Zapisz sesję obby" - -#~ msgid "Create document" -#~ msgstr "Utwórz dokument" - -#~ msgid "Open new document" -#~ msgstr "Otwórz nowy dokument" - -#~ msgid "Set user password" -#~ msgstr "Ustaw hasło użytkownika" - -#, fuzzy -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "Ustaw hasło użytkownika dla swojego konta użytkownika. Kiedy będziesz " -#~ "próbował się zalogować tym użytkownikiem następnym razem, będziesz " -#~ "poproszony o swoje hasło." - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "Zmiana koloru niepowiodła się: Kolor jest już w użyciu" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "Połączony z %0%:%1%" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "Zapisać zmiany w dokumencie \"%0%\" przed zamknięciem?" - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "Jeżeli nie zapiszesz, zmiany będą porzucone." - -#~ msgid "Close without saving" -#~ msgstr "Zamknij bez zapisywania" diff -Nru gobby-infinote-0.4.92/po/POTFILES.in gobby-infinote-0.4.93/po/POTFILES.in --- gobby-infinote-0.4.92/po/POTFILES.in 2009-04-24 23:37:49.000000000 +0100 +++ gobby-infinote-0.4.93/po/POTFILES.in 2009-12-19 23:13:04.000000000 +0000 @@ -1,29 +1,39 @@ +code/commands/auth-commands.cpp code/commands/browser-commands.cpp code/commands/browser-context-commands.cpp +code/commands/file-tasks/task-export-html.cpp code/commands/file-tasks/task-new.cpp code/commands/file-tasks/task-open.cpp code/commands/file-tasks/task-open-file.cpp code/commands/file-tasks/task-save.cpp code/commands/help-commands.cpp +code/commands/subscription-commands.cpp +code/commands/synchronization-commands.cpp +code/commands/user-join-commands.cpp code/core/browser.cpp -code/core/docwindow.cpp code/core/header.cpp code/core/iconmanager.cpp +code/core/sessionuserview.cpp code/core/statusbar.cpp +code/core/textsessionview.cpp code/core/userlist.cpp +code/dialogs/connection-dialog.cpp code/dialogs/document-location-dialog.cpp code/dialogs/find-dialog.cpp code/dialogs/goto-dialog.cpp code/dialogs/initial-dialog.cpp code/dialogs/open-location-dialog.cpp +code/dialogs/password-dialog.cpp code/dialogs/preferences-dialog.cpp code/main.cpp code/operations/operation-delete.cpp +code/operations/operation-export-html.cpp code/operations/operation-new.cpp code/operations/operation-open.cpp +code/operations/operation-open-multiple.cpp code/operations/operation-save.cpp code/util/file.cpp code/util/i18n.cpp code/util/i18n.hpp code/window.cpp -contrib/gobby-0.5.desktop.in +gobby-0.5.desktop.in diff -Nru gobby-infinote-0.4.92/po/pt_BR.po gobby-infinote-0.4.93/po/pt_BR.po --- gobby-infinote-0.4.92/po/pt_BR.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/pt_BR.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1138 +0,0 @@ -# Brazilian Portuguese translation for gobby -# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 -# This file is distributed under the same license as the gobby package. -# FIRST AUTHOR , 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: gobby\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-10-16 21:17+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Brazilian Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Criar documento..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Criar sessão..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Abrir documento..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Fecha um documento aberto" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Gereciar documento" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "Direção" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Salvar documento" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Direção" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Host:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "Documento %0% não existe" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Lista de usuários" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "Nenhum" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "Arquivos" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Abrir documento..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Abrir documento..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Salvar sessão" - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "_Editar" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Procurar..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "Procurar por:" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Procurar e substituir" - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Ir para a linha..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "Preferências..." - -#: ../code/core/header.cpp:260 -#, fuzzy -msgid "_View" -msgstr "Visualizar" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Barra de ferramentas" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Lista de usuários" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "_Ajuda" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "Sobre" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Mostra os créditos e direitos autorais do Gobby" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Lista de usuários" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Lista de documentos" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Usuário" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Salva um documento em outro local" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Gereciar documento" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Procurar..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Pesquisar" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Substituir por" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "Diferenciar maiúsculas de minúsculas" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "Coincidir palavras inteiras" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "Substituir _tudo" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "_Substituir" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "_Substituir" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "O documento \"%0%\" não pôde ser encontrado." - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "Nenhuma ocorrência foi substituída" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "%0% ocorrência foi substituída" -msgstr[1] "%0% ocorrências foram substituídas" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "Ir para a linha" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Número da linha:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "Ir para a linha" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Usuário" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Lista de usuários" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Novo Nome:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Senha do usuário:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "Paradas de tabulação" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "Indentação" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Comportamento das teclas Home/End" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "Largura da tabulação:" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Inserir espaços ao invés de tabulações" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "Habilitar Indentação automática" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "Teclas inteligentes home/end" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "Habilitar Indentação automática" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"Com esta opção ativada, as teclas Home/End irão para o primeiro/último " -"caractere antes de ir ao início/fim da linha." - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "Quebra de linha" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Número de linhas" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Linha atual" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Margem direita" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "Combinar parênteses" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "Ativar seleção de texto" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "Não dividir palavras em duas linhas" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Mostrar número de linhas" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Realça a linha atual" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Exibir margem direita" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Margem direita na coluna:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "Destacar parênteses correspondentes" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Barra de ferramentas" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Fonte" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Mostrar apenas o texto" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Mostrar apenas os icones" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Mostrar ícones e texto" - -#: ../code/dialogs/preferencesdialog.cpp:508 -msgid "Show text besides icons" -msgstr "Mostrar texto ao lado dos ícones" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "Conexão perdida" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "Preferências" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Usuário" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Editor" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Visualizar" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Aparência" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Criar documento..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Salvar documento atual" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Abrir documento..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Fecha um documento aberto" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Salvar como..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Carrega um arquivo em um novo documento" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Lista de documentos" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "Você ainda está conectado a uma sessão" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "Você quer fechar a sessão Gobby mesmo assim?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -#, fuzzy -msgid "Gobby Collaborative Editor (0.5)" -msgstr "Um editor de textos colaborativo" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "Falha ao converter para UTF-8: a codificação é desconhecida ou é uma " -#~ "entrada binária" - -#~ msgid "Character Encoding:" -#~ msgstr "Encriptação de caractere" - -#~ msgid "Send" -#~ msgstr "Enviar" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "Comando '%0%' não encontrado. Tente /help para listar comandos existens" - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "Use: /remove " - -#~ msgid "Subscribe" -#~ msgstr "Subscrever" - -#~ msgid "Match as regular expression" -#~ msgstr "Coincidir expressão regular" - -#~ msgid "_Up" -#~ msgstr "_Acima" - -#~ msgid "_Down" -#~ msgstr "_Abaixo" - -#~ msgid "Search and replace" -#~ msgstr "Pesquisar e Substituir" - -#~ msgid "No document currently opened" -#~ msgstr "Não há documento aberto" - -#~ msgid "_Go to line" -#~ msgstr "_Ir para a linha" - -#~ msgid "Opens a new obby session" -#~ msgstr "Abrir uma nova sessão obby" - -#~ msgid "Join session..." -#~ msgstr "Acessar sessão..." - -#~ msgid "Joins an existing obby session" -#~ msgstr "Acessa uma sessão obby existente" - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Salva completamente a sessão da última restauração" - -#~ msgid "Quit session" -#~ msgstr "Sair da sessão" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Abandona a sessão obby atual" - -#~ msgid "Quit" -#~ msgstr "Sair" - -#~ msgid "Quits the application" -#~ msgstr "Encerrar aplicação" - -#~ msgid "_Session" -#~ msgstr "_Sessão" - -#~ msgid "Creates a new document" -#~ msgstr "Criar um novo documento" - -#~ msgid "Saves a document into a file" -#~ msgstr "Salva um documento em um arquivo" - -#~ msgid "Close document" -#~ msgstr "Fechar documento" - -#~ msgid "Search for a text in the current document" -#~ msgstr "Procurar por um texto no documento atual" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "Procura por um texto e o substitui por outro" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "Move o cursor para uma linha especificada" - -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "" -#~ "Exibe um diálogo para personalizar o Gobby conforme suas necessidades" - -#~ msgid "Document preferences..." -#~ msgstr "Preferências do documento..." - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "" -#~ "Exibe um diálogo de preferências a ser aplicadas apenas a este documento" - -#~ msgid "Syntax" -#~ msgstr "Sintaxe" - -#~ msgid "_User" -#~ msgstr "_Usuário" - -#~ msgid "Set password..." -#~ msgstr "Definir senha..." - -#~ msgid "Sets a password for this user" -#~ msgstr "Definir uma senha para o usuário" - -#~ msgid "Set colour..." -#~ msgstr "Definir cor..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Definir uma nova cor para o usuário" - -#~ msgid "_Window" -#~ msgstr "_Janela" - -#, fuzzy -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Mostra uma lista de usuários atualmente inscritos" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Mostra uma lista de documentos na sessão atual" - -#~ msgid "Chat" -#~ msgstr "Chat" - -#~ msgid "Displays a chat to talk to other people in the session" -#~ msgstr "Mostra um chat para falar com outras pessoas na sessão" - -#~ msgid "Unselects the current language" -#~ msgstr "Desmarque o idioma atual." - -#~ msgid "Selects %0% as language" -#~ msgstr "Selecione %0% como idioma" - -#~ msgid "Create obby session" -#~ msgstr "Criar sessão obby" - -#~ msgid "Port:" -#~ msgstr "Porta:" - -#~ msgid "Name:" -#~ msgstr "Nome:" - -#~ msgid "Colour:" -#~ msgstr "Cor:" - -#~ msgid "Password:" -#~ msgstr "Senha:" - -#~ msgid "Restore session:" -#~ msgstr "Restaurar sessão:" - -#~ msgid "Restore session" -#~ msgstr "Restaurar sessão" - -#~ msgid "_Host" -#~ msgstr "_Host" - -#~ msgid "Opening obby session..." -#~ msgstr "Abrindo sessão obby..." - -#~ msgid "Join obby session" -#~ msgstr "Acessar sessão obby" - -#~ msgid "Local network" -#~ msgstr "Rede local" - -#~ msgid "Host" -#~ msgstr "Host" - -#~ msgid "Port" -#~ msgstr "Porta" - -#~ msgid "Failure" -#~ msgstr "Falha" - -#~ msgid "" -#~ "User password for user '%0%' required. You may either choose another user " -#~ "name, type in your user password or cancel the connection." -#~ msgstr "" -#~ "É necessária a senha para o usuário '%0%'. Você pode escolher outro nome " -#~ "de usuário, digitar sua senha ou cancelar a conexão." - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Nome ká está em uso. Você pode escolher outro nome ou cancelar a conexão." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "Esta cor já está em uso. Escolha outra cor ou cancele a conexão." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "É necessária a senha da sessão. Digite a senha para acessar a sessão obby." - -#~ msgid "Session password:" -#~ msgstr "Senha da sessão:" - -#~ msgid "Joining obby session..." -#~ msgstr "Acessando sessão Gobby..." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "Configurando encriptação da conexão (TLS)..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "Pacote de acesso enviado. Aguardando resposta..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "Logado com sucesso, sincronizando sessão..." - -#, fuzzy -#~ msgid "Windows" -#~ msgstr "Janelas" - -#~ msgid "Remember the positions and states" -#~ msgstr "Lembrar as posições e estados" - -#, fuzzy -#~ msgid "Highlight the window on incoming chat messages" -#~ msgstr "Destacar a janela quando chegar mensagens" - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "Abrir automaticamente novos documentos criados remotamente" - -#~ msgid "Pattern" -#~ msgstr "Filtros" - -#~ msgid "Language" -#~ msgstr "Idioma" - -#~ msgid "Mime type" -#~ msgstr "Tipo MIME" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "Este é uma lista de todos os tipos de arquivos reconhecidos" - -#~ msgid "Pattern must not be empty." -#~ msgstr "O Padrão não deve estar vazio." - -#~ msgid "There is no language with the mime type '%0%'." -#~ msgstr "Não há idioma com o tipo MIME '%0%'." - -#~ msgid "Behaviour" -#~ msgstr "Comportamento" - -#~ msgid "Not connected" -#~ msgstr "Não conectado" - -#~ msgid "Selected language: %0%" -#~ msgstr "Idioma selecionado: %0%" - -#~ msgid "No language selected" -#~ msgstr "Nenhuma idioma selecionado" - -#~ msgid "Online" -#~ msgstr "Online" - -#~ msgid "Offline" -#~ msgstr "Offline" - -#, fuzzy -#~ msgid "" -#~ "Zeroconf initialisation failed. Probably you need to run avahi-daemon or " -#~ "mDNSResponder, depending on the library you use, as root prior to Gobby. " -#~ "Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "A inicialização Zeroconf falhou. Provavelmente você precisa rodar o avahi-" -#~ "daemon ou o mDNSResponder, dependendo da biblioteca que você usa, como " -#~ "root antes do Gooby. O suporte Zeroconf está desativado para esta sessão" - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "Usar extensão padrão .obby se nenhuma for fornecida" - -#~ msgid "Save obby session" -#~ msgstr "Salvar sessão obby" - -#~ msgid "Create document" -#~ msgstr "Criar documento" - -#~ msgid "Enter document name" -#~ msgstr "Insira o nome do documento." - -#~ msgid "Open new document" -#~ msgstr "Abrir novo documento" - -#~ msgid "" -#~ "Click on \"Apply\" to apply the new settings to documents that are " -#~ "currently open. \"OK\" will just store the values to use them with newly " -#~ "created documents." -#~ msgstr "" -#~ "Clique em \"Aplicar\" para aplicar as novas configurações aos documentos " -#~ "atualmente abertos. \"OK\" irá guardar os valores para serem usados em " -#~ "novos documentos criados." - -#~ msgid "Set user password" -#~ msgstr "Definir senha do usuário" - -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "Defina uma senha para sua conta. Quando você tentar efetuar o login, será " -#~ "pedida esta senha." - -#~ msgid "" -#~ "These preferences affect only the currently active document \"%0%\". If " -#~ "you want to change global preferences, use the preferences menu item in " -#~ "the \"Edit\" menu." -#~ msgstr "" -#~ "Estas preferências afetam somente o documento ativo \"%0%. Se você quiser " -#~ "mudar as preferências globais, use o menu de preferências no menu \"Editar" -#~ "\"" - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "A mudança de cor falhou: a cor já está sendo usada." - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "Conectado em %0%" - -#, fuzzy -#~ msgid "Serving on port %0%" -#~ msgstr "Servidor na porta %0%" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "Salvar alterações no documento %0% antes de fechar?" - -#~ msgid "" -#~ "If you don't save, changes will be discarded, but may still be retrieved " -#~ "if you re-subscribe to the document as long as the session remains open." -#~ msgstr "" -#~ "Se você não salvar, as mudanças serão descartadas. Elas poderão poderão " -#~ "ser recuperadas desde que você volte a acessar o documento antes de a " -#~ "sessão ser fechada." - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "Se você não salvar, alterações serão descartadas." - -#~ msgid "Close without saving" -#~ msgstr "Fechar sem salvar" diff -Nru gobby-infinote-0.4.92/po/pt.po gobby-infinote-0.4.93/po/pt.po --- gobby-infinote-0.4.92/po/pt.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/pt.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1033 +0,0 @@ -# Portuguese translation for gobby -# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 -# This file is distributed under the same license as the gobby package. -# FIRST AUTHOR , 2006. -# -msgid "" -msgstr "" -"Project-Id-Version: gobby\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-06-16 00:19+0000\n" -"Last-Translator: Miguel Luis \n" -"Language-Team: Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Criar documento..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Criar sessão..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Abrir documento..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Fecha um documento aberto" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Introduza o nome do documento" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -msgid "New Directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Gravar documento" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Ligação perdida" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Endereço:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "O documento %0% nao existe" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Lista de utilizadores" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "Nenhum" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "Ficheiros" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Abrir documento..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Abrir documento..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Guardar sessão..." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "Editar" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Localizar..." - -#: ../code/core/header.cpp:240 -msgid "Find Ne_xt" -msgstr "" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Procurar e substituir..." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Ir para linha..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "Preferências..." - -#: ../code/core/header.cpp:260 -msgid "_View" -msgstr "Ver" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Barra de Ferramentas" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Lista de utilizadores" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "A_juda" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "Sobre" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Mostra os créditos e direitos de autor do Gobby" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Lista de utilizadores" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Lista de Documentos" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Utilizador" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Guarda o documento noutro local" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Introduza o nome do documento" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Localizar..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Procurar" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Substituir _tudo" - -#: ../code/dialogs/finddialog.cpp:53 -msgid "_Match case" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:54 -msgid "Match _entire word only" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "Substituir _tudo" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "_Substituir" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "_Substituir" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "A palavra \"%0% não foi encontrada no documento" - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "Nenhuma ocorrência foi substituida" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "%0% ocurrência foi substituida" -msgstr[1] "%0% ocurrências foram substituidas" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Linha numero:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "_Ir para a linha" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Utilizador" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Lista de utilizadores" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Novo nome:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Palavra-chave do utilizador:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "Parar tabulações" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "Indentação" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Comportamento das teclas Home/End" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "Tamanho da Tabulação" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Inserir espaços em vez de tabs" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "Ligar indentação automatica" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "Home/End inteligente" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "Ligar indentação automatica" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"Com esta opção activada, as teclas Home/End possibilitam o salto para o " -"primeiro/último carácter antes de se dirigir para o início/fim da linha" - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "Encobrir texto" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Linhas numeradas" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Linha corrente" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Margem direita" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "Correspondência de chavetas" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "Activar texto encoberto" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "Não dividir palavras ao longo de duas linhas" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Mostrar linhas numeradas" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Destacar linha actual" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Mostrar margem direita" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Margem direita na coluna:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "Realçar chaveta coincidente" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Barra de Ferramentas" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Tipo de letra" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Apenas mostrar texto" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Apenas mostrar os ícones" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Mostrar tanto os ícones como o texto" - -#: ../code/dialogs/preferencesdialog.cpp:508 -#, fuzzy -msgid "Show text besides icons" -msgstr "Apenas mostrar texto" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "Ligação perdida" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "Preferências" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Utilizador" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Editor" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Ver" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Aparência" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Criar documento..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Guardar o documento actual" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Abrir documento..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Fecha um documento aberto" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Guardar documento como..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Incorporar um ficheiro num novo documento" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Lista de Documentos" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "Mesmo assim deseja fechar o Gobby?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -#, fuzzy -msgid "Gobby Collaborative Editor (0.5)" -msgstr "Um editor de texto colaborativo" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "Erro ao converter o input em UTF-8: Não é reconhecido código ou possível " -#~ "input de binário" - -#~ msgid "Character Encoding:" -#~ msgstr "Codificação de caracteres:" - -#~ msgid "Send" -#~ msgstr "Enviar" - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "Uso: /remove " - -#~ msgid "Subscribe" -#~ msgstr "Subscrever" - -#~ msgid "Search and replace" -#~ msgstr "Procurar e substituir" - -#~ msgid "No document currently opened" -#~ msgstr "Nenhum documento aberto" - -#~ msgid "Opens a new obby session" -#~ msgstr "Abre uma nova sessão obby" - -#~ msgid "Join session..." -#~ msgstr "Entrar numa sessão..." - -#~ msgid "Joins an existing obby session" -#~ msgstr "Entrar numa sessão obby já existente" - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Guardar a sessão para utilizar mais tarde" - -#~ msgid "Quit session" -#~ msgstr "Terminar sessão" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Terminar a sessão actual" - -#~ msgid "Quit" -#~ msgstr "Sair" - -#~ msgid "Quits the application" -#~ msgstr "Sair da aplicação" - -#~ msgid "_Session" -#~ msgstr "_Sessão" - -#~ msgid "Creates a new document" -#~ msgstr "Cria um novo documento" - -#~ msgid "Saves a document into a file" -#~ msgstr "Guarda o documento num ficheiro" - -#~ msgid "Close document" -#~ msgstr "Fechar o documento" - -#~ msgid "Search for a text in the current document" -#~ msgstr "Procurar texto no documento corrente" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "Procurar e substituir texto" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "Mover o cursor para uma linha especifica" - -#, fuzzy -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "Mostra um menu para ajustar o Gobby às suas necessidades" - -#~ msgid "Document preferences..." -#~ msgstr "Preferências do documento" - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "" -#~ "Mostra uma janela de preferências que apenas se aplicam a este documento" - -#~ msgid "Syntax" -#~ msgstr "Sintaxe" - -#~ msgid "_User" -#~ msgstr "Utilizador" - -#~ msgid "Set password..." -#~ msgstr "Definir palavra-passe..." - -#~ msgid "Sets a password for this user" -#~ msgstr "Define uma palavra-passe para este utilizador" - -#~ msgid "Set colour..." -#~ msgstr "Definir cor..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Define a cor do utilizador" - -#~ msgid "_Window" -#~ msgstr "Janela" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Mostra uma lista de utilizadores actualmente ligados" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Mostra uma lista de documentos da sessão actual" - -#~ msgid "Chat" -#~ msgstr "Conversar" - -#~ msgid "Unselects the current language" -#~ msgstr "Desmarca a linguagem actual" - -#~ msgid "Selects %0% as language" -#~ msgstr "Selecciona a Linguagem %0%" - -#~ msgid "Create obby session" -#~ msgstr "Criar sessão obby" - -#~ msgid "Port:" -#~ msgstr "Porta:" - -#~ msgid "_Host" -#~ msgstr "_Endereço" - -#~ msgid "Join obby session" -#~ msgstr "Ligar a uma sessão obby" - -#~ msgid "Local network" -#~ msgstr "Rede local" - -#~ msgid "Host" -#~ msgstr "Endereço" - -#~ msgid "Port" -#~ msgstr "Porta" - -#, fuzzy -#~ msgid "Failure" -#~ msgstr "Ficheiros" - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "O nome que escolheu está a ser utilizado. Deve escolher outro nome ou " -#~ "cancelar a ligação." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "" -#~ "A cor que escolheu está a ser utilizada. Deve escolher outra ou cancelar " -#~ "a ligação." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "É necessária a palavra-chave de sessão. Tem de a inserir para se poder " -#~ "ligar à sessão obby." - -#~ msgid "Session password:" -#~ msgstr "Palavra-chave da sessão:" - -#~ msgid "Joining obby session..." -#~ msgstr "Ligando à sessão obby..." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "A encriptar ligação (TLS)..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "Pacote de inicio de sessão enviado, a esperar resposta..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "Autenticado com sucesso, sincronizando a sessão..." - -#~ msgid "Windows" -#~ msgstr "Janelas" - -#~ msgid "Remember the positions and states" -#~ msgstr "Relembrar estados e posições" - -#~ msgid "Pattern" -#~ msgstr "Modelo" - -#~ msgid "Language" -#~ msgstr "Linguagem" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "Isto é uma lista de todos os tipos de ficheiro reconhecidos" - -#~ msgid "Not connected" -#~ msgstr "Nao ligado" - -#~ msgid "Selected language: %0%" -#~ msgstr "Linguagem seleccionada: %0%" - -#~ msgid "No language selected" -#~ msgstr "Nenhuma linguagem selecionada" - -#~ msgid "Online" -#~ msgstr "Ligado" - -#~ msgid "Offline" -#~ msgstr "Desligado" - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "Usar a extensão por omissão .obby se nenhuma outra lhe for dada" - -#~ msgid "Save obby session" -#~ msgstr "Guardar sessão obby" - -#~ msgid "Create document" -#~ msgstr "Criar documento" - -#~ msgid "Enter document name" -#~ msgstr "Introduza o nome do documento" - -#~ msgid "Open new document" -#~ msgstr "Abrir um novo documento" - -#~ msgid "Set user password" -#~ msgstr "Definir a senha de utilizador" - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "Impossivel mudar de cor: A cor escolhida está em uso" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "Ligado a %0%:%1%" - -#~ msgid "Serving on port %0%" -#~ msgstr "Servindo na porta %0%" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "Guardar alterações em \"%0%\" antes de fechar?" - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "Se não guardar as alterações serão perdidas." - -#~ msgid "Close without saving" -#~ msgstr "Sair sem guardar" - -#~ msgid "Could not open file '%0%' for writing" -#~ msgstr "Impossivel abrir ficheiro '%0%' para escrita" diff -Nru gobby-infinote-0.4.92/po/ru.po gobby-infinote-0.4.93/po/ru.po --- gobby-infinote-0.4.92/po/ru.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/ru.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1142 +0,0 @@ -# Russian translation for gobby -# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 -# This file is distributed under the same license as the gobby package. -# FIRST AUTHOR , 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: gobby\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-09-27 14:38+0000\n" -"Last-Translator: Nkolay Parukhin \n" -"Language-Team: Russian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Создать документ..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Создать сеанс..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Открыть документ..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Закрывает открытый документ" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Управление документами" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "Направление" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Сохранить документ" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Направление" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Имя машины:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "Документ %0% не существует" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Список пользователей" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "Отсутсвует" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "Файлы" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Открыть документ..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Открыть документ..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Сохранить сеанс..." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "_Правка" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Найти..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "Найти:" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Найти и заменить..." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Перейти к строке..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "Параметры..." - -#: ../code/core/header.cpp:260 -#, fuzzy -msgid "_View" -msgstr "Вид" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Панель инструментов" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Список пользователей" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "Справка" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "О программе" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Показывает копирайт Gobby и список разработчиков" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Список пользователей" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Список документов" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Пользователь" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Сохраняет документ в другом месте" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Управление документами" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Найти..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Найти" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Заменить на:" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "Учитывать регистр" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "Только слово целиком" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "Заменить _все" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "_Заменить" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "_Заменить" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "\"%0%\" не найдено в документе." - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "Ни одно вхождение не заменено" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "%0% вхождение было заменено" -msgstr[1] "%0% вхождения было заменено" -msgstr[2] "%0% вхождений было заменено" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "Перейти к строке" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Номер строки:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "Перейти к строке" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Пользователь" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Список пользователей" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Новое имя:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Пароль пользователя:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "Табуляция" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "Отступ" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Поведение Home/End" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "Ширина табуляции:" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Вставлять пробелы вместо табуляции" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "Включить автоотступ" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "Умные home/end" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "Включить автоотступ" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"При включении, клавиши Home/End перемещают кусор к первому/последнему " -"символу перед переходом в начало/конец строки." - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "Перенос текста" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Номера строк" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Текущая строка" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Правое поле" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "Согласование скобок" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "Включить перенос текста" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "Не разделять слова на две строки" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Показывать номера строк" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Подсвечивать текущую строку" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Показывать правое поле" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Правое поле по столбцу:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "Подсвечивать соответствующую скобку" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Панель инструментов" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Шрифт" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Показать только текст" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Показать только пиктограммы" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Показать пиктограммы и текст" - -#: ../code/dialogs/preferencesdialog.cpp:508 -msgid "Show text besides icons" -msgstr "Показать текст рядом с пиктограммами" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "Соединение потеряно" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "Параметры" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Пользователь" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Редактор" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Вид" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Внешний вид" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Создать документ..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Сохранить текущий документ" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Открыть документ..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Закрывает открытый документ" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Сохранить документ как..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Загрузить файл в новый документ" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Список документов" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "Вы подключены к сеансу" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "Вы всё равно хотите закрыть Gobby?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -#, fuzzy -msgid "Gobby Collaborative Editor (0.5)" -msgstr "Совместный текстовый редактор" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "Ошибка конвертации ввода в UTF-8: Либо кодировка неизвестна, либо " -#~ "бинарный ввод." - -#~ msgid "Character Encoding:" -#~ msgstr "Кодировка символов:" - -#~ msgid "Send" -#~ msgstr "Отправить" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "Команда '%0%' не найдена. Введите /help для вывода списка доступных " -#~ "команд." - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "Использование: /remove <документ>" - -#~ msgid "Subscribe" -#~ msgstr "Подписаться" - -#~ msgid "Match as regular expression" -#~ msgstr "Как регулярное выражение" - -#~ msgid "_Up" -#~ msgstr "В_верх" - -#~ msgid "_Down" -#~ msgstr "В_низ" - -#~ msgid "Search and replace" -#~ msgstr "Найти и заменить" - -#~ msgid "No document currently opened" -#~ msgstr "Нет открытых документов" - -#~ msgid "_Go to line" -#~ msgstr "_Перейти к строке" - -#~ msgid "Opens a new obby session" -#~ msgstr "Открывает новый obby сеанс" - -#~ msgid "Join session..." -#~ msgstr "Подключиться к сеансу..." - -#~ msgid "Joins an existing obby session" -#~ msgstr "Подключение к существующему obby сеансу..." - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Сохраняет сеанс для последующего восстановления" - -#~ msgid "Quit session" -#~ msgstr "Покинуть сеанс" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Покидание текущего obby сеанса" - -#~ msgid "Quit" -#~ msgstr "Выход" - -#~ msgid "Quits the application" -#~ msgstr "Выход из программы" - -#~ msgid "_Session" -#~ msgstr "_Сеанс" - -#~ msgid "Creates a new document" -#~ msgstr "Создание нового документа" - -#~ msgid "Saves a document into a file" -#~ msgstr "Сохранение документа в файл" - -#~ msgid "Close document" -#~ msgstr "Закрыть документ" - -#~ msgid "Search for a text in the current document" -#~ msgstr "Поиск текста в текущем документе" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "Поиск текста и замена его другим" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "Переместить курсор на указанную строку" - -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "Показывает диалог настройки Gobby" - -#~ msgid "Document preferences..." -#~ msgstr "Параметры документа..." - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "" -#~ "Показывает диалог параметров, которые применимы только к этому документу" - -#~ msgid "Syntax" -#~ msgstr "Синтаксис" - -#~ msgid "_User" -#~ msgstr "По_льзователь" - -#~ msgid "Set password..." -#~ msgstr "Установить пароль..." - -#~ msgid "Sets a password for this user" -#~ msgstr "Установить пароль для этого пользователя" - -#~ msgid "Set colour..." -#~ msgstr "Установить цвет..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Установить новый цвет для этого пользователя" - -#~ msgid "_Window" -#~ msgstr "_Окно" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Показывает список подключенных пользователей" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Показывает список документов текущего сеанса" - -#~ msgid "Chat" -#~ msgstr "Разговор" - -#~ msgid "Displays a chat to talk to other people in the session" -#~ msgstr "Показывает окно чата для разговора с другими людьми в этом сеансе" - -#~ msgid "Unselects the current language" -#~ msgstr "Отменить выбор текущего языка" - -#~ msgid "Selects %0% as language" -#~ msgstr "Выбирает язык - %0%" - -#~ msgid "Create obby session" -#~ msgstr "Создать сеанс obby" - -#~ msgid "Port:" -#~ msgstr "Порт:" - -#~ msgid "Name:" -#~ msgstr "Имя:" - -#~ msgid "Colour:" -#~ msgstr "Цвет:" - -#~ msgid "Password:" -#~ msgstr "Пароль:" - -#~ msgid "Restore session:" -#~ msgstr "Восстановить сеанс:" - -#~ msgid "Restore session" -#~ msgstr "Восстановить сеанс" - -#~ msgid "_Host" -#~ msgstr "_Создать" - -#~ msgid "Opening obby session..." -#~ msgstr "Открытие obby сеанса..." - -#~ msgid "Join obby session" -#~ msgstr "Подключиться к obby сеансу" - -#~ msgid "Local network" -#~ msgstr "Локальная сеть" - -#~ msgid "Host" -#~ msgstr "Имя машины" - -#~ msgid "Port" -#~ msgstr "Порт" - -#~ msgid "Failure" -#~ msgstr "Ошибка" - -#~ msgid "" -#~ "User password for user '%0%' required. You may either choose another user " -#~ "name, type in your user password or cancel the connection." -#~ msgstr "" -#~ "Требуется пароль пользователя для пользователя '%0%'. Вы можете выбрать " -#~ "другое имя, ввести пароль вашего пользователя или отменить подключение." - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Имя уже используется. Вы можете выбрать другое имя или отменить " -#~ "подключение." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Цвет уже используется. Вы можете выбрать другой цвет или отменить " -#~ "подключение." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "Требутеся сеансовый пароль. Вы можете ввести пароль для подключения к " -#~ "obby сеансу." - -#~ msgid "Session password:" -#~ msgstr "Сеансовый пароль:" - -#~ msgid "Joining obby session..." -#~ msgstr "Подключение к obby сеансу..." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "Установка шифрования сеанса (TLS)..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "Пакет входа отправлен, ожидание ответа..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "Успешное подключение, синхронизация сеанса..." - -#~ msgid "Windows" -#~ msgstr "Окна" - -#~ msgid "Remember the positions and states" -#~ msgstr "Запоминать положение и состояние" - -#~ msgid "Highlight the window on incoming chat messages" -#~ msgstr "Подсвечивать окно при входящих сообщениях чата" - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "Открыть новый удалённо-созданный документ автоматически" - -#~ msgid "Pattern" -#~ msgstr "Шаблон" - -#~ msgid "Language" -#~ msgstr "Язык" - -#~ msgid "Mime type" -#~ msgstr "MIME тип" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "Это список всех распознаваемых типов файлов" - -#~ msgid "Pattern must not be empty." -#~ msgstr "Шаблон не должен быть пустым." - -#~ msgid "There is no language with the mime type '%0%'." -#~ msgstr "Нет языка с mime типом '%0%'." - -#~ msgid "Behaviour" -#~ msgstr "Поведение" - -#~ msgid "Not connected" -#~ msgstr "Не подключено" - -#~ msgid "Selected language: %0%" -#~ msgstr "Выбранный язык: %0%" - -#~ msgid "No language selected" -#~ msgstr "Язык не выбран" - -#~ msgid "Online" -#~ msgstr "Подключеные" - -#~ msgid "Offline" -#~ msgstr "Отключённые" - -#~ msgid "" -#~ "Zeroconf initialisation failed. Probably you need to run avahi-daemon or " -#~ "mDNSResponder, depending on the library you use, as root prior to Gobby. " -#~ "Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Сбой инициализации Zeroconf. Возможно вам нужно выполнить avahi-daemon " -#~ "или mDNSResponder как root перед запуском Gobby. Поддержка Zeroconf " -#~ "отключена в этом сеансе." - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "Использовать расширение .obby если другое не задано" - -#~ msgid "Save obby session" -#~ msgstr "Сохранить obby сеанс" - -#~ msgid "Create document" -#~ msgstr "Создать документ" - -#~ msgid "Enter document name" -#~ msgstr "Введите имя документа" - -#~ msgid "Open new document" -#~ msgstr "Открыть новый документ" - -#~ msgid "" -#~ "Click on \"Apply\" to apply the new settings to documents that are " -#~ "currently open. \"OK\" will just store the values to use them with newly " -#~ "created documents." -#~ msgstr "" -#~ "Нажмите \"Применить\" для применения новых настроек к открытым " -#~ "документам. \"OK\" только сохраняет значения для использования их во " -#~ "вновь создаваемых документах." - -#~ msgid "Set user password" -#~ msgstr "Установит пароль пользователя" - -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "Установите пароль пользователя для вашей учетной записи. Когда вы " -#~ "попытаетесь подключиться в следующий раз у вас будет запрошен ваш пароль." - -#~ msgid "" -#~ "These preferences affect only the currently active document \"%0%\". If " -#~ "you want to change global preferences, use the preferences menu item in " -#~ "the \"Edit\" menu." -#~ msgstr "" -#~ "Эти параметры повлияют только на текущий активный документ \"%0%\". Если " -#~ "выхотите изменить общие параметры, используйте пункт \"Параметры\" в меню " -#~ "\"Правка\"." - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "Ошибка смены цвета: Цвет уже используется" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "Подключен к %0%:%1%" - -#~ msgid "Serving on port %0%" -#~ msgstr "Работает на порту %0%" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "Сохранить изменения в документе \"%0%\" перед закрытием?" - -#~ msgid "" -#~ "If you don't save, changes will be discarded, but may still be retrieved " -#~ "if you re-subscribe to the document as long as the session remains open." -#~ msgstr "" -#~ "Если вы не сохраните, изменения будут потеряны, но могут быть снова " -#~ "получены, если вы переподпишетесь на документ, так долго, пока сеанс " -#~ "остаётся открытым." - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "Если не сохранить, изменения будут потеряны." - -#~ msgid "Close without saving" -#~ msgstr "Закрыть без сохранения" - -#~ msgid "Could not open file '%0%' for writing" -#~ msgstr "Невозможно открыть файл '%0%' для записи" diff -Nru gobby-infinote-0.4.92/po/sv.po gobby-infinote-0.4.93/po/sv.po --- gobby-infinote-0.4.92/po/sv.po 2009-04-21 19:58:08.000000000 +0100 +++ gobby-infinote-0.4.93/po/sv.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,1206 +0,0 @@ -# Swedish translation for gobby -# Copyright (c) Free Software Foundation, Inc. -# This file is distributed under the same license as the gobby package. -# Daniel Nylander , 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: gobby\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-09-01 23:52+0000\n" -"Last-Translator: Daniel Nylander \n" -"Language-Team: Swedish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "Skapa dokument..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "Skapa session..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "Öppna dokument..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "Stänger ett öppet dokument" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "Dokumenthantering" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -#, fuzzy -msgid "New Directory" -msgstr "Riktning" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "Spara dokument" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "Riktning" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "Värddator:" - -#: ../code/core/browser.cpp:209 -#, fuzzy -msgid "Device \"%1\" does not exist" -msgstr "Dokumentet %0% finns inte" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "Användare" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "Ingen" - -#: ../code/core/header.cpp:211 -#, fuzzy -msgid "_File" -msgstr "Filer" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "Öppna dokument..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "Öppna dokument..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "Spara session..." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -msgid "_Edit" -msgstr "R_edigera" - -#: ../code/core/header.cpp:238 -#, fuzzy -msgid "_Find..." -msgstr "Sök..." - -#: ../code/core/header.cpp:240 -#, fuzzy -msgid "Find Ne_xt" -msgstr "Sök efter:" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -#, fuzzy -msgid "Find and Rep_lace..." -msgstr "Sök och ersätt..." - -#: ../code/core/header.cpp:254 -#, fuzzy -msgid "Go to _Line..." -msgstr "Hoppa till rad..." - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "Inställningar..." - -#: ../code/core/header.cpp:260 -msgid "_View" -msgstr "_Visa" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "Verktygsrad" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -#, fuzzy -msgid "View User List" -msgstr "Användare" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -msgid "_Help" -msgstr "_Hjälp" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "Om" - -#: ../code/core/header.cpp:293 -msgid "Shows Gobby's copyright and credits" -msgstr "Visar information om Gobbys copyright och medarbetare" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "Användare" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "Dokumentlista" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "Användare" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "Sparar dokument till annan plats" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "Dokumenthantering" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Find" -msgstr "Sök..." - -#: ../code/dialogs/finddialog.cpp:49 -#, fuzzy -msgid "_Search for:" -msgstr "Sök" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "Ersätt med:" - -#: ../code/dialogs/finddialog.cpp:53 -#, fuzzy -msgid "_Match case" -msgstr "Matcha gemener/VERSALER" - -#: ../code/dialogs/finddialog.cpp:54 -#, fuzzy -msgid "Match _entire word only" -msgstr "Matcha endast hela ord" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "Ersätt _alla" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "_Ersätt" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "_Ersätt" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -#, fuzzy -msgid "Phrase \"%1\" has not been found" -msgstr "\"%0%\" hittades inte i dokumentet." - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "Inga ersättningar gjordes" - -#: ../code/dialogs/finddialog.cpp:338 -#, fuzzy -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "%0% ersättning gjordes" -msgstr[1] "%0% ersättningar gjordes" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "Gå till rad" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "Radnummer:" - -#: ../code/dialogs/gotodialog.cpp:51 -#, fuzzy -msgid "Go To _Line" -msgstr "Gå till rad" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "Användare" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -#, fuzzy -msgid "User Color" -msgstr "Användare" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -#, fuzzy -msgid "User name:" -msgstr "Nytt namn:" - -#: ../code/dialogs/preferencesdialog.cpp:234 -#, fuzzy -msgid "User color:" -msgstr "Användarlösenord:" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "Tabulatorstopp" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "Indrag" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Home/End-beteende" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "Tabulatorbredd:" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "Använd mellanslag istället för tabulator" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "Aktivera automatiskt indrag" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "Smart home/end" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "Aktivera automatiskt indrag" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"Med denna valmöjlighet aktiverad flyttar Home/End-knapparna markören till " -"första/sista tecknet innan de går till början/slutet av raden." - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "Textbrytning" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "Radnummer" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "Nuvarande rad" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "Högermarginal" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "Hakparentesmatchning" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "AKtivera textbrytning" - -#: ../code/dialogs/preferencesdialog.cpp:405 -msgid "Do not split words over two lines" -msgstr "Dela inte ord över två rader" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "Visa radnummer" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "Färgmarkera aktuell rad" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "Visa högermarginal" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "Högermarginal vid kolumn:" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "Framhäv matchande klammer" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "Verktygsrad" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "Teckensnitt" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "Visa endast text" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "Visa endast ikoner" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "Visa både ikoner och text" - -#: ../code/dialogs/preferencesdialog.cpp:508 -msgid "Show text besides icons" -msgstr "Visa text bredvid ikoner" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "Anslutningen bruten" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "Inställningar" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "Användare" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "Redigerare" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "Visa" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "Utseende" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "Skapa dokument..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "Spara aktuellt dokument" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "Öppna dokument..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "Stänger ett öppet dokument" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "Spara dokument som..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "Laddar in en fil till ett nytt dokument" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -#, fuzzy -msgid "Could not create directory \"%1\": %2" -msgstr "Kunde inte spara filen '%0%': %1%" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "Dokumentlista" - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "Du är fortfarande ansluten till en session" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "Vill du stänga Gobby ändå?" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -#, fuzzy -msgid "Gobby Collaborative Editor (0.5)" -msgstr "En kollaborativ textredigerare" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "Lyckades inte konvertera indata till UTF-8: Antingen är kodningen okänd " -#~ "eller indatan binär." - -#~ msgid "Character Encoding:" -#~ msgstr "Teckenkodning:" - -#~ msgid "Send" -#~ msgstr "Skicka" - -#~ msgid "Command '%0%' not found. Type /help for a list of existing commands." -#~ msgstr "" -#~ "Kommandot \"%0%\" hittades inte. Skriv /help för en lista på befintliga " -#~ "kommandon." - -#~ msgid "%0%: %1%" -#~ msgstr "%0%: %1%" - -#~ msgid "Usage: /remove " -#~ msgstr "Användning: /remove " - -#~ msgid "Subscribe" -#~ msgstr "Prenumerera" - -#~ msgid "Match as regular expression" -#~ msgstr "Matcha som ett reguljärt sökuttryck" - -#~ msgid "_Up" -#~ msgstr "_Uppåt" - -#~ msgid "_Down" -#~ msgstr "_Nedåt" - -#~ msgid "Search and replace" -#~ msgstr "Sök och ersätt" - -#~ msgid "No document currently opened" -#~ msgstr "Inga dokument är öppna" - -#~ msgid "_Go to line" -#~ msgstr "_Gå till rad" - -#~ msgid "Opens a new obby session" -#~ msgstr "Öppnar en ny obby-session" - -#~ msgid "Join session..." -#~ msgstr "Anslut till session..." - -#~ msgid "Joins an existing obby session" -#~ msgstr "Ansluter till en existerande obby-session" - -#~ msgid "Saves the complete session for a later restore" -#~ msgstr "Sparar den kompletta sessionen för att kunna återställa den senare" - -#~ msgid "Quit session" -#~ msgstr "Avsluta session" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "Lämnar den aktiva obby-sessionen" - -#~ msgid "Quit" -#~ msgstr "Avsluta" - -#~ msgid "Quits the application" -#~ msgstr "Avslutar programmet" - -#~ msgid "_Session" -#~ msgstr "_Session" - -#~ msgid "Creates a new document" -#~ msgstr "Skapar ett nytt dokument" - -#~ msgid "Saves a document into a file" -#~ msgstr "Sparar dokument till fil" - -#~ msgid "Close document" -#~ msgstr "Stäng dokument" - -#~ msgid "Search for a text in the current document" -#~ msgstr "Spara aktuellt dokument" - -#~ msgid "Search for a text and replace it with another one" -#~ msgstr "Sök efter en textsträng och ersätt med en annan" - -#~ msgid "Move cursor to a specified line" -#~ msgstr "Flytta markören till en angiven rad" - -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "Öppnar en dialogruta för att anpassa Gobby efter dina behov" - -#~ msgid "Document preferences..." -#~ msgstr "Dokumentegenskaper..." - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "Visar en egenskapsdialog som endast tillämpas för detta dokument" - -#~ msgid "Syntax" -#~ msgstr "Syntax" - -#~ msgid "_User" -#~ msgstr "_Användare" - -#~ msgid "Set password..." -#~ msgstr "Ange lösenord..." - -#~ msgid "Sets a password for this user" -#~ msgstr "Anger ett lösenord för denna användare" - -#~ msgid "Set colour..." -#~ msgstr "Välj färg..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "Väljer en ny färg för denna användare" - -#~ msgid "_Window" -#~ msgstr "_Fönster" - -#~ msgid "Displays a list of users that are currently joined" -#~ msgstr "Visar en lista på anslutna användare" - -#~ msgid "Displays a list of documents within the current session" -#~ msgstr "Visar en lista på dokument i den aktuella sessionen" - -#~ msgid "Chat" -#~ msgstr "Chatt" - -#~ msgid "Displays a chat to talk to other people in the session" -#~ msgstr "" -#~ "Visar ett chatt-fönster där man kan prata med andra användare av sessionen" - -#~ msgid "Unselects the current language" -#~ msgstr "Väljer bort nuvarande språk" - -#~ msgid "Selects %0% as language" -#~ msgstr "Väljer %0% som språk" - -#~ msgid "Create obby session" -#~ msgstr "Skapa obbysession" - -#~ msgid "Port:" -#~ msgstr "Port:" - -#~ msgid "Name:" -#~ msgstr "Namn:" - -#~ msgid "Colour:" -#~ msgstr "Färg:" - -#~ msgid "Password:" -#~ msgstr "Lösenord:" - -#~ msgid "Restore session:" -#~ msgstr "Återställ session:" - -#~ msgid "Restore session" -#~ msgstr "Återställ session" - -#~ msgid "_Host" -#~ msgstr "_Värddator" - -#~ msgid "Opening obby session..." -#~ msgstr "Öppnar obby-session..." - -#~ msgid "Join obby session" -#~ msgstr "Anslut till obbysession" - -#~ msgid "Local network" -#~ msgstr "Lokalt nätverk" - -#~ msgid "Host" -#~ msgstr "Värddator" - -#~ msgid "Port" -#~ msgstr "Port" - -#~ msgid "Failure" -#~ msgstr "Fel" - -#~ msgid "" -#~ "User password for user '%0%' required. You may either choose another user " -#~ "name, type in your user password or cancel the connection." -#~ msgstr "" -#~ "Ett lösenord för användaren \"%0%\" krävs. Du kan antingen välja ett " -#~ "annat användarnamn, ange ditt lösenord eller avbryta anslutningen." - -#~ msgid "" -#~ "Name is already in use. You may choose another name or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Namnet används redan. Du kan välja ett annat namn eller koppla ner " -#~ "anslutningen." - -#~ msgid "" -#~ "Colour is already in use. You may choose another colour or cancel the " -#~ "connection." -#~ msgstr "" -#~ "Färgen används redan. Du kan välja en annan färg eller koppla ner " -#~ "anslutningen." - -#~ msgid "" -#~ "Session password required. You have to type in the password to be able to " -#~ "join the obby session." -#~ msgstr "" -#~ "Ett sessionslösenord krävs. Du måste ange lösenordet för att kunna " -#~ "ansluta till obby-sessionen." - -#~ msgid "Session password:" -#~ msgstr "Sessionslösenord:" - -#~ msgid "Joining obby session..." -#~ msgstr "Ansluter till obby-session..." - -#~ msgid "Setting up connection encryption (TLS)..." -#~ msgstr "Sätter upp anslutningskryptering (TLS)..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "Inloggningspaket skickat, väntar på svar..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "Inloggning lyckades, synkroniserar session..." - -#~ msgid "Windows" -#~ msgstr "Fönster" - -#~ msgid "Remember the positions and states" -#~ msgstr "Kom ihåg positioner och egenskaper" - -#~ msgid "Highlight the window on incoming chat messages" -#~ msgstr "Framhäv fönstret vid inkommande chattmeddelanden" - -#~ msgid "Open new remotely-created documents automatically" -#~ msgstr "Öppna nya fjärrskapade dokument automatiskt" - -#~ msgid "Pattern" -#~ msgstr "Mönster" - -#~ msgid "Language" -#~ msgstr "Språk" - -#~ msgid "Mime type" -#~ msgstr "MIME-typ" - -#~ msgid "This is a list of all recognized file types" -#~ msgstr "Detta är en lista på alla stödda filtyper" - -#~ msgid "Pattern must not be empty." -#~ msgstr "Mönster får inte vara tomt." - -#~ msgid "There is no language with the mime type '%0%'." -#~ msgstr "Det finns inget språk med MIME-typen \"%0%\"." - -#~ msgid "Behaviour" -#~ msgstr "Beteende" - -#~ msgid "Not connected" -#~ msgstr "Inte ansluten" - -#~ msgid "Selected language: %0%" -#~ msgstr "Valt språk: %0%" - -#~ msgid "No language selected" -#~ msgstr "Inget språk valt" - -#~ msgid "Online" -#~ msgstr "Ansluten" - -#~ msgid "Offline" -#~ msgstr "Frånkopplad" - -#~ msgid "" -#~ "Zeroconf initialisation failed. Probably you need to run avahi-daemon or " -#~ "mDNSResponder, depending on the library you use, as root prior to Gobby. " -#~ "Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Initieringen av Zeroconf misslyckades. Du måste antagligen köra avahi-" -#~ "daemon eller mDNSResponder, beroende på biblioteket du använder, som root " -#~ "innan du startar Gobby. Stöd för Zeroconf är inaktiverat för denna " -#~ "session." - -#~ msgid "Use default .obby extension if none is given" -#~ msgstr "Använd standard .obby-ändelse om ingen annan är angiven" - -#~ msgid "Save obby session" -#~ msgstr "Spara obbysession" - -#~ msgid "Create document" -#~ msgstr "Skapa dokument" - -#~ msgid "Enter document name" -#~ msgstr "Ange dokumentnamn" - -#~ msgid "Open new document" -#~ msgstr "Öppna nytt dokument" - -#~ msgid "" -#~ "Click on \"Apply\" to apply the new settings to documents that are " -#~ "currently open. \"OK\" will just store the values to use them with newly " -#~ "created documents." -#~ msgstr "" -#~ "Klicka på \"Verkställ\" för att tillämpa de nya inställningarna på " -#~ "dokument som för närvarande är öppna. \"OK\" sparar bara inställningarna " -#~ "för att använda dem med nya dokument." - -#~ msgid "Set user password" -#~ msgstr "Ange användarlösenord" - -#~ msgid "" -#~ "Set a user password for your user account. When you try to login next " -#~ "time with this user, you will be prompted for your password." -#~ msgstr "" -#~ "Anger ett användarlösenord för ditt användarkonto. Nästa gång du försöker " -#~ "logga in med denna användare kommer ditt lösenord att efterfrågas." - -#~ msgid "" -#~ "These preferences affect only the currently active document \"%0%\". If " -#~ "you want to change global preferences, use the preferences menu item in " -#~ "the \"Edit\" menu." -#~ msgstr "" -#~ "De här inställningarna påverkar endast det för närvarande aktiva " -#~ "dokumentet \"%0%\". Använd \"Inställningar\" under \"Redigera\"-menyn om " -#~ "du vill ändra globala inställningar." - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "Färgändring misslyckades: Färgen används redan" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "Ansluten till %0%:%1%" - -#~ msgid "Serving on port %0%" -#~ msgstr "Lyssnar på port %0%" - -#~ msgid "Save changes to document \"%0%\" before closing?" -#~ msgstr "Spara ändringar till dokument \"%0%\" före stängning?" - -#~ msgid "" -#~ "If you don't save, changes will be discarded, but may still be retrieved " -#~ "if you re-subscribe to the document as long as the session remains open." -#~ msgstr "" -#~ "Om du inte sparar kommer ändringar att kastas, men kan fortfarande hämtas " -#~ "tillbaka om du prenumerar på dokumentet igen." - -#~ msgid "If you don't save, changes will be discarded." -#~ msgstr "Om du inte sparar kommer eventuella ändringar att kastas." - -#~ msgid "Close without saving" -#~ msgstr "Stäng utan att spara" - -#~ msgid "Shows up a dialog to customise Gobby for your needs" -#~ msgstr "Öppnar en dialogruta för att anpassa Gobby efter dina behov" - -#~ msgid "Shows up a list of users that are currently joined" -#~ msgstr "Visar en lista på användare som är anslutna för tillfället" - -#~ msgid "Shows up a list of documents within the current session" -#~ msgstr "Visar en lista på dokument i den aktuella sessionen" - -#~ msgid "" -#~ "Howl initialisation failed. Probably you need to run mDNSResponder as " -#~ "root prior to Gobby. Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Initieringen av Howl misslyckades. Du måste antagligen köra mDNSResponder " -#~ "som root innan du startar Gobby. Stöd för Zeroconf är deaktiverat för " -#~ "denna session." - -#~ msgid "Could not open file '%0%' for writing" -#~ msgstr "Kunde inte öppna filen '%0%' för skrivning" - -#~ msgid "Passwords do not match" -#~ msgstr "Lösenorden stämmer ej överens" - -#~ msgid "%0% has joined" -#~ msgstr "%0% har anslutit" - -#~ msgid "%0% has left" -#~ msgstr "%0% har lämn, 2005 -# -msgid "" -msgstr "" -"Project-Id-Version: gobby\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-05 02:37+0100\n" -"PO-Revision-Date: 2007-06-16 00:19+0000\n" -"Last-Translator: Carlos Z.F. Liu \n" -"Language-Team: zh_CN \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2007-12-31 17:48+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. Document cannot be used if an error happened -#. during synchronization. -#: ../code/commands/browser-commands.cpp:54 -msgid "This document cannot be used." -msgstr "" - -#: ../code/commands/browser-commands.cpp:57 -msgid "" -"You can still watch others editing the document, but you cannot edit it " -"yourself." -msgstr "" - -#: ../code/commands/browser-commands.cpp:64 -msgid "" -"If you have an idea what could have caused the problem, then you may attempt " -"to solve it and try again (after having closed this document). Otherwise it " -"is most likely a bug in the software. In that case, please file a bug report " -"at http://gobby.0x539.de/trac/newticket and provide as much information as " -"you can, including what you did when the problem occurred and how to " -"reproduce the problem (if possible) so that we can fix the problem in a " -"later version. Thank you." -msgstr "" - -#: ../code/commands/browser-commands.cpp:255 -msgid "Subscribing to %1..." -msgstr "" - -#: ../code/commands/browser-commands.cpp:272 -msgid "Subscription already in progress" -msgstr "" - -#: ../code/commands/browser-commands.cpp:350 -#: ../code/commands/browser-commands.cpp:461 -msgid "Synchronization in progress... %1%%" -msgstr "" - -#: ../code/commands/browser-commands.cpp:371 -msgid "Subscription failed: %1" -msgstr "" - -#: ../code/commands/browser-commands.cpp:487 -msgid "" -"The connection to the publisher of this document has been lost. Further " -"changes to the document could not be synchronized to others anymore, " -"therefore the document cannot be edited anymore.\n" -"\n" -"Please note also that it is possible that not all of your latest changes " -"have reached the publisher before the connection was lost." -msgstr "" - -#: ../code/commands/browser-commands.cpp:575 -msgid "User Join in progress..." -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:94 -#, fuzzy -msgid "Create Do_cument..." -msgstr "创建文档..." - -#: ../code/commands/browser-context-commands.cpp:129 -#, fuzzy -msgid "Create Directory..." -msgstr "创建会话..." - -#: ../code/commands/browser-context-commands.cpp:142 -#, fuzzy -msgid "_Open Document..." -msgstr "打开文档..." - -#: ../code/commands/browser-context-commands.cpp:161 -msgid "D_elete" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:187 -msgid "Choose a name for the directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:188 -#, fuzzy -msgid "Choose a name for the document" -msgstr "创建文档" - -#: ../code/commands/browser-context-commands.cpp:189 -msgid "_Directory Name:" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:190 -#, fuzzy -msgid "_Document Name:" -msgstr "输入文档名" - -#: ../code/commands/browser-context-commands.cpp:193 -msgid "C_reate" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:197 -msgid "New Directory" -msgstr "" - -#: ../code/commands/browser-context-commands.cpp:198 -#: ../code/commands/file-commands.cpp:42 -#, fuzzy -msgid "New Document" -msgstr "保存文档" - -#: ../code/commands/browser-context-commands.cpp:216 -#: ../code/commands/file-commands.cpp:194 -msgid "Choose a text file to open" -msgstr "" - -#: ../code/commands/file-commands.cpp:112 -msgid "Querying \"%1\"..." -msgstr "" - -#: ../code/commands/file-commands.cpp:277 -msgid "Choose a location to save document \"%1\" to" -msgstr "" - -#: ../code/commands/help-commands.cpp:72 -msgid "" -"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.\n" -"\n" -"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.\n" -"\n" -"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." -msgstr "" - -#: ../code/core/browser.cpp:41 -#, fuzzy -msgid "_Direct Connection" -msgstr "连接丢失" - -#: ../code/core/browser.cpp:43 -#, fuzzy -msgid "Host Name:" -msgstr "主机:" - -#: ../code/core/browser.cpp:209 -msgid "Device \"%1\" does not exist" -msgstr "" - -#: ../code/core/browser.cpp:247 -msgid "Resolving %1..." -msgstr "" - -#: ../code/core/docwindow.cpp:253 -#, fuzzy -msgid "User List" -msgstr "用户" - -#: ../code/core/docwindow.cpp:576 -msgid "Text written by %1" -msgstr "" - -#: ../code/core/docwindow.cpp:582 -msgid "Unowned text" -msgstr "" - -#: ../code/core/header.cpp:189 -#, fuzzy -msgid "_None" -msgstr "无" - -#: ../code/core/header.cpp:211 -msgid "_File" -msgstr "" - -#: ../code/core/header.cpp:214 -#, fuzzy -msgid "_Open..." -msgstr "打开文档..." - -#: ../code/core/header.cpp:217 -#, fuzzy -msgid "Open _Location..." -msgstr "打开文档..." - -#: ../code/core/header.cpp:221 -#, fuzzy -msgid "Save _As..." -msgstr "将文档保存为..." - -#: ../code/core/header.cpp:225 ../code/core/iconmanager.cpp:88 -msgid "Save All" -msgstr "" - -#: ../code/core/header.cpp:225 -msgid "Save all open files locally" -msgstr "" - -#: ../code/core/header.cpp:230 -#, fuzzy -msgid "_Edit" -msgstr "编辑" - -#: ../code/core/header.cpp:238 -msgid "_Find..." -msgstr "" - -#: ../code/core/header.cpp:240 -msgid "Find Ne_xt" -msgstr "" - -#: ../code/core/header.cpp:241 -msgid "Find next match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:244 -msgid "Find Pre_vious" -msgstr "" - -#: ../code/core/header.cpp:245 -msgid "Find previous match of phrase searched for" -msgstr "" - -#: ../code/core/header.cpp:250 -msgid "Find and Rep_lace..." -msgstr "" - -#: ../code/core/header.cpp:254 -msgid "Go to _Line..." -msgstr "" - -#: ../code/core/header.cpp:258 -#, fuzzy -msgid "Pr_eferences..." -msgstr "首选项..." - -#: ../code/core/header.cpp:260 -#, fuzzy -msgid "_View" -msgstr "查看" - -#: ../code/core/header.cpp:263 -#, fuzzy -msgid "View Toolbar" -msgstr "工具栏" - -#: ../code/core/header.cpp:264 -msgid "Whether to show the toolbar" -msgstr "" - -#: ../code/core/header.cpp:268 -msgid "View Statusbar" -msgstr "" - -#: ../code/core/header.cpp:269 -msgid "Whether to show the statusbar" -msgstr "" - -#: ../code/core/header.cpp:273 -msgid "View Document Browser" -msgstr "" - -#: ../code/core/header.cpp:274 -msgid "Whether to show the document browser" -msgstr "" - -#: ../code/core/header.cpp:278 -msgid "View User List" -msgstr "" - -#: ../code/core/header.cpp:279 -msgid "Whether to show the user list" -msgstr "" - -#: ../code/core/header.cpp:283 -msgid "_Highlight Mode" -msgstr "" - -#: ../code/core/header.cpp:289 -#, fuzzy -msgid "_Help" -msgstr "帮助" - -#: ../code/core/header.cpp:292 -#, fuzzy -msgid "_About..." -msgstr "关于" - -#: ../code/core/header.cpp:293 -#, fuzzy -msgid "Shows Gobby's copyright and credits" -msgstr "显示 Gobby 版权及" - -#: ../code/core/iconmanager.cpp:82 -msgid "User list" -msgstr "" - -#: ../code/core/iconmanager.cpp:85 -msgid "Document list" -msgstr "" - -#: ../code/core/statusbar.cpp:246 -msgid "Ln %1, Col %2" -msgstr "" - -#: ../code/core/userlist.cpp:126 -#, fuzzy -msgid "Users" -msgstr "用户" - -#: ../code/dialogs/documentlocationdialog.cpp:37 -#, fuzzy -msgid "Select document's target location" -msgstr "将文档保存至其它位置" - -#: ../code/dialogs/documentlocationdialog.cpp:38 -#, fuzzy -msgid "Document Name:" -msgstr "输入文档名" - -#: ../code/dialogs/documentlocationdialog.cpp:40 -msgid "Choose a directory to create the document into:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:46 ../code/dialogs/finddialog.cpp:144 -msgid "Find" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:49 -msgid "_Search for:" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:51 -#, fuzzy -msgid "Replace _with:" -msgstr "制表位宽度:" - -#: ../code/dialogs/finddialog.cpp:53 -msgid "_Match case" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:54 -msgid "Match _entire word only" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:55 -msgid "Search _backwards" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:56 -msgid "Wra_p around" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:102 -#, fuzzy -msgid "Replace _All" -msgstr "制表位宽度:" - -#: ../code/dialogs/finddialog.cpp:104 -msgid "_Replace" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:144 -#, fuzzy -msgid "Replace" -msgstr "制表位宽度:" - -#: ../code/dialogs/finddialog.cpp:163 ../code/dialogs/finddialog.cpp:179 -msgid "Phrase \"%1\" has not been found" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:332 -msgid "No occurence has been replaced" -msgstr "" - -#: ../code/dialogs/finddialog.cpp:338 -msgid "%1 occurence has been replaced" -msgid_plural "%1 occurences have been replaced" -msgstr[0] "" - -#: ../code/dialogs/gotodialog.cpp:27 -msgid "Go to line" -msgstr "" - -#: ../code/dialogs/gotodialog.cpp:30 -#, fuzzy -msgid "Line _number:" -msgstr "行号" - -#: ../code/dialogs/gotodialog.cpp:51 -msgid "Go To _Line" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:48 -msgid "Choose a user color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:52 -msgid "Welcome to Gobby" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:61 -msgid "" -"Before we start, a few options need to be configured. You can later change " -"them by choosing Edit/Preferences from the menu." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:68 -#, fuzzy -msgid "User Name" -msgstr "用户" - -#: ../code/dialogs/initialdialog.cpp:70 -msgid "Your name as shown to other users." -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:79 -msgid "User Color" -msgstr "" - -#: ../code/dialogs/initialdialog.cpp:81 -msgid "The color with which text you have written is branded." -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:27 -msgid "Open Location" -msgstr "" - -#: ../code/dialogs/openlocationdialog.cpp:28 -msgid "Enter the _location (URI) of the file you would like to open:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:229 -msgid "Settings" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:230 -msgid "Paths" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:232 -msgid "User name:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:234 -msgid "User color:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:235 -msgid "Choose a new user color" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:238 -msgid "Host directory:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:280 -msgid "The directory into which locally hosted sessions are permanently stored" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:297 -msgid "Tab Stops" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:298 -msgid "Indentation" -msgstr "缩进" - -#: ../code/dialogs/preferencesdialog.cpp:299 -#, fuzzy -msgid "Home/End Behaviour" -msgstr "Home/End 键行为" - -#: ../code/dialogs/preferencesdialog.cpp:300 -msgid "File Saving" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:301 -#, fuzzy -msgid "_Tab width:" -msgstr "制表位宽度:" - -#: ../code/dialogs/preferencesdialog.cpp:303 -#, fuzzy -msgid "Insert _spaces instead of tabs" -msgstr "插入空格而非 tab" - -#: ../code/dialogs/preferencesdialog.cpp:304 -#, fuzzy -msgid "Enable automatic _indentation" -msgstr "开启自动缩进" - -#: ../code/dialogs/preferencesdialog.cpp:305 -#, fuzzy -msgid "Smart _home/end" -msgstr "智能 home/end" - -#: ../code/dialogs/preferencesdialog.cpp:306 -#, fuzzy -msgid "Enable _automatic saving of documents" -msgstr "开启自动缩进" - -#: ../code/dialogs/preferencesdialog.cpp:308 -msgid "Autosave interval in _minutes:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:329 -msgid "" -"With this option enabled, Home/End keys move to first/last character before " -"going to the start/end of the line." -msgstr "" -"开启此选项,Home/End 键将在移动至 行首/行尾 之前先移动至 最前/最后 一个字符" - -#: ../code/dialogs/preferencesdialog.cpp:399 -#, fuzzy -msgid "Text Wrapping" -msgstr "自动换行" - -#: ../code/dialogs/preferencesdialog.cpp:400 -#, fuzzy -msgid "Line Numbers" -msgstr "行号" - -#: ../code/dialogs/preferencesdialog.cpp:401 -#, fuzzy -msgid "Current Line" -msgstr "当前行" - -#: ../code/dialogs/preferencesdialog.cpp:402 -#, fuzzy -msgid "Right Margin" -msgstr "右边距" - -#: ../code/dialogs/preferencesdialog.cpp:403 -#, fuzzy -msgid "Bracket Matching" -msgstr "括号匹配" - -#: ../code/dialogs/preferencesdialog.cpp:404 -msgid "Enable text wrapping" -msgstr "开启自动换行" - -#: ../code/dialogs/preferencesdialog.cpp:405 -#, fuzzy -msgid "Do not split words over two lines" -msgstr "不将词语拆分至两行" - -#: ../code/dialogs/preferencesdialog.cpp:406 -msgid "Display line numbers" -msgstr "显示行号" - -#: ../code/dialogs/preferencesdialog.cpp:407 -msgid "Highlight current line" -msgstr "高亮当前行" - -#: ../code/dialogs/preferencesdialog.cpp:408 -msgid "Display right margin" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:409 -msgid "Right margin at column:" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:410 -msgid "Highlight matching bracket" -msgstr "高亮匹配的括号" - -#: ../code/dialogs/preferencesdialog.cpp:496 -msgid "Toolbar" -msgstr "工具栏" - -#: ../code/dialogs/preferencesdialog.cpp:497 -msgid "Font" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:502 -msgid "Show text only" -msgstr "仅显示文字" - -#: ../code/dialogs/preferencesdialog.cpp:504 -msgid "Show icons only" -msgstr "仅显示图标" - -#: ../code/dialogs/preferencesdialog.cpp:506 -msgid "Show both icons and text" -msgstr "显示图标和文字" - -#: ../code/dialogs/preferencesdialog.cpp:508 -#, fuzzy -msgid "Show text besides icons" -msgstr "仅显示文字" - -#: ../code/dialogs/preferencesdialog.cpp:527 -msgid "Trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:528 -#, fuzzy -msgid "Secure Connection" -msgstr "连接丢失" - -#: ../code/dialogs/preferencesdialog.cpp:529 -msgid "Select a file containing trusted CAs" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:546 -msgid "Use TLS if possible" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:549 -msgid "Always use TLS" -msgstr "" - -#: ../code/dialogs/preferencesdialog.cpp:561 -msgid "Preferences" -msgstr "首选项" - -#: ../code/dialogs/preferencesdialog.cpp:566 -msgid "User" -msgstr "用户" - -#: ../code/dialogs/preferencesdialog.cpp:567 -msgid "Editor" -msgstr "编辑器" - -#: ../code/dialogs/preferencesdialog.cpp:568 -msgid "View" -msgstr "查看" - -#: ../code/dialogs/preferencesdialog.cpp:569 -msgid "Appearance" -msgstr "外观" - -#: ../code/dialogs/preferencesdialog.cpp:570 -msgid "Security" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Gobby options" -msgstr "" - -#: ../code/main.cpp:91 -msgid "Options related to Gobby" -msgstr "" - -#: ../code/main.cpp:96 -msgid "Display version information and exit" -msgstr "" - -#: ../code/operations/operation-delete.cpp:43 -msgid "Removing node %1..." -msgstr "" - -#: ../code/operations/operation-delete.cpp:59 -msgid "Failed to delete node %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:57 -msgid "Creating directory %1..." -msgstr "" - -#: ../code/operations/operation-new.cpp:58 -#, fuzzy -msgid "Creating document %1..." -msgstr "创建文档..." - -#: ../code/operations/operation-new.cpp:75 -msgid "Failed to create directory %1: %2" -msgstr "" - -#: ../code/operations/operation-new.cpp:76 -#, fuzzy -msgid "Failed to create document %1: %2" -msgstr "保存当前文档" - -#. Translators: This is the 8 bit encoding that is tried when -#. autodetecting a file's encoding. -#: ../code/operations/operation-open.cpp:45 -msgid "ISO-8859-1" -msgstr "" - -#: ../code/operations/operation-open.cpp:98 -#, fuzzy -msgid "Opening document %1..." -msgstr "打开文档..." - -#: ../code/operations/operation-open.cpp:142 -msgid "" -"The directory into which the new document should have been inserted was " -"removed" -msgstr "" - -#: ../code/operations/operation-open.cpp:334 -msgid "The file contains data not in the specified encoding" -msgstr "" - -#: ../code/operations/operation-open.cpp:345 -msgid "" -"The file either contains data in an unknown encoding, or it contains binary " -"data." -msgstr "" - -#: ../code/operations/operation-open.cpp:453 -#, fuzzy -msgid "Failed to open document \"%1\": %2" -msgstr "加载文件到新文档" - -#: ../code/operations/operation-save.cpp:67 -#, fuzzy -msgid "Saving document %1 to %2..." -msgstr "将文档保存为..." - -#: ../code/operations/operation-save.cpp:221 -msgid "" -"The document contains one or more characters that cannot be encoded in the " -"specified character coding." -msgstr "" - -#: ../code/operations/operation-save.cpp:283 -#, fuzzy -msgid "Failed to save document %1: %2" -msgstr "加载文件到新文档" - -#: ../code/util/file.cpp:67 ../code/util/file.cpp:76 -msgid "Could not create directory \"%1\": %2" -msgstr "" - -#: ../code/window.cpp:65 -#, fuzzy -msgid "Document Browser" -msgstr "文档属性..." - -#: ../code/window.cpp:109 -msgid "You are still connected to a session" -msgstr "" - -#: ../code/window.cpp:117 -msgid "Do you want to close Gobby nevertheless?" -msgstr "" - -#: ../code/window.cpp:123 -msgid "C_ancel" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:1 -msgid "Edit text files collaboratively" -msgstr "" - -#: ../contrib/gobby-0.5.desktop.in.h:2 -msgid "Gobby Collaborative Editor (0.5)" -msgstr "" - -#~ msgid "" -#~ "Failed to convert input into UTF-8: Either the encoding is unknown or it " -#~ "is binary input." -#~ msgstr "" -#~ "无法将输入字符转换为 UTF-8 编码:您使用的是未知的编码方式或者二进制输入。" - -#~ msgid "Send" -#~ msgstr "发送" - -#, fuzzy -#~ msgid "Usage: /remove " -#~ msgstr "保存文档" - -#~ msgid "Subscribe" -#~ msgstr "订阅" - -#~ msgid "Opens a new obby session" -#~ msgstr "打开一个新 obby 会话" - -#~ msgid "Join session..." -#~ msgstr "加入会话..." - -#~ msgid "Quit session" -#~ msgstr "退出会话" - -#~ msgid "Leaves the currently running obby session" -#~ msgstr "离开当前正在运行的 obby 会话" - -#~ msgid "Quit" -#~ msgstr "退出" - -#~ msgid "Quits the application" -#~ msgstr "退出程序" - -#, fuzzy -#~ msgid "_Session" -#~ msgstr "会话" - -#~ msgid "Creates a new document" -#~ msgstr "创建新文档" - -#~ msgid "Saves a document into a file" -#~ msgstr "将文档保存至文件" - -#~ msgid "Close document" -#~ msgstr "关闭文档" - -#, fuzzy -#~ msgid "Displays a dialog to customise Gobby for your needs" -#~ msgstr "显示对话框以按您的需要自定义 Gobby" - -#~ msgid "Shows a preferences dialog that is just applied to this document" -#~ msgstr "显示应用于此文档的属性对话框" - -#~ msgid "Syntax" -#~ msgstr "语法" - -#, fuzzy -#~ msgid "_User" -#~ msgstr "用户" - -#~ msgid "Set password..." -#~ msgstr "设置密码..." - -#~ msgid "Sets a password for this user" -#~ msgstr "为此用户设置密码" - -#~ msgid "Set colour..." -#~ msgstr "设置颜色..." - -#~ msgid "Sets a new colour for this user" -#~ msgstr "为此用户设置新的颜色" - -#~ msgid "Unselects the current language" -#~ msgstr "取消当前语言选择" - -#~ msgid "Selects %0% as language" -#~ msgstr "选择 %0% 语言" - -#~ msgid "Create obby session" -#~ msgstr "创建 obby 会话" - -#~ msgid "Port:" -#~ msgstr "端口:" - -#~ msgid "Name:" -#~ msgstr "名称:" - -#~ msgid "Colour:" -#~ msgstr "颜色:" - -#~ msgid "Password:" -#~ msgstr "密码:" - -#, fuzzy -#~ msgid "_Host" -#~ msgstr "主机" - -#~ msgid "Opening obby session..." -#~ msgstr "打开 obby 会话..." - -#~ msgid "Join obby session" -#~ msgstr "加入 obby 会话" - -#~ msgid "Local network" -#~ msgstr "本地网络" - -#~ msgid "Host" -#~ msgstr "主机" - -#~ msgid "Port" -#~ msgstr "端口" - -#~ msgid "Joining obby session..." -#~ msgstr "加入 obby 会话..." - -#~ msgid "Login packet sent, waiting for response..." -#~ msgstr "登录包已发送,正在等待回应..." - -#~ msgid "Logged in successfully, synchronising session..." -#~ msgstr "登入成功,正在同步会话..." - -#, fuzzy -#~ msgid "Not connected" -#~ msgstr "已连接" - -#~ msgid "Selected language: %0%" -#~ msgstr "选择语言:%0%" - -#~ msgid "No language selected" -#~ msgstr "没有选择任何语言" - -#, fuzzy -#~ msgid "" -#~ "Zeroconf initialisation failed. Probably you need to run avahi-daemon or " -#~ "mDNSResponder, depending on the library you use, as root prior to Gobby. " -#~ "Zeroconf support is deactivated for this session." -#~ msgstr "" -#~ "Howl 初始化失败。您可能需要以在 Gobby 之前以 root 权限运行 mDNSResponder。" -#~ "本会话的 Zeroconf 支持已被禁用。" - -#~ msgid "Enter document name" -#~ msgstr "输入文档名" - -#~ msgid "Open new document" -#~ msgstr "打开新文档" - -#~ msgid "Set user password" -#~ msgstr "设置用户密码" - -#~ msgid "Colour change failed: Colour already in use" -#~ msgstr "修改颜色失败:该颜色已被使用" - -#~ msgid "Connected to %0%:%1%" -#~ msgstr "连接至 %0%:%1%" diff -Nru gobby-infinote-0.4.92/README gobby-infinote-0.4.93/README --- gobby-infinote-0.4.92/README 2009-04-26 10:57:08.000000000 +0100 +++ gobby-infinote-0.4.93/README 2009-12-19 23:13:46.000000000 +0000 @@ -21,12 +21,10 @@ Gobby is a free collaborative editor. This means that it provides you with the possibility to edit files simultaneously - with other users over a network. It supports multiple - documents in one session and a multi-user chat. The platforms - on which you could use Gobby are so far Microsoft Windows, - Linux, Mac OS X and other Unix-like ones. Developed with the - Gtk+ toolkit it integrates nicely into the GNOME desktop - environment if you want it to. + with other users over a network. The platforms on which you could use + Gobby are so far Microsoft Windows, Linux, Mac OS X and other + Unix-like ones. Developed with the GTK+ toolkit it integrates + nicely into the GNOME desktop environment if you want it to. _________________________________________________________ 2. Features @@ -34,6 +32,7 @@ * Realtime collaboration through encrypted connections * Each user has its own colour to be identified by others * Local group Undo + * IRC-like chat * Sidebar with all the others having joined the session * Syntax highlighting, auto indentation, configurable tab width @@ -57,10 +56,11 @@ * libsigc++ (>= 2.0.2) * GNUTLS (>= 1.7.2) - * libinfinity (0.3.x) + * libinfinity (0.4.x) * Gtk+ (>= 2.12.0) + * Glib (>= 2.18.0) * GtkSourceView (>= 2.0) - * Glibmm (>= 2.16.0) + * Glibmm (>= 2.18.0) * libxml++ (>= 2.6.0) * Gtkmm (>= 2.12.0) _________________________________________________________ @@ -68,14 +68,13 @@ 4. More information The development of the obby family is coordinated on its Trac - project page on http://darcs.0x539.de/trac/obby/. The primary - distribution point is http://releases.0x539.de/. + project page on http://gobby.0x539.de/. The primary distribution point is + http://releases.0x539.de/. _________________________________________________________ 4.1. How to report bugs - Bugs could be filed as tickets at - http://darcs.0x539.de/trac/obby/cgi-bin/trac.cgi/newticket or + Bugs could be filed as tickets at http://gobby.0x539.de/trac/newticket or submitted directly to us at crew@0x539.de. Please include a reachable email address in your bug report as we often need to contact the reporters for clarifications. Commonly bugs are @@ -100,7 +99,7 @@ of contact to other Gobby users and to the developers. * obby-announce: A moderated list used to announce new - releases of Gobby and its foundation, net6, obby and infinote. + releases of Gobby and its foundation, net6, obby and libinfinity. Please refer to http://list.0x539.de/mailman/listinfo/obby-announce if you want to subscribe it. @@ -130,7 +129,7 @@ 6. Development To get in contact with the developers, either use the obby-users mailing - list mentioned above or drop by in our IRC channel #0x539 on - irc.blitzed.org. To get the up-to-date Gobby code to hack on, use + list mentioned above or drop by in our IRC channel #infinote on + irc.freenode.org. To get the up-to-date Gobby code to hack on, use `git clone git://git.0x539.de/git/gobby.git'. Patches should be filed in our bug tracker on http://gobby.0x539.de/trac/newticket. diff -Nru gobby-infinote-0.4.92/TODO gobby-infinote-0.4.93/TODO --- gobby-infinote-0.4.92/TODO 2009-04-21 19:58:06.000000000 +0100 +++ gobby-infinote-0.4.93/TODO 2009-12-19 23:13:04.000000000 +0000 @@ -1,7 +1,6 @@ Some features that would be nice for a final Gobby 0.5 release. We could perhaps do pre-releases with some of these missing before: - - Implement single instance, probably using GtkUnique - Implement self-hosting, this also requires showing and handling directories in InfGtkBrowserModel/Store - Sort BrowserModel in Left pane and DocumentLocationDialog diff -Nru gobby-infinote-0.4.92/win32/Makefile.in gobby-infinote-0.4.93/win32/Makefile.in --- gobby-infinote-0.4.92/win32/Makefile.in 2009-04-26 10:57:39.000000000 +0100 +++ gobby-infinote-0.4.93/win32/Makefile.in 2009-12-19 23:16:24.000000000 +0000 @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.2 from Makefile.am. +# Makefile.in generated by automake 1.10.3 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. @@ -64,6 +65,8 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -73,6 +76,7 @@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ +HELP_DIR = @HELP_DIR@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -97,11 +101,13 @@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ @@ -172,6 +178,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +unique_CFLAGS = @unique_CFLAGS@ +unique_LIBS = @unique_LIBS@ @WIN32_TRUE@BUILT_SOURCES = gobby.res EXTRA_DIST = gobby.ico gobby.rc all: $(BUILT_SOURCES) @@ -285,6 +293,8 @@ html: html-am +html-am: + info: info-am info-am: @@ -293,18 +303,28 @@ 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