diff -Nru thunar-1.2.3/acinclude.m4 thunar-1.6.10/acinclude.m4 --- thunar-1.2.3/acinclude.m4 2011-03-27 13:29:38.000000000 +0000 +++ thunar-1.6.10/acinclude.m4 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -dnl $Id$ -dnl dnl Copyright (c) 2004-2006 dnl The Thunar development team. All rights reserved. dnl diff -Nru thunar-1.2.3/aclocal.m4 thunar-1.6.10/aclocal.m4 --- thunar-1.2.3/aclocal.m4 2011-09-20 20:28:08.000000000 +0000 +++ thunar-1.6.10/aclocal.m4 2015-05-22 20:47:30.000000000 +0000 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 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. @@ -11,13 +11,14 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, -[m4_warning([this file was generated for autoconf 2.68. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. @@ -260,6 +261,10 @@ [CATOBJEXT=.mo DATADIRNAME=lib]) ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; *) CATOBJEXT=.mo DATADIRNAME=lib @@ -332,7 +337,6 @@ dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS @@ -452,7494 +456,7918 @@ fi]) -dnl -*- mode: autoconf -*- +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. -# serial 1 +AC_PREREQ([2.50]) -dnl Usage: -dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) -AC_DEFUN([GTK_DOC_CHECK], +AC_DEFUN([AM_NLS], [ - AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first - AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) - dnl check for tools we added during development - AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check]) - AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) - AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) - - dnl for overriding the documentation installation directory - AC_ARG_WITH([html-dir], - AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, - [with_html_dir='${datadir}/gtk-doc/html']) - HTML_DIR="$with_html_dir" - AC_SUBST([HTML_DIR]) - - dnl enable/disable documentation building - AC_ARG_ENABLE([gtk-doc], - AS_HELP_STRING([--enable-gtk-doc], - [use gtk-doc to build documentation [[default=no]]]),, - [enable_gtk_doc=no]) - - if test x$enable_gtk_doc = xyes; then - ifelse([$1],[], - [PKG_CHECK_EXISTS([gtk-doc],, - AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))], - [PKG_CHECK_EXISTS([gtk-doc >= $1],, - AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))]) - fi - - AC_MSG_CHECKING([whether to build gtk-doc documentation]) - AC_MSG_RESULT($enable_gtk_doc) - - dnl enable/disable output formats - AC_ARG_ENABLE([gtk-doc-html], - AS_HELP_STRING([--enable-gtk-doc-html], - [build documentation in html format [[default=yes]]]),, - [enable_gtk_doc_html=yes]) - AC_ARG_ENABLE([gtk-doc-pdf], - AS_HELP_STRING([--enable-gtk-doc-pdf], - [build documentation in pdf format [[default=no]]]),, - [enable_gtk_doc_pdf=no]) - - if test -z "$GTKDOC_MKPDF"; then - enable_gtk_doc_pdf=no - fi +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) - AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) - AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) - AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) - AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) -]) +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) -dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) -# serial 40 IT_PROG_INTLTOOL -AC_DEFUN([IT_PROG_INTLTOOL], [ -AC_PREREQ([2.50])dnl -AC_REQUIRE([AM_NLS])dnl +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG -case "$am__api_version" in - 1.[01234]) - AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) - ;; - *) - ;; -esac +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED -if test -n "$1"; then - AC_MSG_CHECKING([for intltool >= $1]) - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`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; }'` - ] - AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) -fi +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl -AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) -AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) -AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) -fi +pkg_failed=no +AC_MSG_CHECKING([for $1]) - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) -_IT_SUBST(INTLTOOL_DESKTOP_RULE) -_IT_SUBST(INTLTOOL_DIRECTORY_RULE) -_IT_SUBST(INTLTOOL_KEYS_RULE) -_IT_SUBST(INTLTOOL_PROP_RULE) -_IT_SUBST(INTLTOOL_OAF_RULE) -_IT_SUBST(INTLTOOL_PONG_RULE) -_IT_SUBST(INTLTOOL_SERVER_RULE) -_IT_SUBST(INTLTOOL_SHEET_RULE) -_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) -_IT_SUBST(INTLTOOL_UI_RULE) -_IT_SUBST(INTLTOOL_XAM_RULE) -_IT_SUBST(INTLTOOL_KBD_RULE) -_IT_SUBST(INTLTOOL_XML_RULE) -_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) -_IT_SUBST(INTLTOOL_CAVES_RULE) -_IT_SUBST(INTLTOOL_SCHEMAS_RULE) -_IT_SUBST(INTLTOOL_THEME_RULE) -_IT_SUBST(INTLTOOL_SERVICE_RULE) -_IT_SUBST(INTLTOOL_POLICY_RULE) +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) -# Check the gettext tools to make sure they are GNU -AC_PATH_PROG(XGETTEXT, xgettext) -AC_PATH_PROG(MSGMERGE, msgmerge) -AC_PATH_PROG(MSGFMT, msgfmt) -AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD -AC_PATH_PROG(INTLTOOL_PERL, perl) -if test -z "$INTLTOOL_PERL"; then - AC_MSG_ERROR([perl not found]) -fi -AC_MSG_CHECKING([for perl >= 5.8.1]) -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - AC_MSG_ERROR([perl 5.8.1 is required for intltool]) + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - AC_MSG_RESULT([$IT_PERL_VERSION]) -fi -if test "x$2" != "xno-xml"; then - AC_MSG_CHECKING([for XML::Parser]) - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - AC_MSG_RESULT([ok]) - else - AC_MSG_ERROR([XML::Parser perl module is required for intltool]) - fi -fi + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES -# Substitute ALL_LINGUAS so we can use it in po/Makefile -AC_SUBST(ALL_LINGUAS) -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], - [[extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr]])], - [DATADIRNAME=share], - [case $host in - *-*-solaris*) - dnl On Solaris, if bind_textdomain_codeset is in libc, - dnl GNU format message catalog is always supported, - dnl since both are added to the libc all together. - dnl Hence, we'd like to go with DATADIRNAME=share - dnl in this case. - AC_CHECK_FUNC(bind_textdomain_codeset, - [DATADIRNAME=share], [DATADIRNAME=lib]) - ;; - *) - [DATADIRNAME=lib] - ;; - esac]) -fi -AC_SUBST(DATADIRNAME) +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR -IT_PO_SUBDIR([po]) -]) +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR -# IT_PO_SUBDIR(DIRNAME) -# --------------------- -# All po subdirs have to be declared with this macro; the subdir "po" is -# declared by IT_PROG_INTLTOOL. +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR + +# Copyright (C) 2002-2013 Free Software Foundation, Inc. # -AC_DEFUN([IT_PO_SUBDIR], -[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. -dnl -dnl The following CONFIG_COMMANDS should be executed at the very end -dnl of config.status. -AC_CONFIG_COMMANDS_PRE([ - AC_CONFIG_COMMANDS([$1/stamp-it], [ - if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then - AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) - fi - rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" - >"$1/stamp-it.tmp" - [sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" - ] - [sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r $1/POTFILES - } - ' "$1/Makefile.in" >"$1/Makefile"] - rm -f "$1/Makefile.tmp" - mv "$1/stamp-it.tmp" "$1/stamp-it" - ]) -])dnl +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.14' +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.14.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) -# _IT_SUBST(VARIABLE) -# ------------------- -# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST -# -AC_DEFUN([_IT_SUBST], -[ -AC_SUBST([$1]) -m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) -] -) +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) -# deprecated macros -AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) -# A hint is needed for aclocal from Automake <= 1.9.4: -# AC_DEFUN([AC_PROG_INTLTOOL], ...) +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.14.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +# AM_AUX_DIR_EXPAND -*- Autoconf -*- -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. -# Written by Gordon Matzigkeit, 1996 +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. +# 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. -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. -# Written by Gordon Matzigkeit, 1996 +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. # -# This file is part of GNU Libtool. +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. # -# GNU Libtool is free software; you can 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. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir # -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. # -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 57 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` ]) +# AM_CONDITIONAL -*- Autoconf -*- -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -AC_BEFORE([$0], [LT_LANG])dnl -AC_BEFORE([$0], [LT_OUTPUT])dnl -AC_BEFORE([$0], [LTDL_INIT])dnl -m4_require([_LT_CHECK_BUILDDIR])dnl - -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([LTOBSOLETE_VERSION])dnl -m4_require([_LT_PROG_LTMAIN])dnl - -_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) - -dnl Parse OPTIONS -_LT_SET_OPTIONS([$0], [$1]) - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -_LT_SETUP +# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# Only expand once: -m4_define([LT_INIT]) -])# LT_INIT +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) -# Old names: -AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -dnl AC_DEFUN([AM_PROG_LIBTOOL], []) +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -]) +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... -# _LT_FILEUTILS_DEFAULTS +# _AM_DEPENDENCIES(NAME) # ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl - -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -_LT_DECL([], [host_os], [0])dnl -dnl -_LT_DECL([], [build_alias], [0], [The build system])dnl -_LT_DECL([], [build], [0])dnl -_LT_DECL([], [build_os], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([LT_CMD_MAX_LEN])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl -m4_require([_LT_CMD_RELOAD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_WITH_SYSROOT])dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -_LT_CC_BASENAME([$compiler]) +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi - ;; -esac - -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' + 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]) -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) - -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) +# Generate code to set up dependency tracking. -*- Autoconf -*- -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# _LT_CONFIG_LIBTOOL([COMMANDS]) +# _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) +# Do all the work for Automake. -*- Autoconf -*- -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi]) -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) +# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) +# Check to see how 'make' treats includes. -*- Autoconf -*- -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# Copyright (C) 2001-2013 Free Software Foundation, Inc. # -# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - +# 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. -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf ]) +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: +# Copyright (C) 1997-2013 Free Software Foundation, Inc. # -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi ]) +# Helper functions for option handling. -*- Autoconf -*- -# _LT_LIBTOOL_CONFIG_VARS +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) # ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Check to make sure that the build environment is sane. -*- Autoconf -*- -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) -_LT_OUTPUT_LIBTOOL_INIT +# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) -# ------------------------------------ -# Generate a child script FILE with all initialization necessary to -# reuse the environment learned by the parent script, and make the -# file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this -# macro, additional text can be appended to FILE to form the body of -# the child script. The macro ends with non-zero status if the -# file could not be fully written (such as if the disk is full). -m4_ifdef([AS_INIT_GENERATED], -[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], -[m4_defun([_LT_GENERATED_FILE_INIT], -[m4_require([AS_PREPARE])]dnl -[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl -[lt_write_fail=0 -cat >$1 <<_ASEOF || lt_write_fail=1 -#! $SHELL -# Generated by $as_me. -$2 -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$1 <<\_ASEOF || lt_write_fail=1 -AS_SHELL_SANITIZE -_AS_PREPARE -exec AS_MESSAGE_FD>&1 -_ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD +# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) -Usage: $[0] [[OPTIONS]] +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files +# Check how to create a tarball. -*- Autoconf -*- -Report bugs to ." +# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) -Copyright (C) 2010 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -while test $[#] != 0 -do - case $[1] in - --version | --v* | -V ) - echo "$lt_cl_version"; exit 0 ;; - --help | --h* | -h ) - echo "$lt_cl_help"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --quiet | --q* | --silent | --s* | -q ) - lt_cl_silent=: ;; +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - -*) AC_MSG_ERROR([unrecognized option: $[1] -Try \`$[0] --help' for more information.]) ;; + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], - *) AC_MSG_ERROR([unrecognized argument: $[1] -Try \`$[0] --help' for more information.]) ;; - esac - shift -done + [pax], + [], -if $lt_cl_silent; then - exec AS_MESSAGE_FD>/dev/null -fi -_LTEOF + [m4_fatal([Unknown tar format])]) -cat >>"$CONFIG_LT" <<_LTEOF -_LT_OUTPUT_LIBTOOL_COMMANDS_INIT -_LTEOF + AC_MSG_CHECKING([how to create a $1 tar archive]) -cat >>"$CONFIG_LT" <<\_LTEOF -AC_MSG_NOTICE([creating $ofile]) -_LT_OUTPUT_LIBTOOL_COMMANDS -AS_EXIT(0) -_LTEOF -chmod +x "$CONFIG_LT" + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} -# configure is writing to config.log, but config.lt does its own redirection, -# appending to config.log, which fails on DOS, as config.log is still kept -# open by configure. Here we exec the FD to /dev/null, effectively closing -# config.log, so it can be properly (re)opened and appended to by config.lt. -lt_cl_success=: -test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" -exec AS_MESSAGE_LOG_FD>/dev/null -$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false -exec AS_MESSAGE_LOG_FD>>config.log -$lt_cl_success || AS_EXIT(1) -])# LT_OUTPUT + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir -# _LT_CONFIG(TAG) -# --------------- -# If TAG is the built-in tag, create an initial libtool script with a -# default configuration from the untagged config vars. Otherwise add code -# to config.status for appending the configuration named by TAG from the -# matching tagged config vars. -m4_defun([_LT_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_CONFIG_SAVE_COMMANDS([ - m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl - m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -_LT_COPYING -_LT_LIBTOOL_TAGS +dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) +# serial 42 IT_PROG_INTLTOOL +AC_DEFUN([IT_PROG_INTLTOOL], [ +AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_NLS])dnl -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG +case "$am__api_version" in + 1.[01234]) + AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) + ;; + *) + ;; +esac -_LT_EOF +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n "$1"; then + AC_MSG_CHECKING([for intltool >= $1]) + AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +fi - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES +AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) +AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) +AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi -_LT_EOF - ;; - esac - _LT_PROG_LTMAIN +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi +AC_SUBST([AM_DEFAULT_VERBOSITY]) - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' +AC_SUBST(INTLTOOL_V_MERGE) +AC_SUBST(INTLTOOL__v_MERGE_) +AC_SUBST(INTLTOOL__v_MERGE_0) + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' +AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) +AC_SUBST(intltool__v_merge_options_) +AC_SUBST(intltool__v_merge_options_0) + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - _LT_PROG_REPLACE_SHELLFNS +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -], -[cat <<_LT_EOF >> "$ofile" +# Check the gettext tools to make sure they are GNU +AC_PATH_PROG(XGETTEXT, xgettext) +AC_PATH_PROG(MSGMERGE, msgmerge) +AC_PATH_PROG(MSGFMT, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi -dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -dnl in a comment (ie after a #). -# ### BEGIN LIBTOOL TAG CONFIG: $1 -_LT_LIBTOOL_TAG_VARS(_LT_TAG) -# ### END LIBTOOL TAG CONFIG: $1 -_LT_EOF -])dnl /m4_if -], -[m4_if([$1], [], [ - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile'], []) -])dnl /_LT_CONFIG_SAVE_COMMANDS -])# _LT_CONFIG +AC_PATH_PROG(INTLTOOL_PERL, perl) +if test -z "$INTLTOOL_PERL"; then + AC_MSG_ERROR([perl not found]) +fi +AC_MSG_CHECKING([for perl >= 5.8.1]) +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + AC_MSG_ERROR([perl 5.8.1 is required for intltool]) +else + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` + AC_MSG_RESULT([$IT_PERL_VERSION]) +fi +if test "x$2" != "xno-xml"; then + AC_MSG_CHECKING([for XML::Parser]) + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + AC_MSG_RESULT([ok]) + else + AC_MSG_ERROR([XML::Parser perl module is required for intltool]) + fi +fi +# Substitute ALL_LINGUAS so we can use it in po/Makefile +AC_SUBST(ALL_LINGUAS) -# LT_SUPPORTED_TAG(TAG) -# --------------------- -# Trace this macro to discover what tags are supported by the libtool -# --tag option, using: -# autoconf --trace 'LT_SUPPORTED_TAG:$1' -AC_DEFUN([LT_SUPPORTED_TAG], []) +IT_PO_SUBDIR([po]) +]) -# C support is built-in for now -m4_define([_LT_LANG_C_enabled], []) -m4_define([_LT_TAGS], []) +# IT_PO_SUBDIR(DIRNAME) +# --------------------- +# All po subdirs have to be declared with this macro; the subdir "po" is +# declared by IT_PROG_INTLTOOL. +# +AC_DEFUN([IT_PO_SUBDIR], +[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. +dnl +dnl The following CONFIG_COMMANDS should be executed at the very end +dnl of config.status. +AC_CONFIG_COMMANDS_PRE([ + AC_CONFIG_COMMANDS([$1/stamp-it], [ + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then + AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) + fi + rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" + >"$1/stamp-it.tmp" + [sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" + ] + [sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r $1/POTFILES + } + ' "$1/Makefile.in" >"$1/Makefile"] + rm -f "$1/Makefile.tmp" + mv "$1/stamp-it.tmp" "$1/stamp-it" + ]) +])dnl +]) -# LT_LANG(LANG) -# ------------- -# Enable libtool support for the given language if not already enabled. -AC_DEFUN([LT_LANG], -[AC_BEFORE([$0], [LT_OUTPUT])dnl -m4_case([$1], - [C], [_LT_LANG(C)], - [C++], [_LT_LANG(CXX)], - [Java], [_LT_LANG(GCJ)], - [Fortran 77], [_LT_LANG(F77)], - [Fortran], [_LT_LANG(FC)], - [Windows Resource], [_LT_LANG(RC)], - [m4_ifdef([_LT_LANG_]$1[_CONFIG], - [_LT_LANG($1)], - [m4_fatal([$0: unsupported language: "$1"])])])dnl -])# LT_LANG +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) +# deprecated macros +AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) +# A hint is needed for aclocal from Automake <= 1.9.4: +# AC_DEFUN([AC_PROG_INTLTOOL], ...) -# _LT_LANG(LANGNAME) -# ------------------ -m4_defun([_LT_LANG], -[m4_ifdef([_LT_LANG_]$1[_enabled], [], - [LT_SUPPORTED_TAG([$1])dnl - m4_append([_LT_TAGS], [$1 ])dnl - m4_define([_LT_LANG_]$1[_enabled], [])dnl - _LT_LANG_$1_CONFIG($1)])dnl -])# _LT_LANG +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. -# _LT_LANG_DEFAULT_CONFIG -# ----------------------- -m4_defun([_LT_LANG_DEFAULT_CONFIG], -[AC_PROVIDE_IFELSE([AC_PROG_CXX], - [LT_LANG(CXX)], - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -AC_PROVIDE_IFELSE([AC_PROG_F77], - [LT_LANG(F77)], - [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) +# GNU Libtool is free software; you can 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 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +]) -AC_PROVIDE_IFELSE([AC_PROG_FC], - [LT_LANG(FC)], - [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) +# serial 58 LT_INIT -dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal -dnl pulling things in needlessly. -AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([LT_PROG_GCJ], - [LT_LANG(GCJ)], - [m4_ifdef([AC_PROG_GCJ], - [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([A][M_PROG_GCJ], - [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([LT_PROG_GCJ], - [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) -AC_PROVIDE_IFELSE([LT_PROG_RC], - [LT_LANG(RC)], - [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) -])# _LT_LANG_DEFAULT_CONFIG +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) -# Obsolete macros: -AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) -AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) -AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) -AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) -AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_CXX], []) -dnl AC_DEFUN([AC_LIBTOOL_F77], []) -dnl AC_DEFUN([AC_LIBTOOL_FC], []) -dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) -dnl AC_DEFUN([AC_LIBTOOL_RC], []) +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) -# _LT_TAG_COMPILER -# ---------------- -m4_defun([_LT_TAG_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl -_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl -_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl -_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl -_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_TAG_COMPILER +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -m4_defun([_LT_COMPILER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* -])# _LT_COMPILER_BOILERPLATE +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl +_LT_SETUP -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -m4_defun([_LT_LINKER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* -])# _LT_LINKER_BOILERPLATE +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT -# _LT_REQUIRED_DARWIN_CHECKS -# ------------------------- -m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ - case $host_os in - rhapsody* | darwin*) - AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) - AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) - AC_CHECK_TOOL([LIPO], [lipo], [:]) - AC_CHECK_TOOL([OTOOL], [otool], [:]) - AC_CHECK_TOOL([OTOOL64], [otool64], [:]) - _LT_DECL([], [DSYMUTIL], [1], - [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) - _LT_DECL([], [NMEDIT], [1], - [Tool to change global to local symbols on Mac OS X]) - _LT_DECL([], [LIPO], [1], - [Tool to manipulate fat objects and archives on Mac OS X]) - _LT_DECL([], [OTOOL], [1], - [ldd/readelf like tool for Mach-O binaries on Mac OS X]) - _LT_DECL([], [OTOOL64], [1], - [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) - AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], - [lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi]) - AC_CACHE_CHECK([for -exported_symbols_list linker flag], - [lt_cv_ld_exported_symbols_list], - [lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [lt_cv_ld_exported_symbols_list=yes], - [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" - ]) - AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], - [lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD - echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD - $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - ]) - case $host_os in - rhapsody* | darwin1.[[012]]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac -]) + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- -# Checks for linker and compiler features on darwin -m4_defun([_LT_DARWIN_LINKER_FEATURES], -[ - m4_require([_LT_REQUIRED_DARWIN_CHECKS]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_automatic, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='' - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - m4_if([$1], [CXX], -[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" - fi -],[]) - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result ]) -# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -# ---------------------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -# Store the results from the different compilers for each TAGNAME. -# Allow to override them for all tags through lt_cv_aix_libpath. -m4_defun([_LT_SYS_MODULE_PATH_AIX], -[m4_require([_LT_DECL_SED])dnl -if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], - [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ - lt_aix_libpath_sed='[ - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }]' - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi],[]) - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" - fi - ]) - aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -fi -])# _LT_SYS_MODULE_PATH_AIX - -# _LT_SHELL_INIT(ARG) -# ------------------- -m4_define([_LT_SHELL_INIT], -[m4_divert_text([M4SH-INIT], [$1 -])])# _LT_SHELL_INIT +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl -# _LT_PROG_ECHO_BACKSLASH -# ----------------------- -# Find how we can fake an echo command that does not interpret backslash. -# In particular, with Autoconf 2.60 or later we add some code to the start -# of the generated configure script which will find a shell with a builtin -# printf (which we can use as an echo command). -m4_defun([_LT_PROG_ECHO_BACKSLASH], -[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl -AC_MSG_CHECKING([how to print strings]) -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$[]1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST fi -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} +_LT_CHECK_OBJDIR -case "$ECHO" in - printf*) AC_MSG_RESULT([printf]) ;; - print*) AC_MSG_RESULT([print -r]) ;; - *) AC_MSG_RESULT([cat]) ;; -esac +m4_require([_LT_TAG_COMPILER])dnl -m4_ifdef([_AS_DETECT_SUGGESTED], -[_AS_DETECT_SUGGESTED([ - test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test "X`printf %s $ECHO`" = "X$ECHO" \ - || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac -_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) -])# _LT_PROG_ECHO_BACKSLASH +# Global variables: +ofile=libtool +can_build_shared=yes +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a -# _LT_WITH_SYSROOT -# ---------------- -AC_DEFUN([_LT_WITH_SYSROOT], -[AC_MSG_CHECKING([for sysroot]) -AC_ARG_WITH([sysroot], -[ --with-sysroot[=DIR] Search for dependent libraries within DIR - (or the compiler's sysroot if not specified).], -[], [with_sysroot=no]) +with_gnu_ld=$lt_cv_prog_gnu_ld -dnl lt_sysroot will always be passed unquoted. We quote it here -dnl in case the user passed a directory name. -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - AC_MSG_RESULT([${with_sysroot}]) - AC_MSG_ERROR([The sysroot must be an absolute path.]) - ;; -esac +old_CC=$CC +old_CFLAGS=$CFLAGS - AC_MSG_RESULT([${lt_sysroot:-no}]) -_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -[dependent libraries, and in which our libraries should be installed.])]) +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o -# _LT_ENABLE_LOCK -# --------------- -m4_defun([_LT_ENABLE_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AS_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes +_LT_CC_BASENAME([$compiler]) -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC fi - rm -rf conftest* ;; +esac -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP -need_locks="$enable_libtool_lock" -])# _LT_ENABLE_LOCK +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' -# _LT_PROG_AR -# ----------- -m4_defun([_LT_PROG_AR], -[AC_CHECK_TOOLS(AR, [ar], false) -: ${AR=ar} -: ${AR_FLAGS=cru} -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' -AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], - [lt_cv_ar_at_file=no - AC_COMPILE_IFELSE([AC_LANG_PROGRAM], - [echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - ]) - ]) +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi -_LT_DECL([], [archiver_list_spec], [1], - [How to feed a file listing to the archiver]) -])# _LT_PROG_AR +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) -# _LT_CMD_OLD_ARCHIVE -# ------------------- -m4_defun([_LT_CMD_OLD_ARCHIVE], -[_LT_PROG_AR +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN -AC_CHECK_TOOL(STRIP, strip, :) -test -z "$STRIP" && STRIP=: -_LT_DECL([], [STRIP], [1], [A symbol stripping program]) -AC_CHECK_TOOL(RANLIB, ranlib, :) -test -z "$RANLIB" && RANLIB=: -_LT_DECL([], [RANLIB], [1], - [Commands used to install an old-style archive]) -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac -_LT_DECL([], [old_postinstall_cmds], [2]) -_LT_DECL([], [old_postuninstall_cmds], [2]) -_LT_TAGDECL([], [old_archive_cmds], [2], - [Commands used to build an old-style archive]) -_LT_DECL([], [lock_old_archive_extraction], [0], - [Whether to use a lock for old archive extraction]) -])# _LT_CMD_OLD_ARCHIVE +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) -# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([_LT_COMPILER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - fi - $RM conftest* -]) -if test x"[$]$2" = xyes; then - m4_if([$5], , :, [$5]) -else - m4_if([$6], , :, [$6]) -fi -])# _LT_COMPILER_OPTION +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) -# Old name: -AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) -# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------- -# Check whether the given linker option works -AC_DEFUN([_LT_LINKER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - else - $2=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) ]) -if test x"[$]$2" = xyes; then - m4_if([$4], , :, [$4]) -else - m4_if([$5], , :, [$5]) -fi -])# _LT_LINKER_OPTION -# Old name: -AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) -# LT_CMD_MAX_LEN -#--------------- -AC_DEFUN([LT_CMD_MAX_LEN], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -max_cmd_len=$lt_cv_sys_max_cmd_len -_LT_DECL([], [max_cmd_len], [0], - [What is the maximum length of a command?]) -])# LT_CMD_MAX_LEN -# Old name: -AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) -# _LT_HEADER_DLFCN -# ---------------- -m4_defun([_LT_HEADER_DLFCN], -[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -])# _LT_HEADER_DLFCN +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) -# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ---------------------------------------------------------------- -m4_defun([_LT_TRY_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -[#line $LINENO "configure" -#include "confdefs.h" -#if HAVE_DLFCN_H -#include -#endif +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) -#include -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - return status; -}] -_LT_EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_TRY_DLOPEN_SELF +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) -# LT_SYS_DLOPEN_SELF -# ------------------ -AC_DEFUN([LT_SYS_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -_LT_DECL([dlopen_support], [enable_dlopen], [0], - [Whether dlopen is supported]) -_LT_DECL([dlopen_self], [enable_dlopen_self], [0], - [Whether dlopen of programs is supported]) -_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], - [Whether dlopen of statically linked programs is supported]) -])# LT_SYS_DLOPEN_SELF +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} -# Old name: -AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done -# _LT_COMPILER_C_O([TAGNAME]) -# --------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler. -# This macro does not hard code the compiler like AC_PROG_CC_C_O. -m4_defun([_LT_COMPILER_C_O], -[m4_require([_LT_DECL_SED])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext +_LT_OUTPUT_LIBTOOL_INIT +]) - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* -]) -_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], - [Does compiler simultaneously support -c and -o options?]) -])# _LT_COMPILER_C_O +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) -# _LT_COMPILER_FILE_LOCKS([TAGNAME]) -# ---------------------------------- -# Check to see if we can do hard links to lock some files if needed -m4_defun([_LT_COMPILER_FILE_LOCKS], -[m4_require([_LT_ENABLE_LOCK])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_COMPILER_C_O([$1]) +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD -hard_links="nottested" -if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -])# _LT_COMPILER_FILE_LOCKS +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. +Usage: $[0] [[OPTIONS]] -# _LT_CHECK_OBJDIR -# ---------------- -m4_defun([_LT_CHECK_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -_LT_DECL([], [objdir], [0], - [The name of the directory that contains temporary libtool files])dnl -m4_pattern_allow([LT_OBJDIR])dnl -AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries.]) -])# _LT_CHECK_OBJDIR + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files +Report bugs to ." -# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) -# -------------------------------------- -# Check hardcoding attributes. -m4_defun([_LT_LINKER_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || - test -n "$_LT_TAGVAR(runpath_var, $1)" || - test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. - # We can hardcode non-existent directories. - if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." -if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -_LT_TAGDECL([], [hardcode_action], [0], - [How to hardcode a shared library path into an executable]) -])# _LT_LINKER_HARDCODE_LIBPATH +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; -# _LT_CMD_STRIPLIB -# ---------------- -m4_defun([_LT_CMD_STRIPLIB], -[m4_require([_LT_DECL_EGREP]) -striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null fi -_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -_LT_DECL([], [striplib], [1]) -])# _LT_CMD_STRIPLIB +_LTEOF +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF -# _LT_SYS_DYNAMIC_LINKER([TAG]) -# ----------------------------- -# PORTME Fill in your ld.so characteristics -m4_defun([_LT_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_OBJDUMP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -m4_if([$1], - [], [ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; -aix[[4-9]]*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" -bsdi[[45]]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes +_LT_COPYING +_LT_LIBTOOL_TAGS - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac +_LT_EOF - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; + cat <<'_LT_EOF' >> "$cfgfile" - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; +# ### END FUNCTIONS SHARED WITH CONFIGURE -freebsd1*) - dynamic_linker=no - ;; +_LT_EOF -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[123]]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF ;; esac - ;; -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; + _LT_PROG_LTMAIN -haiku*) - version_type=linux - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" -interix[[3-9]]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # Some binutils ld are patched to set DT_RUNPATH - AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], - [lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [lt_cv_shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - ]) - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - # Add ABI-specific directories to the system library path. - sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - fi +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' +m4_ifndef([AC_PROG_GO], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) -rdos*) - dynamic_linker=no - ;; +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE -_LT_DECL([], [variables_saved_for_relink], [1], - [Variables whose values should be saved in libtool wrapper scripts and - restored at link time]) -_LT_DECL([], [need_lib_prefix], [0], - [Do we need the "lib" prefix for modules?]) -_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -_LT_DECL([], [version_type], [0], [Library versioning type]) -_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -_LT_DECL([], [shlibpath_overrides_runpath], [0], - [Is shlibpath searched before the hard-coded library search path?]) -_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -_LT_DECL([], [library_names_spec], [1], - [[List of archive names. First name is the real one, the rest are links. - The last name is the one that the linker finds with -lNAME]]) -_LT_DECL([], [soname_spec], [1], - [[The coded name of the library, if different from the real name]]) -_LT_DECL([], [install_override_mode], [1], - [Permission mode override for installation of shared libraries]) -_LT_DECL([], [postinstall_cmds], [2], - [Command to use after installation of a shared archive]) -_LT_DECL([], [postuninstall_cmds], [2], - [Command to use after uninstallation of a shared archive]) -_LT_DECL([], [finish_cmds], [2], - [Commands used to finish a libtool library installation in a directory]) -_LT_DECL([], [finish_eval], [1], - [[As "finish_cmds", except a single script fragment to be evaled but - not shown]]) -_LT_DECL([], [hardcode_into_libs], [0], - [Whether we should hardcode library paths into libraries]) -_LT_DECL([], [sys_lib_search_path_spec], [2], - [Compile-time system search path for libraries]) -_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], - [Run-time system search path for libraries]) -])# _LT_SYS_DYNAMIC_LINKER +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE -# _LT_PATH_TOOL_PREFIX(TOOL) -# -------------------------- -# find a file program which can recognize shared library -AC_DEFUN([_LT_PATH_TOOL_PREFIX], -[m4_require([_LT_DECL_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="m4_if([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} _LT_EOF - fi ;; - esac + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD fi - break + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -_LT_DECL([], [MAGIC_CMD], [0], - [Used to examine libraries when file_magic_cmd begins with "file"])dnl -])# _LT_PATH_TOOL_PREFIX - -# Old name: -AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) -# _LT_PATH_MAGIC -# -------------- -# find a file program which can recognize a shared library -m4_defun([_LT_PATH_MAGIC], -[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else - MAGIC_CMD=: + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi -])# _LT_PATH_MAGIC +])# _LT_SYS_MODULE_PATH_AIX -# LT_PATH_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([LT_PATH_LD], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PROG_ECHO_BACKSLASH])dnl +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT -AC_ARG_WITH([gnu-ld], - [AS_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no])dnl -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} -# _LT_CMD_RELOAD -# -------------- -# find reload flag for linker -# -- PORTME Some linkers may need a different reload flag. -m4_defun([_LT_CMD_RELOAD], -[AC_CACHE_CHECK([for $LD option to reload object files], - lt_cv_ld_reload_flag, - [lt_cv_ld_reload_flag='-r']) -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then - reload_cmds=false - fi - ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; esac -_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl -_LT_TAGDECL([], [reload_cmds], [2])dnl -])# _LT_CMD_RELOAD - - -# _LT_CHECK_MAGIC_METHOD -# ---------------------- -# how to check for library dependencies -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_MAGIC_METHOD], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -AC_CACHE_CHECK([how to recognize dependent libraries], -lt_cv_deplibs_check_method, -[lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. -case $host_os in -aix[[4-9]]*) - lt_cv_deplibs_check_method=pass_all - ;; +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) -beos*) - lt_cv_deplibs_check_method=pass_all - ;; +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH -bsdi[[45]]*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; esac - else - lt_cv_deplibs_check_method=pass_all fi + rm -rf conftest* ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* ;; -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* ;; -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* ;; -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - lt_cv_deplibs_check_method=pass_all +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac fi + rm -rf conftest* ;; +esac -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` - fi + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - -_LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) -_LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method = "file_magic"]) -_LT_DECL([], [file_magic_glob], [1], - [How to find potential files when deplibs_check_method = "file_magic"]) -_LT_DECL([], [want_nocaseglob], [1], - [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) -])# _LT_CHECK_MAGIC_METHOD +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE -# LT_PATH_NM -# ---------- -# find the pathname to a BSD- or MS-compatible name lister -AC_DEFUN([LT_PATH_NM], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi]) -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - AC_SUBST([DUMPBIN]) - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi + m4_if([$6], , :, [$6]) fi -test -z "$NM" && NM=nm -AC_SUBST([NM]) -_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl - -AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], - [lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) - cat conftest.out >&AS_MESSAGE_LOG_FD - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest*]) -])# LT_PATH_NM +])# _LT_COMPILER_OPTION -# Old names: -AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) -AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_PROG_NM], []) -dnl AC_DEFUN([AC_PROG_NM], []) +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) -# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -# -------------------------------- -# how to determine the name of the shared library -# associated with a specific link library. -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -m4_require([_LT_DECL_DLLTOOL]) -AC_CACHE_CHECK([how to associate runtime and link libraries], -lt_cv_sharedlib_from_linklib_cmd, -[lt_cv_sharedlib_from_linklib_cmd='unknown' -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS ]) -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - -_LT_DECL([], [sharedlib_from_linklib_cmd], [1], - [Command to associate shared and link libraries]) -])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB - -# _LT_PATH_MANIFEST_TOOL -# ---------------------- -# locate the manifest tool -m4_defun([_LT_PATH_MANIFEST_TOOL], -[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], - [lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&AS_MESSAGE_LOG_FD - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest*]) -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) fi -_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -])# _LT_PATH_MANIFEST_TOOL - - -# LT_LIB_M -# -------- -# check for math library -AC_DEFUN([LT_LIB_M], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -AC_SUBST([LIBM]) -])# LT_LIB_M +])# _LT_LINKER_OPTION # Old name: -AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_CHECK_LIBM], []) +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) -# _LT_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------- -m4_defun([_LT_COMPILER_NO_RTTI], -[m4_require([_LT_TAG_COMPILER])dnl +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD -_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; - *) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; - esac + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; - _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], - [Compiler flag to turn off builtin functions]) -])# _LT_COMPILER_NO_RTTI + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; -# _LT_CMD_GLOBAL_SYMBOLS -# ---------------------- -m4_defun([_LT_CMD_GLOBAL_SYMBOLS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([LT_PATH_NM])dnl -AC_REQUIRE([LT_PATH_LD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_TAG_COMPILER])dnl + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK ['"\ -" {last_section=section; section=\$ 3};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx]" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" +#if HAVE_DLFCN_H +#include +#endif - # Check to see that the pipe works correctly. - pipe_works=no +#include - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif #endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT@&t@_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT@&t@_DLSYM_CONST -#else -# define LT@&t@_DLSYM_CONST const +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif #endif -#ifdef __cplusplus -extern "C" { +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); #endif -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[[]] = +int fnord () { return 42; } +int main () { - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* + puts (dlerror ()); - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown else - AC_MSG_RESULT(ok) -fi + lt_cv_dlopen=no + lt_cv_dlopen_libs= -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then - nm_file_list_spec='@' -fi + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; -_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) -_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], - [Transform the output of nm in a proper C declaration]) -_LT_DECL([global_symbol_to_c_name_address], - [lt_cv_sys_global_symbol_to_c_name_address], [1], - [Transform the output of nm in a C name address pair]) -_LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -_LT_DECL([], [nm_file_list_spec], [1], - [Specify filename containing input files for $NM]) -]) # _LT_CMD_GLOBAL_SYMBOLS + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; -# _LT_COMPILER_PIC([TAGNAME]) -# --------------------------- -m4_defun([_LT_COMPILER_PIC], -[m4_require([_LT_TAG_COMPILER])dnl -_LT_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_TAGVAR(lt_prog_compiler_static, $1)= + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; -m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix[[4-9]]*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - dgux*) - case $cc_basename in - ec++*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - KCC*) - # KAI C++ Compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - ecpc* ) - # old Intel C++ for x86_64 which still supported -KPIC. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - icpc* ) - # Intel C++, used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) - # IBM XL 8.0, 9.0 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx*) - # Digital/Compaq C++ - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc*) - # Lucid - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - vxworks*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; esac - fi -], -[ - if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no fi ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; + esac + shlibpath_var=LIBPATH + fi + ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' - ;; - esac +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` else - # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in - aix*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac - hpux9* | hpux10* | hpux11*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no ;; - - irix5* | irix6* | nonstopux*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; - nagfor*) - # NAG Fortran compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - ccc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' - ;; - *Sun\ C*) - # Sun C 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - esac - ;; - esac + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; - newsos6) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; - osf3* | osf4* | osf5*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; - rdos*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; - solaris*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; - sunos4*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes - sysv4*MP*) - if test -d /usr/nec ;then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no - unicos*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - uts4*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi -]) -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; -esac -AC_CACHE_CHECK([for $compiler option to produce PIC], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], - [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], - [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) -# -# Check to make sure the static flag actually works. -# -wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" -_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) -_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], - [Compiler flag to prevent dynamic linking]) -])# _LT_COMPILER_PIC +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; -# _LT_LINKER_SHLIBS([TAGNAME]) -# ---------------------------- -# See if the linker supports building shared libraries. -m4_defun([_LT_LINKER_SHLIBS], -[AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global defined - # symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw* | cegcc*) - case $cc_basename in - cl*) ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - ;; - esac - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(archive_cmds, $1)= - _LT_TAGVAR(archive_expsym_cmds, $1)= - _LT_TAGVAR(compiler_needs_object, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(hardcode_automatic, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= - _LT_TAGVAR(hardcode_libdir_separator, $1)= - _LT_TAGVAR(hardcode_minus_L, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(inherit_rpath, $1)=no - _LT_TAGVAR(link_all_deplibs, $1)=unknown - _LT_TAGVAR(module_cmds, $1)= - _LT_TAGVAR(module_expsym_cmds, $1)= - _LT_TAGVAR(old_archive_from_new_cmds, $1)= - _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_TAGVAR(thread_safe_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. -dnl Note also adjust exclude_expsyms for C++ above. - extract_expsyms_cmds= +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; esac + ;; - _LT_TAGVAR(ld_shlibs, $1)=yes +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; - *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[[3-9]]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; -_LT_EOF - fi - ;; +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - _LT_TAGVAR(whole_archive_flag_spec, $1)= - tmp_sharedflag='--shared' ;; - xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - case $cc_basename in - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; esac - else - _LT_TAGVAR(ld_shlibs, $1)=no fi - ;; + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl -_LT_EOF +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi + *) + test yes != "$with_gnu_ld" && break ;; esac - ;; + fi + done + IFS=$lt_save_ifs +else + lt_cv_path_LD=$LD # Let the user override the test with a path. +fi]) +LD=$lt_cv_path_LD +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +_LT_PATH_LD_GNU +AC_SUBST([LD]) - sunos4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) +])# LT_PATH_LD + +# Old names: +AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) +AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_LD], []) +dnl AC_DEFUN([AC_PROG_LD], []) + + +# _LT_PATH_LD_GNU +#- -------------- +m4_defun([_LT_PATH_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then - runpath_var= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= +# _LT_CMD_RELOAD +# -------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +m4_defun([_LT_CMD_RELOAD], +[AC_CACHE_CHECK([for $LD option to reload object files], + lt_cv_ld_reload_flag, + [lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl +])# _LT_CMD_RELOAD - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac +# _LT_PATH_DD +# ----------- +# find a working dd +m4_defun([_LT_PATH_DD], +[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - if test "$GCC" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; +beos*) + lt_cv_deplibs_check_method=pass_all + ;; - bsdi[[45]]*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - esac - ;; +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; - dgux*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; - freebsd1*) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; - hpux9*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - fi - ;; +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - m4_if($1, [], [ - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - _LT_LINKER_OPTION([if $CC understands -b], - _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], - [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) - ;; - esac - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], - [lt_cv_irix_exported_symbol], - [save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE( - [AC_LANG_SOURCE( - [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], - [C++], [[int foo (void) { return 0; }]], - [Fortran 77], [[ - subroutine foo - end]], - [Fortran], [[ - subroutine foo - end]])])], - [lt_cv_irix_exported_symbol=yes], - [lt_cv_irix_exported_symbol=no]) - LDFLAGS="$save_LDFLAGS"]) - if test "$lt_cv_irix_exported_symbol" = yes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown - newsos6) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD - *nto* | *qnx*) - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; esac - fi - else - _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" ;; - - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + *) + DUMPBIN=: ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl - osf3*) - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) - # Both c and cxx compiler support -rpath directly - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' - solaris*) - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB - sysv4) - case $host_vendor in - sni) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - sysv4.3*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) - uts4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' - ;; - esac - fi - fi -]) -AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= -_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac -_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -_LT_DECL([], [extract_expsyms_cmds], [2], - [The commands to extract the exported symbol list from a shared archive]) + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI -# -# Do we need to explicitly link libc? -# -case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_CACHE_CHECK([whether -lc should be explicitly linked in], - [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), - [$RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - ]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) - ;; - esac +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' fi ;; -esac - -_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], - [Whether or not to add -lc for building shared libraries]) -_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], - [enable_shared_with_static_runtimes], [0], - [Whether or not to disallow shared libs when runtime libs are static]) -_LT_TAGDECL([], [export_dynamic_flag_spec], [1], - [Compiler flag to allow reflexive dlopens]) -_LT_TAGDECL([], [whole_archive_flag_spec], [1], - [Compiler flag to generate shared objects directly from archives]) -_LT_TAGDECL([], [compiler_needs_object], [1], - [Whether the compiler copes with passing no objects directly]) -_LT_TAGDECL([], [old_archive_from_new_cmds], [2], - [Create an old-style archive from a shared archive]) -_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], - [Create a temporary old-style archive to link instead of a shared archive]) -_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) -_LT_TAGDECL([], [archive_expsym_cmds], [2]) -_LT_TAGDECL([], [module_cmds], [2], - [Commands used to build a loadable module if different from building - a shared archive.]) -_LT_TAGDECL([], [module_expsym_cmds], [2]) -_LT_TAGDECL([], [with_gnu_ld], [1], - [Whether we are building with GNU ld or not]) -_LT_TAGDECL([], [allow_undefined_flag], [1], - [Flag that allows shared libraries with undefined symbols to be built]) -_LT_TAGDECL([], [no_undefined_flag], [1], - [Flag that enforces no undefined symbols]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], - [Flag to hardcode $libdir into a binary during linking. - This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [[If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]]) -_LT_TAGDECL([], [hardcode_libdir_separator], [1], - [Whether we need a single "-rpath" flag with a separated argument]) -_LT_TAGDECL([], [hardcode_direct], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary]) -_LT_TAGDECL([], [hardcode_direct_absolute], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary and the resulting library dependency is - "absolute", i.e impossible to change by setting ${shlibpath_var} if the - library is relocated]) -_LT_TAGDECL([], [hardcode_minus_L], [0], - [Set to "yes" if using the -LDIR flag during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_shlibpath_var], [0], - [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_automatic], [0], - [Set to "yes" if building a shared library automatically hardcodes DIR - into the library and all subsequent libraries and executables linked - against it]) -_LT_TAGDECL([], [inherit_rpath], [0], - [Set to yes if linker adds runtime paths of dependent libraries - to runtime path list]) -_LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) -_LT_TAGDECL([], [export_symbols_cmds], [2], - [The commands to list exported symbols]) -_LT_TAGDECL([], [exclude_expsyms], [1], - [Symbols that should not be listed in the preloaded symbols]) -_LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) -_LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -_LT_TAGDECL([], [postlink_cmds], [2], - [Commands necessary for finishing linking programs]) -_LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) -dnl FIXME: Not yet implemented -dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], -dnl [Compiler flag to generate thread safe objects]) -])# _LT_LINKER_SHLIBS +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac -# _LT_LANG_C_CONFIG([TAG]) -# ------------------------ -# Ensure that the configuration variables for a C compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_C_CONFIG], -[m4_require([_LT_DECL_EGREP])dnl -lt_save_CC="$CC" -AC_LANG_PUSH(C) +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi -# Source file extension for C test sources. -ac_ext=c +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" -# Object file extension for compiled C test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do -_LT_TAG_COMPILER -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - LT_SYS_DLOPEN_SELF - _LT_CMD_STRIPLIB + # Check to see that the pipe works correctly. + pipe_works=no - # Report which library types will actually be built - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) +#ifdef __cplusplus +extern "C" { +#endif - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - _LT_CONFIG($1) -fi -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_C_CONFIG + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif -# _LT_LANG_CXX_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a C++ compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_CXX_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) else - _lt_caught_CXX_error=yes + AC_MSG_RESULT(ok) fi -AC_LANG_PUSH(C++) -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(compiler_needs_object, $1)=no -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi -# Source file extension for C++ test sources. -ac_ext=cpp +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS -# Object file extension for compiled C++ test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext -# No sense in running all these tests if we already determined that -# the CXX compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_caught_CXX_error" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="int some_variable = 0;" +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= - # Code to be used in simple link tests - lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; - # Allow CC to be a program name with arguments. - lt_save_CC=$CC - lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX - lt_save_with_gnu_ld=$with_gnu_ld - lt_save_path_LD=$lt_cv_path_LD - if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx - else - $as_unset lt_cv_prog_gnu_ld - fi - if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac else - $as_unset lt_cv_path_LD + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} - CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - # We don't want -fno-exception when compiling C++ code, so set the - # no_builtin_flag separately - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - else - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - fi - - if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - LT_PATH_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | - $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; - else - GXX=no - with_gnu_ld=no - wlarc= - fi + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; - # PORTME: fill in a description of your system's C++ link characteristics - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - _LT_TAGVAR(ld_shlibs, $1)=yes - case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; - if test "$GXX" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to - # export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared - # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; + esac + ;; - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; + esac + ;; - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; - cygwin* | mingw* | pw32* | cegcc*) - case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - func_to_tool_file "$lt_outputfile"~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # g++ - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; - - freebsd[[12]]*) - # C++ shared libraries reported to be fairly broken before - # switch to ELF - _LT_TAGVAR(ld_shlibs, $1)=no + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; - freebsd-elf*) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - ;; + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; - gnu*) - ;; + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; - hpux9*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - ;; + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc* | ecpc* ) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - case `$CC -V` in - *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - esac +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' - ;; - xl* | mpixl* | bgxl*) - # IBM XL 8.0 on PPC, with GNU ld - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='func_echo_all' + _LT_TAGVAR(ld_shlibs, $1)=yes - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - esac + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes ;; esac ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi - lynxos*) - # FIXME: insert proper C++ library support + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no - ;; + cat <<_LT_EOF 1>&2 - m88k*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; - *nto* | *qnx*) - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - openbsd2*) - # C++ shared libraries are fairly broken + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else _LT_TAGVAR(ld_shlibs, $1)=no - ;; + fi + ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd=func_echo_all - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - case $host in - osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; - *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; - esac - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - case $host in - osf3*) - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - ;; - *) - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ - $RM $lib.exp' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - ;; - esac + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi - _LT_TAGVAR(hardcode_libdir_separator, $1)=: + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - case $host in - osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; - psos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; + fi + ;; + esac + ;; - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac - output_verbose_link_cmd='func_echo_all' + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no - # The C++ compiler must be used to create the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - fi + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; + esac + ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; esac ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ - '"$_LT_TAGVAR(old_archive_cmds, $1)" - _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ - '"$_LT_TAGVAR(reload_cmds, $1)" - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - vxworks*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) - test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - _LT_TAGVAR(GCC, $1)="$GXX" - _LT_TAGVAR(LD, $1)="$LD" + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - _LT_CONFIG($1) - fi # test -n "$compiler" + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC - with_gnu_ld=$lt_save_with_gnu_ld - lt_cv_path_LDCXX=$lt_cv_path_LD - lt_cv_path_LD=$lt_save_path_LD - lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld - lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -fi # test "$_lt_caught_CXX_error" != yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; -AC_LANG_POP -])# _LT_LANG_CXX_CONFIG + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: -# _LT_FUNC_STRIPNAME_CNF -# ---------------------- -# func_stripname_cnf prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# -# This function is identical to the (non-XSI) version of func_stripname, -# except this one can be used by m4 code that may be executed by configure, -# rather than the libtool script. -m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -AC_REQUIRE([_LT_DECL_SED]) -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -func_stripname_cnf () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname_cnf -])# _LT_FUNC_STRIPNAME_CNF + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' -# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) -# --------------------------------- -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -m4_defun([_LT_SYS_HIDDEN_LIBDEPS], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl -# Dependencies to place before and after the object being linked: -_LT_TAGVAR(predep_objects, $1)= -_LT_TAGVAR(postdep_objects, $1)= -_LT_TAGVAR(predeps, $1)= -_LT_TAGVAR(postdeps, $1)= -_LT_TAGVAR(compiler_lib_search_path, $1)= + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF -int a; -void foo (void) { a = 0; } -_LT_EOF -], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -_LT_EOF -], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer*4 a - a=0 - return - end -_LT_EOF -], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ subroutine foo - implicit none - integer a - a=0 - return - end -_LT_EOF -], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF -public class foo { - private int a; - public void bar (void) { - a = 0; - } -}; -_LT_EOF -]) + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; -_lt_libdeps_save_CFLAGS=$CFLAGS -case "$CC $CFLAGS " in #( -*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -esac + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; -dnl Parse the compiler output and extract the necessary -dnl objects, libraries and library flags. -if AC_TRY_EVAL(ac_compile); then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; - for p in `eval "$output_verbose_link_cmd"`; do - case ${prev}${p} in + *nto* | *qnx*) + ;; - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" || - test $p = "-R"; then - prev=$p - continue - fi + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; - # Expand the sysroot to ease extracting the directories later. - if test -z "$prev"; then - case $p in - -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; - -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; - -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; - esac - fi - case $p in - =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; - esac - if test "$pre_test_object_deps_done" = no; then - case ${prev} in - -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" - else - _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$_LT_TAGVAR(postdeps, $1)"; then - _LT_TAGVAR(postdeps, $1)="${prev}${p}" - else - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi - prev= - ;; + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; - *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; - if test "$pre_test_object_deps_done" = no; then - if test -z "$_LT_TAGVAR(predep_objects, $1)"; then - _LT_TAGVAR(predep_objects, $1)="$p" - else - _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then - _LT_TAGVAR(postdep_objects, $1)="$p" - else - _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' - *) ;; # Ignore the rest. + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; - esac - done + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; -$RM -f confest.$objext -CFLAGS=$_lt_libdeps_save_CFLAGS + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; -# PORTME: override above test on systems where it is broken -m4_if([$1], [CXX], -[case $host_os in -interix[[3-9]]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - _LT_TAGVAR(predep_objects,$1)= - _LT_TAGVAR(postdep_objects,$1)= - _LT_TAGVAR(postdeps,$1)= - ;; + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi ;; - esac - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; -solaris*) - case $cc_basename in - CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes + *) + _LT_TAGVAR(ld_shlibs, $1)=no ;; esac - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac fi - ;; - esac - ;; -esac + fi ]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no -case " $_LT_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; esac - _LT_TAGVAR(compiler_lib_search_dirs, $1)= -if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then - _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` -fi -_LT_TAGDECL([], [compiler_lib_search_dirs], [1], - [The directories searched by this compiler when creating a shared library]) -_LT_TAGDECL([], [predep_objects], [1], - [Dependencies to place before and after the objects being linked to - create a shared library]) -_LT_TAGDECL([], [postdep_objects], [1]) -_LT_TAGDECL([], [predeps], [1]) -_LT_TAGDECL([], [postdeps], [1]) -_LT_TAGDECL([], [compiler_lib_search_path], [1], - [The library search path used internally by the compiler when linking - a shared library]) -])# _LT_SYS_HIDDEN_LIBDEPS +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS -# _LT_LANG_F77_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a Fortran 77 compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_F77_CONFIG], -[AC_LANG_PUSH(Fortran 77) -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) -# Source file extension for f77 test sources. -ac_ext=f +# Source file extension for C test sources. +ac_ext=c -# Object file extension for compiled f77 test sources. +# Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext -# No sense in running all these tests if we already determined that -# the F77 compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_F77" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} - CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - GCC=$G77 - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) - _LT_TAGVAR(GCC, $1)="$G77" - _LT_TAGVAR(LD, $1)="$LD" + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; - _LT_CONFIG($1) - fi # test -n "$compiler" + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) - GCC=$lt_save_GCC - CC="$lt_save_CC" - CFLAGS="$lt_save_CFLAGS" -fi # test "$_lt_disable_F77" != yes + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + _LT_CONFIG($1) +fi AC_LANG_POP -])# _LT_LANG_F77_CONFIG - +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG -# _LT_LANG_FC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for a Fortran compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_FC_CONFIG], -[AC_LANG_PUSH(Fortran) -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes fi +AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= @@ -7952,30 +8380,23 @@ _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no -# Source file extension for fc test sources. -ac_ext=${ac_fc_srcext-f} +# Source file extension for C++ test sources. +ac_ext=cpp -# Object file extension for compiled fc test sources. +# Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that -# the FC compiler isn't working. Some variables (like enable_shared) +# the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_FC" != yes; then +if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" + lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER @@ -7985,2415 +8406,2700 @@ _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC + lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} - CFLAGS=$FCFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) + if test yes = "$GXX"; then + # Set up default GNU C++ configuration - _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" - _LT_TAGVAR(LD, $1)="$LD" + LT_PATH_LD - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - _LT_CONFIG($1) - fi # test -n "$compiler" + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' - GCC=$lt_save_GCC - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS -fi # test "$_lt_disable_FC" != yes + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' -AC_LANG_POP -])# _LT_LANG_FC_CONFIG + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi -# _LT_LANG_GCJ_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Java Compiler compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GCJ_CONFIG], -[AC_REQUIRE([LT_PROG_GCJ])dnl -AC_LANG_SAVE + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' -# Source file extension for Java test sources. -ac_ext=java + else + GXX=no + with_gnu_ld=no + wlarc= + fi -# Object file extension for compiled Java test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GCJ-"gcj"} -CFLAGS=$GCJFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; - _LT_CONFIG($1) -fi + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; -AC_LANG_RESTORE + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GCJ_CONFIG + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; -# _LT_LANG_RC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for the Windows resource compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_RC_CONFIG], -[AC_REQUIRE([LT_PROG_RC])dnl -AC_LANG_SAVE + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; -# Source file extension for RC test sources. -ac_ext=rc + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; -# Object file extension for compiled RC test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC= -CC=${RC-"windres"} -CFLAGS= -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) -_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: -if test -n "$compiler"; then - : - _LT_CONFIG($1) -fi + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac -GCC=$lt_save_GCC -AC_LANG_RESTORE -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_RC_CONFIG + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; -# LT_PROG_GCJ -# ----------- -AC_DEFUN([LT_PROG_GCJ], -[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], - [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], - [AC_CHECK_TOOL(GCJ, gcj,) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS)])])[]dnl -]) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler -# Old name: -AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' -# LT_PROG_RC -# ---------- -AC_DEFUN([LT_PROG_RC], -[AC_CHECK_TOOL(RC, windres,) -]) + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac -# Old name: -AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_RC], []) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: -# _LT_DECL_EGREP -# -------------- -# If we don't have a new enough Autoconf to choose the best grep -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_EGREP], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_FGREP])dnl -test -z "$GREP" && GREP=grep -_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) -_LT_DECL([], [EGREP], [1], [An ERE matcher]) -_LT_DECL([], [FGREP], [1], [A literal string matcher]) -dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too -AC_SUBST([GREP]) -]) + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' -# _LT_DECL_OBJDUMP -# -------------- -# If we don't have a new enough Autoconf to choose the best objdump -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_OBJDUMP], -[AC_CHECK_TOOL(OBJDUMP, objdump, false) -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) -AC_SUBST([OBJDUMP]) -]) + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; -# _LT_DECL_DLLTOOL -# ---------------- -# Ensure DLLTOOL variable is set. -m4_defun([_LT_DECL_DLLTOOL], -[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -AC_SUBST([DLLTOOL]) -]) + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; -# _LT_DECL_SED -# ------------ -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -m4_defun([_LT_DECL_SED], -[AC_PROG_SED -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" -_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) -_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], - [Sed that helps us avoid accidentally triggering echo(1) options like -n]) -])# _LT_DECL_SED + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; -m4_ifndef([AC_PROG_SED], [ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; -m4_defun([AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -])#AC_PROG_SED -])#m4_ifndef + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; -# Old name: -AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_SED], []) + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; -# _LT_CHECK_SHELL_FEATURES -# ------------------------ -# Find out whether the shell is Bourne or XSI compatible, -# or has some other useful features. -m4_defun([_LT_CHECK_SHELL_FEATURES], -[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -AC_MSG_RESULT([$xsi_shell]) -_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) - -AC_MSG_CHECKING([whether the shell understands "+="]) -lt_shell_append=no -( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -AC_MSG_RESULT([$lt_shell_append]) -_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi -_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac -_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl -_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl -])# _LT_CHECK_SHELL_FEATURES + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac -# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -# ------------------------------------------------------ -# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -m4_defun([_LT_PROG_FUNCTION_REPLACE], -[dnl { -sed -e '/^$1 ()$/,/^} # $1 /c\ -$1 ()\ -{\ -m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: -]) + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac -# _LT_PROG_REPLACE_SHELLFNS -# ------------------------- -# Replace existing portable implementations of several shell functions with -# equivalent extended shell implementations where those features are available.. -m4_defun([_LT_PROG_REPLACE_SHELLFNS], -[if test x"$xsi_shell" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl - func_split_long_opt_name=${1%%=*} - func_split_long_opt_arg=${1#*=}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) - - _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - - _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - - _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -fi - -if test x"$lt_shell_append" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - - _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl - func_quote_for_eval "${2}" -dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ - eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: -if test x"$_lt_function_replace_fail" = x":"; then - AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -fi -]) + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' -# _LT_PATH_CONVERSION_FUNCTIONS -# ----------------------------- -# Determine which file name conversion functions should be used by -# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -# for certain cross-compile configurations and native mingw. -m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_MSG_CHECKING([how to convert $build file names to $host format]) -AC_CACHE_VAL(lt_cv_to_host_file_cmd, -[case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac -]) -to_host_file_cmd=$lt_cv_to_host_file_cmd -AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], - [0], [convert $build file names to $host format])dnl -AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -[#assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac -]) -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], - [0], [convert $build files to toolchain format])dnl -])# _LT_PATH_CONVERSION_FUNCTIONS + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -# Helper functions for option handling. -*- Autoconf -*- -# -# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes -# serial 7 ltoptions.m4 + output_verbose_link_cmd='func_echo_all' -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) -# ------------------------------------------ -m4_define([_LT_MANGLE_OPTION], -[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi -# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) -# --------------------------------------- -# Set option OPTION-NAME for macro MACRO-NAME, and if there is a -# matching handler defined, dispatch to it. Other OPTION-NAMEs are -# saved as a flag. -m4_define([_LT_SET_OPTION], -[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl -m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), - _LT_MANGLE_DEFUN([$1], [$2]), - [m4_warning([Unknown $1 option `$2'])])[]dnl -]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' -# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) -# ------------------------------------------------------------ -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -m4_define([_LT_IF_OPTION], -[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' -# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) -# ------------------------------------------------------- -# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME -# are set. -m4_define([_LT_UNLESS_OPTIONS], -[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), - [m4_define([$0_found])])])[]dnl -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 -])[]dnl -]) + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; -# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) -# ---------------------------------------- -# OPTION-LIST is a space-separated list of Libtool options associated -# with MACRO-NAME. If any OPTION has a matching handler declared with -# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about -# the unknown option and exit. -m4_defun([_LT_SET_OPTIONS], -[# Set options -m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [_LT_SET_OPTION([$1], _LT_Option)]) + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; -m4_if([$1],[LT_INIT],[ - dnl - dnl Simply set some default values (i.e off) if boolean options were not - dnl specified: - _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no - ]) - _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no - ]) - dnl - dnl If no reference was made to various pairs of opposing options, then - dnl we run the default mode handler for the pair. For example, if neither - dnl `shared' nor `disable-shared' was passed, we enable building of shared - dnl archives by default: - _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) - _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) - ]) -])# _LT_SET_OPTIONS + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD -# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) -# ----------------------------------------- -m4_define([_LT_MANGLE_DEFUN], -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + _LT_CONFIG($1) + fi # test -n "$compiler" -# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) -# ----------------------------------------------- -m4_define([LT_OPTION_DEFINE], -[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl -])# LT_OPTION_DEFINE + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF -# dlopen -# ------ -LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes -]) +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= -AU_DEFUN([AC_LIBTOOL_DLOPEN], -[_LT_SET_OPTION([LT_INIT], [dlopen]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `dlopen' option into LT_INIT's first parameter.]) +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF ]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) - +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac -# win32-dll -# --------- -# Declare package support for building win32 dll's. -LT_OPTION_DEFINE([LT_INIT], [win32-dll], -[enable_win32_dll=yes +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -esac + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no -test -z "$AS" && AS=as -_LT_DECL([], [AS], [1], [Assembler program])dnl + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl -])# win32-dll + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; -AU_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -_LT_SET_OPTION([LT_INIT], [win32-dll]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `win32-dll' option into LT_INIT's first parameter.]) -]) + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + *) ;; # Ignore the rest. -# _LT_ENABLE_SHARED([DEFAULT]) -# ---------------------------- -# implement the --enable-shared flag, and supports the `shared' and -# `disable-shared' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_SHARED], -[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([shared], - [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + esac + done - _LT_DECL([build_libtool_libs], [enable_shared], [0], - [Whether or not to build shared libraries]) -])# _LT_ENABLE_SHARED + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi -LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS -# Old names: -AC_DEFUN([AC_ENABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac ]) -AC_DEFUN([AC_DISABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], [disable-shared]) -]) +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS -AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_SHARED], []) -dnl AC_DEFUN([AM_DISABLE_SHARED], []) +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no +# Source file extension for f77 test sources. +ac_ext=f -# _LT_ENABLE_STATIC([DEFAULT]) -# ---------------------------- -# implement the --enable-static flag, and support the `static' and -# `disable-static' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_STATIC], -[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([static], - [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_static=]_LT_ENABLE_STATIC_DEFAULT) +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext - _LT_DECL([build_old_libs], [enable_static], [0], - [Whether or not to build static libraries]) -])# _LT_ENABLE_STATIC +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" -LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" -# Old names: -AC_DEFUN([AC_ENABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) -]) + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER -AC_DEFUN([AC_DISABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], [disable-static]) -]) + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE -AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_STATIC], []) -dnl AC_DEFUN([AM_DISABLE_STATIC], []) + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) -# _LT_ENABLE_FAST_INSTALL([DEFAULT]) -# ---------------------------------- -# implement the --enable-fast-install flag, and support the `fast-install' -# and `disable-fast-install' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_FAST_INSTALL], -[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([fast-install], - [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD -_LT_DECL([fast_install], [enable_fast_install], [0], - [Whether or not to optimize for fast installation])dnl -])# _LT_ENABLE_FAST_INSTALL + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) -LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + _LT_CONFIG($1) + fi # test -n "$compiler" -# Old names: -AU_DEFUN([AC_ENABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `fast-install' option into LT_INIT's first parameter.]) -]) + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" -AU_DEFUN([AC_DISABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-fast-install' option into LT_INIT's first parameter.]) -]) +AC_LANG_POP +])# _LT_LANG_F77_CONFIG -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) -dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) -# _LT_WITH_PIC([MODE]) -# -------------------- -# implement the --with-pic flag, and support the `pic-only' and `no-pic' -# LT_INIT options. -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -m4_define([_LT_WITH_PIC], -[AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], - [pic_mode=default]) +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi -test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no -_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -])# _LT_WITH_PIC +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} -LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext -# Old name: -AU_DEFUN([AC_LIBTOOL_PICMODE], -[_LT_SET_OPTION([LT_INIT], [pic-only]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `pic-only' option into LT_INIT's first parameter.]) -]) +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER -m4_define([_LTDL_MODE], []) -LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], - [m4_define([_LTDL_MODE], [nonrecursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [recursive], - [m4_define([_LTDL_MODE], [recursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [subproject], - [m4_define([_LTDL_MODE], [subproject])]) + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE -m4_define([_LTDL_TYPE], []) -LT_OPTION_DEFINE([LTDL_INIT], [installable], - [m4_define([_LTDL_TYPE], [installable])]) -LT_OPTION_DEFINE([LTDL_INIT], [convenience], - [m4_define([_LTDL_TYPE], [convenience])]) + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) -# serial 6 ltsugar.m4 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) -# lt_join(SEP, ARG1, [ARG2...]) -# ----------------------------- -# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their -# associated separator. -# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier -# versions in m4sugar had bugs. -m4_define([lt_join], -[m4_if([$#], [1], [], - [$#], [2], [[$2]], - [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) -m4_define([_lt_join], -[m4_if([$#$2], [2], [], - [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD -# lt_car(LIST) -# lt_cdr(LIST) -# ------------ -# Manipulate m4 lists. -# These macros are necessary as long as will still need to support -# Autoconf-2.59 which quotes differently. -m4_define([lt_car], [[$1]]) -m4_define([lt_cdr], -[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], - [$#], 1, [], - [m4_dquote(m4_shift($@))])]) -m4_define([lt_unquote], $1) + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + _LT_CONFIG($1) + fi # test -n "$compiler" -# lt_append(MACRO-NAME, STRING, [SEPARATOR]) -# ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. -# Note that neither SEPARATOR nor STRING are expanded; they are appended -# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). -# No SEPARATOR is output if MACRO-NAME was previously undefined (different -# than defined and empty). -# -# This macro is needed until we can rely on Autoconf 2.62, since earlier -# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. -m4_define([lt_append], -[m4_define([$1], - m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" +AC_LANG_POP +])# _LT_LANG_FC_CONFIG -# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) -# ---------------------------------------------------------- -# Produce a SEP delimited list of all paired combinations of elements of -# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list -# has the form PREFIXmINFIXSUFFIXn. -# Needed until we can rely on m4_combine added in Autoconf 2.62. -m4_define([lt_combine], -[m4_if(m4_eval([$# > 3]), [1], - [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl -[[m4_foreach([_Lt_prefix], [$2], - [m4_foreach([_Lt_suffix], - ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, - [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE +# Source file extension for Java test sources. +ac_ext=java -# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) -# ----------------------------------------------------------------------- -# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited -# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. -m4_define([lt_if_append_uniq], -[m4_ifdef([$1], - [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], - [lt_append([$1], [$2], [$3])$4], - [$5])], - [lt_append([$1], [$2], [$3])$4])]) +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" -# lt_dict_add(DICT, KEY, VALUE) -# ----------------------------- -m4_define([lt_dict_add], -[m4_define([$1($2)], [$3])]) +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER -# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) -# -------------------------------------------- -m4_define([lt_dict_add_subkey], -[m4_define([$1($2:$3)], [$4])]) +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) -# lt_dict_fetch(DICT, KEY, [SUBKEY]) -# ---------------------------------- -m4_define([lt_dict_fetch], -[m4_ifval([$3], - m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), - m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) -# ----------------------------------------------------------------- -m4_define([lt_if_dict_fetch], -[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], - [$5], - [$6])]) +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + _LT_CONFIG($1) +fi -# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -# -------------------------------------------------------------- -m4_define([lt_dict_filter], -[m4_if([$5], [], [], - [lt_join(m4_quote(m4_default([$4], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), - [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl -]) +AC_LANG_RESTORE -# ltversion.m4 -- version numbers -*- Autoconf -*- -# -# Copyright (C) 2004 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG -# @configure_input@ -# serial 3293 ltversion.m4 -# This file is part of GNU Libtool +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE -m4_define([LT_PACKAGE_VERSION], [2.4]) -m4_define([LT_PACKAGE_REVISION], [1.3293]) +# Source file extension for Go test sources. +ac_ext=go -AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4' -macro_revision='1.3293' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) -]) +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004. -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" -# serial 5 lt~obsolete.m4 +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' -# These exist entirely to fool aclocal when bootstrapping libtool. -# -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) -# which have later been changed to m4_define as they aren't part of the -# exported API, or moved to Autoconf or Automake where they belong. -# -# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN -# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us -# using a macro with the same name in our local m4/libtool.m4 it'll -# pull the old libtool.m4 in (it doesn't see our shiny new m4_define -# and doesn't know about Autoconf macros at all.) -# -# So we provide this file, which has a silly filename so it's always -# included after everything else. This provides aclocal with the -# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything -# because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. -# -# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. -# Yes, that means every name once taken will need to remain here until -# we give up compatibility with versions before 1.7, at which point -# we need to keep only those names which we still refer to. +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) -m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) -m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) -m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) -m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) -m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) -m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) -m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) -m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) -m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) -m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) -m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) -m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) -m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) -m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) -m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) -m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) -m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) -m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) -m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) -m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) -m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) -m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) -m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) -m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) -m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) -m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) -m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) -m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) -m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) -m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) -m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) -m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) -m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) -m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) -m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) -m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) -m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) -m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) -m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) -m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) -m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) -m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) -m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) -m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) -m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) -m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) -m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) -m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) -m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no -# nls.m4 serial 5 (gettext-0.18) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, -dnl Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) -AC_PREREQ([2.50]) + _LT_CONFIG($1) +fi -AC_DEFUN([AM_NLS], -[ - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE([nls], - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT([$USE_NLS]) - AC_SUBST([USE_NLS]) -]) +AC_LANG_RESTORE -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])# PKG_PROG_PKG_CONFIG +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) +# Source file extension for RC test sources. +ac_ext=rc -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER -pkg_failed=no -AC_MSG_CHECKING([for $1]) +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) -$$1_PKG_ERRORS +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. -_PKG_TEXT]) - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) -_PKG_TEXT -To get pkg-config, see .]) - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])# PKG_CHECK_MODULES +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) ]) -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) -# AM_AUX_DIR_EXPAND -*- Autoconf -*- +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. +m4_ifndef([AC_PROG_SED], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done ]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) -# serial 9 -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset else - $1_TRUE='#' - $1_FALSE= + lt_unset=false fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl -# 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. +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES -# 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, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. +# Helper functions for option handling. -*- Autoconf -*- # -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) +# serial 8 ltoptions.m4 -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl ]) -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl ]) -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -]) +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) -# Generate code to set up dependency tracking. -*- Autoconf -*- +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -#serial 5 -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) -# serial 8 +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) -# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. -AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) -# Do all the work for Automake. -*- Autoconf -*- +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac -# serial 16 +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.62])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl -]) -_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST(install_sh)]) +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC -# serial 2 +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) -# serial 5 -# AM_MAINTAINER_MODE([DEFAULT-MODE]) + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless `enable' is passed literally. -# For symmetry, `disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL -# Check to see how 'make' treats includes. -*- Autoconf -*- +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) -# serial 4 +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix ;; esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) -# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) -# serial 6 -# AM_PROG_CC_C_O -# -------------- -# Like AC_PROG_CC_C_O, but changed for automake. -AC_DEFUN([AM_PROG_CC_C_O], -[AC_REQUIRE([AC_PROG_CC_C_O])dnl -AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -dnl Make sure AC_PROG_CC is never called again, or it will override our -dnl setting of CC. -m4_define([AC_PROG_CC], - [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) -]) +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) -# serial 6 +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) -# Copyright (C) 2003, 2004, 2005, 2006 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. +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. -# Helper functions for option handling. -*- Autoconf -*- +# serial 6 ltsugar.m4 -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) -# serial 4 -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). # -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) -# Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) -# serial 5 -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; -esac +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) -# Copyright (C) 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. -# serial 1 +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# (`yes' being less verbose, `no' or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], -[ --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0')]) -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) + +# ltversion.m4 -- version numbers -*- Autoconf -*- # -# 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. +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. -# serial 2 +# @configure_input@ -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool -# AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) -# Check how to create a tarball. -*- Autoconf -*- +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# 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. +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. -# serial 2 +# serial 5 lt~obsolete.m4 -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. +# These exist entirely to fool aclocal when bootstrapping libtool. # -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. # -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) -dnl $Id$ -dnl -dnl Copyright (c) 2002-2006 +dnl Copyright (c) 2002-2015 dnl The Xfce development team. All rights reserved. dnl dnl Written for Xfce by Benedikt Meurer . @@ -10421,7 +11127,7 @@ dnl We need recent a autoconf version -AC_PREREQ([2.53]) +AC_PREREQ([2.60]) @@ -10436,11 +11142,23 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - AC_PATH_PROG([PKG_CONFIG], [pkg-config], [no]) + m4_ifdef([PKG_PROG_PKG_CONFIG], + [ + PKG_PROG_PKG_CONFIG([$xdt_cv_PKG_CONFIG_MIN_VERSION]) - if test x"$PKG_CONFIG" = x"no"; then + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi + ], + [ + echo echo "*** The pkg-config utility could not be found on your system." echo "*** Make sure it is in your path, or set the PKG_CONFIG" echo "*** environment variable to the full path to pkg-config." @@ -10450,25 +11168,7 @@ echo "*** http://www.freedesktop.org/software/pkgconfig" echo "***" exit 1 - fi - - # check pkg-config version - AC_MSG_CHECKING([for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION]) - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - AC_MSG_RESULT([$xdt_cv_PKG_CONFIG_VERSION]) - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - AC_MSG_RESULT([$xdt_cv_PKG_CONFIG_VERSION]) - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - fi + ]) ]) @@ -10601,30 +11301,6 @@ -dnl BM_DEPEND(varname, package, version) -dnl -dnl Simple wrapper for XDT_CHECK_PACKAGE("varname", "package", "version"). Kept -dnl for backward compatibility. Will be removed in the future. -dnl -AC_DEFUN([BM_DEPEND], -[ - XDT_CHECK_PACKAGE([$1], [$2], [$3]) -]) - - - -dnl BM_DEPEND_CHECK(var, pkg, version, name, helpstring, default) -dnl -dnl Simple wrapper for XDT_CHECK_OPTIONAL_PACKAGE(). Kept for backward -dnl compatibility. Will be removed in the future. -dnl -AC_DEFUN([BM_DEPEND_CHECK], -[ - XDT_CHECK_OPTIONAL_PACKAGE([$1], [$2], [$3], [$4], [$5], [$6]) -]) - - - dnl XDT_CHECK_LIBX11() dnl dnl Executes various checks for X11. Sets LIBX11_CFLAGS, LIBX11_LDFLAGS @@ -10761,69 +11437,7 @@ ]) - -dnl BM_LIBX11() -dnl -dnl Simple wrapper for XDT_CHECK_LIBX11. Kept for backward -dnl compatibility. Will be removed in the future. -dnl -AC_DEFUN([BM_LIBX11], -[ - AC_REQUIRE([XDT_CHECK_LIBX11]) -]) - - - -dnl BM_LIBX11_REQUIRE() -dnl -dnl Simple wrapper for XDT_CHECK_LIBX11_REQUIRE. Kept for backward -dnl compatibility. Will be removed in the future. -dnl -AC_DEFUN([BM_LIBX11_REQUIRE], -[ - AC_REQUIRE([XDT_CHECK_LIBX11_REQUIRE]) -]) - - - -dnl BM_LIBSM() -dnl -dnl Simple wrapper for XDT_CHECK_LIBSM. Kept for backward -dnl compatibility. Will be removed in the future. -dnl -AC_DEFUN([BM_LIBSM], -[ - AC_REQUIRE([XDT_CHECK_LIBSM]) -]) - - - -dnl BM_LIBXPM -dnl -dnl Simple wrapper for XDT_CHECK_LIBXPM. Kept for backward -dnl compatibility. Will be removed in the future. -dnl -AC_DEFUN([BM_LIBXPM], -[ - AC_REQUIRE([XDT_CHECK_LIBXPM]) -]) - - - -dnl BM_LIBXPM_REQUIRE -dnl -dnl Simple wrapper for XDT_CHECK_LIBXPM_REQUIRE. Kept for -dnl backward compatibility. Will be removed in the future. -dnl -AC_DEFUN([BM_LIBXPM_REQUIRE], -[ - AC_REQUIRE([XDT_CHECK_LIBXPM_REQUIRE]) -]) - - -dnl $Id$ -dnl -dnl Copyright (c) 2002-2006 +dnl Copyright (c) 2002-2015 dnl The Xfce development team. All rights reserved. dnl dnl Written for Xfce by Benedikt Meurer . @@ -10851,7 +11465,7 @@ dnl We need recent a autoconf version -AC_PREREQ([2.53]) +AC_PREREQ([2.60]) dnl XDT_SUPPORTED_FLAGS(VAR, FLAGS) @@ -10865,7 +11479,7 @@ AC_MSG_CHECKING([if $CC supports $flag]) saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $flag" - AC_COMPILE_IFELSE([ ], [flag_supported=yes], [flag_supported=no]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [flag_supported=yes], [flag_supported=no]) CFLAGS="$saved_CFLAGS" AC_MSG_RESULT([$flag_supported]) @@ -10899,10 +11513,10 @@ -Wdeclaration-after-statement \ -Wmissing-declarations \ -Wmissing-noreturn -Wshadow -Wpointer-arith \ - -Wcast-align -Wformat-security \ + -Wcast-align -Wformat -Wformat-security -Wformat-y2k \ -Winit-self -Wmissing-include-dirs -Wundef \ - -Wmissing-format-attribute -Wnested-externs" - CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2" + -Wnested-externs" + CPPFLAGS="$CPPFLAGS" if test x`uname` = x"Linux"; then xdt_cv_additional_CFLAGS="$xdt_cv_additional_CFLAGS -fstack-protector" @@ -10942,7 +11556,7 @@ CPPFLAGS="$CPPFLAGS -DNDEBUG" if test x"$enable_debug" = x"no"; then - CPPFLAGS="$CPPFLAGS -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS" + CPPFLAGS="$CPPFLAGS -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT" AC_MSG_RESULT([no]) else AC_MSG_RESULT([minimum]) @@ -10969,7 +11583,7 @@ saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $xdt_vis_test_cflags" AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute]) - AC_COMPILE_IFELSE(AC_LANG_SOURCE( + AC_COMPILE_IFELSE([AC_LANG_SOURCE( [ void test_default (void); void test_hidden (void); @@ -10982,7 +11596,7 @@ test_hidden (); return 0; } - ]), + ])], [ have_gnuc_visibility=yes AC_MSG_RESULT([yes]) @@ -11043,87 +11657,7 @@ fi ]) -dnl BM_DEBUG_SUPPORT() -dnl -AC_DEFUN([BM_DEBUG_SUPPORT], -[ -dnl # --enable-debug - AC_REQUIRE([XDT_FEATURE_DEBUG]) - -dnl # --enable-profiling - AC_ARG_ENABLE([profiling], -AC_HELP_STRING([--enable-profiling], - [Generate extra code to write profile information]) -AC_HELP_STRING([--disable-profiling], - [No extra code for profiling (default)]), - [], [enable_profiling=no]) - - AC_MSG_CHECKING([whether to build with profiling support]) - if test x"$enable_profiling" != x"no"; then - CFLAGS="$CFLAGS -pg" - LDFLAGS="$LDFLAGS -pg" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - -dnl # --enable-gcov - AC_ARG_ENABLE([gcov], -AC_HELP_STRING([--enable-gcov], - [compile with coverage profiling instrumentation (gcc only)]) -AC_HELP_STRING([--disable-gcov], - [do not generate coverage profiling instrumentation (default)]), - [], [enable_gcov=no]) - - AC_MSG_CHECKING([whether to compile with coverage profiling instrumentation]) - if test x"$enable_gcov" != x"no"; then - CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - -dnl # --disable-asserts - AC_ARG_ENABLE([asserts], -AC_HELP_STRING([--disable-asserts], [Disable assertions [DANGEROUS]]), - [], [enable_asserts=yes]) - - AC_MSG_CHECKING([whether to disable assertions]) - if test x"$enable_asserts" = x"no"; then - AC_MSG_RESULT([yes]) - CPPFLAGS="$CPPFLAGS -DG_DISABLE_CHECKS -DG_DISABLE_ASSERT" - CPPFLAGS="$CPPFLAGS -DG_DISABLE_CAST_CHECKS" - else - AC_MSG_RESULT([no]) - fi - -dnl # --enable-final - AC_REQUIRE([AC_PROG_LD]) - AC_ARG_ENABLE([final], -AC_HELP_STRING([--enable-final], [Build final version]), - [], [enable_final=yes]) - - AC_MSG_CHECKING([whether to build final version]) - if test x"$enable_final" = x"yes"; then - AC_MSG_RESULT([yes]) - AC_MSG_CHECKING([whether $LD accepts -O1]) - case `$LD -O1 -v 2>&1 . @@ -11199,17 +11733,4 @@ ]) - -dnl BM_I18N(PACKAGE, LINGUAS) -dnl -dnl Simple wrapper for XDT_I18N(LINGUAS, PACKAGE). Kept for -dnl backward compatibility. Will be removed in the -dnl future. -dnl -AC_DEFUN([BM_I18N], -[ - XDT_I18N([$2], [$1]) -]) - - m4_include([acinclude.m4]) diff -Nru thunar-1.2.3/AUTHORS thunar-1.6.10/AUTHORS --- thunar-1.2.3/AUTHORS 2011-01-29 17:29:32.000000000 +0000 +++ thunar-1.6.10/AUTHORS 2015-05-22 13:25:36.000000000 +0000 @@ -2,13 +2,7 @@ Jannis Pohlmann Jeffs Franks Nick Schermer - -The tdb library, which is included with the Thunar distribution, was originally -written as part of the Samba suite. My understanding is that the majority of -the code was written by Andrew Trigell with the help of -Paul "Rusty" Russell . Luke Kenneth Casson Leighton - also contributed a few patches. Sorted freelist merge code -added by Jeremy Allison . +Harald Judt The stock_folder-copy and stock_folder-move icons where taken from gnome-icon-theme 2.18.0 whose authors are Lapo Calamandrei , diff -Nru thunar-1.2.3/ChangeLog thunar-1.6.10/ChangeLog --- thunar-1.2.3/ChangeLog 2011-09-20 20:28:35.000000000 +0000 +++ thunar-1.6.10/ChangeLog 2015-05-22 20:47:37.000000000 +0000 @@ -1,6 +1,12918 @@ -commit 9737dc929d182b8a0353571c4b82532a4e592bf8 +commit b4b50adb90e7be4f94040a3d8f5df9648a5c6721 +Author: Harald Judt +Date: Fri May 22 21:22:44 2015 +0200 + + Updates for release + +commit 00035cd1eadf821fd6ca4b70a2bc99649fb3cb56 +Author: Harald Judt +Date: Fri May 22 22:30:50 2015 +0200 + + Do not track thunar/thunar-marshal.{c,h} + + Tracking them was an error, these files are auto-generated from + thunar-marshal.list. + +commit 8b96fd015ea9d67a27509e5a9fa5a0aeaa93bf8d +Author: Harald Judt +Date: Fri May 22 22:27:35 2015 +0200 + + Remove Makefile and Makefile.in files when running distclean + +commit 5ad3ff45441ef7a33c46643b4489776dae664929 +Author: Harald Judt +Date: Fri May 22 22:20:18 2015 +0200 + + Remove subversion $Id$ tags + + Remove them or replace them with vim modelines where appropriate. + +commit 6010f71d865b624f5f58b81405764c4ce6b2afc4 +Author: Harald Judt +Date: Mon May 18 21:37:01 2015 +0200 + + Really fix trash state at startup (bug #9513 and #11913) + +commit 9bf051a0005cef3d661493a44e7de911868cf5e7 +Author: Harald Judt +Date: Thu May 21 14:12:48 2015 +0200 + + Use proper return type for thunar_file_reload (bug #11913) + + Because thunar_file_reload is now a callback function, it needs to return + TRUE or FALSE, otherwise the behaviour is undefined. This should fix a + couple of potential issues. + +commit e3b65ff628499248dadfe7cbdb027e17b7db03c2 +Author: Harald Judt +Date: Mon May 18 21:41:26 2015 +0200 + + Revert "Fix loading the trash bin status at startup (bug #9513)" + + This reverts commit 2d5567b2f6ae6223c8865547704797a5c785ec1f. + +commit 7d6f0030b1cccc63a11990997174a08cdb6049c2 +Author: Urien Desterres +Date: Wed May 20 00:30:18 2015 +0200 + + I18n: Update translation fr (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 7c395db0b601cebd8e83e4d4ac691fdb0799c8b4 +Author: Harald Judt +Date: Sun May 17 10:10:50 2015 +0200 + + Post release tag bump + +commit e37444e361aaac028e4093eeff5e2688209a1073 +Author: Harald Judt +Date: Fri May 15 20:39:09 2015 +0200 + + Updates for release + +commit 3a09677d09cbca5ed07ed80e08faaea8262ea783 +Author: Harald Judt +Date: Sat May 16 18:25:32 2015 +0200 + + Revert "Use Alt_L instead of F10 to toggle the menubar (bug #10250)" + + This reverts commit 9283ed8fd5ff7c7cf7a089a528e26784a3a04eca. + + After some more testing, this is not a good idea, as it breaks shortcuts + with the Alt modifier when the menubar is hidden. It is not noticeable + when the menubar is visible. Besides, this is a behaviour change and + should be delayed for future releases. + +commit a438997fe7fbeaf62c0cb3ee674eaf00a17c4a8f +Author: Harald Judt +Date: Fri May 15 21:05:00 2015 +0200 + + Fix ThunarBulkRename script not supporting spaces (bug #9713) + + Quoting $@ seems to work fine. + +commit 1ba30278f554c3003170b46405031ef27f2d443a +Author: Harald Judt +Date: Fri May 15 17:02:12 2015 +0200 + + Use "Name" column for drag & drop instead of first column (bug #11905) + + Instead of simply using the first column for drag & drop and the other + columns for starting the rubberband selection it is better to use the + column showing the filenames for this, as the user can change its position. + +commit 6c4676ad0197287bea2e033766443d35fb8be22e +Author: Harald Judt +Date: Fri May 15 12:32:41 2015 +0200 + + Update the path entry icon when current file changes + + Example use case this solves: Empty the trash while it is shown as + current folder. + +commit 61e52c7d53bf612b532dd1b8d7d49352cee1597e +Author: Harald Judt +Date: Fri May 15 17:17:28 2015 +0200 + + Revert changes for restoring the trash in the session client (bug #9513) + + Because we now force-spawn the gvfs trash daemon in main(), this code + is no longer necessary and can be removed. + +commit 2d5567b2f6ae6223c8865547704797a5c785ec1f +Author: Harald Judt +Date: Thu May 14 20:19:24 2015 +0200 + + Fix loading the trash bin status at startup (bug #9513) + + If the gvfsd-trash daemon has not spawned and thunar accesses the trash bin + "trash:///" the first time, then the trash bin does not report the correct + state. This is probably because the daemon needs some time to spawn and get + ready. + + As a solution, lets reload the trash file in idle when it is first created, + and then again a bit later after a few seconds have passed. By that time + the gvfs trash daemon should have spawned and the state is properly set. + This is only necessary when first loading the file, not when getting it + from the cache, so we put this into main to be run at startup. + +commit d1110b89b3b9553e05329f7293d1b8998894e5ba +Author: Harald Judt +Date: Thu May 14 09:40:50 2015 +0200 + + Turn off building gtk-docs API reference + + Building it fails starting with gtk-doc-1.22, and there have been + lots of validity errors with previous versions for some time. Until + someone comes and fixes it, stop building it. + +commit 9283ed8fd5ff7c7cf7a089a528e26784a3a04eca +Author: Harald Judt +Date: Wed May 13 22:17:21 2015 +0200 + + Use Alt_L instead of F10 to toggle the menubar (bug #10250) + + Other applications like firefox, thunderbird etc. use Alt_L to toggle + a hidden menubar. This seems to be some kind of standard and is also + more intuitive because menu mnemonics are triggered by Alt_L too. + + The second part of this commit fixes hiding the menubar (if set to + be invisible). + + Of course, the setting still needs to be activated in the view menu or + via Control + M. + +commit b13b5860bac960b5fc0247ddef97ec2a23e19db0 +Author: Urien Desterres +Date: Fri May 15 00:30:31 2015 +0200 + + I18n: Update translation fr (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c4912e32bc5a7aa54ee006735cbcbbce5c9d06f3 +Author: Urien Desterres +Date: Thu May 14 12:30:17 2015 +0200 + + I18n: Update translation fr (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit afe91e9284785c265b0db8ffdaed6dfd4b3a4e87 +Author: Harald Judt +Date: Tue May 12 20:44:02 2015 +0200 + + Fix cppcheck warning about uninitialized variable + + This should not be necessary but will fix the warning. + +commit 51b7e607aaf854d970a6241760b2852f5ec8ef10 +Author: Harald Judt +Date: Sat Feb 22 17:08:48 2014 +0100 + + Disable "Set as default application" by default in the chooser dialog + + Since thunar now remembers the selected application as last used, + we can disable this (again?) by default. If the user now wants to + make the chosen application the default one, it is now necessary + to activate the checkbox. + +commit 4fb5e8b12be02390e2c01e691c73a30a16e77ad6 +Author: Harald Judt +Date: Tue May 12 16:30:27 2015 +0200 + + Remember chosen application in the chooser dialog as last used + + If the user does not set the application as default, do remember it as last + used, making it appear first in the list of recommended applications. + +commit 5df98970639d472733910a391ddf186497bf8d03 +Author: Harald Judt +Date: Tue May 12 17:41:09 2015 +0200 + + Remember the last used application when opening files + + Remembering the last used application will move it to the top of the + list of alternatives. + +commit 98300e06651362af1075dd4bc263b9761b4a8b66 +Author: Harald Judt +Date: Tue May 12 14:06:38 2015 +0200 + + Fix reload when file is replaced with directory of the same name + + This fixes the following issue: + + 1) open thunar window + 2) touch test + 3) rm test; mkdir test + + Expected results: + The file "test" vanishes from the view, and a directory "test" appears. + + Actual results: + The file "test" does not disappear, and the newly created directory is not shown. + +commit 6c6640604d84dad586c6b9ad0fb8ac68d9048f70 +Author: Harald Judt +Date: Tue May 12 11:01:08 2015 +0200 + + Do listen for G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED (bug #11896) + + The assumption that listening for CHANGES_DONE_HINT will also take care + of ATTRIBUTE_CHANGED was obviously wrong, as the trash bin does not longer + receive a changed signal. Revert this change, but still use CHANGES_DONE_HINT + instead of simple G_FILE_MONITOR_EVENT_CHANGED events. + + http://git.xfce.org/xfce/thunar/commit/?id=a0b81ac84dcfd23f1d310d276e46df13e826fac9 + "Watch for CHANGES_DONE_HINT instead of CHANGED and ATTRIBUTE_CHANGED (bug #8377)" + +commit dca86e929b18181c5808bdaa9225f84342c73694 +Author: Harald Judt +Date: Mon May 11 21:18:55 2015 +0200 + + Fix comments for toggle-menubar + +commit 9825e468fe3bf289dfec79c83500823aebd8203b +Author: Harald Judt +Date: Mon May 11 18:05:11 2015 +0200 + + Allow opening by middle-click in tree view only for mounted devices and resources + + It is complicated to make this working properly for unmounted resources; + The new view will not show the correct location. So let's simply do nothing + when the user clicks on an unmounted resource; the user can click on the + item with the left mouse button to mount it, then middle-click it to open + it in a new tab or window. + +commit aec146bf4d11d17ce8ee31c8bf0412948706940d +Author: Harald Judt +Date: Mon May 11 13:10:03 2015 +0200 + + Keep selection in original tree view when middle-clicking for new tab/window + + When middle-clicking on an item in the tree view, the cursor will be set + on the clicked item so that the new tab/window will show this item. However, + the original tree view should still show the old location and behave as if + the middle-click did not happen. + +commit 9f2245a447c300c6310102e7dcd2cd836ac185d0 +Author: Harald Judt +Date: Mon May 11 11:40:05 2015 +0200 + + Keep path selected after unmounting a device via KEY_Left + +commit 65a2397ef54cb55142830b6d51818e7494a8bcf5 +Author: Harald Judt +Date: Mon May 11 10:55:42 2015 +0200 + + Unmount device if collapsing a collapsed device tree with KEY_Left in the tree view + + This is the inverse operation of mounting with KEY_Right. + +commit faff718b7cdc5cee2597f71e63102384ab21776a +Author: Harald Judt +Date: Sat May 9 16:33:04 2015 +0200 + + Fix wrong network icon shown in tree view + + In the treeview the network item has a standard directory icon unlike + in all other places. This commit fixes this. + +commit 0aa296f5fa364600a3065673d08eace3290e9847 +Author: Harald Judt +Date: Sat May 9 13:28:42 2015 +0200 + + Fix tree view opening mounted devices in new tab + + Mounting a device in the tree view always opens them in a new tab, + instead of in the current view. This commit fixes this. + +commit 31d5eac92bab78820b854f716c89ee2adf1d9bbd +Author: Harald Judt +Date: Sat May 9 13:17:24 2015 +0200 + + Use only open selection instead of open action with KEY_Up and KEY_Down + + If the user navigates the treeview using the up and down keys and a + device is not mounted, then it will be mounted. It is better for user + experience to only mount the device when the user expands the path + with Key_Right, otherwise some items in the treeview might not even + be accessible without accidentally mounting other devices. + +commit ff373302362600025a0daefc170abb35b0006ce8 +Author: Harald Judt +Date: Sat May 9 13:01:52 2015 +0200 + + Fix assertion when hitting KEY_Left on a top-level item in the tree view + + Gtk-CRITICAL **: IA__gtk_tree_row_reference_new_proxy: assertion 'path->depth > 0' failed + +commit a920087f9dae42b45d18e48e1a772458efbb9c39 +Author: Harald Judt +Date: Sat May 9 12:54:55 2015 +0200 + + Revert workaround for desktop toplevel item in the tree view + + Since the toplevel item issue is fixed now, this is no longer necessary + and can be reverted. + +commit 4abf5549f60e568c76a7bcf0fe20b5ec42271386 +Author: Harald Judt +Date: Sat May 9 12:40:57 2015 +0200 + + Always select the proper toplevel item in the thunar tree view + + When the user clicks on e.g. "Desktop" in the treeview, the treeview + will expand the tree and set the cursor on home/Desktop instead on the + proper toplevel item (assuming the Desktop folder resides in the user's + home directory of course). This is very bad for user experience. + + To fix this, this commit makes the treeview + + a) use the cursor if set to limit the search to below the current + toplevel item + b) select the proper toplevel item to expand to the descendant in the + following order: + 1) any mounted device or network resource + 2) the user's desktop directory + 3) the user's home directory + 4) the root filesystem + +commit 9ae55d9e324d43125c1c42df76512fb28260dce3 +Author: Harald Judt +Date: Thu May 7 21:06:07 2015 +0200 + + Unescape URI in history error message + +commit bf52f14ac84adf396cb007222017a2188e18d09b +Author: Harald Judt +Date: Thu May 7 20:57:23 2015 +0200 + + Remove unmounted files from history when going back or forward + + When trying to go back or forward in history, and the target location + has been unmounted, remove the entry from the history. + +commit b75bd637579a8de035f55c29fae3b488742ab021 +Author: Yannick Le Guen +Date: Sat May 9 12:30:18 2015 +0200 + + I18n: Update translation fr (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit eb9c4f8b0d4744af20d995434a892940d3f0fec0 +Author: Dani MF +Date: Wed May 6 12:30:37 2015 +0200 + + I18n: Update translation gl (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9eef522e3e6b969e661d9e34148d951041642a7c +Author: Piarres Beobide +Date: Wed May 6 12:30:37 2015 +0200 + + I18n: Update translation eu (97%). + + 722 translated messages, 16 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d20a26035d7b51f8a27afa6df48308bc996edeba +Author: Harald Judt +Date: Tue May 5 19:47:15 2015 +0200 + + Post release tag bump + +commit 9482b6e2a5276ab21a228d0c0e46cf56bccebff1 +Author: Harald Judt +Date: Tue May 5 19:35:32 2015 +0200 + + Updates for release + +commit a0b81ac84dcfd23f1d310d276e46df13e826fac9 +Author: Harald Judt +Date: Sat May 2 17:40:22 2015 +0200 + + Watch for CHANGES_DONE_HINT instead of CHANGED and ATTRIBUTE_CHANGED (bug #8377) + + https://developer.gnome.org/gio/unstable/GFileMonitor.html#GFileMonitorEvent: + G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: + "A hint that this was probably the last change in a set of changes." + + Reloading file information can be costly, so it may be wise to only do this + after a set of changes has been performed, which is not emitted as often + as the CHANGED and ATTRIBUTE_CHANGED hint. + + The G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT will always be emitted after + G_FILE_MONITOR_EVENT_CHANGED and G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED, + so wait for it with the reload. + + Possible risks: On some (especially remote?) file systems, the EVENT_CHANGED + and ATTRIBUTE_CHANGED might take a while to be processed, resulting in the + reload happening later. But then, why would it be faster to reload the + file before all these changes have been done? + +commit 2610c24b8796ce4b8326dc1b618fcbebe761a284 +Author: Dani MF +Date: Tue May 5 18:30:18 2015 +0200 + + I18n: Update translation gl (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2a8d38883ba3434374db1224d1ad098926a65115 +Author: Dani MF +Date: Tue May 5 12:30:19 2015 +0200 + + I18n: Update translation gl (99%). + + 734 translated messages, 4 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 50a7116c98d92194c33409d8dc78a87df53c0f90 +Author: Harald Judt +Date: Mon May 4 15:20:47 2015 +0200 + + Shortcut view: Fix "selection in selection" graphical bug when renaming shortcut + + This partly reverts the previous commit which was not correct, + and fixes the real problem which can be seen when cancelling editing. + +commit b643a1ff7cb3392c013a8774f14a3302e69d91b2 +Author: Harald Judt +Date: Mon May 4 11:46:31 2015 +0200 + + Fix broken shortcut renaming (bug #11885) + + This fixes the shortcut renaming feature broken by f60acf89a1321be + "Allow + middle click in shortcut and treeview panes" and + also removes the weird-looking "selection in selection" which maybe can + only be noticed by some themes, but is reproducible with Greybird. + +commit 65adfa6552f2211e51caa0c23ecbbefc5ab96362 +Author: Harald Judt +Date: Mon May 4 07:31:49 2015 +0200 + + Unescape URIs in the shortcut view (bug #10831) + + Show spaces in the path names instead of "%20". + +commit 8bc720ed5448b6ffa6307b4484d02ed3067544da +Author: Harald Judt +Date: Mon May 4 07:40:38 2015 +0200 + + Fix compiler warning because of missing curly braces + +commit 8f86075902ebd4ba83ed8e0b3d88c8d9b84abc1f +Author: Harald Judt +Date: Mon May 4 07:38:59 2015 +0200 + + Fix compilation error because of wrong variable name + +commit c329b74715c8660561cbe6907cf6a7ba8c88d9a3 +Author: Harald Judt +Date: Mon May 4 00:30:18 2015 +0200 + + I18n: Update translation de (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit bfa875b6a76f812d638f2e88ea27a2cf95e5be1f +Author: Harald Judt +Date: Sun May 3 18:31:14 2015 +0200 + + Fix unescaping of local paths in path entry (bug #8190) + + Unfortunately, the previous commit did not work correctly for local paths + in all cases. This commit fixes this by distinguishing between local paths + and URIs. + +commit a66687acff43b5b7196761514e15138706ad3385 +Author: Harald Judt +Date: Sun May 3 17:12:53 2015 +0200 + + Fix escaping and unescaping URI in path entry (bug #8910) + + Escaping the URI in thunar_path_entry_changed is necessary for correctly + loading the corresponding ThunarFile for the GFile. + + This solves bug #8910 where the problem stems from URI unescaping, + resulting in the unescaped text being NULL. This is handled by the + second part of the patch, which falls back to the unescaped text. + + Without this commit, directories containing characters like "%", e.g + "test%folder", can be opened but + + 1) on remote locations the icon in the toolbar location selector will + show an error indicating there is something wrong, + 2) while on local filesystems only the parent path will be shown in + the path entry. + +commit 3ad690a7fdc1751f01ee9c7be458ecf29ea0c711 +Author: Harald Judt +Date: Sat May 2 20:20:12 2015 +0200 + + Let the tree view keep the focus when clicking on an item (bug #11863) + + When clicking on a tree view item, the main view will open it and thus + grab the focus. This focus change may be a bit unexpected to the user, + but trivial to fix, so make the tree view keep the focus after such a + button click. + +commit e42fbf413c0637b15ef561430687d7b81df6bd0a +Author: Harald Judt +Date: Fri May 1 19:57:18 2015 +0200 + + Fix switching to the 10th tab via -<0> keyboard shortcut + +commit 3b4b952e5931d413c08b633a12303c4144d11ac1 +Author: Harald Judt +Date: Sat May 2 14:06:01 2015 +0200 + + Fix removal of a directory wrongly affecting the current tab (bug #10981) + + This fixes the following bug: + + 1) Create two directories (a and b). + 2) Open them in tabs in a thunar window. + 3) Switch to the tab currently showing a and delete b from a terminal. + + Expected behaviour: + Inactive tab showing b will switch to the parent directory. + Active tab showing a will be unaffected. + + Actual behaviour: + Inactive tab showing b will switch to the parent directory. + Active tab showing a will not change the directory. + +commit bc1351183e50262588d0226d13cc1ace613b524c +Author: Harald Judt +Date: Fri May 1 14:10:00 2015 +0200 + + Keep the scroll position when restoring the file selection + + Instead of trying to keep the selected files in view when rows get + reordered, leave the scroll position unchanged. Otherwise, the user + might not be able to select files easily. + + By setting fix lower/upper limits for the scrolled window alignments + we make sure that the view does not flicker because the position + would change twice. + +commit 8ed38783d6a831cdc70a34d90a7f82fe4350ff74 +Author: Harald Judt +Date: Fri May 1 12:37:31 2015 +0200 + + Restore selection only when rows-reordered signal is received (bug #11855) + + Commit 4d19f45feb198b "Restore selection on row changes too (bug #9886)" + forced the file selection to be restored on row changes, which has the + negative side effect that the view will also scroll to the selected + file(s) whenever such a change happens, e.g. when thumbnailing finishes. + + The better fix is to listen to the rows-reordered signal which no view + listens to at the moment. This commit implements this. + +commit e232de51d70cacfa67afaed4962c0a43ebca5697 +Author: Harald Judt +Date: Fri May 1 09:25:03 2015 +0200 + + For folders copied always append "copy #" to the end of their names (bug #11862) + + Files usually have extensions, but most folders do not. This is also the + way the renamer dialog treats filenames, so the behaviour should be the + same. + +commit fa3d7d32ec8b1614d4fc4afe733112b29c5c7593 +Author: Evangelos Foutras +Date: Mon Apr 27 11:55:12 2015 +0300 + + Update F5 binding for new ThunarWindow::reload signal + + In commit b839b29d6dfa57aab9c3cec97eca7624a483a45e (Extend reload + functions to allow a full reload) an extra parameter was added to + reload functions that specifies whether file information should be + reloaded as well. + +commit ea00375c7d041105033678d5515b651a34e1804d +Author: Harald Judt +Date: Thu Apr 23 21:41:45 2015 +0200 + + Do not perform the complete folder reload in idle (bug #11849) + + This can cause an infinite loop as described in the bug report. + +commit 01ba8240bdaaf295a4f783084d9f8f3579ec5cc6 +Author: Anonymous +Date: Thu Apr 23 00:30:30 2015 +0200 + + I18n: Update translation lt (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5deb288319a1abadde69e55c20e3f98e59d37782 +Author: Harald Judt +Date: Wed Apr 22 13:38:51 2015 +0200 + + Coverity CID 60623: Unused value + + CID 60623 (#1 of 1): Unused value (UNUSED_VALUE) + assigned_value: Assigning value from event->x to path_entry->drag_x here, + but that stored value is overwritten before it can be used. + + ... + + value_overwrite: Overwriting previous write to path_entry->drag_x with + value from event->y. + +commit 3d5917e8d0a5992718eafdb09f0742975a2a546f +Author: Harald Judt +Date: Wed Apr 22 13:06:37 2015 +0200 + + Coverity CID 60621: Missing return statement + + CID 60621 (#1 of 1): Missing return statement (MISSING_RETURN) + 5. missing_return: Arriving at the end of a function without + returning a value. + +commit 957012d6f4afcd8648784ad7de4fc676d457898a +Author: Harald Judt +Date: Wed Apr 22 13:00:19 2015 +0200 + + Coverity CID 60620: Explicit null dereferenced + + CID 60620 (#1 of 1): Explicit null dereferenced (FORWARD_NULL) + 17. var_deref_model: Passing null pointer file_list to + thunar_application_unlink_files, which dereferences it. + +commit 460f70261d80f65ef7dd6757b173bbf835ceb5c5 +Author: Harald Judt +Date: Wed Apr 22 12:56:39 2015 +0200 + + Coverity CID 60619: Explicit null dereferenced + + CID 60619 (#1 of 1): Explicit null dereferenced (FORWARD_NULL) + 20. var_deref_op: Dereferencing null pointer left_button. + +commit 503db56621fb19f51f15964e1ce79c7adaf2f8a1 +Author: Harald Judt +Date: Wed Apr 22 12:47:59 2015 +0200 + + Coverity CID 60617: Unchecked return value + + CID 60617 (#1 of 1): Unchecked return value (CHECKED_RETURN) + 1. check_return: Calling gtk_tree_model_get_iter_first without + checking return value (as is done elsewhere 4 out of 5 times). + +commit a32265e1bb74a800ad782f81948d9341732fe764 +Author: Harald Judt +Date: Tue Apr 21 11:54:59 2015 +0200 + + Remove unused variable in thunar_standard_view_set_history + + Fix gcc warning. + +commit dd7b7edee3ea4b3d8cc5e642837ae960b98b2974 +Author: Harald Judt +Date: Tue Apr 21 11:53:02 2015 +0200 + + Remove startup notification dependencies (bug #11837) + + This functionality is now provided by libxfce4ui, see commit + 8990efaf5a "Use the spawn code from libxfce4ui." + +commit a3d271a9a7699374c91ef2dfee213e80d5f0272c +Author: Harald Judt +Date: Mon Apr 20 16:33:10 2015 +0200 + + Post release tag bump + +commit 9509d3f2019a02a255643eda8ef120ec4ad21af2 +Author: Harald Judt +Date: Mon Apr 20 16:01:13 2015 +0200 + + Updates for release + +commit bb9fe8ad3e2202be52fa5c987cb1a7744d20a0a6 +Author: Harald Judt +Date: Tue Apr 7 19:27:12 2015 +0200 + + Improve drag & drop and selecting in the details view (bug #11605) + + When using the left mouse button, clicking on the first column of an item + will select it or initiate dragging, but rubber banding is deactivated. + For the other columns, only rubber banding will be possible and dragging + be disabled. + + When using the right mouse button, clicking on the first column of an + item will always select it and pop up the context menu of the item. + Clicking on another column of an unselected item will unselect all + items and show the menu of the folder, while clicking on another + column of a selected item will show the context menu for that item + (or those items). + + An extensive explanation has been added to the thunar docs in the wiki: + http://docs.xfce.org/xfce/thunar/working-with-files-and-folders + +commit 15b0789f96861b95104f27b95828b8ac433fc682 +Merge: 3a53de7 b2012f5 +Author: Harald Judt +Date: Sat Apr 18 14:17:39 2015 +0200 + + Merge branch 'fix-bug-11008' + +commit 3a53de789442c8002c6b72b8a73a2681d6f78cd4 +Author: Harald Judt +Date: Sat Apr 18 14:15:07 2015 +0200 + + Fix comments (again) + +commit 871e25002387fd30e37d0055b748eb41b099b600 +Author: Harald Judt +Date: Sat Apr 18 11:32:02 2015 +0200 + + Let row changes accumulate a bit before restoring selection + + With the changes introduced in 4d19f45feb198 "Restore selection on row + changes too (bug #9886)", slight flicker can be noticed when navigating + with forward/back actions. This is because row-changed events sometimes + cause a restore of the selection multiple times. + + To solve this, this commit adds a short timeout for restoring the + selection in a similar way as for the status bar text updates. + +commit b2012f58da7ba8e8bf28aaca2b5cde45552ce0c3 +Author: Harald Judt +Date: Fri Apr 17 11:47:37 2015 +0200 + + Implement reloading file information on manual reload + +commit b839b29d6dfa57aab9c3cec97eca7624a483a45e +Author: Harald Judt +Date: Fri Apr 17 11:29:34 2015 +0200 + + Extend reload functions to allow a full reload + + Usually a folder is reloaded automatically on file changes, and the user + shouldn't have to do it manually. However, when the user *wants* to do + it manually, everything is expected to be reloaded, even the files in + cache, because their info may have changed. At the moment, this does not + happen, and there can be various issues with cached file info, so extension + is a first step to allow the user to decide to reload everything in the + folder. + +commit 2283dcdb62c7c202e2c60cbdf75e330971cbdb63 +Author: Harald Judt +Date: Fri Apr 17 12:59:09 2015 +0200 + + Check in thunar-marshal with new _thunar_marshal_BOOLEAN__BOOLEAN + + Remove thunar-marshal from .gitignore, this needs to be tracked. + +commit 3874e4e230a6a1de70444817b0804437a23b4d89 +Author: Harald Judt +Date: Thu Apr 9 13:14:19 2015 +0200 + + Reload files changed by jobs in an idle loop (bug #11008) + + If a file is in the cache, schedule a reload of the file when idle. + This way file information gets updated properly when necessary and + without any crashes. + +commit 2e61dbeefb51867ed920dac6aa1b5afd49f20373 +Author: Harald Judt +Date: Wed Mar 25 17:42:45 2015 +0100 + + Refactor code for moving thumbnail cache file on renames/moves + +commit 3c1f0a5effcda9fc0d22d6e215c8310cda30f924 +Author: Harald Judt +Date: Wed Mar 25 17:34:07 2015 +0100 + + Rework thunar_file_monitor to properly register moved files + +commit a945839a554b5a58f3ee434edb0769aae6a64892 +Author: Harald Judt +Date: Wed Mar 25 15:19:56 2015 +0100 + + Add function to reload parent file of a file + +commit a022861535799de4a39ec6ef814a35d910e87e86 +Author: Harald Judt +Date: Mon Mar 16 19:29:48 2015 +0100 + + Fix updating file info for moved files (bug #11008) + + When a file has been moved, it will trigger a G_FILE_MONITOR_EVENT_MOVED + in thunar-folder.c, with the target file saved in other_file. While we + reload the folder, that only fetches the info for the target file from + the file info cache, which still contains the information of the replaced + file. So issue a reload of the target file to update the file information + properly, and also a reload of the folder containing the target file if + it is not the same as the folder of the source file. + +commit 46b5d850c33de0b0d7c5e4bb60ddbafec466ae47 +Author: Harald Judt +Date: Mon Mar 16 19:36:23 2015 +0100 + + Revert "Refresh file info after getting it from cache (bug #11008)" + + This reverts commit cc8d1331e305f2af5842607d885eb96608b8fce7, + which proved to cause crashes due to threading issues. + +commit 2235b4c1f9ba18eebe7343071e57669a5d51a060 +Author: Harald Judt +Date: Thu Apr 16 22:23:23 2015 +0200 + + Fix comments + +commit 93da6759e9b7596f9425f5d697fcb7ce11f1a031 +Author: Fredrik Nyqvist +Date: Tue Apr 14 00:30:27 2015 +0200 + + I18n: Update translation sv (99%). + + 735 translated messages, 3 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 67ea7710401238180bcc0300f593f69561aaff85 +Author: Harald Judt +Date: Mon Apr 13 18:30:19 2015 +0200 + + I18n: Update translation de (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c4304a63a39dee18fda78027ca576cf292f3a27f +Author: Harald Judt +Date: Mon Apr 13 17:36:24 2015 +0200 + + Update the location bar after reload (bug #10518) + + Show the correct path in the location bar after the user has + reloaded the folder manually from the menu or from the button + in the location bar. + + This improves UI feedback and is also the standard behaviour + in other applications. + +commit d19eccf82cf56e0470c4c0f55a86b4c3d1bb9276 +Author: Harald Judt +Date: Sat Apr 11 17:49:53 2015 +0200 + + Fix updating custom actions (bug #11749) + + https://developer.gnome.org/gtk3/stable/GtkUIManager.html#gtk-ui-manager-insert-action-group + + "Inserts an action group into the list of action groups associated with manager. + Actions in earlier groups hide actions with the same name in later groups. + If pos is larger than the number of action groups in manager, or negative, + action_group will be inserted at the end of the internal list." + + Always keep the window actions (group "ThunarActions") at the top of the + internal list of the GTK UI manager, so that they appear earlier. This + way, the shortcuts will not be lost, and the custom actions for the + context menu created by ThunarStandardView will work properly nonetheless. + + Also update the UI manager immediately after inserting the action group, + otherwise GClosure warnings will spawn on stdout: + "g_closure_add_invalidate_notifier: assertion 'closure->n_inotifiers < + CLOSURE_MAX_N_INOTIFIERS' failed + unable to remove uninstalled invalidation notifier" + +commit 1873ca9142c31a3cb3887e849e4c5d45c906176a +Author: Harald Judt +Date: Sat Apr 11 12:17:32 2015 +0200 + + Update rows on changes of case-sensitive and folders-first settings + + This is analogous to 02baccc0858a37a3bfa6d027cf05f32578ea0106. + +commit 704f6127dc77e5e93b08c8589cde5ecc35da2f69 +Author: Harald Judt +Date: Sat Mar 28 12:29:47 2015 +0100 + + Fix typos and grammar mistakes in a few comments + +commit 39baae0d7470884f8f6b7a6da263bb0bba4d2b3a +Author: Harald Judt +Date: Wed Apr 8 22:12:06 2015 +0200 + + Make new windows inherit the history of the origin view (bug #5538) + +commit aa5f8fca0e6e965a9592da30c36d2fa4afe44746 +Author: Harald Judt +Date: Wed Apr 8 20:04:17 2015 +0200 + + Make new tabs inherit the history of the origin view (bug #5538) + +commit ad8dd9c351ded0fd0d2c15fba40ec0fc9c6e4598 +Author: Harald Judt +Date: Wed Apr 8 19:56:39 2015 +0200 + + Keep the history across view changes (bug #10171) + +commit b6ace36ceb84c9a1e8b4c616ae65862c50854e6e +Author: Harald Judt +Date: Wed Apr 8 17:04:15 2015 +0200 + + Implement functions for copying the history of a view + + These functions are needed for keeping the history when a view changes, + or when a new window or tab is opened that should inherit the history + of the origin view. + +commit e03ec7130a5ef052608a29dccc218468f62c1d33 +Author: Michael Findlay +Date: Thu Apr 9 06:30:18 2015 +0200 + + I18n: Update translation en_AU (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 805ec46d5bd25a6f4fd59856713ddd2ccd46a3f0 +Author: Anonymous +Date: Thu Apr 9 00:30:35 2015 +0200 + + I18n: Update translation lt (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0bd5caa18a36b31b95faa6628760bf6c45ed6533 +Author: Piotr Sokół +Date: Mon Apr 6 18:30:18 2015 +0200 + + I18n: Update translation pl (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit e411986da1c83e1a835069a1769ddc51b48a1a00 +Author: Urien Desterres +Date: Sat Apr 4 12:30:18 2015 +0200 + + I18n: Update translation fr (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 46afcbe61214eace111d1997834e3d39a1c9d50f +Author: Harald Judt +Date: Wed Apr 1 16:54:57 2015 +0200 + + Rename tsv_restore_selection to tsv_select_after_row_deleted + + To avoid confusion with the many select functions rename this to + thunar_standard_view_select_after_row_deleted, which is also the only + scenario this is used in. + +commit 2c828c905730cb6962d2174a7c656107ea39c365 +Author: Harald Judt +Date: Tue Mar 31 23:32:17 2015 +0200 + + Redraw the details view on row changes + + This cures some update problems that can be observed when setting + e.g. date modified as sort column and some script changes various + files in the background. Example script: + + while true; do + for f in l m n o a b c d e f g h i j k; do + touch "$f" + sleep 0.5 + done + done + +commit 4d19f45feb198b3a580ef2f777e2c50be2e3a0d3 +Author: Harald Judt +Date: Tue Mar 31 22:05:22 2015 +0200 + + Restore selection on row changes too (bug #9886) + +commit c6e673185025431f6b266b13426476263f223269 +Author: Ivica Kolić +Date: Thu Apr 2 12:30:18 2015 +0200 + + I18n: Update translation hr (99%). + + 737 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 35c6deca8c3c0209bd11fe8a6722c125b4305a2f +Author: Anonymous +Date: Thu Apr 2 06:30:31 2015 +0200 + + I18n: Update translation lt (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit afc7e1d9637fe342ab2e7cb6d4a8eb67db121c31 +Author: Anonymous +Date: Thu Apr 2 00:30:21 2015 +0200 + + I18n: Update translation lt (99%). + + 733 translated messages, 5 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit e01e135b749243ae13bb7905f619b248750f5f27 +Author: Harald Judt +Date: Wed Apr 1 13:44:42 2015 +0200 + + Improve mouse wheel zoom behaviour + + In firefox, evince and most other applications + + increases the zoom level (makes content bigger), while + + decreases it. In thunar it is the other way round + and this is unintuitive. So go with the standard and invert the current + behaviour. + +commit 07bb05707192f56eecdc46a9b976093540fd90b3 +Author: Harald Judt +Date: Wed Apr 1 13:03:04 2015 +0200 + + Remember and restore file selection on view changes + +commit 079712fb0472b4cf5add1c206164b90f18554abe +Author: Harald Judt +Date: Tue Mar 31 21:39:11 2015 +0200 + + Restore file selection when changing sort order (bug #9886) + +commit fa19b36dab5e32b07c480d3460013ddc946b6b14 +Author: Ivica Kolić +Date: Mon Mar 30 18:30:18 2015 +0200 + + I18n: Update translation hr (99%). + + 737 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 02baccc0858a37a3bfa6d027cf05f32578ea0106 +Author: Harald Judt +Date: Fri Mar 27 23:18:48 2015 +0100 + + Update model with changed binary file size setting immediately + + This makes the changes apply immediately for the column view. + +commit b11cc715a06d99022d6e308e27d166cd030a510d +Author: Harald Judt +Date: Fri Mar 27 23:23:22 2015 +0100 + + Fix typo busy_pulse in thunar-shortcuts-model.c + +commit 5734f1291710e1b520473c748265a865cfc673b1 +Author: Harald Judt +Date: Fri Mar 27 14:21:47 2015 +0100 + + Fix typo in thunar-clipboard-manager + +commit 0f5aa4d038886d5c39306f0f95ca8babf4bc3586 +Author: Thaddaeus Tintenfisch +Date: Wed Mar 25 00:10:00 2015 +0100 + + Fix Gdk-CRITICAL error + + Call gtk_grab_add() after the context menu has been mapped to fix the + following error: + + Gdk-CRITICAL **: IA__gdk_window_get_window_type: + assertion 'GDK_IS_WINDOW (window)' failed + +commit b9f7c7b096df07b25cea01a50a4108f7b2f68be2 +Author: Harald Judt +Date: Wed Mar 25 20:45:11 2015 +0100 + + Clean up more files with make clean + + Also remove another occurrence of SVN $Id$. + +commit f10ff98e5fa63b2d828682f703b955721b784f55 +Author: Anonymous +Date: Fri Mar 27 12:30:24 2015 +0100 + + I18n: Update translation lt (98%). + + 730 translated messages, 8 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 6c9546c149b36efd3e3b64b25e4c40eaccb17cef +Author: Anonymous +Date: Tue Mar 24 00:30:18 2015 +0100 + + I18n: Update translation lt (98%). + + 728 translated messages, 10 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5dfdd1e94d2b61c12f647813f9b5934f7ec709cb +Author: Anonymous +Date: Fri Mar 20 18:30:18 2015 +0100 + + I18n: Update translation lt (98%). + + 725 translated messages, 13 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 25cc8dc097fcb4a595b6753d4fd22824c924f8c3 +Author: Anonymous +Date: Fri Mar 20 00:30:18 2015 +0100 + + I18n: Update translation lt (97%). + + 720 translated messages, 18 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 32613f8374c869a67b90282568c83e73af85391f +Author: Efstathios Iosifidis +Date: Thu Mar 19 00:30:27 2015 +0100 + + I18n: Update translation el (97%). + + 723 translated messages, 15 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9931530b40ef94044c9ea4dca535e26ceced7838 +Author: Harald Judt +Date: Sun Mar 8 11:31:01 2015 +0100 + + Rework usage of binary file size properties (bug #11450) + + Move get_property calls to the object initialization and, where + appropriate, use signals to notify of any misc-file-size-binary + preference changes. This way, all components should update immediately + whenever the preference changes, while still being nice to performance. + +commit a89c83ff1d3a471dc654eb754ea36d482048e897 +Author: Harald Judt +Date: Wed Mar 11 15:06:49 2015 +0100 + + Remove duplicate break statement in thunar-standard-view + +commit 5fa038d084a968c157ad7aa992586b88b2dcc131 +Author: Anonymous +Date: Sat Mar 14 18:30:18 2015 +0100 + + I18n: Update translation lt (95%). + + 707 translated messages, 31 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 41c1623fcc5ef70b05c4fc81977da92e218e0027 +Author: Anonymous +Date: Sat Mar 14 12:30:17 2015 +0100 + + I18n: Update translation lt (95%). + + 704 translated messages, 34 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit aa32c4603d7d38a6d726ada7af24d21ad561d931 +Author: Anonymous +Date: Sat Mar 14 00:30:18 2015 +0100 + + I18n: Update translation lt (94%). + + 697 translated messages, 41 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 8ccf4b69c185888059fe794afbe15a14893cd9d2 +Author: Ivica Kolić +Date: Fri Mar 13 06:30:18 2015 +0100 + + I18n: Update translation hr (99%). + + 737 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 88f693045a5645040a824b3967e17f2ff1a10e03 +Author: Anonymous +Date: Thu Mar 12 00:30:23 2015 +0100 + + I18n: Update translation lt (91%). + + 676 translated messages, 62 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ef39865e99396a301d9662f8e8ade005183fa289 +Author: 玉堂白鹤 +Date: Wed Mar 11 12:30:19 2015 +0100 + + I18n: Update translation zh_CN (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5cca631cd0dde27f022beaa1d795b9c162a05d5e +Author: Yarema aka Knedlyk +Date: Tue Mar 10 06:30:23 2015 +0100 + + I18n: Update translation uk (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ef818ad57eb84735e35805348a6924e94879add7 +Author: Matt Thirtytwo +Date: Mon Mar 2 21:51:36 2015 +0100 + + Fix compiler warning about shadowing 'basename' (bug #11633) + +commit f780cd41417742445a4b76918da52383bbcae0ba +Author: Thaddaeus Tintenfisch +Date: Mon Mar 2 13:28:04 2015 +0100 + + thunar/thunar-dbus-service-infos.xml corrections + +commit 03ed0b6fff9a740f2f8971770ba03d0d4f6af718 +Author: Thaddaeus Tintenfisch +Date: Sun Mar 1 19:54:27 2015 +0100 + + Fix startup id handling for launch requests over D-Bus (bug #9646) + +commit cdfdb7290abb270f5f98c93089c3b6e3c35859bc +Author: Thaddaeus Tintenfisch +Date: Sun Feb 22 23:34:45 2015 +0100 + + Fallback to non-cached version of source file (bug #9142) + +commit 0130754d687f3846eecea8e2eee1a0af3bfb38be +Author: Cristian Marchi +Date: Sun Mar 1 18:30:18 2015 +0100 + + I18n: Update translation it (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b2452e7f39c19d0d2490c27e48066f4df334eb8d +Author: Harald Judt +Date: Sat Feb 28 17:57:28 2015 +0100 + + Post release tag bump + +commit 69814ea17b84131990b203e47b27668c003974bf +Author: Harald Judt +Date: Sat Feb 28 17:50:17 2015 +0100 + + Updates for release + +commit d57c68f3f83a0ddc078465d17c3f5e982de359bd +Author: Peter de Ridder +Date: Sat Feb 28 15:47:16 2015 +0100 + + Removed GNU extension -i from sed + +commit 3d9bc5c685497c3cf674fb37ed2c25aad2e8ec52 +Author: Harald Judt +Date: Fri Oct 26 17:11:39 2012 +0200 + + Bump default size of file properties dialog a bit + + To better accommodate longer translation strings without + ellipsizing them all the time. + +commit c10e1ce9039245659edb2d6c0daab7b73078071b +Author: Harald Judt +Date: Sat Feb 28 14:51:44 2015 +0100 + + Respect the "View new folders using" preference (bug #11606) + + To reproduce: + 1.) Open Thunar. + 2.) Select the "View" menu from the menu bar. + 3.) Select "View as Detailed List". + 4.) Select the "Edit" menu from the menu bar. + 5.) Select "Preferences". + 6.) Go to the "Display" tab. + 7.) Select "Icon View" under "View new folders using:" + + You can open any folder or close and reopen Thunar it will always list + items in "View as Detailed List" mode and ignore the setting set + in preferences. + +commit b385bcf7c856fdc0a63b5f91a6d4053a7d22347e +Author: Harald Judt +Date: Fri Feb 27 22:26:09 2015 +0100 + + Improve check for shell scripts and add hidden option for bug #7596 + + The check for shell scripts was incomplete. This commit extends it to + all executable scripts that are text/plain. For people wanting the + old, unsafe behaviour there is a new boolean option called + "misc-exec-shell-scripts-by-default" that can be created and set to + TRUE using xfconf-query or the Xfce settings editor. + +commit 3be61269f30a34e80790cbc0152f9c73e441b8c1 +Author: Matt Thirtytwo +Date: Fri Feb 6 19:08:58 2015 +0100 + + Set correct dialog window hint for progress dialog (again) (bug #11467) + + Except deprecated compiz every window manager tested so far works fine + with this. Reapplying again. + +commit eaeb66a587de0e9cc79c3ff902949877eedf6d32 +Author: Jani Välimaa +Date: Fri Feb 27 08:57:19 2015 -0600 + + Fix some GTK_STOCK icon usages resulting in missing icons (bug #11608) + + Signed-off-by: Robby Workman + +commit b94c3f87435b7d6e9ad6dae524253e6f2fd57f3d +Author: Jani Välimaa +Date: Fri Feb 27 08:58:25 2015 -0600 + + plugins/thunar-wallpaper: Fix icon + + Signed-off-by: Robby Workman + +commit b816e361c2a947c9907186a3f8044283c45e4557 +Author: Harald Judt +Date: Sat Feb 28 09:09:47 2015 +0100 + + Fix icon name for folders and a memory leak (bug #11608) + +commit a8d7ab641e06aeb0ae693c9ee4cb17bcaec5c7df +Author: Nick Schermer +Date: Sat Feb 28 12:27:21 2015 +0100 + + Also query for network location icons. + +commit c0d3a2b3297b17cfa02b00ad6ad2b6d333e5e8b6 +Author: Nick Schermer +Date: Sat Feb 28 12:26:44 2015 +0100 + + Don't use deprecated function. + +commit 6e883379e32403a4ef540f5999376ff31b388218 +Author: Nick Schermer +Date: Sat Feb 28 12:26:11 2015 +0100 + + Secure threading in the idle thumbnail loading. + +commit 757cb661817b82cecbad00a08de95d442c8210f0 +Author: Tobias Bannert +Date: Sat Feb 28 06:30:18 2015 +0100 + + I18n: Update translation de (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 7457a9596212fafd8e9ee50bc822d4f49c059576 +Author: Slavko +Date: Thu Feb 26 12:30:29 2015 +0100 + + I18n: Update translation sk (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 22a3c18b8405b664c8298c507564e6d76bf67823 +Author: Pasi Lallinaho +Date: Thu Feb 26 00:30:29 2015 +0100 + + I18n: Update translation fi (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit f4ec77c1f9afb98a7c55ca8837e8fe59e5d51cce +Author: Mișu Moldovan +Date: Wed Feb 25 00:30:26 2015 +0100 + + I18n: Update translation ro (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2de64695a8e69bd5f20379af4452fc24dd58feaf +Author: Harald Judt +Date: Mon Feb 23 20:35:57 2015 +0100 + + Revert "Set correct dialog window hint for progress dialog (bug #11467)" + + This reverts commit 119cfabc365b91e46f3142e481bc1d3088fdcff5. + + With the new behaviour, if one clicks on the job progress dialog now + all thunar windows will be raised to the top. Reverting this until + a better solution is found. + +commit df86a8a7a5f777ecef17e09c76b4c51f66a269e3 +Author: Anonymous +Date: Mon Feb 23 12:30:47 2015 +0100 + + I18n: Update translation bg (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 3097ce052e95339271f06c054a0c19de888e5d5c +Author: enolp +Date: Mon Feb 23 06:30:28 2015 +0100 + + I18n: Update translation ast (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 80fa1861bb0025e358f028964abd3109f7e41d7a +Author: Anonymous +Date: Mon Feb 23 00:30:26 2015 +0100 + + I18n: Update translation bg (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 85ee39fbb0f7753d6a44cb359e5c9e74ae8824bc +Author: Harald Judt +Date: Sun Feb 22 22:38:27 2015 +0100 + + Sidepane treeview: Do not switch folder when clicking a row expander + + With the changes introduced in commit f60acf89a1321be0faa37bfb0d91b1757085ffa4 + "Allow + middle click in shortcut and treeview panes", clicking + the expander also selects the item and thus shows the content in the + standard view. This commit fixes this and restores the previous behaviour + for the expanders. + +commit 83a638ecd9fd948ec2563c5bd899b2fec3c68cd5 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Sun Feb 22 12:30:18 2015 +0100 + + I18n: Update translation es (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit bdb3aecd33c4e42552848925de8138baed9d64c7 +Author: Harald Judt +Date: Sat Feb 21 23:05:44 2015 +0100 + + Fix cppcheck possible errors/warnings + +commit 0cd220ba17b352f68f3869fa868ddd7989b5b2bc +Author: Thaddaeus Tintenfisch +Date: Sat Feb 21 10:07:03 2015 +0100 + + Hide template file extensions in context menu (bug #11571) + +commit 2210d2fcf7fac8c9b8602cd3e1de09913ae53847 +Author: Harald Judt +Date: Sat Feb 21 21:15:40 2015 +0100 + + thunar-wallpaper: Fix translation in applications other than thunar + + Thanks to cavalier for debugging this. + +commit 77738a08e24f8b212feedfa42d8997c081dfaaef +Author: Thaddaeus Tintenfisch +Date: Fri Feb 20 19:38:26 2015 +0100 + + thunar-wallpaper: Check if file is really an image (bug #11565) + + This change prevents the "Set as wallpaper" entry from showing up in the + xfdesktop context menu for plain text files. For reasons yet unknown, + this is not necessary for the context menu in thunar. + +commit 5fce9935106eebb8ac7b9dd2b0aa5a1a42e41721 +Author: Yannick Le Guen +Date: Sat Feb 21 18:30:29 2015 +0100 + + I18n: Update translation fr (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 038fed474d9f214f03087408e5fecf842667ee7a +Author: Manolo Díaz +Date: Sat Feb 21 18:30:29 2015 +0100 + + I18n: Update translation es (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 3036bc11db02ab28d1c513496f25750419a1bc17 +Author: Harald Judt +Date: Sat Feb 21 14:39:58 2015 +0100 + + Update another copyright string + +commit cb60c34dbe2959ec80dbdfd1c9b03bc23416daed +Author: Slavko +Date: Sat Feb 21 12:30:17 2015 +0100 + + I18n: Update translation sk (99%). + + 737 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c68103c7045f2a76284bf8cc51a7cd0f32aebaf0 +Author: Allan Nordhøy +Date: Sat Feb 21 00:30:36 2015 +0100 + + I18n: Update translation nb (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0d7ed17de1e29d2eb5f367b381fb55bb07c8e713 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Sat Feb 21 00:30:36 2015 +0100 + + I18n: Update translation es (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2733416ce2ddc6118126a12f7c951830592b8f13 +Author: Harald Judt +Date: Fri Feb 20 19:58:49 2015 +0100 + + Fix endless rename loop in case of error on the properties dialog (bug #11557) + + Fix loop triggered by focus out event, which calls activate after the + error dialog closes and thus reattempts another rename operation. + +commit e77bf26a4d98b3cce81819ab288c5ee9e3efdae6 +Author: Tobias Bannert +Date: Fri Feb 20 06:30:21 2015 +0100 + + I18n: Update translation de (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c54fee7a2d7d629bb91144a9ab88c79a83e0ecc7 +Author: Harald Judt +Date: Fri Feb 20 00:15:57 2015 +0100 + + Post release tag bump + +commit f34dd9f8ebee628f281a86d10e10d8a00772cf92 +Author: Harald Judt +Date: Fri Feb 20 00:03:35 2015 +0100 + + Updates for release + +commit dd6a298b52afbd1be46759cc7e0d1965ed7f146d +Author: Harald Judt +Date: Thu Feb 19 23:34:52 2015 +0100 + + Bump autotools versions + +commit ed2274884c25e4e689982c7756d21b5c230d03bc +Author: Harald Judt +Date: Sat Feb 22 17:09:36 2014 +0100 + + Do not execute but only open shell scripts by default (bug #7596) + + With this patch, only real executable files, not scripts, will be + executed. + +commit 4ecdce189fe4842dc8ca2fce0654551830036c88 +Author: Nuno Miguel +Date: Thu Feb 19 18:30:46 2015 +0100 + + I18n: Update translation pt (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit eaf3e091b0ae02bc76f341828375e9252ca4c1d3 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Thu Feb 19 18:30:46 2015 +0100 + + I18n: Update translation es (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9ce64a0a20766d76d80162ab0e4b44f2761870a0 +Author: Nick Schermer +Date: Thu Feb 19 17:59:57 2015 +0100 + + Fix typo in error message. + +commit 357b341d4840bafef116ea4df52d558f6a9a832b +Author: Yannick Le Guen +Date: Thu Feb 19 12:30:30 2015 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 63b935ca42cb583cd64da99560aa7fce8d85d77b +Author: Harald Judt +Date: Sat Jan 31 11:22:14 2015 +0100 + + Improve keyboard navigation for thunar-tree-view (bug #4519) + + Left and right arrow (keypad too) expand/collapse, up and down arrow + work as usual, and the right pane follows the tree view selection. + + There is currently a problem with the top-level Desktop item which + would result in opening the item in another subtree (the Desktop + usually resides in /home/user/Desktop). This way, opening the + item automatically would break tree view navigation and this is + bad for user experience. So to open this item, the user has to + press space, enter or keypad enter. + +commit f60acf89a1321be0faa37bfb0d91b1757085ffa4 +Author: Harald Judt +Date: Thu Jan 15 14:41:22 2015 +0100 + + Allow + middle click in shortcut and treeview panes + + Currently, only middle click is possible, without any modifiers. + This patch enables + middle click, enabling the user + to quickly switch (for that action only) the behaviour of + opening folders to either "open in new window" or "open in new + tab". This makes this behaviour equal to that of the + icons/list/details views. + +commit 119cfabc365b91e46f3142e481bc1d3088fdcff5 +Author: Matt Thirtytwo +Date: Fri Feb 6 19:08:58 2015 +0100 + + Set correct dialog window hint for progress dialog (bug #11467) + +commit cc8d1331e305f2af5842607d885eb96608b8fce7 +Author: Peter de Ridder +Date: Thu Feb 5 22:22:41 2015 +0100 + + Refresh file info after getting it from cache (bug #11008) + +commit 96677859eaa89de86c54ff69eb3d2039f9792f34 +Author: Matt Thirtytwo +Date: Sun Feb 1 20:55:16 2015 +0100 + + Remove unused enum for signal handlers (bug #11493) + +commit 86124ec39ab193068ef86e10418ba40722d2d911 +Author: Matt Thirtytwo +Date: Wed Feb 11 20:35:29 2015 +0100 + + Simplify Makefile.am. Generated files are separated from typed source files. + +commit e4093870a4d4727b00a612f128ed59acda6b3156 +Author: Harald Judt +Date: Thu Feb 19 10:52:29 2015 +0100 + + Add m4 directory to .gitignore + +commit 8fdeb416b9956d5327ca5e9176434a6a440115a5 +Author: Aputsiaĸ Niels Janussen +Date: Thu Feb 19 06:30:31 2015 +0100 + + I18n: Update translation da (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 803451415f8606ecdf51a31268b3e29bf8fd6c39 +Author: Yannick Le Guen +Date: Thu Feb 19 00:30:27 2015 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 3d510420b6289c46dc4821fc2c55d0f3717b1547 +Author: Robby Workman +Date: Tue Feb 17 19:48:45 2015 -0600 + + thunar-tpa: Install desktop file to $(datadir)/xfce4/panel/plugins + + (instead of $(datadir)/xfce4/panel-plugins/ for consistency with + other panel plugins) + + Signed-off-by: Landry Breuil + +commit 9f4ec5baa39897188d663a24e5d3f640bc8e7bbc +Author: Sveinn í Felli +Date: Wed Feb 18 18:30:35 2015 +0100 + + I18n: Update translation is (96%). + + 715 translated messages, 24 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 84bfea70f486f856b245550beb0465b557911f84 +Author: Yannick Le Guen +Date: Wed Feb 18 18:30:35 2015 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 13cbeb761a6578acfcf6d710229fc2c9f075b5a1 +Author: Olivier Duchateau +Date: Tue Feb 17 21:10:46 2015 +0000 + + Fix anchor offset in xfce_dialog_show_help () function. + + Signed-off-by: Simon Steinbeiss + +commit 445c1f067e56b58543d572d6a52938b83f45970e +Author: Yannick Le Guen +Date: Wed Feb 18 00:30:26 2015 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4beb0994a1f2f1d3533bae819f5718cdcae8ce68 +Author: Harald Judt +Date: Mon Feb 16 20:54:56 2015 +0100 + + Properly handle m4 stuff + + Fix warning about m4 directory. + +commit cf4a3e17a4fdc81beca45d2224c8180f2ad634c9 +Author: Harald Judt +Date: Mon Feb 16 20:50:33 2015 +0100 + + Add auto-generated ChangeLog to .gitignore + +commit 631a622e2a329f50618fefc3ea865ab3476593f6 +Author: Mișu Moldovan +Date: Sun Feb 15 18:30:21 2015 +0100 + + I18n: Update translation ro (98%). + + 726 translated messages, 13 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit decb877135758e300038a6fe0c52a2866da8587c +Author: Slavko +Date: Sun Feb 15 00:30:19 2015 +0100 + + I18n: Update translation sk (99%). + + 736 translated messages, 3 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b2c6feddf3c61ddcd46c5a44e40027756ba34a28 +Author: Dawid +Date: Sat Feb 14 18:30:18 2015 +0100 + + I18n: Update translation pl (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d6ad76fd09909243219fc26acec7bc8ccff57a05 +Author: Yannick Le Guen +Date: Fri Feb 13 00:30:19 2015 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ec2a71b9544227b51c82708442306884caa13918 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Fri Feb 13 00:30:19 2015 +0100 + + I18n: Update translation es (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 228cfe6201b24c28902dee67dfdce895392e5199 +Author: Necdet Yücel +Date: Thu Feb 12 00:30:18 2015 +0100 + + I18n: Update translation tr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 00ddf79a47a4f14354039e7081d78b3ced8764a2 +Author: Eric Koegel +Date: Mon Feb 9 15:54:54 2015 +0300 + + TWP: Single-workspace-mode = TRUE is the default (Bug #11047) + + Xfdesktop assumes single-workspace-mode = TRUE, so we need to do + the same when setting wallpapers in Thunar. Thanks to ToZ for + finding this. + +commit dd923debe2f9c5568b9806647e72cbc6ed63de2e +Author: Harald Judt +Date: Sat Feb 7 09:48:37 2015 +0100 + + thunar-wallpaper: Do not use escaped filenames for xfconf + +commit 9e366f04bf32ed507c9b462227dc00b2b8f8892a +Author: Per Kongstad +Date: Tue Feb 10 00:30:18 2015 +0100 + + I18n: Update translation da (99%). + + 737 translated messages, 2 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c4a2f939128b2e584695ac2a28b53f07de4e56b3 +Author: abuyop +Date: Mon Feb 9 18:30:19 2015 +0100 + + I18n: Update translation ms (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit bd1b47f5d0a26ba40942c4e9607fe66d7b8f39b6 +Author: Yarema aka Knedlyk +Date: Mon Feb 9 00:30:19 2015 +0100 + + I18n: Update translation uk (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b240df9ee475780bddc400019777b6d3a931ae9f +Author: Sergey Alyoshin +Date: Sun Feb 8 18:30:25 2015 +0100 + + I18n: Update translation ru (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 7a61b48e5104803e1b624aecbd31085d637b8cd0 +Author: Seong-ho Cho +Date: Sun Feb 8 12:30:18 2015 +0100 + + I18n: Update translation ko (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit da0eb1f102cf63fe231bfb9985533cfdc025dc5a +Author: Baurzhan Muftakhidinov +Date: Sat Feb 7 06:30:18 2015 +0100 + + I18n: Update translation kk (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 23fc98065ab56b8fd45cd8ffb6346f531397d99a +Author: Tobias Bannert +Date: Sat Feb 7 00:30:19 2015 +0100 + + I18n: Update translation de (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c22f1e5775604a356d816778a93f56200e0d32df +Author: André Miranda +Date: Wed Feb 4 18:30:19 2015 +0100 + + I18n: Update translation pt_BR (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit f11f435a2728abbf1dce7d64db4293344ba8b205 +Author: Michal Várady +Date: Wed Feb 4 18:30:19 2015 +0100 + + I18n: Update translation cs (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c9fd2dba896709508383bcaed673fb399ea42d5a +Author: GenghisKhan +Date: Tue Feb 3 00:30:18 2015 +0100 + + I18n: Update translation he (99%). + + 735 translated messages, 4 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 378c9bcae2afa0c723142e67bc9d47af33f8d323 +Author: Eric Koegel +Date: Mon Feb 2 10:28:39 2015 +0300 + + Use xfconf and handle xfdesktop's single workspace (Bug #11047) + + Use xfconf since Thunar requires it anyway and handle xfdesktop's + single workspace mode. + +commit 2bd09cc55beae7c18c543716f8ac37924f6c72c7 +Author: Theppitak Karoonboonyanan +Date: Sun Feb 1 18:30:18 2015 +0100 + + I18n: Update translation th (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit fc9d51041a164c1b785f36bbf0db7dbd0f641e15 +Author: Sergey Alyoshin +Date: Sun Feb 1 18:30:18 2015 +0100 + + I18n: Update translation ru (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit fb172137e3ee2a4d6ed8371f1a011a48cb0fb3c6 +Author: Cristian Marchi +Date: Sat Jan 31 18:30:18 2015 +0100 + + I18n: Update translation it (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c24e99f02da7633675c918b5d4f9b5cbd38a9d27 +Author: Masato HASHIMOTO +Date: Sat Jan 31 12:30:18 2015 +0100 + + I18n: Update translation ja (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4470d8906d606390b0b9b0e08f884b57f7f5f57d +Author: Саша Петровић +Date: Fri Jan 30 18:30:19 2015 +0100 + + I18n: Update translation sr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 79f19bfa6f1c6aab7b49c6b470e39e978ed1db43 +Author: Tobias Bannert +Date: Fri Jan 30 18:30:19 2015 +0100 + + I18n: Update translation de (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1c25d2cdd597b7852f4910f132829f555dc89a2e +Author: Pjotr +Date: Fri Jan 30 12:30:19 2015 +0100 + + I18n: Update translation nl (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0a9edc1dfd96ff53080437daeb5ffcbe03544a93 +Author: Yannick Le Guen +Date: Fri Jan 30 12:30:19 2015 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit aac50b87d3485c1cb9256ce43ad887f9d88f83b3 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Fri Jan 30 06:30:18 2015 +0100 + + I18n: Update translation es (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 013c3044e025698098510bc5feff89631eb974e2 +Author: enolp +Date: Fri Jan 30 00:30:18 2015 +0100 + + I18n: Update translation ast (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c2037fcd3a74190717d7dd3101a48f19a50d840b +Author: 周潇波 +Date: Thu Jan 29 18:30:19 2015 +0100 + + I18n: Update translation zh_CN (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 454613676816ea3561b243be0495e3fecba9c9d7 +Author: Kiril Kirilov +Date: Thu Jan 29 18:30:19 2015 +0100 + + I18n: Update translation bg (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d0b5a2fe8dfaac24b8583ac4f1839dc16eba9ee8 +Author: Jeff Huang +Date: Thu Jan 29 12:30:19 2015 +0100 + + I18n: Update translation zh_TW (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 03fb556824b7641fba7afbc518184a282af74280 +Author: Yannick Le Guen +Date: Thu Jan 29 12:30:18 2015 +0100 + + I18n: Update translation fr (99%). + + 738 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c87e97d128ec5b0a06f063d29b2e177b5b4e1e86 +Author: Andrzej +Date: Thu Jan 29 00:11:50 2015 +0000 + + Revert "Workaround for crashes on RHEL5" + + This reverts commit 8780e13f86378151899d3e701fff2320e963f6ac. + +commit 18604fad027e35d7a3f343879fc41dbf65c21e4e +Author: Andrzej +Date: Thu Jan 29 00:11:30 2015 +0000 + + Revert "Fallback to image surface, workaround for bug in Cairo/RENDER" + + This reverts commit 78a3cba27cecbc13d078c127aa2acabae6048904. + +commit ff58ed28bcab826445216b97ce981890c90a8e83 +Author: Andrzej +Date: Wed Jan 28 23:36:07 2015 +0000 + + Renaming a file from another file manager... (bug #11430) + + (Matt32) + + When renaming a file from $HOME directory with midnight commander, it will disappear almost immediately in Thunar window but the renamed file does not show up. + + Steps to reproduce the bug: + - Open Thunar to $HOME + - In a terminal, use 'mc' to rename a file in $HOME directory + - The file disappears in Thunar window + - The file with the new name does not show up in Thunar window. + + The same test will work with Caja (MATE Desktop) file manager. + +commit 7fde0c0a35dca940e763361216c1da263748adcb +Author: Andrzej +Date: Wed Jan 28 23:19:38 2015 +0000 + + Make usage/free string more clear (bug #11345) + + This string is used in multiple places, e.g. in the properties dialog + (where it is clear that the first number means free space) and in the + device tooltip (where it is not clear). + +commit 7e03b6ac999f83fb5302ed13b4652fff465d679d +Author: Harald Judt +Date: Thu Jan 15 11:11:39 2015 +0100 + + Make single middle click open files and folders (bug #10587) + + Regardless of the "open on single click" option, double middle + click is weird and many users will not know about it. What's more, + on many mice the middle mouse button is hard to press. + + So do away with the double middle click and only allow open + with middle click for folders. + +commit e07d6d8ef624abad1f3f2e9e3b1b4398b09dfa62 +Author: Harald Judt +Date: Sat Dec 6 16:11:44 2014 +0100 + + Add a progressbar to the freespace indicator in the properties dialog + + This should help with visualising the free space in a more + intuitive way. + +commit e4519197b35824a82d57c45b354a1e5fd2c80b25 +Author: Thaddaeus Tintenfisch +Date: Mon Jan 19 01:16:40 2015 +0100 + + Change resize style in thunar-wallpaper plugin + +commit 9a6b2a8f12065e122b654d96492fa95dd63fda8c +Author: Yannick Le Guen +Date: Fri Jan 23 12:30:17 2015 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit db1efcc994c1356345bc0df937e85a7db08f9fa7 +Author: Piotr Strębski +Date: Mon Jan 19 18:30:17 2015 +0100 + + I18n: Update translation pl (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit cb5fc6fd6aff0635530316f069b2d7b6dbec864e +Author: AlexanderFilev +Date: Mon Jan 19 12:30:19 2015 +0100 + + I18n: Update translation ru (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit fb5e15d429554997a722fc640293f4ee89b74a4f +Author: Matt Thirtytwo +Date: Sat Jan 17 12:08:20 2015 +0100 + + Add vim modeline. Remove obsolete '$Id$' line. + + Signed-off-by: Landry Breuil + +commit 5388b045a94aaa5dd19a61eb975996e4d3a41ac8 +Author: Seong-ho Cho +Date: Thu Jan 15 18:30:17 2015 +0100 + + I18n: Update translation ko (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a50e8e1379152d841f448d3f477323e1769277fd +Author: Landry Breuil +Date: Thu Jan 15 09:57:03 2015 +0100 + + add even more files to .gitignore + +commit 38ddffb7a6aa6205177bb82fe1d7f92c9d099549 +Author: Matt Thirtytwo +Date: Wed Jan 14 21:05:59 2015 +0100 + + Add generated files to .gitignore + + Signed-off-by: Landry Breuil + +commit 77ef13a242bf95d793adc047a1c3f6c6ee705331 +Author: Michael Findlay +Date: Tue Jan 13 12:30:17 2015 +0100 + + I18n: Update translation en_AU (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1ba38d9e6ef497ad8f4df137e210728760148a69 +Author: Tobias Bannert +Date: Fri Jan 9 12:30:18 2015 +0100 + + I18n: Update translation de (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 39a18ce58e7b3dfb6c44fed659fa9979170cd315 +Author: Masato HASHIMOTO +Date: Thu Jan 8 18:30:17 2015 +0100 + + I18n: Update translation ja (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9d9f2275b0cca2e4ebdf63dbb0427e11407c4cf5 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Wed Jan 7 00:30:17 2015 +0100 + + I18n: Update translation es (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 22431237c0f4bb4458f53a0c2300329908d31037 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Tue Jan 6 00:30:17 2015 +0100 + + I18n: Update translation es (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit da6e0addf2c5fdbf458cbdb3f3dc025945e03458 +Author: Andrzej +Date: Sun Jan 4 22:29:32 2015 +0000 + + Right click context menu with wrong icon (bug #10652) + + Author: Thaddaeus Tintenfisch + Bug: https://bugzilla.xfce.org/show_bug.cgi?id=10652 + Bug-Ubuntu: https://launchpad.net/bugs/1271861 + Description: Add or change various menu icons: + - Open With DEFAULT Application + - New Tab/Window + - Create Folder/Document + - Empty File + +commit 83ad4b3be27284245eb44f990ca2ce70a40fd4b5 +Author: Masato HASHIMOTO +Date: Sun Jan 4 18:30:18 2015 +0100 + + I18n: Update translation ja (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 49fc82c1b5bfe0171d5b633e359da91f46ffeff9 +Author: Andrzej +Date: Sun Jan 4 15:31:18 2015 +0000 + + Post release tag bump. + +commit a1741ae9be0af9593012ccf55bf18ceaee2faaf8 +Author: Andrzej +Date: Sun Jan 4 15:29:10 2015 +0000 + + Updates for the release. + +commit 7e8f1381b9e518e28eae12de3b1f11efb9e469ee +Author: Andrzej +Date: Sun Jan 4 15:27:52 2015 +0000 + + make distcheck fix (reference docs linking error) + +commit abe72f6d46db712b607a87cd04a42682ca949803 +Author: Piotr Strębski +Date: Sat Jan 3 00:30:17 2015 +0100 + + I18n: Update translation pl (99%). + + 738 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 52c530828651160161884e4477c5101691c9e33c +Author: enolp +Date: Thu Jan 1 06:30:35 2015 +0100 + + I18n: Update translation ast (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1ffcb1ba49c26166fc3f1e75c93e221dba7dda97 +Author: 周潇波 +Date: Wed Dec 31 18:30:21 2014 +0100 + + I18n: Update translation zh_CN (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5931bc7b5e6f8e25e566f6d993a6e1e3bf8bc62a +Author: Urien Desterres +Date: Sun Dec 28 00:30:17 2014 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit cf593b9abf12732112c8caf92d1bdb9d624b8a41 +Author: Efstathios Iosifidis +Date: Sat Dec 27 00:30:29 2014 +0100 + + I18n: Update translation el (94%). + + 697 translated messages, 42 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ee41b081d326f683e88976b41be1a122b883e194 +Author: atekinalp +Date: Thu Dec 25 00:30:18 2014 +0100 + + I18n: Update translation tr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2043ef9b6a45f8a8101932a20e46f398f32cb774 +Author: abuyop +Date: Wed Dec 24 18:30:18 2014 +0100 + + I18n: Update translation ms (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 6311e6c99e2f5294b7f5c8cf610b0e28dd369e89 +Author: Theppitak Karoonboonyanan +Date: Wed Dec 24 12:30:28 2014 +0100 + + I18n: Update translation th (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a437981e778ced688e0a8c559c34c1694c7c503e +Author: Urien Desterres +Date: Wed Dec 24 12:30:27 2014 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c4ba9ada8095f4adf0fd9cb0a4cf0022d1dcc2be +Author: Саша Петровић +Date: Wed Dec 24 00:30:19 2014 +0100 + + I18n: Update translation sr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit e953760c094019a5605a387d916b0ce895b60d9e +Author: Cristian Marchi +Date: Wed Dec 24 00:30:19 2014 +0100 + + I18n: Update translation it (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4cf5f15f82ebc59d2c3f16eab84b71c9dfa233ce +Author: Benedek Imre +Date: Wed Dec 24 00:30:19 2014 +0100 + + I18n: Update translation hu (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5d21d966fa4a2fc6f570e02e075e4aacf768fd4d +Author: Yarema aka Knedlyk +Date: Mon Dec 22 12:30:20 2014 +0100 + + I18n: Update translation uk (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 37d71f813113c41b3027b81f58643e9cf29cb005 +Author: André Miranda +Date: Sun Dec 21 18:30:19 2014 +0100 + + I18n: Update translation pt_BR (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 696b28c6848fd5583bde61f8425f8691c3772670 +Author: Urien Desterres +Date: Sun Dec 21 18:30:19 2014 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 8401b9457a43756757ed80dfb673057b37687cc6 +Author: Michal Várady +Date: Sun Dec 21 18:30:19 2014 +0100 + + I18n: Update translation cs (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 3500ece3abf94ebd5bcf7ad56f60b1231508e7f3 +Author: Kiril Kirilov +Date: Sun Dec 21 18:30:19 2014 +0100 + + I18n: Update translation bg (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ad5fc4dc7410327fd55600e927ebc2ef908b25db +Author: Jeff Huang +Date: Sun Dec 21 00:30:17 2014 +0100 + + I18n: Update translation zh_TW (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1f257768c3a9facc87e3109db89b462f90470895 +Author: Nuno Miguel +Date: Sat Dec 20 18:30:18 2014 +0100 + + I18n: Update translation pt (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 6efacaf0f5fbf16db40fce16966330d4b7398fbe +Author: Urien Desterres +Date: Sat Dec 20 18:30:18 2014 +0100 + + I18n: Update translation fr (100%). + + 739 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit f96608c72346fb59567ff568c43f8c3867311fad +Merge: 5a623a5 9e9da20 +Author: Andrzej +Date: Sat Dec 20 00:21:57 2014 +0000 + + Merge branch 'master' of https://github.com/andreldm/thunar + +commit 9e9da205c2aeb8a2e6e7e5c594abadc9a9216179 +Author: Andre Miranda +Date: Thu Dec 18 22:51:22 2014 -0300 + + Removed unnecessary include + +commit 2ed192eafad68ecc653070ec4050fdd6ecb5c6e7 +Author: Andre Miranda +Date: Thu Dec 18 22:42:27 2014 -0300 + + Improvements after comments by Andrzej + +commit 5a623a58aae2d97d1b2cb98619fee7f028c4eb68 +Author: Sveinn í Felli +Date: Wed Dec 17 18:30:38 2014 +0100 + + I18n: Update translation is (96%). + + 714 translated messages, 23 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5bce93830d1005273a4af0fc45417418c671f28c +Author: Andre Miranda +Date: Wed Dec 17 00:53:32 2014 -0300 + + Fix for bug 10864 - thunar incorrectly showing file sizes + +commit 6386647f80e0e0f2d392a2d58863365f16f07c3e +Author: Ḷḷumex03 +Date: Sat Dec 13 18:30:32 2014 +0100 + + I18n: Update translation ast (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b47271dd43709ddcc95b48ed9bdb5bf13da2d28c +Author: Ḷḷumex03 +Date: Sat Dec 13 06:30:17 2014 +0100 + + I18n: Update translation ast (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 732b9e98285150f535f2b7beef309aa2449d620e +Author: عبدالله رضوان +Date: Sun Dec 7 18:30:17 2014 +0100 + + I18n: Update translation ar (99%). + + 735 translated messages, 2 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit e81132f295eb5b0f4d7ad759fc6cc09258205c96 +Author: Necdet Yücel +Date: Thu Dec 4 00:30:17 2014 +0100 + + I18n: Update translation tr (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 943ea757ecfaf4a7e09b9e4b331eec6e7246f6c5 +Author: Harald Judt +Date: Wed Dec 3 18:30:17 2014 +0100 + + I18n: Update translation de (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5860b78db2e5c4ac1462ec70bd6b686e770a7e26 +Author: 玉堂白鹤 +Date: Tue Dec 2 18:30:17 2014 +0100 + + I18n: Update translation zh_CN (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 67a52a69e3cd8ec867ea4ef296aea54bda112798 +Author: Ḷḷumex03 +Date: Tue Dec 2 18:30:17 2014 +0100 + + I18n: Update translation ast (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 439cfa1b0b2ca5807a2f1744a54e7ba0b42fef30 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Tue Dec 2 06:30:16 2014 +0100 + + I18n: Update translation es (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5930b56210e6665198ecc4db8cb1764ea9200ae8 +Author: Nick Schermer +Date: Mon Dec 1 21:47:18 2014 +0100 + + Strip trailing spaces. + + But really this is just a test for the github mirror. + +commit b1b55f8789f56edcd8d7c656156a60f73b10f0b3 +Author: Slavko +Date: Fri Nov 28 18:30:17 2014 +0100 + + I18n: Update translation sk (98%). + + 726 translated messages, 11 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0bc46c709be8765678f5b6cc0cdc5fb3dc7aa791 +Author: Urien Desterres +Date: Tue Nov 25 00:30:18 2014 +0100 + + I18n: Update translation fr (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2a8d56ae7940bd42b76aaa3a7b6130df74bcfac1 +Author: Ḷḷumex03 +Date: Tue Nov 25 00:30:18 2014 +0100 + + I18n: Update translation ast (99%). + + 736 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit e8a45e30e96d853f5751b524c028629882a51c2b +Author: Michael Findlay +Date: Mon Nov 24 06:30:17 2014 +0100 + + I18n: Update translation en_AU (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5510fcaf19768753145a31553e1070879547bdda +Author: abuyop +Date: Fri Nov 21 06:30:17 2014 +0100 + + I18n: Update translation ms (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4bc7c507c9a58cb9dccbaabf25c506aded3c363b +Author: Саша Петровић +Date: Wed Nov 19 12:30:16 2014 +0100 + + I18n: Update translation sr (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 05984ad69dd7827aa3f789fbdf2b87c80c9f3b5d +Author: Anonymous +Date: Tue Nov 18 00:30:17 2014 +0100 + + I18n: Update translation de (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit bb0302de4aa1665d897ebee6e332d8de709fb45a +Author: Erlin Hysenbelliu +Date: Sun Nov 16 18:30:19 2014 +0100 + + I18n: Update translation sq (91%). + + 677 translated messages, 60 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a373a6432a889a596626ee091dfdf423ce823e69 +Author: Anonymous +Date: Fri Nov 14 18:30:17 2014 +0100 + + I18n: Update translation de (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0c5df4e5a2a6763dcfec0bf78b0fac9b78655003 +Author: Cristian Marchi +Date: Fri Nov 14 00:30:16 2014 +0100 + + I18n: Update translation it (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2fce816d45bc3967492818546d12f5b668aa009c +Author: André Miranda +Date: Wed Nov 12 18:30:17 2014 +0100 + + I18n: Update translation pt_BR (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 7df770f74e50c38303436b90f1bc443262982697 +Author: Yarema aka Knedlyk +Date: Tue Nov 11 18:30:18 2014 +0100 + + I18n: Update translation uk (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a3381e35aece792a3a77ce584fae114ca0a2a973 +Author: Sungjin Kang +Date: Tue Nov 11 18:30:18 2014 +0100 + + I18n: Update translation ko (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5d45d2bfb93be477f1ca587ab8f3a2140bb519d7 +Author: Theppitak Karoonboonyanan +Date: Tue Nov 11 12:30:17 2014 +0100 + + I18n: Update translation th (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c09fe7e42e4892a5c051be3b3bbdc8a451a30fb8 +Author: Jeff Huang +Date: Mon Nov 10 12:30:17 2014 +0100 + + I18n: Update translation zh_TW (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 937ad925c204611268b2e6ce1a06fc9083e61621 +Author: Anonymous +Date: Sat Nov 8 18:30:17 2014 +0100 + + I18n: Update translation de (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5c04be1e18ab0741f323953747c9f93ccaa6eb46 +Author: Baurzhan Muftakhidinov +Date: Fri Nov 7 12:30:18 2014 +0100 + + I18n: Update translation kk (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0ac20895a28e22a790b51b98d0e6d5c638664ccb +Author: Adolfo Jayme Barrientos +Date: Fri Nov 7 00:30:17 2014 +0100 + + I18n: Update translation es (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 054c83aebd1d07f50e48149618d3120f261bc6b1 +Author: Pjotr +Date: Thu Nov 6 18:30:17 2014 +0100 + + I18n: Update translation nl (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1b33688314a650cb3f28e608fdc228196cf87637 +Author: Kiril Kirilov +Date: Thu Nov 6 12:30:17 2014 +0100 + + I18n: Update translation bg (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 7027f7a54b87372a9130ec790fce9bee31f1b6fb +Author: Simon Steinbeiss +Date: Wed Nov 5 14:59:51 2014 +0100 + + Fix case of Xfce in appdata description + +commit 4770fe3f8f2af485db92cf6d6426a1c9373185d9 +Author: Sergey Alyoshin +Date: Wed Nov 5 12:30:18 2014 +0100 + + I18n: Update translation ru (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit eaf2dd9ad9288085b9cb7364931d436e8fd1a557 +Author: Baurzhan Muftakhidinov +Date: Wed Nov 5 06:30:17 2014 +0100 + + I18n: Update translation kk (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d72eafdfbedbca9d52c3a3ab97f5efdf8d145258 +Author: Pjotr +Date: Wed Nov 5 00:30:17 2014 +0100 + + I18n: Update translation nl (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a9ee00c3fca926a4e6d911d35609d955c6b4747e +Author: Anonymous +Date: Tue Nov 4 06:30:18 2014 +0100 + + I18n: Update translation de (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit dbb5e6d20d4fa3e81375853155d36e2bf6ae33df +Author: Cristian Marchi +Date: Tue Nov 4 00:30:19 2014 +0100 + + I18n: Update translation it (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 062418e687e230a575068ff4ac6bae6fc98dc13d +Author: Anonymous +Date: Tue Nov 4 00:30:19 2014 +0100 + + I18n: Update translation de (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 703157492975fa79ddb0b94d518301fdf2187838 +Author: Eric Koegel +Date: Sun Nov 2 12:40:01 2014 +0300 + + Update intltool + + See https://bugzilla.xfce.org/show_bug.cgi?id=8930 for details. + + Signed-off-by: Simon Steinbeiss + +commit be731bfeea3f5638e6ff0d419e0ed0a8292484d8 +Author: Piotr Strębski +Date: Mon Nov 3 18:30:18 2014 +0100 + + I18n: Update translation pl (99%). + + 736 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2596f56f7cc2df3687cda450b4d12d63dbe2e065 +Author: Ḷḷumex03 +Date: Mon Nov 3 18:30:18 2014 +0100 + + I18n: Update translation ast (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit bccfd5d695db0b01effa5ff2c943c7296038cbcf +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Mon Nov 3 06:30:19 2014 +0100 + + I18n: Update translation es (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d583553458c1b0eccdb8102e64da83a159c795b9 +Author: Anonymous +Date: Mon Nov 3 06:30:18 2014 +0100 + + I18n: Update translation de (99%). + + 736 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit fde8d7e67daa64f700286a2b6425f0ebce8844e4 +Author: Sergey Alyoshin +Date: Mon Nov 3 00:30:18 2014 +0100 + + I18n: Update translation ru (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2046b465c97e6512fc9c35f4ce25e099f176e522 +Author: Anonymous +Date: Mon Nov 3 00:30:18 2014 +0100 + + I18n: Update translation de (99%). + + 734 translated messages, 3 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 303d2c759acdc388c82f96f4d7cd1ef45d663765 +Author: Cleber de Souza Corrêa +Date: Sun Nov 2 18:30:18 2014 +0100 + + I18n: Update translation pt_BR (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4ed73048ed68c902d58aae26be3a2fd61a5ebcca +Author: Jeff Huang +Date: Sun Nov 2 12:30:19 2014 +0100 + + I18n: Update translation zh_TW (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b791b35e4cc1342b89a8ddc57053aab5c4931018 +Author: Kiril Kirilov +Date: Sun Nov 2 12:30:19 2014 +0100 + + I18n: Update translation bg (100%). + + 737 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 8eeed6ba6ed0b1efa2b2b05c0b108da816763069 +Author: Eric Koegel +Date: Sat Nov 1 22:13:18 2014 +0300 + + Add pkexec policy (Bug #11122) + + This adds a pkexec policy file to Thunar. This way if the user + of a desktop system wants to use thunar to modify files as root + and has the proper credentials they can. + pkexec comes from polkit which does about the same thing as + sudo/gksu except also supports authentication methods like + fingerprint or smart card readers. + + Signed-off-by: Simon Steinbeiss + +commit 94ccaf3073a22dcc0d875bd9b89cb1cac848d19b +Author: Simon Steinbeiss +Date: Sat Nov 1 20:01:05 2014 +0100 + + Remove trailing whitespace from Makefile to prevent warning + +commit 9e3a5dccfa01e096b0905020fa3ef4453b976ced +Author: Eric Koegel +Date: Fri Sep 26 19:20:11 2014 +0300 + + Add appdata file for Thunar (Bug 11172) + + Ryan Lerch wrote most of the appdata file, I only added the url + help and the autoconf stuff to use intltool for translated strings + in the appdata as we can do that as upstream. See: + http://www.freedesktop.org/software/appstream/docs/sect-Metadata-Application.html + + Signed-off-by: Simon Steinbeiss + +commit 4038bde80f2311fd888f6cb807b0f7eeb574a855 +Author: Eric Koegel +Date: Fri Oct 31 22:13:29 2014 +0300 + + Check for thumbnails in the new location (Bug #11263) + + The thumbnail managing standard was updated to change the location + where thumbnails are stored. This has been changed to + $XDG_CACHE_HOME/thumbnails/ unless $XDG_CACHE_HOME isn't defined, + at which point it's back to $HOME/.cache/thumbnails . This patch + has Thunar look in both places when the thumbnail is created and + reports the first one that's found. + + Signed-off-by: Simon Steinbeiss + +commit 4b142af9dfe19f90ffe5529e2f099dc55298ecef +Author: Guido Berhoerster +Date: Tue Oct 14 18:20:47 2014 +0300 + + Default application not respected with glib >= 2.41 (Bug #11212) + + Ensure thunar_file_list_get_applications() has the default + application as the first element of the returned list. + + Signed-off-by: Simon Steinbeiss + +commit 07393c3b3024cfb238a32188fd8423fcdc93ad8d +Author: Duy Truong Nguyen +Date: Mon Oct 27 06:30:18 2014 +0100 + + I18n: Update translation vi (99%). + + 733 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1d371e2a9c145c4bca8fee32c0bbcb9e79a091f6 +Author: Michal Várady +Date: Sun Oct 26 18:30:18 2014 +0100 + + I18n: Update translation cs (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a07ce78b3a5f24c1fbe59d2a4557b78bf82d297e +Author: Ḷḷumex03 +Date: Sun Oct 26 00:30:29 2014 +0200 + + I18n: Update translation ast (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b194df98db90df557b027e71169c8699f006d199 +Author: Ḷḷumex03 +Date: Tue Oct 21 18:30:25 2014 +0200 + + I18n: Update translation ast (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit defa44cb0b7d1b585b4aa8f308653baac88bd6f1 +Author: Anonymous +Date: Wed Sep 24 18:30:29 2014 +0200 + + I18n: Update translation bg (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 7c8b80884b8e72844e955866dc5c8b0aa2d89b94 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Mon Sep 8 18:30:18 2014 +0200 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9a8872a49628649c37d0c9c8290756894a9e75fc +Author: Seong-ho Cho +Date: Sun Aug 24 12:30:22 2014 +0200 + + I18n: Update translation ko (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c245bd8aaafe0977652939614281798fea573afb +Author: Pasi Lallinaho +Date: Sat Aug 23 00:30:19 2014 +0200 + + I18n: Update translation fi (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9698639cddee1fc60f1c1cf7c41ef4fa166b8f6b +Author: Urien Desterres +Date: Fri Aug 22 00:30:17 2014 +0200 + + I18n: Update translation fr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 55792f14c2401039369722716ceee2f5d54b95f2 +Author: Pasi Lallinaho +Date: Thu Aug 14 18:30:18 2014 +0200 + + I18n: Update translation fi (99%). + + 730 translated messages, 4 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 95fb3eef331963435762d85a028293e6d953226c +Author: André Miranda +Date: Tue Aug 5 00:30:17 2014 +0200 + + I18n: Update translation pt_BR (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 6f6578d2bfcc7b98e89aa62d9ad404e44fe35b3a +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Sun Aug 3 12:30:18 2014 +0200 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 862611fa22241e25328a43ee63a9d92bbab00948 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Sat Aug 2 06:30:17 2014 +0200 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit dbadf27603edafa319027d62b3c56955aca5843b +Author: Yannick Le Guen +Date: Sat Jul 26 12:30:17 2014 +0200 + + I18n: Update translation fr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 6a63d7bd8ff0d937cb30f112c3fd080a5a107053 +Author: Alistair Buxton +Date: Wed Mar 12 20:20:05 2014 +0000 + + Add support for the GTK 3 bookmarks file (bug #10627) + + The changes ensure that the config directory exists before attempting to + write bookmarks. It falls back to the old location to support both GTK 2 + and 3. + +commit 766b1e3fc28dc3fd9e01420bdb4ec84e3d2fdfdb +Author: Eric Koegel +Date: Tue Nov 26 10:16:21 2013 +0300 + + Update xfconf setting for thunar-wallpaper plugin + + Xfdesktop uses a new xfconf format starting with version 4.11. + This patch updates the thunar-wallpaper plugin to set the image + in the new format while continuing to set the old format. + + Comment from Jannis: This currently only works if "Apply to all + workspaces" is disabled in xfdesktop. We might have to set the + workspace0 wallpaper as well in order for the wallpaper to be + applied in this case. + +commit 2eb1e8c0794f022758af463f9bf417b2131e3271 +Author: Yannick Le Guen +Date: Fri Jul 18 18:30:18 2014 +0200 + + I18n: Update translation fr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4793e6ac3b5b02732b9c8aed462b304f9c8f0917 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Sun Jul 13 12:30:17 2014 +0200 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 24fafb60b7a00bd17b7442ac4ede16c32ea03bc1 +Author: Yannick Le Guen +Date: Fri Jul 4 12:30:19 2014 +0200 + + I18n: Update translation fr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9ea6090bc14171eac840cb031aa061abe606798a +Author: Tero Mononen +Date: Thu Jul 3 18:30:18 2014 +0200 + + I18n: Update translation fi (98%). + + 726 translated messages, 8 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2917f8c2fdb7e4c27d22c175ea4aa9433526b21c +Author: Yannick Le Guen +Date: Mon Jun 23 00:30:17 2014 +0200 + + I18n: Update translation fr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2755c12215da4dfb749df38fa8c543cb1b9d6205 +Author: Pablo Roberto Francisco Lezaeta Reyes +Date: Sat Jun 7 12:30:17 2014 +0200 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4293f25c62a78cebcb68ab12c140d57779443372 +Author: NagyGabika +Date: Tue Jun 3 00:30:17 2014 +0200 + + I18n: Update translation hu (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 00ea2ef56283e2e3e54f0bc2eec38ea321fed2c7 +Author: OSWorld +Date: Mon Jun 2 00:30:31 2014 +0200 + + I18n: Update translation pl (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0b535d6f028b2f1a0b7db8a239d9be7751851289 +Author: Yaron Shahrabani +Date: Tue May 27 12:30:17 2014 +0200 + + I18n: Update translation he (99%). + + 733 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1d4ddbefd9e4a4517bd11355e78fdbf73aeb9ac3 +Author: Pablo Lezaeta +Date: Sat May 24 18:30:22 2014 +0200 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit fae53761def6ff65d216ef9a48690bd60e887b9b +Author: Anonymous +Date: Sat May 24 18:30:22 2014 +0200 + + I18n: Update translation de (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit cfe76057f42d5d1bc65743ff53762b845ec658b2 +Author: Darkcircle +Date: Fri May 16 18:30:17 2014 +0200 + + I18n: Update translation ko (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 21513a7a2e979ae3090bc5807b4ef30dec97451d +Author: Darkcircle +Date: Tue May 13 18:30:17 2014 +0200 + + I18n: Update translation ko (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit febd3882d6c512483647dd7b4e2e4c3ab611894c +Author: haarek +Date: Mon May 12 18:30:17 2014 +0200 + + I18n: Update translation nb (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b46a82203eae9a110cb29a42862dad0532896f9a +Author: Aputsiaĸ Niels Janussen +Date: Mon May 12 00:30:17 2014 +0200 + + I18n: Update translation da (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 01b124ecee0d97fce606c78bd3c59020b02a9e67 +Author: kingu +Date: Sat May 10 18:30:24 2014 +0200 + + I18n: Update translation nb (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 8e19598a91fb5fe70c8ee19722f739b7ba0702a0 +Author: haarek +Date: Sat May 10 12:30:21 2014 +0200 + + I18n: Update translation nb (99%). + + 730 translated messages, 4 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5b18e37e99f4048b3122b3f5d4a44842cf2646cd +Author: kingu +Date: Sat May 10 00:30:17 2014 +0200 + + I18n: Update translation nb (99%). + + 729 translated messages, 5 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 88f48c69dffbe00fe4edb41c38d5b50c9fd05f67 +Author: truongap +Date: Thu May 8 18:30:17 2014 +0200 + + I18n: Update translation vi (99%). + + 728 translated messages, 6 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 68143aee10a1927c49381f6c33d2bf01cd1b94f8 +Author: haarek +Date: Wed May 7 18:30:17 2014 +0200 + + I18n: Update translation nb (99%). + + 728 translated messages, 6 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 60fd304ba8eba3db1ac3920e5cab9dc78e74873f +Author: haarek +Date: Sat Apr 26 18:30:17 2014 +0200 + + I18n: Update translation nb (95%). + + 701 translated messages, 33 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit eaa2583906b8ce226c4a84e522f7798910a85dc0 +Author: kingu +Date: Sat Apr 26 12:30:18 2014 +0200 + + I18n: Update translation nb (89%). + + 654 translated messages, 80 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9327905c42c492f66eb04be643c57f0fa660cf81 +Author: Tornes Llume +Date: Fri Apr 25 18:30:19 2014 +0200 + + I18n: Update translation ast (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 02b787b20326b32fb830e030748c27953be53a6b +Author: Urides +Date: Thu Apr 17 00:30:17 2014 +0200 + + I18n: Update translation fr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 56d016d0f0cc07f911d0dc77ce43fbc66954ebf4 +Author: ప్రవీణ్ ఇళ్ళ +Date: Sat Apr 12 18:30:17 2014 +0200 + + I18n: Update translation te (80%). + + 589 translated messages, 145 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0ee7e8a251f5ac66ddb2742bb1112d54a66ebe3e +Author: Tornes Llume +Date: Sat Apr 12 06:30:20 2014 +0200 + + I18n: Update translation ast (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b39430a63e9cd5707d69ce4b63d61669a05a71be +Author: Urides +Date: Sat Apr 12 00:30:24 2014 +0200 + + I18n: Update translation fr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 97816396cea96cc243782a0de1e76d22fcc3c37d +Author: Tornes Llume +Date: Sat Apr 12 00:30:24 2014 +0200 + + I18n: Update translation ast (96%). + + 707 translated messages, 27 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9130571ffc2bcd407867883f244e07c8b1f1f7e1 +Author: Tornes Llume +Date: Wed Apr 9 18:30:27 2014 +0200 + + I18n: Update translation ast (92%). + + 677 translated messages, 57 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 11c178310d495661502cf265d256dcd633374122 +Author: abuyop +Date: Wed Apr 2 18:30:37 2014 +0200 + + I18n: Update translation ms (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit cd4945ed0bb31ef992bf46a02d17becd5525a711 +Author: abuyop +Date: Sun Mar 30 18:30:20 2014 +0200 + + I18n: Update translation ms (87%). + + 643 translated messages, 91 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 3ce5044528e8c72bf5695cfd36237a062de18c9d +Author: abuyop +Date: Sun Mar 30 00:30:21 2014 +0100 + + I18n: Add new translation ms (53%). + + 390 translated messages, 344 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 63ba1ceaf0719c797e2236b831153513369275c9 +Author: Pablo Lezaeta +Date: Fri Mar 28 12:30:25 2014 +0100 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 3813308f796578ae75d002d3f0a2dbda7aaf62ae +Author: asvl +Date: Thu Mar 27 12:30:19 2014 +0100 + + I18n: Update translation ru (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit e9b38ceb16a2eb9190c8f3ea39ef9109f28d0167 +Author: PavelNicklasson +Date: Mon Mar 24 00:30:19 2014 +0100 + + I18n: Update translation sv (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit cdbfe3f03492a3e85c852e5e712c6187707c309e +Author: edwinpm5 +Date: Mon Mar 24 00:30:19 2014 +0100 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d557e22e5e11bd6b9d3cd82cf8d7dd68160d2d10 +Author: Piotr Sokół +Date: Fri Mar 21 12:30:22 2014 +0100 + + I18n: Update translation pl (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 780f4d83438b57c943f090046cc91cc4320708d1 +Author: Adolfo Jayme Barrientos +Date: Fri Mar 21 06:30:20 2014 +0100 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 16e99aacfe34aa32ccfe614ac043f302aada9250 +Author: Tornes Llume +Date: Wed Mar 12 12:30:24 2014 +0100 + + I18n: Update translation ast (88%). + + 647 translated messages, 87 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 8fbcb2405ecfee5c17cc22416f3a2b230612438e +Author: Nick Schermer +Date: Mon Mar 3 22:37:28 2014 +0100 + + Update copyright. + +commit 88398c47d83fa24ad25cb77a2f347db05e2c676e +Author: PavelNicklasson +Date: Fri Feb 28 18:30:19 2014 +0100 + + I18n: Update translation sv (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d8dc18891203019b8f409a31d4316a8b41c45a36 +Author: Juhani Numminen +Date: Mon Feb 24 18:30:22 2014 +0100 + + I18n: Update translation fi (98%). + + 724 translated messages, 10 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 6456abc1ab60cc27fac5ea6f813ea224b6a90219 +Author: Mattias Põldaru +Date: Sun Feb 16 18:30:21 2014 +0100 + + I18n: Update translation et (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 72665335f59f08c4cb2579ee0d80911e98353c96 +Author: ard1t +Date: Sat Feb 1 06:30:17 2014 +0100 + + I18n: Update translation sq (91%). + + 675 translated messages, 59 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ffb954c8cb1346a53f4b5981e836d26f14674597 +Author: Sveinn í Felli +Date: Fri Jan 24 00:30:18 2014 +0100 + + I18n: Update translation is (96%). + + 709 translated messages, 25 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 250f8ae1cbde491d85f8576ecb812ea5ed7062a6 +Author: Roger Pueyo Centelles +Date: Wed Jan 22 00:30:17 2014 +0100 + + I18n: Update translation ca (99%). + + 733 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 209cda002c09687139cd7e7de34f52a99ff85c53 +Author: Michal Várady +Date: Sun Jan 19 06:30:21 2014 +0100 + + I18n: Update translation cs (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit fc4a4b61e4f1777944fea298f8a7413a06b5093d +Author: Andrzej +Date: Fri Dec 27 23:10:59 2013 +0000 + + thunar-tpa: fix libxfce4panel version checking macros + +commit 92d1e47fd0230efc1e8dd9796c794e6756a275f5 +Author: Alois Nešpor +Date: Fri Dec 27 12:30:21 2013 +0100 + + I18n: Update translation cs (62%). + + 456 translated messages, 278 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 35966356803ee0720906cf29350f8ac4c78d9b67 +Author: Alois Nešpor +Date: Fri Dec 27 00:30:19 2013 +0100 + + I18n: Update translation cs (60%). + + 443 translated messages, 291 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 78a3cba27cecbc13d078c127aa2acabae6048904 +Author: Andrzej +Date: Thu Dec 19 02:08:26 2013 +0000 + + Fallback to image surface, workaround for bug in Cairo/RENDER + + Only in _color_selected. _color_lighten works fine with CAIRO_OPERATOR_ADD. + + Introduced a temporary/dummy preprocessor macro -> to be replaced with + an actual version check, once fixed Cairo is available. + + Implementation likely slower than direct XRender path but no performance + problems detected during testing. + +commit cc115338beaa532f6dbee43e444ab25b046831bb +Author: Walter Cheuk +Date: Sun Dec 15 12:30:27 2013 +0100 + + I18n: Add new translation zh_HK (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ced1cc16e374269dd10b37c5e6ffcdf90fe32b06 +Author: Masato HASHIMOTO +Date: Sun Dec 8 18:30:20 2013 +0100 + + I18n: Update translation ja (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 8780e13f86378151899d3e701fff2320e963f6ac +Author: Andrzej +Date: Sat Dec 7 03:50:03 2013 +0000 + + Workaround for crashes on RHEL5 + + Seems like a problem in cairo/x11. + All cairo blend mode operators are affected. + + TODO: better fix with version checking and/or different operators. + +commit 38e528cfe03d39ce6de3e82c3a338853352e21f4 +Author: Andrzej +Date: Sat Dec 7 03:32:27 2013 +0000 + + Fixed missing inode-directory/folder icons on old systems. + + This error was seen on RHEL5 with custom-built Gtk stack. + The system was distributed with a "folder" icon but was missing + an "inode-directory" icon expected by new glib/gtk. + +commit 6843caf9afdef2ffa8eeb170938f565699280ec5 +Author: Sveinn í Felli +Date: Fri Dec 6 12:30:17 2013 +0100 + + I18n: Update translation is (95%). + + 702 translated messages, 32 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 8b981fe8e4e264b57fa3b40a1ca608c5d7a2a913 +Author: Sveinn í Felli +Date: Sun Dec 1 18:30:17 2013 +0100 + + I18n: Update translation is (94%). + + 692 translated messages, 42 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c8cec9f7c7c93c0d069309942c0fa753611ac831 +Author: Xfce +Date: Tue Nov 19 18:36:38 2013 +0100 + + I18n: Update translation ur (80%). + + 590 translated messages, 144 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c9f149ac248935a851f420c5d1ac67cb32faa473 +Author: Xfce +Date: Tue Nov 19 18:36:38 2013 +0100 + + I18n: Update translation ur_PK (80%). + + 590 translated messages, 144 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 71ff99ba0ab5296c8cffcb9f1121532bdbe30470 +Author: Xfce +Date: Tue Nov 19 18:36:37 2013 +0100 + + I18n: Update translation ug (90%). + + 663 translated messages, 71 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 395d556384a65f36ce1699c76bb618a4e65be0ac +Author: Xfce +Date: Tue Nov 19 18:36:36 2013 +0100 + + I18n: Update translation te (68%). + + 502 translated messages, 232 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4e4f6f2f5f060edf04680323fc8e100f4710be67 +Author: Xfce +Date: Tue Nov 19 18:36:35 2013 +0100 + + I18n: Update translation sq (84%). + + 620 translated messages, 114 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c822eb78f6b1e6c30ff65ae12174357b629743fb +Author: Xfce +Date: Tue Nov 19 18:36:35 2013 +0100 + + I18n: Update translation sk (95%). + + 701 translated messages, 33 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a5f39e0d2a9467015787d1b54d78ad5a256dba55 +Author: Xfce +Date: Tue Nov 19 18:36:34 2013 +0100 + + I18n: Update translation ro (99%). + + 728 translated messages, 6 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 49f09aa66ee74d9a50635822c163a1bf30d1fff8 +Author: Xfce +Date: Tue Nov 19 18:36:34 2013 +0100 + + I18n: Update translation pa (66%). + + 491 translated messages, 243 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ebaa821514ebcfb5548e9fdfdb61b23581486d82 +Author: Xfce +Date: Tue Nov 19 18:36:33 2013 +0100 + + I18n: Update translation nn (87%). + + 643 translated messages, 91 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1730ca772cce4493ea9afc04fede303f0fcddaf7 +Author: Xfce +Date: Tue Nov 19 18:36:32 2013 +0100 + + I18n: Update translation nb (87%). + + 640 translated messages, 94 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2891ea48f82e4b6c10915258324b67bd593a8bdf +Author: Xfce +Date: Tue Nov 19 18:36:29 2013 +0100 + + I18n: Update translation lv (85%). + + 625 translated messages, 109 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d0954a73d714d25e4785a852ee8de11a856f8d10 +Author: Xfce +Date: Tue Nov 19 18:36:28 2013 +0100 + + I18n: Update translation lt (87%). + + 642 translated messages, 92 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 15ef16fbc618d860491b0360c2bcc9fb0868508a +Author: Xfce +Date: Tue Nov 19 18:36:27 2013 +0100 + + I18n: Update translation ja (99%). + + 731 translated messages, 3 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4dd1e3e86f6559c938de9b21b3a7d25ff4eb8c3f +Author: Xfce +Date: Tue Nov 19 18:36:26 2013 +0100 + + I18n: Update translation hu (99%). + + 731 translated messages, 3 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 90c066f59cf79493f46080fd2a404c8a3ba78e54 +Author: Xfce +Date: Tue Nov 19 18:36:25 2013 +0100 + + I18n: Update translation gl (90%). + + 662 translated messages, 72 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit f572915ef4debb332d96c4f06c8b814d1d9c8df1 +Author: Xfce +Date: Tue Nov 19 18:36:24 2013 +0100 + + I18n: Update translation eu (98%). + + 724 translated messages, 10 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c24acd5e5fe0df9f34d094e24413a4198f8164cf +Author: Xfce +Date: Tue Nov 19 18:36:24 2013 +0100 + + I18n: Update translation et (79%). + + 584 translated messages, 150 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0c35bad6884b4c0bed13b468e96203613f2da313 +Author: Xfce +Date: Tue Nov 19 18:36:23 2013 +0100 + + I18n: Update translation eo (75%). + + 552 translated messages, 182 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 51bf62adfee6e0b6f87e5a4451907d862ba5a87f +Author: Xfce +Date: Tue Nov 19 18:36:23 2013 +0100 + + I18n: Update translation el (92%). + + 679 translated messages, 55 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a6e173edde6d4018f5bd250650d8b348b8a25f15 +Author: Xfce +Date: Tue Nov 19 18:36:22 2013 +0100 + + I18n: Update translation bn (85%). + + 626 translated messages, 108 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 7123e0f636fc6c2147dd4e1030e8bf08f8e1b976 +Author: Xfce +Date: Tue Nov 19 18:36:21 2013 +0100 + + I18n: Update translation be (79%). + + 580 translated messages, 154 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ae0f5929c98aff24c0ddfb3183e4ef606a19e398 +Author: Xfce +Date: Tue Nov 19 18:36:21 2013 +0100 + + I18n: Update translation ast (83%). + + 616 translated messages, 118 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0f7c9ce1c032e4a0f25e41d5452d62fbda625da6 +Author: Sveinn í Felli +Date: Sun Nov 17 18:30:18 2013 +0100 + + I18n: Update translation is (92%). + + 680 translated messages, 54 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b159c88d8cdde760e7183e925dc2609e7c42ef77 +Author: Necdet Yücel +Date: Wed Nov 13 18:30:20 2013 +0100 + + I18n: Update translation tr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit e8cd68dcbc362f70cd70dea49286d9523d4de8db +Author: Necdet Yücel +Date: Tue Nov 12 18:30:19 2013 +0100 + + I18n: Update translation tr (99%). + + 733 translated messages, 1 untranslated message. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit cf9bc4930577f9b5bd0fe320ffbc312778ae5c45 +Author: Jiri Grönroos +Date: Tue Nov 12 00:30:21 2013 +0100 + + I18n: Update translation fi (95%). + + 702 translated messages, 32 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 2184f5378fec72c0d1411236b31b97add869409d +Author: Cedric31 +Date: Mon Nov 11 18:30:21 2013 +0100 + + I18n: Add new translation oc (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ee7375b373c7dd1fea4396190f04e1ec3c925e83 +Author: FredN +Date: Mon Nov 11 18:30:21 2013 +0100 + + I18n: Update translation sv (88%). + + 647 translated messages, 87 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 07519c763e7d977c74398c481f6ee0901850baef +Author: Aputsiaĸ Niels Janussen +Date: Fri Nov 8 18:30:22 2013 +0100 + + I18n: Update translation da (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a4607c7eab52816ca8ff843a1a1fdf8c1f621a7a +Author: Sveinn í Felli +Date: Thu Nov 7 00:30:17 2013 +0100 + + I18n: Update translation is (92%). + + 678 translated messages, 56 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 236176f762fa9eef0577f6e8162dda2f00750ff7 +Author: Yaron Shahrabani +Date: Wed Nov 6 12:30:18 2013 +0100 + + I18n: Update translation he (99%). + + 731 translated messages, 3 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit bb65cb5114e7768666d912016205e96fdfd7ed65 +Author: aybuke +Date: Thu Oct 24 06:30:19 2013 +0200 + + I18n: Update translation tr (97%). + + 719 translated messages, 15 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5891f891ac681f1b9a10c91824d98df7db9f1fe1 +Author: frangor +Date: Thu Oct 24 00:30:18 2013 +0200 + + I18n: Update translation ca (99%). + + 732 translated messages, 2 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit beacf1688132e8911112463a4ea4e88213c20b51 +Author: Ivica Kolić +Date: Sat Oct 19 00:30:17 2013 +0200 + + I18n: Update translation hr (99%). + + 727 translated messages, 7 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 7e1e1a009d09e0a900a885ec912f255afda0ddc0 +Author: Necdet Yücel +Date: Thu Oct 10 18:30:19 2013 +0200 + + I18n: Update translation tr (97%). + + 714 translated messages, 20 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 6b2a9a6357db97eaa42d5e12906861f246cf4b9a +Author: Necdet Yücel +Date: Thu Oct 10 12:30:20 2013 +0200 + + I18n: Update translation tr (97%). + + 713 translated messages, 21 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 8cd54c14e1f42dafce3eabe9c239fe8bbb68fd64 +Author: Sveinn í Felli +Date: Wed Oct 9 12:30:19 2013 +0200 + + I18n: Update translation is (88%). + + 650 translated messages, 84 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d9d4eebd57f13ea7caf7fa2f576e93e249b99331 +Author: Necdet Yücel +Date: Mon Oct 7 18:30:18 2013 +0200 + + I18n: Update translation tr (96%). + + 709 translated messages, 25 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit f941cd03645f2b6efc1d1b7ab570011b8203169c +Author: Sveinn í Felli +Date: Mon Oct 7 12:30:20 2013 +0200 + + I18n: Update translation is (88%). + + 647 translated messages, 87 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b0a5951d7f1c39314e22629d31277536e6e06712 +Author: Necdet Yücel +Date: Fri Oct 4 18:30:17 2013 +0200 + + I18n: Update translation tr (95%). + + 700 translated messages, 34 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ac447637b4ab8786edd0bf9e77f6bdeb120d3f1a +Author: Necdet Yücel +Date: Thu Oct 3 18:30:20 2013 +0200 + + I18n: Update translation tr (92%). + + 678 translated messages, 56 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b367189bf27e0addb3a97e3ec8286d5efec364ec +Author: hjudt +Date: Wed Oct 2 00:30:20 2013 +0200 + + I18n: Update translation de (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit c4fe2946d49655266bf9fb9acf337de05f811dcb +Author: theppitak +Date: Tue Oct 1 18:30:18 2013 +0200 + + I18n: Add new translation th (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit f0a12e02763faa95e0dbeed87b6c63de188d57d8 +Author: Fatih Erdem <93.fatiherdem@gmail.com> +Date: Mon Sep 30 18:30:18 2013 +0200 + + I18n: Update translation tr (91%). + + 674 translated messages, 60 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4d55701ff0ee35c1d728a49f48d67cb0f3a8784c +Author: Hunt Xu +Date: Sat Sep 21 18:30:18 2013 +0200 + + I18n: Update translation zh_CN (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0c8b7b5de5130213a7588388b8e24c0afafeb3aa +Author: gem +Date: Thu Sep 19 18:30:23 2013 +0200 + + I18n: Update translation de (99%). + + 730 translated messages, 4 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit d0308187cea84da55d35ea1c88f0641d1cd83ddb +Author: Sveinn í Felli +Date: Mon Sep 16 18:30:17 2013 +0200 + + I18n: Update translation is (86%). + + 636 translated messages, 98 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit f7f177df61329c5db6eb842e26f68346823c40de +Author: Sveinn í Felli +Date: Fri Sep 13 18:30:20 2013 +0200 + + I18n: Update translation is (62%). + + 462 translated messages, 272 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 085445d824966b71d0620342ade61b7b03d5791d +Author: Cheng-Chia Tseng +Date: Fri Sep 13 06:30:18 2013 +0200 + + I18n: Update translation zh_TW (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b3084f916eb7524cc71574bd8c72ea0490195dab +Author: salepetronije +Date: Fri Sep 6 12:30:25 2013 +0200 + + I18n: Update translation sr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit b46e37894283f221c887b3c0b026275465ae3e4f +Author: Yarema aka Knedlyk +Date: Mon Sep 2 00:30:25 2013 +0200 + + I18n: Update translation uk (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0b800d8788f175b974e68474f42fa3e4036560e9 +Author: Sérgio Marques +Date: Fri Aug 30 00:30:24 2013 +0200 + + I18n: Update translation pt (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0cc1e1c05d0c21b6c30cb4efbe915fb1e6582363 +Author: Ivica Kolić +Date: Thu Aug 29 06:30:25 2013 +0200 + + I18n: Add new translation hr (78%). + + 578 translated messages, 156 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit adc8a0dd5586cf5f5d481457ce93750af784056c +Author: lebrush +Date: Tue Aug 27 00:30:28 2013 +0200 + + I18n: Update translation ca (99%). + + 731 translated messages, 3 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ea1d6472c4fb8459581e0b3a54dd546cde97042e +Author: Noskcaj +Date: Mon Aug 26 00:30:22 2013 +0200 + + I18n: Update translation en_GB (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit daaf40ecf20aa6a7d3b013d4104385165c0be1ff +Author: cri +Date: Sat Aug 24 12:30:25 2013 +0200 + + I18n: Update translation it (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit ba353187f74ebdef2231a04772e9d132aba9f78b +Author: Darkcircle +Date: Fri Aug 23 06:30:22 2013 +0200 + + I18n: Update translation ko (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a7075ea6297e0fadaea8c50803822b12c5243841 +Author: crziter +Date: Fri Aug 16 06:30:22 2013 +0200 + + I18n: Update translation vi (99%). + + 728 translated messages, 6 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 28aaf85576dd2da4c568d4e89f6109814e467e3e +Author: Anonymous +Date: Fri Aug 16 00:30:25 2013 +0200 + + I18n: Update translation tr (90%). + + 667 translated messages, 67 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit af1a0316f5b19fb94f536dc60ed58239a6c9d7ba +Author: Baurzhan Muftakhidinov +Date: Thu Aug 15 12:30:25 2013 +0200 + + I18n: Update translation kk (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 7feef966196189a93c91e077f09c772ce33a1ea0 +Author: Alois Nešpor +Date: Mon Aug 12 12:30:26 2013 +0200 + + I18n: Update translation cs (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit fdbc367be0606855ce17b6a8b8ee47864552ec74 +Author: Anonymous +Date: Sun Aug 11 00:30:22 2013 +0200 + + I18n: Update translation tr (88%). + + 650 translated messages, 84 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 64069b627ae5a81099699f38645330582e77fc52 +Author: Karim Oulad Chalha +Date: Wed Aug 7 18:30:23 2013 +0200 + + I18n: Update translation ar (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit cc08c2f4e174970df4b0bbcd91e0412adc26edc4 +Author: M. Fawwaz Orabi +Date: Wed Aug 7 06:30:26 2013 +0200 + + I18n: Update translation ar (99%). + + 731 translated messages, 3 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 081481147be81c731e912005f8e9c0153467b0ba +Author: Piotr Sokół +Date: Mon Aug 5 18:30:26 2013 +0200 + + I18n: Update translation pl (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit beb506afcc237c62da92bc29a218dea1ede25a51 +Author: Anonymous +Date: Mon Aug 5 18:30:26 2013 +0200 + + I18n: Update translation id (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit f4480b0ee31f309ddd2f66ff1c09a8ad7f30d40d +Author: Yaron Shahrabani +Date: Sat Aug 3 12:30:27 2013 +0200 + + I18n: Update translation he (99%). + + 728 translated messages, 6 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 4a3faeee1ed691b66d169002e26efa495236e167 +Author: asvl +Date: Thu Aug 1 00:30:22 2013 +0200 + + I18n: Update translation ru (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit fd970f16953dfebd41597751f6d19d6d761da952 +Author: Pjotr123 +Date: Wed Jul 31 18:30:27 2013 +0200 + + I18n: Update translation nl (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 419aae53bfce914dd9c7264137577249585f5059 +Author: Rafael Ferreira +Date: Tue Jul 30 18:30:24 2013 +0200 + + I18n: Update translation pt_BR (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a2894c8fbee830b08c15cd6d2b3bb0fd6b7527af +Author: jc1 +Date: Tue Jul 30 18:30:24 2013 +0200 + + I18n: Update translation fr (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit cc2d3f27e27ce358715e0a572ace900764eb5705 +Author: Pablo Lezaeta +Date: Tue Jul 30 12:30:27 2013 +0200 + + I18n: Update translation es (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 42c71ec1cc60f6bd34174f0936a09bd7626e8c11 +Author: k3lt01 +Date: Tue Jul 30 12:30:27 2013 +0200 + + I18n: Update translation en_AU (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1e1d216557e5e7cd34f6a5ad30a0a5c53ed25e1c +Author: cybercop +Date: Tue Jul 30 12:30:27 2013 +0200 + + I18n: Update translation bg (100%). + + 734 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 3d20b81250eddcd3df0b027478831b0f38817a1c +Author: Jeff Shipley +Date: Mon Jul 29 10:24:53 2013 -0600 + + Change name of file copies (and links) (bug #7518). + + Put "(copy #)" between basename and extension. This avoids + jumping around in the list and keeps the sorting aligned. + + For links some simplification to avoid long names, the first + link is still named "link to X" after that "link # to X". + + Signed-off-by: Nick Schermer + +commit ebf5922c99ea90341a8e98ef327817699e0626b7 +Author: వీవెన్ +Date: Mon Jul 29 12:30:30 2013 +0200 + + I18n: Update translation te (68%). + + 504 translated messages, 234 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 54d71ef576e443e204e13d10f99994396a38dbb9 +Author: Nick Schermer +Date: Mon Jul 29 10:17:07 2013 +0200 + + Improve the extension selection to not match hidden names. + +commit 821c9b480b7feb625461b5ec1f35e92dcc87e3d9 +Author: Nick Schermer +Date: Sun Jul 28 18:58:39 2013 +0200 + + Safe accels 10 sec after changes (bug #10139). + + This avoids loosing them if Thunar later crashed or is not + properly closed. Also works better when its not in daemon mode. + +commit c9712b835be90127ef4af1ac1b1fd645081a646a +Author: Nick Schermer +Date: Sun Jul 28 18:27:27 2013 +0200 + + Force icons on the toolbar (bug #10179). + +commit 8962aad37871aa7ad76665b7f3c0605fed39a15c +Author: Nick Schermer +Date: Sun Jul 28 18:18:43 2013 +0200 + + Improve handling of renames (bug #10242). + + Support move operating in gio better and don't show + empty folders if renaming them from within Thunar. + +commit f3d67db482d3f8477a34f2d92ddb1c8a6b7f7eb6 +Author: Karim Oulad Chalha +Date: Sun Jul 28 12:30:22 2013 +0200 + + I18n: Add new translation ar (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 5e25c200fa3071e4c0a47d2f621e45819f42706f +Author: Jeff Shipley +Date: Sun Jul 28 12:25:34 2013 +0200 + + Smarter file extension selecting (bug #10268). + + Instead of simply looking for the last '.' in the filename, + do a better job at selecting compound filenames like + .tar.gz and development files like .desktop.in.in. + +commit 82701c297ac6788db64a251e10d77f96f04486ce +Author: k3lt01 +Date: Thu Jul 25 12:30:23 2013 +0200 + + I18n: Add new translation en_AU (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit eb16477140667a018c1a0a325ca9fbbe0cba08f3 +Author: Noskcaj +Date: Wed Jul 24 00:30:20 2013 +0200 + + I18n: Update translation en_GB (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 09c915639c7766f7d8fe06729f9f4748ab9e82e1 +Author: Anonymous +Date: Wed Jul 17 12:30:24 2013 +0200 + + I18n: Update translation ug (90%). + + 670 translated messages, 68 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 935ee0361cb4cc8117518e2ed1a414a31624e9d0 +Author: Masato HASHIMOTO +Date: Mon Jul 15 18:30:24 2013 +0200 + + I18n: Update translation ja (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 62fb8be86083fd934ff1bd9ada87cdef5526791c +Author: hannes_xfce +Date: Sun Jul 14 12:30:21 2013 +0200 + + I18n: Update translation de (99%). + + 736 translated messages, 2 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 8ab9d74244b20ea65c6fcf2ad33a9d77045a08ed +Author: cri +Date: Sat Jul 13 18:30:22 2013 +0200 + + I18n: Update translation it (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 0d68d656cf9739bea04f76ffbaecface6d159192 +Author: cybercop +Date: Wed Jul 10 00:30:24 2013 +0200 + + I18n: Update translation bg (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 1c67b773608211691f6c223271ba0990e1d5c5da +Author: carlesmu +Date: Mon Jul 8 12:30:22 2013 +0200 + + I18n: Update translation ca (98%). + + 726 translated messages, 12 untranslated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit fe4706e13621303c498095649dbcfecd7b1a48c1 +Author: Pedwo51 +Date: Sun Jul 7 12:08:54 2013 +0200 + + I18n: Update translation fr (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit a3cfd400161724ae11534cf35eeb112f89c90260 +Author: Ardjuna +Date: Sun Jul 7 12:08:54 2013 +0200 + + I18n: Add new translation id (100%). + + 738 translated messages. + + Transifex (https://www.transifex.com/projects/p/xfce/). + +commit 9479bda3b49ba1c16050f5a736de304cdf509c38 +Author: Nick Schermer +Date: Tue Jul 2 22:10:58 2013 +0200 + + I18n: Remove broken / unsupported translations. + + See http://users.xfce.org/~nick/broken-i18n/ for files and logs. + + Use https://www.transifex.com/projects/p/xfce/ to upload fixed versions or request a translation team. + +commit 514a46780b3b9f62447cc99e99986cae0bcd9594 +Author: Neliton Pereira Junior +Date: Mon Jun 10 18:20:56 2013 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d11b2a949dce73837b3cf30af48af2ec5759254b +Author: Neliton Pereira Junior +Date: Mon Jun 10 06:44:24 2013 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7a433e2ca533a11445ae085fe9c15246185f4304 +Author: Neliton Pereira Junior +Date: Wed Jun 5 02:07:05 2013 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 130d35acb0da0f0155e069920c6245eac091280d +Author: Nick Schermer +Date: Sat May 11 15:28:50 2013 +0200 + + Force reference on files from the cache. + + This should protect against files that are used in a + function after being returned from the cache, but + destroyed in other threads. + +commit 92dc5cb69872663e1c47c9f5990be0fce26200c4 +Author: Ardjuna +Date: Thu May 9 05:28:52 2013 +0200 + + l10n: Updated Indonesian (id) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b0628882fc275da359937b2f1d302959446a8e74 +Author: Nick Schermer +Date: Mon May 6 20:36:26 2013 +0200 + + Drop README.thunarrc. + +commit 9f673eb3f2de250c4bfb078da6cfb557af2e30cb +Author: Nick Schermer +Date: Sun May 5 18:39:13 2013 +0200 + + Post release tag bump. + +commit 7c9059e4a6bf03d6985d1fa68ac708a7bb386398 +Author: Nick Schermer +Date: Sun May 5 18:37:21 2013 +0200 + + Updates for release. + +commit 58fa477fb20aa2ac8eaea8d81d7e4d8c00180600 +Author: Nick Schermer +Date: Mon Apr 29 21:24:17 2013 +0200 + + Some optimizations in renamer loop. + +commit b43f88ca9a0a7004d8db257e716cc75c23fd67f6 +Author: Nick Schermer +Date: Mon Apr 29 20:49:37 2013 +0200 + + Plug leak in file renamer (bug #9864). + +commit 20780d0c0e186ad8d6a93a42bbb4063918af711c +Author: Nick Schermer +Date: Mon Apr 29 20:24:26 2013 +0200 + + Escape name for sidepane tooltips (bug #10001). + +commit f35151a2fa4d72c5fa1995d11b29d1a8a6ac6e23 +Author: Nick Schermer +Date: Mon Apr 29 20:02:24 2013 +0200 + + Revert "Remove image resolution from statusbar." + + This reverts commit 34fdbb4a4b3ee4b3274389b58cd207d45f8349cc. + + Add a hidden option to enable this (misc-image-size-in-statusbar) + to avoid the problems this causes for regular users. + +commit 682907934beaf00cfe8b48295ac3d758bb566930 +Author: Oyvind Ingvaldsen +Date: Mon Apr 29 19:10:12 2013 +0200 + + Fix segfault when going back to removed directory (bug #9831). + +commit 1072df4b6bae4302c2f3a67e89ace3ed6b35ccd6 +Author: Pjotr vertaalt +Date: Fri Apr 26 12:03:52 2013 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ccee8dabb89ccd0f03033f6a6c7db3995fb22cbf +Author: Pjotr vertaalt +Date: Fri Apr 26 11:50:06 2013 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 54f3aa3790818a444eeda415341aef42945f4d44 +Author: Pjotr vertaalt +Date: Wed Apr 24 16:34:12 2013 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3e9081814445bdf279440fddcaad66163a7effb2 +Author: Francisco Javier Serrador +Date: Sat Apr 20 20:58:13 2013 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4fa87399e6eeb6e9df86dd836701c2c583da9a54 +Author: Carles Muñoz Gorriz +Date: Wed Apr 17 15:17:51 2013 +0200 + + l10n: Updated Catalan (Valencian) (ca) translation to 97% + + New status: 721 messages complete with 9 fuzzies and 8 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e999302c20e430e5b962939b68a58c48c04b7693 +Author: Adolfo Jayme Barrientos +Date: Mon Apr 15 19:45:16 2013 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5dc2e6a8f273eef5bd318fc428e7804be0978879 +Author: Seong-ho Cho +Date: Fri Apr 12 19:10:25 2013 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8f60bd953017b5d667310c5e0c710f109cf89f1c +Author: Seong-ho Cho +Date: Fri Apr 12 18:58:12 2013 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fe8dfe13dabb841543a012f894e865c8199783f9 +Author: Ivica Kolić +Date: Thu Apr 4 05:20:57 2013 +0200 + + l10n: Updated Croatian (hr) translation to 89% + + New status: 661 messages complete with 0 fuzzies and 77 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1f36b06a08d986c090a91eaa853a67c6b4c7868a +Author: Seong-ho Cho +Date: Sun Mar 24 15:46:15 2013 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 52cf15a07e186152924e227548b0705f9ef2fb94 +Author: Seong-ho Cho +Date: Sun Mar 24 15:24:24 2013 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 99752d86b41910563ca6a90248f527c7d0391189 +Author: Ardjuna +Date: Sun Mar 24 01:16:30 2013 +0100 + + l10n: Updated Indonesian (id) translation to 99% + + New status: 737 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f7f66bbfd71049af8d000b65e02c4d024b57bf62 +Author: Ardjuna +Date: Sat Mar 23 17:36:52 2013 +0100 + + l10n: Updated Indonesian (id) translation to 94% + + New status: 701 messages complete with 27 fuzzies and 10 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7a7e2276131a563e0ecaebf27e21acd94a17c194 +Author: Саша Петровић +Date: Sat Mar 23 12:03:57 2013 +0100 + + l10n: Updated Serbian (sr) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b8b25dcf033f626aef389f0931ab1c5645a0e24c +Author: Nick Schermer +Date: Fri Mar 22 18:03:55 2013 +0100 + + Fix translation. + +commit 10631e021f149577b995cc5b2ccde14c1b04b38b +Author: Seong-ho Cho +Date: Thu Mar 21 07:20:30 2013 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3780d68fc021d3fe472630a68ecfce0f024b845b +Author: Nenad Latinović +Date: Wed Mar 20 22:37:45 2013 +0100 + + l10n: Slovene translation + + New status: 0 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d5b6768a104786b44542522768d6263cff07a886 +Author: Nick Schermer +Date: Sun Jan 20 12:04:58 2013 +0100 + + Prepend and later reverse for collecting selection. + +commit afbfda8fbb80cb8731e2bc59c98d3f923a3b173c +Author: Саша Петровић +Date: Tue Mar 5 15:32:58 2013 +0100 + + l10n: Updated Serbian (sr) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5b03c5cef9c9991b181539cc8b3cf2f6be46d225 +Author: Ivica Kolić +Date: Tue Mar 5 07:00:44 2013 +0100 + + l10n: Updated Croatian (hr) translation to 89% + + New status: 657 messages complete with 0 fuzzies and 81 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f21aaa14703933cc2b51abfb47328863475090d6 +Author: Ivica Kolić +Date: Tue Mar 5 06:27:05 2013 +0100 + + l10n: Updates to Croatian (hr) translation + + New status: 657 messages complete with 0 fuzzies and 81 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4dcf78ff3cdf136e299c8c7a547ed7d882f06fe8 +Author: Francisco Javier Serrador +Date: Thu Feb 28 22:58:19 2013 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dfe95938086027409fa0a525d0d5cef93a4e2f49 +Author: كريم أولاد الشلحة +Date: Tue Feb 5 20:42:36 2013 +0100 + + l10n: Updated Arabic (ar) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d7335befa6fec70ee724ec0f10d0c2956359891a +Author: كريم أولاد الشلحة +Date: Sat Feb 2 12:41:52 2013 +0100 + + l10n: Updated Arabic (ar) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 20fbaa92e204fcd21eec7c21befc05830f871fca +Author: Cheng-Chia Tseng +Date: Mon Jan 28 08:45:02 2013 +0100 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3fb86de01a1061d5da78068de63424cec99dd930 +Author: Cheng-Chia Tseng +Date: Mon Jan 28 04:20:08 2013 +0100 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 22ba79384ab54fc6e0f369082fd53303a7585a40 +Author: Kiril Kirilov +Date: Sun Jan 27 13:34:51 2013 +0100 + + l10n: Updated Bulgarian (bg) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fe1e21e6ebe0162ff1cbeb85693d52296bd3f8aa +Author: Sergey Alyoshin +Date: Sun Jan 27 11:45:35 2013 +0100 + + l10n: Updated Russian (ru) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3171f0681e0a7bc9f1f411171fa58992e60b3cea +Author: Kiril Kirilov +Date: Fri Jan 25 12:12:49 2013 +0100 + + l10n: Updates to Bulgarian translation + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 67ddf728aae80b3f12e57e36b7b83b73b9812cc9 +Author: Seong-ho Cho +Date: Wed Jan 23 19:35:38 2013 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 18b417e59f787722a3e7b01cb914dd2e3a49a8e6 +Author: Kevin Brubeck Unhammer +Date: Mon Jan 21 09:32:32 2013 +0100 + + l10n: Updated Norwegian Nynorsk (nn) translation to 88% + + New status: 650 messages complete with 56 fuzzies and 32 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 70bca98ae3113ac0ccfc2a8f621f820d92ac5ad9 +Author: Gabor Kelemen +Date: Mon Jan 21 00:05:57 2013 +0100 + + l10n: Updated Hungarian (hu) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dae9c330340b7fecf0986734956b794251128831 +Author: Jannis Pohlmann +Date: Tue Jan 15 20:36:15 2013 +0100 + + Allow keyboard shortcuts for user customizable actions (bug #1941). + + Generate and store unique ids for the uca actions. Should work + for all plugins as long they produce unique ids that are the same + each startup. + +commit 2d40555ffa59671c1bddb15696627023a7f92937 +Author: Nick Schermer +Date: Sun Jan 6 12:19:29 2013 +0100 + + Autotools updates. + +commit 2198878d3a9142eafbe33229e677e5ce33e1e248 +Author: Piotr Sokół +Date: Sat Jan 5 18:16:19 2013 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 74767ccd433906d889d63edf36b079c10ec60e75 +Author: Michal Várady +Date: Fri Jan 4 12:56:29 2013 +0100 + + l10n: Updated Czech (cs) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 70c8d535050642424fb583db07f31107c84a26a7 +Author: Nick Schermer +Date: Thu Jan 3 19:03:00 2013 +0100 + + Use utilities-terminal for default uca action (bug #9716). + +commit abde5ace8bc7311432bb5a2e78d4e89756537b81 +Author: Roman K +Date: Thu Jan 3 06:33:02 2013 +0100 + + l10n: Updated Russian (ru) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit cc453ab8445ec58c47179a2e374f5925303da5f8 +Author: Yarema aka Knedlyk +Date: Wed Jan 2 21:13:45 2013 +0100 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1f86d01874a26d8831353f4846cd67b0b00c8d01 +Author: Yaron Shahrabani +Date: Mon Dec 31 13:15:23 2012 +0100 + + l10n: Updated Hebrew (he) translation to 99% + + New status: 732 messages complete with 0 fuzzies and 6 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 35bf212a6e338182d16e4c753b2de51e1d9d07fc +Author: Саша Петровић +Date: Mon Dec 31 09:20:10 2012 +0100 + + l10n: Updated Serbian (sr) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f0453001b197c38d4cb998a1795e0221b5662682 +Author: Hunt Xu +Date: Mon Dec 31 04:43:38 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8376f67962b82baffe191d905c890a966db95453 +Author: Rafael Ferreira +Date: Mon Dec 31 02:36:54 2012 +0100 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e6e32e7cbc3291a8e6713d531782102c6ea5bd77 +Author: Jérôme Guelfucci +Date: Sun Dec 30 14:07:25 2012 +0100 + + Fix French translation. + +commit c17432ac0c7d2f0b47be648da2410c331cc4d42e +Author: Jérôme Guelfucci +Date: Sun Dec 30 13:58:18 2012 +0100 + + l10n: Updated French (fr) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 89982a9f6ec790dacc5e027766493354069f815a +Author: Francisco Javier Serrador +Date: Sat Dec 29 12:10:36 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 41d70c0076dc2992ad920e40909affbaf72d67d7 +Author: Ivica Kolić +Date: Sat Dec 29 02:29:25 2012 +0100 + + l10n: Updated Croatian (hr) translation to 87% + + New status: 647 messages complete with 0 fuzzies and 91 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fe1b3e292a390be2222fafa499a6219c7b868ea5 +Author: prflr88 +Date: Fri Dec 28 17:04:34 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7dad61b41276d340979c5717b9bfcfe86ac26f04 +Author: Pjotr vertaalt +Date: Fri Dec 28 14:10:25 2012 +0100 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0c214bc0cac55e0f04f37f20890910059595e247 +Author: Sergio Marques +Date: Fri Dec 28 13:58:56 2012 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 87fca2962757bc1fb718fa8251dcf137d53e1df3 +Author: Baurzhan Muftakhidinov +Date: Fri Dec 28 05:57:19 2012 +0100 + + l10n: Updated Kazakh (kk) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit eb5b526c59c6ec68755be2c533109ed23d46f3a7 +Author: Baurzhan Muftakhidinov +Date: Thu Dec 27 19:07:55 2012 +0100 + + l10n: Updated Kazakh (kk) translation to 99% + + New status: 737 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f856c2f36edbf904a5d11b792a1503348c594464 +Author: Cristian Marchi +Date: Thu Dec 27 14:44:52 2012 +0100 + + l10n: Updated Italian (it) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0e3181b6502066f5a7fe471f09afdf9b4b05377d +Author: Masato Hashimoto +Date: Thu Dec 27 13:54:31 2012 +0100 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 06b2b62b6b73e3ee49b0410f00b3b0eb36655291 +Author: Nick Schermer +Date: Thu Dec 27 13:29:38 2012 +0100 + + Post release tag bump. + +commit 7f8e4b111ad2343ed78adc584cd63a1972612f0f +Author: Nick Schermer +Date: Thu Dec 27 13:26:30 2012 +0100 + + Updates for release. + +commit 689a52e5e93437bda2cbcb69c9a4ecd1fc0dbba9 +Author: Nick Schermer +Date: Thu Dec 27 13:19:36 2012 +0100 + + Check trash longer with session startup (bug #9513). + + Check for 15 seconds with 3 second intervals or trash items + were found. + +commit a8a2ce8c41578ece8fdcd79c9ab82eed6e0073d5 +Author: Nick Schermer +Date: Thu Dec 27 13:08:35 2012 +0100 + + Don't idle the volume loading in the shortcuts model. + + Not needed because the device monitor is started in sync + in other objects. Also caused a crash if the model was + finalized before the monitor was loaded. + +commit 0ba896ba9342f464b284a2513fa49280949cdc13 +Author: Nick Schermer +Date: Thu Dec 27 13:07:46 2012 +0100 + + Don't abort startup if dbus failed. + + This could happen with session startup, multiple + request the dbus, but only 1 wins. + +commit 394e115312f2ddc5a06f5ab9f8ab073a614c79a1 +Author: Nick Schermer +Date: Thu Dec 27 12:39:59 2012 +0100 + + Put * around string if * and ? are not used in the pattern. + + This makes matching filenames easier. Since you don't + have to type *name*, but name is sufficient. + +commit bb96457d8cf1a83052197b1e722eda3c59eb7433 +Author: Nick Schermer +Date: Thu Dec 27 12:21:45 2012 +0100 + + Revert "Remove right-click drag possibility (bug #3549)." + + This reverts commit edc8e5da5777813956cd8b30a4f64f586c97a3ee. + + With a modification to always allow a minimum timeout value + of 225ms to still fix bug #3549. + +commit b461fc9f02c38a0e862696f2b22175d0f146ce5b +Author: Nick Schermer +Date: Thu Dec 27 12:20:52 2012 +0100 + + Revert "Directly popup menus on selected items (bug #3550)." + + This reverts commit d0513de8a5faa8f2f9436a8b059e674a2deea103. + +commit 2458918c352addf566ec8e187892307176b71d44 +Author: Nick Schermer +Date: Thu Dec 27 12:08:51 2012 +0100 + + Update shortcuts headers when removing a shortcut (bug #9651). + +commit dbea7584253be6b36b666c43b205df9011058df9 +Author: Nick Schermer +Date: Thu Dec 27 12:04:58 2012 +0100 + + Implement tab middle click in location buttons (bug #9684). + +commit 99af430d8acef55b295d1882888e832d783c6434 +Author: Nick Schermer +Date: Thu Dec 27 11:54:08 2012 +0100 + + Use static quark to store the thunar file on buttons. + +commit 5b364c5a7f810b5d9d4298d8bc3c4d49c9f12bc6 +Author: Nick Schermer +Date: Thu Dec 27 11:49:54 2012 +0100 + + Add new tab option to right-click menu of location buttons. + +commit 31f32e62cdd7d849c610313acd213c4611b57b98 +Author: Roman K +Date: Thu Dec 27 12:02:50 2012 +0100 + + l10n: Updated Russian (ru) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2bc308d16f0a52f2b00f1ff17fdd848a6ae2b66a +Author: Nick Schermer +Date: Thu Dec 27 11:21:48 2012 +0100 + + Remove unmaintained translations. + +commit b8309b7ec2db49831c9e43bfd5e582b6c5c41375 +Author: Piotr Sokół +Date: Sun Dec 23 23:15:02 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f9b78ed6d108aad260f8e3b4bc2781112eecc125 +Author: Simon Steinbeiß +Date: Sun Dec 23 13:21:14 2012 +0100 + + Small improvement in thumbnail frame. + +commit f178034e21719443d9f71cef81bfb94649e042b5 +Author: mohsen +Date: Sat Dec 22 15:20:08 2012 +0100 + + l10n: Updated Arabic (ar) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 74bc35f0e44abad7504c14ffe383e898e12ae025 +Author: Masato Hashimoto +Date: Sat Dec 22 09:21:31 2012 +0100 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 41f59c1123fce0b714a30950f9dcd97fe7a12226 +Author: mohsen +Date: Fri Dec 21 19:00:09 2012 +0100 + + l10n: Updated Arabic (ar) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ada208fec0e2060da07dc4d136178d1fa1ba2a7b +Author: mohsen +Date: Fri Dec 21 18:51:15 2012 +0100 + + l10n: Updated Arabic (ar) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9893d16fcfd019d437c6b93aa0be84c769c17a7a +Author: mohsen +Date: Fri Dec 21 18:47:06 2012 +0100 + + l10n: Updated Arabic (ar) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d92c31bc75181f401fb7134345a95cfcd3f7f919 +Author: mohsen +Date: Fri Dec 21 18:46:38 2012 +0100 + + l10n: Updated Arabic (ar) translation to 99% + + New status: 736 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f746d3bf6fd8c96ef97a6422b44718b3e286c1be +Author: Sergio Marques +Date: Thu Dec 20 16:52:27 2012 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1906a05216c861667952f24e25d5a32fab114761 +Author: Baurzhan Muftakhidinov +Date: Thu Dec 20 13:30:29 2012 +0100 + + l10n: Updated Kazakh (kk) translation to 99% + + New status: 736 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ee452a639c16e18640696b868ab4922c0a44b43c +Author: Nick Schermer +Date: Tue Dec 18 19:54:56 2012 +0100 + + Force selection update on tab switch. + + TO make sure the standardview actions are up2date. + +commit 75b5e6f969dccad45cc033a542c81552eab5a076 +Author: Nick Schermer +Date: Tue Dec 18 19:53:11 2012 +0100 + + Skip shortcuts in location button menu (bug #9625). + + Because the were merged later, they override common shortcuts + like Ctrl+V. + +commit 5690b9d119252cbd04755b6a9450338d15c8a7d0 +Author: Masato Hashimoto +Date: Tue Dec 18 12:54:05 2012 +0100 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fefc65487306e210ce49d65b1089d456473a9f8a +Author: Pjotr vertaalt +Date: Mon Dec 17 15:07:26 2012 +0100 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e07b4569d3259812c5d48b4d3378c84a73af3cad +Author: Yarema aka Knedlyk +Date: Mon Dec 17 14:13:55 2012 +0100 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 737 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 71145004e3c633c221a580ba6ffc9574d20ded39 +Author: Nick Schermer +Date: Sun Dec 16 15:55:49 2012 +0100 + + Open tree node if expanded and mounted (bug #9603). + +commit c1b8dc11319a3c7b8e4ca56b82cfb9dea81933af +Author: Nick Schermer +Date: Sat Dec 15 21:56:17 2012 +0100 + + Use cairo to draw the hovered item. + +commit 92e4868d1e2075f99b7ded4142c413cafc783309 +Author: Nick Schermer +Date: Sat Dec 15 21:28:42 2012 +0100 + + Use cairo the renderer the selected item. + + This way the avoid recreating colorized pixbufs. Also + renderer the selected state for the emblem. + +commit 22286290f3c877a523f7496aaf2d51981e867edc +Author: Serg Bormant +Date: Sat Dec 15 18:50:27 2012 +0100 + + Make Desktop in Go menu translatable (bug #9616). + +commit a9225278993c8e072bc0ac79ce1382fc7dcfca94 +Author: Nick Schermer +Date: Sat Dec 15 18:47:53 2012 +0100 + + Send to menu not updated for directories (bug #9618). + +commit 999a4de29e36a80cacdae2acaa809ef9acd2dcb8 +Author: Nick Schermer +Date: Sat Dec 15 13:45:59 2012 +0100 + + Fix freeze on /proc/kmsg. + +commit 6473fa8a6394abf7df389d0e28a07bad827f7aa7 +Author: Nick Schermer +Date: Fri Dec 14 21:11:52 2012 +0100 + + Drop the internal volume check. + + Its not reliable for a lot of users, so drop this check; people + can use the hide feature to not show them in the pane if they + don't want to. + +commit 459ed5158577f6c598be60df1b4f3fb2ca8b1eec +Author: Seong-ho Cho +Date: Wed Dec 12 10:45:31 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d001a3c2acb0813980d859654c303e2c700edc5f +Author: Michal Várady +Date: Tue Dec 11 12:22:46 2012 +0100 + + l10n: Updated Czech (cs) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 85ed0fd38018e0612c7e9084e17b37b1ee74f9d9 +Author: Cristian Marchi +Date: Mon Dec 10 21:38:04 2012 +0100 + + l10n: Updated Italian (it) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5785b279e164632d4b3786246739ceb39a594a6f +Author: Nick Schermer +Date: Sun Dec 9 18:33:57 2012 +0100 + + Post release tag bump. + +commit 67d77a325a7c8dfac01a5d1300378ee7e31f38d3 +Author: Nick Schermer +Date: Sun Dec 9 18:28:15 2012 +0100 + + Updates for release. + +commit 3d8fb7d82d5a76565ff37338db72ad3e0323f5a9 +Author: Nick Schermer +Date: Sun Dec 9 18:19:09 2012 +0100 + + Use ThunarBrowser to resolve locations in launcher. + + This makes it possible to open new tabs and windows of + remote locations from locations like computer:// and + unmounted targets. + +commit 6137b711dab10e2e8223e09e5d420e3cfeda5923 +Author: Nick Schermer +Date: Sun Dec 9 17:49:39 2012 +0100 + + Put remote bookmarks in places and improve icon loading. + +commit 19e8b13ab4246bed7030b85a1982dc7244030b84 +Author: محمد الحرقان +Date: Sun Dec 9 11:11:59 2012 +0100 + + l10n: Updated Arabic (ar) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit bca0074b5d16d8a642ac1778668aecfaa07fdd13 +Author: Francisco Javier Serrador +Date: Sat Dec 8 17:51:15 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8ffbf7a58f9f4d9fa2d352a8669c831a8db21cf9 +Author: Nick Schermer +Date: Sat Dec 8 11:57:28 2012 +0100 + + Fix file menu displacement after a forced update (bug #9604). + + The menu position was triggered before the ui update, do + recalculate this again after the menu it updated. + +commit 2921f6241d8e34b7ea22310b161868e84782330b +Author: Nick Schermer +Date: Sat Dec 8 11:33:50 2012 +0100 + + Clear mutex to avoid memleak with 2.32 api. + + Tiny leak, but still.. + +commit 834ed0c407016c2760d9f7cad12f6f8343f0964f +Author: Sergio Marques +Date: Sat Dec 8 02:13:17 2012 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b0d722672269b3a9315b9a79badad5158aae9164 +Author: Nick Schermer +Date: Fri Dec 7 20:58:47 2012 +0100 + + Check trash status 2s after startup. + +commit 65dd2ddba44e7bf809fc0bbacb63bd6eb4d24d99 +Author: Nick Schermer +Date: Fri Dec 7 20:42:49 2012 +0100 + + Session save mount operation passwords. + + Also centralize the code. + +commit a5ba2d88a8534cfc0173ab10f3ad5a777ee92f0f +Author: Nick Schermer +Date: Fri Dec 7 20:12:41 2012 +0100 + + Make tabs scrollable. + + This avoids resizing the window with a lot of tabs. + +commit a065d09122165121f5948c7bd3f92727ec0a8ec6 +Author: Nick Schermer +Date: Fri Dec 7 20:09:26 2012 +0100 + + Keybindings to switch to tab with Alt+N (bug #9585). + +commit dcef5e94755e351f098ee8711650586d7b09e9cc +Author: jc jc1 +Date: Fri Dec 7 17:47:34 2012 +0100 + + l10n: Updated French (fr) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4b4c5ecfca0da967336097ff228a395392a0fc4b +Author: jc jc1 +Date: Fri Dec 7 13:36:27 2012 +0100 + + l10n: Updated French (fr) translation to 99% + + New status: 733 messages complete with 3 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d80feccc552979036dc8a127033e3c97466b5215 +Author: Nick Schermer +Date: Thu Dec 6 22:38:57 2012 +0100 + + Hide shortcut pane header when there are not items. + +commit 56842953b63f8435c8a068d5cc444629595efcdd +Author: Nick Schermer +Date: Thu Dec 6 20:27:11 2012 +0100 + + Give column enums a better name. + +commit e238b4ebae2fe05c4eef9fc2acb975a8f0293566 +Author: Nick Schermer +Date: Thu Dec 6 20:22:57 2012 +0100 + + Submenu the sidepane visibility menu. + +commit 92f35b927495bb52e172f6fd225e4ad5699f008f +Author: Саша Петровић +Date: Thu Dec 6 16:16:59 2012 +0100 + + l10n: Updated Serbian (sr) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f5e96de026544d26ae9d0ea45bb818949491c03f +Author: Nick Schermer +Date: Wed Dec 5 20:45:47 2012 +0100 + + Fast read content type of unreadable files (bug #9553). + + Some files that were not readable locked the interface + (/proc/kmsg as root for example). So only do fast-type-checking + (no reading). + +commit cc8b35bf6448b84e809428c97af7d73d21deee42 +Author: Nick Schermer +Date: Wed Dec 5 19:57:31 2012 +0100 + + Fix some translations and rebuild them. + +commit 6b5c1c908b60965825407fb4557d024514a4f89a +Author: Nick Schermer +Date: Wed Dec 5 18:34:38 2012 +0100 + + Show NoDisplay=true applications (bug #9595). + + See http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html + +commit 460ef9a3d3f73f28836ee36ffc2899f04f8eeb7d +Author: Baurzhan Muftakhidinov +Date: Wed Dec 5 04:26:14 2012 +0100 + + l10n: Updated Kazakh (kk) translation to 99% + + New status: 731 messages complete with 3 fuzzies and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit bb6714ee20f805950123a2e56ecf348d3dad9a54 +Author: Imre Benedek +Date: Wed Dec 5 02:19:53 2012 +0100 + + l10n: Updated Hungarian (hu) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7a5fa4824d8f4bc131a0f4026536ba277f6827e1 +Author: Nick Schermer +Date: Tue Dec 4 18:51:02 2012 +0100 + + Fix bulk renamer url to the wiki. + +commit 4055f4522e33e71e92b78b1b510a5da2024c86e0 +Author: prflr88 +Date: Tue Dec 4 18:21:15 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a836724379885ee4486490b4589847f72dfbced3 +Author: Piarres Beobide +Date: Tue Dec 4 15:37:10 2012 +0100 + + l10n: Updated Basque (eu) translation to 98% + + New status: 728 messages complete with 1 fuzzy and 7 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6bde6438811d1f73c52cb0a789cd92e713d7dd96 +Author: Cristian Marchi +Date: Tue Dec 4 14:36:13 2012 +0100 + + l10n: Updated Italian (it) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 546f671e7c3cb183664cc838032ab984046aad63 +Author: Yarema aka Knedlyk +Date: Tue Dec 4 14:22:28 2012 +0100 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d0fde928b0255612f5c22121e2322fd08d30152e +Author: Rafael Ferreira +Date: Tue Dec 4 12:53:24 2012 +0100 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f8b01921cee056e82c6eb2462d9cb1a260c18fb7 +Author: Pjotr vertaalt +Date: Tue Dec 4 10:51:21 2012 +0100 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 98ddac6d176598edfda5dccbf345295d9ce476db +Author: prflr88 +Date: Mon Dec 3 21:44:03 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 13fafdc3637e082995908e9798ce55ce5f659a1c +Author: Masato Hashimoto +Date: Mon Dec 3 12:52:33 2012 +0100 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 736 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4cf247a6c725cf04e3987b8fc6a2a9ccb04930e6 +Author: Roman K +Date: Mon Dec 3 11:04:47 2012 +0100 + + l10n: Updated Russian (ru) translation to 99% + + New status: 735 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6802746f015979e5d89140b039f983ba0ecf503f +Author: Ivica Kolić +Date: Mon Dec 3 03:35:26 2012 +0100 + + l10n: Updated Croatian (hr) translation to 86% + + New status: 640 messages complete with 0 fuzzies and 96 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 052dbcf593866e488c69d07e7835862710af8611 +Author: Nick Schermer +Date: Sun Dec 2 22:12:41 2012 +0100 + + Post release tag bump. + +commit 781395f339e13f4da7c69ac63caefeec451b6dea +Author: Nick Schermer +Date: Sun Dec 2 22:08:05 2012 +0100 + + Updates for release. + +commit 60e9680e0ed5a3b43e0b396bb11921dcc617a736 +Author: Nick Schermer +Date: Sun Dec 2 21:31:45 2012 +0100 + + Make sure trash is loaded during session restore (bug #9513). + + For some reason the trash count is not up2date when requesting + this quickly after login (session restore). So idle a reload. + +commit f41318058de59d5645db0a524ec3d7740782e2dd +Author: Nick Schermer +Date: Sun Dec 2 20:33:54 2012 +0100 + + Don't open a useless tab (bug #9519). + +commit 7e317eb0b6036698a0bb2e36ac16776647f14726 +Author: Nick Schermer +Date: Sun Dec 2 20:19:38 2012 +0100 + + Remove session file if there are no windows (bug #9519). + +commit e2f3815ed0e40b423d2b4f9fdee31a440fe14614 +Author: Nick Schermer +Date: Sun Dec 2 19:06:42 2012 +0100 + + Add special tooltip for the trash in shortcuts. + +commit 632227e17b8ab7b3b8ac892a82535130a36488ea +Author: Nick Schermer +Date: Sun Dec 2 19:51:41 2012 +0100 + + Revert "Improve pervious commit.. (bug #9552). + + This reverts commit 25979d292cb965658e680765cc782109e8102966. + +commit e8b33a895a69a62f77e75d2e792ad9dc04bb7cb5 +Author: Sergio Marques +Date: Sun Dec 2 18:33:48 2012 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 952d052a6df71e0ceb571524165044ffcd09c0ea +Author: Christoph Wickert +Date: Sun Dec 2 02:30:12 2012 +0100 + + l10n: Updated German (de) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1cb6ded2bffcbd28b62e1ebe2a4b9f7c81647081 +Author: Christoph Wickert +Date: Sun Dec 2 02:28:23 2012 +0100 + + l10n: Updated German (de) translation to 99% + + New status: 732 messages complete with 3 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c7d231e6301c8cefa2c4cfb213fea99a11feaf8b +Author: Mișu Moldovan +Date: Sat Dec 1 22:57:43 2012 +0100 + + l10n: Updated Romanian (ro) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b7a6edd8a27386f22a3d1631e064e17a22d6e87f +Author: Nick Schermer +Date: Fri Nov 30 21:09:35 2012 +0100 + + Slightly increase the progress dialog (bug #9545). + +commit cca4e41dddf715459ccbfca5dc3fdd75aa6453b1 +Author: Nick Schermer +Date: Fri Nov 30 21:00:01 2012 +0100 + + Set icon names in go menu (bug #9559). + +commit f98f57a7814d659bded9d20259bc5f65c667a153 +Author: Nick Schermer +Date: Fri Nov 30 20:52:20 2012 +0100 + + Hide spinner when there's no activity (bug #9563). + +commit 3a2b712e7ebbaf0ac6987fb0f58dbd718cb9c6bb +Author: Nick Schermer +Date: Fri Nov 30 20:48:11 2012 +0100 + + Fix sorting by type (bug #9549). + +commit 73f679ada058009a66e32d145906fc9e8ae19849 +Author: Yaron Shahrabani +Date: Fri Nov 30 17:06:19 2012 +0100 + + l10n: Updated Hebrew (he) translation to 99% + + New status: 729 messages complete with 0 fuzzies and 6 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4bbe3bc3c8c3706a2c97b2a0f44c747a50425c36 +Author: Cristian Marchi +Date: Thu Nov 29 20:28:43 2012 +0100 + + l10n: Updated Italian (it) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 696bdce49c641978c11c089ce51435060a9a56c8 +Author: Ivica Kolić +Date: Thu Nov 29 20:23:08 2012 +0100 + + l10n: Updated Croatian (hr) translation to 86% + + New status: 639 messages complete with 0 fuzzies and 96 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1b89c4c44f911585097575772812e860df29025f +Author: Yarema aka Knedlyk +Date: Tue Nov 27 20:15:25 2012 +0100 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d448c6a481abbdcab99e1e196e834e7bc2975187 +Author: Sergio Marques +Date: Tue Nov 27 12:13:24 2012 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 433e775bf7180b17f30d0628567145b4149ae5cb +Author: Piotr Sokół +Date: Tue Nov 27 10:34:02 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1aa8e873001aca81bea1a9e11b2eee769198a95a +Author: Roman K +Date: Tue Nov 27 09:30:40 2012 +0100 + + l10n: Updated Russian (ru) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4e853a971a53890cde5e3be6c9ce563b29ce571f +Author: Nick Schermer +Date: Mon Nov 26 19:55:44 2012 +0100 + + Remove the display names from the emblems (bug #9548). + + The icons should explain themselfs, so remove the label + but keep the display name in a tooltip. + +commit 25e0563b1dfc7b3a8b6a33a5dc32ee8c6a2a6b82 +Author: Gabor Kelemen +Date: Mon Nov 26 11:59:21 2012 +0100 + + l10n: Updated Hungarian (hu) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit db9e0bffdbd0d191261c93ff03a7c67460069629 +Author: Pjotr vertaalt +Date: Mon Nov 26 10:37:52 2012 +0100 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9df6305241ff67713aa1216224686bc32d8acac3 +Author: Roman K +Date: Mon Nov 26 09:36:52 2012 +0100 + + l10n: Updated Russian (ru) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 72b1b748a2b83d1e72719af5ab436f34a47c33c9 +Author: Roman K +Date: Mon Nov 26 08:55:14 2012 +0100 + + l10n: Updated Russian (ru) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0da614a563c192db550e6288c0b1bcc436694ec0 +Author: Roman K +Date: Mon Nov 26 08:54:23 2012 +0100 + + l10n: Updated Russian (ru) translation to 99% + + New status: 734 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 34fda9883b1a29f5cd49649caab188ed02394b78 +Author: Gabor Kelemen +Date: Mon Nov 26 03:24:31 2012 +0100 + + l10n: Updated Hungarian (hu) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 861f2af18f4cb3693a51408e75ab972df7d29436 +Author: Gabor Kelemen +Date: Mon Nov 26 03:21:01 2012 +0100 + + l10n: Updated Hungarian (hu) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit cc175c427ec015a75b2a04c051a3bde9963f4c67 +Author: Rafael Ferreira +Date: Sun Nov 25 14:32:45 2012 +0100 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 64c19b7ebc28e0bd08ee2a07105e1edccb60291f +Author: Nick Schermer +Date: Sun Nov 25 13:21:54 2012 +0100 + + Test if the application generated a thumbnail if not supported. + + Thunar refused to show thumbs if not supported by tumbler, but + in various cases the application generated its own thumb (gimp + for example). + +commit feaddf4a547225805a9c21624eeaa77a8e2a100e +Author: Michal Várady +Date: Sun Nov 25 13:05:12 2012 +0100 + + l10n: Updated Czech (cs) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dda4f870b65a550ef6cd2d6fb6283f47d03e11a4 +Author: Nick Schermer +Date: Sun Nov 25 12:28:53 2012 +0100 + + Drop spacing betweek Kind and icon in file properties. + +commit 43a490a2d1eac804bc8c29d6ab1200fa6ca3e84f +Author: Per Kongstad +Date: Sun Nov 25 10:46:32 2012 +0100 + + l10n: Updated Danish (da) translation to 98% + + New status: 726 messages complete with 3 fuzzies and 6 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e8c772856230a4089cb26ee1c416555d509b0fe7 +Author: Per Kongstad +Date: Sun Nov 25 10:43:53 2012 +0100 + + l10n: Updated Danish (da) translation to 98% + + New status: 724 messages complete with 3 fuzzies and 8 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ae5343caf1ba1781050da1493416e2a594ad983a +Author: Per Kongstad +Date: Sun Nov 25 10:37:03 2012 +0100 + + l10n: Updated Danish (da) translation to 97% + + New status: 714 messages complete with 8 fuzzies and 13 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f0f1293efe5c01b839403c890f773fae6405396d +Author: Per Kongstad +Date: Sun Nov 25 10:34:36 2012 +0100 + + l10n: Updated Danish (da) translation to 96% + + New status: 709 messages complete with 11 fuzzies and 15 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a0c7aadd219cddaf984550e7432f39f12fb02d39 +Author: Per Kongstad +Date: Sun Nov 25 10:32:00 2012 +0100 + + l10n: Updated Danish (da) translation to 95% + + New status: 703 messages complete with 17 fuzzies and 15 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a8c22c55eac78f1c09bb692c15fe51fdb30fead9 +Author: Per Kongstad +Date: Sun Nov 25 10:29:46 2012 +0100 + + l10n: Updated Danish (da) translation to 95% + + New status: 699 messages complete with 20 fuzzies and 16 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a94942d56535080437735a239c1138b2e7d52435 +Author: Per Kongstad +Date: Sun Nov 25 10:28:27 2012 +0100 + + l10n: Updated Danish (da) translation to 94% + + New status: 695 messages complete with 21 fuzzies and 19 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit eab209fc80ed287dd790cc05b5d0c50607a23997 +Author: Per Kongstad +Date: Sun Nov 25 10:17:18 2012 +0100 + + l10n: Updated Danish (da) translation to None% + + New status: 0 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1942e96827ab6a5a3deb0f8fd229b0e7afa14f51 +Author: Per Kongstad +Date: Sun Nov 25 10:16:51 2012 +0100 + + l10n: Updated Danish (da) translation to 94% + + New status: 696 messages complete with 25 fuzzies and 14 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 06781140a5467a9118ce4d3e8172f408be05b80d +Author: Per Kongstad +Date: Sun Nov 25 10:12:14 2012 +0100 + + l10n: Updated Danish (da) translation to 92% + + New status: 683 messages complete with 35 fuzzies and 17 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6b8ab439d47dcd9bf55c034da552b043adf7ee6a +Author: Per Kongstad +Date: Sun Nov 25 10:09:13 2012 +0100 + + l10n: Updated Danish (da) translation to 91% + + New status: 671 messages complete with 38 fuzzies and 26 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 56aafb16195ba809f5fd987fbf84a86f47838b0c +Author: Per Kongstad +Date: Sun Nov 25 10:05:05 2012 +0100 + + l10n: Updated Danish (da) translation to 90% + + New status: 662 messages complete with 42 fuzzies and 31 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit db2bbc1289aebd10c7fbd88a8ee9c13badafde11 +Author: Masato Hashimoto +Date: Sun Nov 25 09:38:11 2012 +0100 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 69b78bd8dd6526053755b32ef225c8041e35419a +Author: Walter cheuk +Date: Sun Nov 25 08:40:25 2012 +0100 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 234cdc50dad53ba92ebe51dd522d6b97033a6bd8 +Author: Nick Schermer +Date: Sat Nov 24 22:04:03 2012 +0100 + + Post release tag bump. + +commit 0b6be7332faa319e337f4bbd100d7341a17bcbfe +Author: Nick Schermer +Date: Sat Nov 24 22:01:51 2012 +0100 + + Updates for release. + +commit 3ef31277ffe1abe842bc5d2374883a92425a8de9 +Author: Nick Schermer +Date: Sat Nov 24 21:48:23 2012 +0100 + + Add option to only show local thumbnails. + +commit e2a5402ef831fa5f6500aeb1423b22b3179e6979 +Author: Baurzhan Muftakhidinov +Date: Sat Nov 24 17:15:16 2012 +0100 + + l10n: Updated Kazakh (kk) translation to 98% + + New status: 720 messages complete with 5 fuzzies and 8 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7d5a15346200264d8d492b33b961a9fd9e0c38d2 +Author: Baurzhan Muftakhidinov +Date: Sat Nov 24 15:53:27 2012 +0100 + + l10n: Updated Kazakh (kk) translation to 97% + + New status: 718 messages complete with 4 fuzzies and 11 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d7ca457c7d6b279c540b68e063046fc1bd9fd7ee +Author: Piotr Sokół +Date: Thu Nov 22 13:23:51 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 39a93926c0bff94a0f0149401a39cc68220a3a43 +Author: Piotr Sokół +Date: Thu Nov 22 13:17:15 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7e33aea2b8a482a3fa792537c2d69cb856336b45 +Author: Nick Schermer +Date: Wed Nov 21 20:56:01 2012 +0100 + + Use origional date in properties page for images. + +commit 8045563345751ad9fe67f2f65f5935a0a8e2d77e +Author: Nick Schermer +Date: Sun Nov 18 21:33:39 2012 +0100 + + Special case handing for trash icons. + +commit 7080eb7f1222a176f0803302bcdaa0dbe915df7f +Author: Nick Schermer +Date: Sat Nov 17 21:55:58 2012 +0100 + + Idle load not required mime-types in the background. + + This way the window still shows quickly, but the content type + is still loaded reasonably quick (but pauses during scrolling). + +commit 3722520663e0b37011ed1da356a53f5c71348df8 +Author: Nick Schermer +Date: Wed Nov 14 22:13:11 2012 +0100 + + Fix some indentation. + +commit 0e883f7c4cf9358390e760f1d68e44746eb61b2a +Author: Nick Schermer +Date: Wed Nov 14 22:04:04 2012 +0100 + + Use mime-type function in uca plugin. + +commit 110141926088cc4007cce26fd17352b1b9b3b348 +Author: Nick Schermer +Date: Wed Nov 14 21:26:59 2012 +0100 + + Load content types on-demand. + + This saves a lot of search and reading file content when + loading large folder. Still in experimental stage. + +commit f407a9e6c83237ed471d32d49597d4a4c15c1ad1 +Author: Seong-ho Cho +Date: Sun Nov 18 06:46:50 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 54d83008bf4a2c7fffbffc50d4cf57482dd64dd8 +Author: Seong-ho Cho +Date: Sat Nov 17 06:22:52 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3b08d756ddc867b73d381c7e378913d96be1fc91 +Author: Cristian Marchi +Date: Fri Nov 16 17:12:46 2012 +0100 + + l10n: Updated Italian (it) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 60b1dccbe6df886cf8bdd9ed8c551bce4dd40fba +Author: Harald Judt +Date: Thu Nov 15 15:54:17 2012 +0100 + + l10n: Updated German (de) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 25979d292cb965658e680765cc782109e8102966 +Author: Nick Schermer +Date: Tue Nov 13 20:12:44 2012 +0100 + + Improve pervious commit. + + When right-clicking an item in the details view, directly + show the cwd-menu. + +commit 90412c8551789050dfee5461e14be7185d3fd7f4 +Author: Nick Schermer +Date: Mon Nov 12 20:29:42 2012 +0100 + + Control+right-click will show menu if current dir in details (bug #3386). + + Instead of extending the selection, use Ctrl + 3rd click to show + the current directory menu instead of the item menu when clicking + an unselected item. + +commit ed2d27e40f80e73c92779e9a1b46ceb31037b0ae +Author: Pavlo Bilyak +Date: Mon Nov 12 15:36:59 2012 +0100 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 77afd77b9ef48faf5ce7ba0f4dca9f774e8914de +Author: محمد الحرقان +Date: Sun Nov 11 21:11:19 2012 +0100 + + l10n: Updated Arabic (ar) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b9cf2d21b85856b84f6964a375b200a4144a203f +Author: Nick Schermer +Date: Sun Nov 11 18:44:35 2012 +0100 + + Add some missing gdk thread protection. + +commit 9b02a15007ac21a45e5784cde4741602bacb6cff +Author: Nick Schermer +Date: Sun Nov 11 18:14:35 2012 +0100 + + Store cairo surfaces on pixbufs. + + Because we store pixbufs in the icon factory + and re-use them, its efficient to store the + generated cairo surfaces on the pixmaps and + re-use those as well. + + For this the gdk_cairo_set_source_pixbuf has + been included in thunar to build the surface, + we then peek it if already generated for a + pixmap. + +commit a72c39d14052e1aea96e749c4e373967d96585d7 +Author: Sergio Marques +Date: Sun Nov 11 17:37:51 2012 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a8d294711aef13eb66ff1fc2be1510a62fa6f845 +Author: Nick Schermer +Date: Sun Nov 11 15:52:42 2012 +0100 + + Pass the correct emblem size to the icon factory. + + All emblems were scaled because the incorrect size was + requested. + +commit fda9d5911f8faf7e56fae012cb9f713d862190a7 +Author: Nick Schermer +Date: Sun Nov 11 15:25:40 2012 +0100 + + Don't queue tumbler requests for non-regular files. + + The icon factory doesn't renderer them, so skip those + for queueing. + +commit b392a537bfca65ad672b877653690463da1ca3b2 +Author: Hunt Xu +Date: Sun Nov 11 16:15:51 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b626d56a6fb554d86cffa878cce5378d169367d5 +Author: Michal Várady +Date: Sun Nov 11 14:24:23 2012 +0100 + + l10n: Updated Czech (cs) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 22ef77b81184e5b4ba4bcaa5dbed775877aa3a26 +Author: Michal Várady +Date: Sun Nov 11 14:21:13 2012 +0100 + + l10n: Updated Czech (cs) translation to 99% + + New status: 732 messages complete with 0 fuzzies and 1 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0994a1b44cca11c86d8a94f6f7df976af0bf51b0 +Author: Cheng-Chia Tseng +Date: Sun Nov 11 13:07:17 2012 +0100 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 214dc0fd08969949a51979d6a5be402a361bad65 +Author: Nick Schermer +Date: Sun Nov 11 12:47:22 2012 +0100 + + Lazy update the launcher menu. + + When selecting files, the menu is lazy update to reduce + the ammount of calls for the possible applications. + + Updates are force when the menu is shown or an action is + executed. + +commit 262d2ada69c693fb2a4540f3a9e49b610ab30a4e +Author: Nick Schermer +Date: Sun Nov 11 11:23:52 2012 +0100 + + Fix support applications > 1 selected file. + + Pinters are not identical, so check the desktop-ids. + +commit fb9efe62f4aba570df191eeaf5c3b16578d6b909 +Author: Sergey Alyoshin +Date: Sun Nov 11 12:07:04 2012 +0100 + + l10n: Updated Russian (ru) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 415cacb8c9bed182dc18288db78be7d0167fe016 +Author: Nick Schermer +Date: Sun Nov 11 01:31:40 2012 +0100 + + Idle updating the launcher. + + This should be smarter, but its a start. Especially + thunar_file_list_get_applications is very slow here + because of g_app_info_get_all_for_type. + +commit 34fdbb4a4b3ee4b3274389b58cd207d45f8349cc +Author: Nick Schermer +Date: Sun Nov 11 01:05:24 2012 +0100 + + Remove image resolution from statusbar. + + This loads massive ammounts of data when going through + images and slows down systems a lot. + +commit 97948388021506b406090efbd6f26c328e387c73 +Author: Nick Schermer +Date: Sun Nov 11 01:03:41 2012 +0100 + + Update the statusbar in a short timeout. + + This avoids a lot of statusbar updates when scrolling + with the selection. + +commit 6cadc76021a81c4d7508230b961b5b19bfc90519 +Author: Nick Schermer +Date: Sun Nov 11 01:01:55 2012 +0100 + + Unset the list model folder in dispose. + + pspecs are already freed in finalize. + +commit b3d91bb72fbab55e8652cfe1eece2c976d326ee1 +Author: Nick Schermer +Date: Sun Nov 11 00:28:46 2012 +0100 + + Use pspec notify in launcher. + +commit 51db2f58a2ac3807221e15014c4a95eed612d4be +Author: Nick Schermer +Date: Sun Nov 11 00:20:39 2012 +0100 + + Install text renderer properties at once. + +commit 959b2995fb3adacbb1b2ff8cf22f5edbfdc86a91 +Author: Nick Schermer +Date: Sun Nov 11 00:14:06 2012 +0100 + + Use pspec notify in list model. + +commit 65b92dcd87c76da6892639e4b603906e90781af8 +Author: Nick Schermer +Date: Sun Nov 11 00:09:50 2012 +0100 + + Install preferences properties at once. + +commit 776d74cb982cf971c29fb7c5490fe2d0850d8d3e +Author: Nick Schermer +Date: Sun Nov 11 00:03:25 2012 +0100 + + Use pspec notify in standard view. + +commit 23b35cc2efe1d0fd0801622cb9385753794f2f67 +Author: Nick Schermer +Date: Sat Nov 10 23:17:19 2012 +0100 + + Use macro names for attributes. + + Those are defined these days. + +commit bf50d845959d7b2cff3ec2c5b964f657a30f8461 +Author: Nick Schermer +Date: Sat Nov 10 22:57:44 2012 +0100 + + Readd the has-handler check when inserting rows. + + This has some benefit when the folder is already loaded + in another view. + +commit b8f806d8a71c21a369dab55bdd6a67dbb00b4f71 +Author: Nick Schermer +Date: Sat Nov 10 21:01:59 2012 +0100 + + Post release tag bump. + +commit 0d64ded8de91422e554efa017c85a8b1ab85ffea +Author: Nick Schermer +Date: Sat Nov 10 20:59:37 2012 +0100 + + Updates for release. + +commit 8a0a47f026a37508f3d0d3d4e11ec3a60411ce41 +Author: Nick Schermer +Date: Sat Nov 10 20:48:09 2012 +0100 + + Add support for tabs in session saving. + +commit 3033ee89afff7a94561ec639910128fd17aabf69 +Author: Nick Schermer +Date: Sat Nov 10 18:38:31 2012 +0100 + + Don't write empty session files. + +commit d5d5344a05d92999cc982f0b2a2d4f53b4de0832 +Author: Nick Schermer +Date: Sat Nov 10 18:00:42 2012 +0100 + + Work around an unneeded check. + + GIO has a bug that most icon-names start with "(null)", + do a quick check to skip those. + +commit d01b728e6d0d886497698fdc9da0b138bb95a0f0 +Author: Nick Schermer +Date: Sat Nov 10 15:52:49 2012 +0100 + + Drop unused check for icons of executables. + + The icon name is never null, so this pass is useless. + +commit 4d0efd73cd1f3d241fa2b9eb6c9fd2be2acaf8b4 +Author: Nick Schermer +Date: Sat Nov 10 15:42:53 2012 +0100 + + Directly collect the full info namespace for ls dir. + + Adapt thunar_io_scan_directory to optionally return + ThunarFile's instea of GFile and create ThunarFiles + later for some io jobs. + + This trick is that we can directly use the enumerator + to scan all the directory info and use that for the + new ThunarFiles, this saves querying a file twice + resulting in much faster directory loading. + +commit 4569ffdb7e8bb441c9485db58aece581444487be +Author: Nick Schermer +Date: Sat Nov 10 14:37:54 2012 +0100 + + Use GSequence in the list model. + + This storage type is much more suitable for storing + the large number of files. Biggest improvement is + the number of times the sort function is called, in + large directories this is ~5% of the calls during adding + files. + +commit 0017d6b40610a3562ecd2379dddb869be7e28124 +Author: Nick Schermer +Date: Fri Nov 9 22:55:20 2012 +0100 + + Add free space tooltip for devices. + +commit 115da6b521dbc30b844d57d5fad6b647bbaa6888 +Author: Nick Schermer +Date: Fri Nov 9 20:14:47 2012 +0100 + + Add common function to get the .gtk-bookmarks file. + +commit 42c64c1693350448e91be05da79bcdaca8179c0a +Author: Nick Schermer +Date: Fri Nov 9 20:05:26 2012 +0100 + + Improve flag handing in ThunarFile. + + Code is easier to understand this way. + +commit 3e50f502578fdf8377a3d46e05cacb65f8abaff8 +Author: Marcin Romańczuk +Date: Sat Nov 10 16:09:53 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 786020bd92b4dd007fa20be000ab96a8f9f2cd5b +Author: Nick Schermer +Date: Sat Nov 10 10:46:30 2012 +0100 + + Don't include notify.h if not available (bug #9480). + +commit df9696ac3aeccd749a228401991697a068f41fe2 +Author: Harald Judt +Date: Sat Nov 10 09:42:08 2012 +0100 + + l10n: Updated German (de) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fd3f594688d92c51b0aa6c340146c3633b4c53c3 +Author: Rafael Ferreira +Date: Sat Nov 10 04:31:33 2012 +0100 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 65e3249d7d6ae6a01a1194c64f751b7745d2e5bc +Author: Piarres Beobide +Date: Fri Nov 9 22:39:46 2012 +0100 + + l10n: Updated Basque (eu) translation to 98% + + New status: 722 messages complete with 3 fuzzies and 8 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 199d72607ecc677c578858efeb9e54bb8ff0e4d6 +Author: Piarres Beobide +Date: Fri Nov 9 22:34:25 2012 +0100 + + l10n: Updated Basque (eu) translation to 97% + + New status: 713 messages complete with 3 fuzzies and 17 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8f149b8566421a36de1efa19d1f8b24eb2db478b +Author: Masato Hashimoto +Date: Fri Nov 9 16:08:17 2012 +0100 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 61fc7d4a7e4efdcc24274a4e3f455f8634894def +Author: prflr88 +Date: Fri Nov 9 13:07:27 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 30b95b3ffa348e5d58a5e66fd52097e26b6a8b96 +Author: Pjotr vertaalt +Date: Fri Nov 9 11:26:34 2012 +0100 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 733 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3aeb2bd4e9d6740ad3ceee8c3a9bb064494424f0 +Author: Ivica Kolić +Date: Fri Nov 9 00:22:42 2012 +0100 + + l10n: Updated Croatian (hr) translation to 87% + + New status: 639 messages complete with 0 fuzzies and 94 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d73e6ef1dfce5efc1f42965ebe5d54bf9b74acbf +Author: Nick Schermer +Date: Fri Nov 9 00:00:20 2012 +0100 + + Some more optimizations in icon name loading. + + Only peek the GIcon names and less string checking. + +commit c031e7b0887961e2cb718b58c3bc6e65b2a9abc3 +Author: Nick Schermer +Date: Thu Nov 8 23:37:04 2012 +0100 + + Drop home icons and optimize check. + + Checking for home was too expensive. Also reorder the + checks to we do less checking for is_root. + +commit 7e3fd7003c33ad55a0ef5ffe9a18041c6b55d10b +Author: Nick Schermer +Date: Thu Nov 8 21:32:36 2012 +0100 + + Fix typo in metadata code. + +commit a8019e2b5a90bdc63ae4e2784baa9429e806a521 +Author: Nick Schermer +Date: Thu Nov 8 21:28:48 2012 +0100 + + Do not freeze on new files outsize this directory (bug #9468). + + The ThunarFile was never loaded because it was not created, + so check if the new files belong to this directory, + else do no try to reload later. + + Was easy to reproduce to dnd into a folder. + +commit 331aaee90d111555e4da5fa7f5be52cc5cfb3bd6 +Author: Nick Schermer +Date: Thu Nov 8 21:15:28 2012 +0100 + + Use stock home icons for ~. + +commit 877b8ea466ab74b2386af92b1ffe707c97a749a2 +Author: Nick Schermer +Date: Thu Nov 8 21:03:42 2012 +0100 + + Also watch the bookmark files. + +commit 574c7dfa31dbe24e0f907945e21f411408a69b03 +Author: Nick Schermer +Date: Thu Nov 8 20:43:42 2012 +0100 + + Don't add a bookmark to the same location twice. + + This avoids action-name collision and its not really usefull + either. + +commit fa11bfe6069e5fdce5367894b764b732f3d883fa +Author: Nick Schermer +Date: Thu Nov 8 20:37:35 2012 +0100 + + Trigger callback function when opening unmounted locations (bug #9447). + +commit d174464325c991ab261c909b133f4f934cd68dc2 +Author: Nick Schermer +Date: Thu Nov 8 20:36:46 2012 +0100 + + Remove user directories and add bookmarks in go menu. + +commit c7a5a8dfb5379995af90b819fcffe2b8dad0ab7b +Author: Nick Schermer +Date: Wed Nov 7 20:28:02 2012 +0100 + + Improve generating remote display names (bug #9442). + + Be safer with port numbers and such. + +commit c4d27daa3178488737f202a21a095408985e7fb9 +Author: Nick Schermer +Date: Wed Nov 7 18:18:14 2012 +0100 + + Fix -set properties in the renderers. + + The -set property is not used to enable the setting, but + a response to the user the property is applied. + + See gnome bug 687825. + +commit c48559231c431e82ac71586b885b1ab407b82661 +Author: Baurzhan Muftakhidinov +Date: Wed Nov 7 17:06:59 2012 +0100 + + l10n: Updated Kazakh (kk) translation to 94% + + New status: 699 messages complete with 15 fuzzies and 24 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b0cf3972dfd209a8f1918a6b472a1d185985db63 +Author: Piotr Sokół +Date: Wed Nov 7 11:17:36 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 64d5780bfb82eb58f04aee57ece26341589e2da4 +Author: Ivica Kolić +Date: Wed Nov 7 00:49:39 2012 +0100 + + l10n: Updated Croatian (hr) translation to 87% + + New status: 645 messages complete with 0 fuzzies and 93 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8b511855859dc680369cbd2f2192a3437388adce +Author: Harald Judt +Date: Tue Nov 6 20:20:52 2012 +0100 + + l10n: Updated German (de) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 010f9292a9edb4db4e4ab02305048f637570a6bb +Author: Nick Schermer +Date: Tue Nov 6 19:11:37 2012 +0100 + + Remove test from previous commit. + +commit 48f01622ea50d0275bd165114e8e3d09fc70b7fe +Author: Nick Schermer +Date: Tue Nov 6 18:40:04 2012 +0100 + + Fallback to only default values if xfconf failed. + + This can happen when running as root. Fallback to only loading + default values and no saving. + +commit bddf31b2cd54b2bbd589ec6a4c395a3aa88f9c50 +Author: Nick Schermer +Date: Tue Nov 6 18:04:16 2012 +0100 + + Don't set weight in chooser model to light (bug #7688). + + This is obviously a problem in gtk, but this fix works. + +commit cda64a5b2da7d5ed550aff6adf495a94474a5539 +Author: Ivica Kolić +Date: Tue Nov 6 16:20:50 2012 +0100 + + l10n: Updated Croatian (hr) translation to 86% + + New status: 642 messages complete with 0 fuzzies and 96 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 437491c4e4426c64884ee7bc2170f5100e9c64f8 +Author: Nick Schermer +Date: Mon Nov 5 21:50:32 2012 +0100 + + Make the entry the default location bar. + +commit a7be00904bec59f7e70e5285c7d14973f6f59b7f +Author: Nick Schermer +Date: Mon Nov 5 21:46:15 2012 +0100 + + Always set the icons size of the toolbar. + + This should avoid the big icons in a gtk3 desktop. + +commit b6bce01a1446989959969e74fb56e39b1089467a +Author: Fabian Nowak +Date: Mon Nov 5 21:01:59 2012 +0100 + + l10n: Updated German (de) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 977b3a7c5d4a8e9c059db9afa5b25eeea3b8c08b +Author: Fabian Nowak +Date: Mon Nov 5 20:59:29 2012 +0100 + + l10n: Updated German (de) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e99570beee7b36ca3aa7e2dbb03297385af9f286 +Author: Fabian Nowak +Date: Mon Nov 5 20:58:17 2012 +0100 + + l10n: Updated German (de) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit cbcf7a65a5bed562c8e190694eb73ef4715e8bce +Author: Fabian Nowak +Date: Mon Nov 5 20:57:19 2012 +0100 + + l10n: Updated German (de) translation to None% + + New status: 0 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f6e2e87342039140a6b514266efcf5945a837479 +Author: Fabian Nowak +Date: Mon Nov 5 20:52:47 2012 +0100 + + l10n: Updated German (de) translation to None% + + New status: 0 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 76048fdde1eaece5b85bab401ddb07a485955bf7 +Author: Fabian Nowak +Date: Mon Nov 5 20:40:49 2012 +0100 + + l10n: Updated German (de) translation to None% + + New status: 0 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7877027bc06e53887e6e03ac590a8b73f56f9053 +Author: Fabian Nowak +Date: Mon Nov 5 20:39:43 2012 +0100 + + l10n: Updated German (de) translation to 99% + + New status: 733 messages complete with 5 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b48a7905cf3eb59b95fca148af8a37114ae7953d +Author: Саша Петровић +Date: Mon Nov 5 19:15:48 2012 +0100 + + l10n: Updated Serbian (sr) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 59d0d61df58976b0d4f8510ff670462bc770a9cd +Author: Harald Judt +Date: Sun Nov 4 19:05:15 2012 +0100 + + l10n: Updated German (de) translation to 99% + + New status: 733 messages complete with 5 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9a0f080e0c11ffe93e44bfe32b1101dcb141b97c +Author: Harald Judt +Date: Sun Nov 4 18:12:49 2012 +0100 + + l10n: Updated German (de) translation to 99% + + New status: 734 messages complete with 4 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 01b15d2027dd2a3a30960368f160d9d691eba9f1 +Author: Cheng-Chia Tseng +Date: Sun Nov 4 16:42:52 2012 +0100 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6182cb85faec6fe10647f7e2e4a2a0339a5351ba +Author: Fabian Nowak +Date: Sun Nov 4 15:18:07 2012 +0100 + + l10n: Updated German (de) translation to 99% + + New status: 736 messages complete with 2 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit efc49a7b5f33e461f3d07a7276212f5e3ffc5453 +Author: Nick Schermer +Date: Sun Nov 4 12:03:54 2012 +0100 + + Sort renamer list by clicking on name header (bug #2622). + + Allow sorting on the items by click on the tree header. + +commit 12644513c79ba92aeb2129cb121e6c624bb20887 +Author: Nick Schermer +Date: Sun Nov 4 11:15:11 2012 +0100 + + Fix linking on Cygwin (bug #4561). + +commit 44d5ab0bf8adb194c77eb4101c79c22fab0f9163 +Author: Nick Schermer +Date: Sun Nov 4 11:10:52 2012 +0100 + + Use GtkTreeModel in renamer dialog. + + No use for the exo model here. + +commit 1ba522fd9a7defb174ed67b40d6d9ba838ba665c +Author: Nick Schermer +Date: Sun Nov 4 10:53:35 2012 +0100 + + Do not set selection after removing files (bug #8780). + +commit e58e350241a2cbe11cca85cbe536d8cea03d5afa +Author: Nick Schermer +Date: Sun Nov 4 10:38:34 2012 +0100 + + Idle selecting item in shortcuts pane. + + This should fix selection of items when starting + Thunar. Idle has a lower priority than the loading + priorities of the devices/bookmarks in the model. + +commit 402b4d084d1bcba9bc05bebc89866692a4d2a223 +Author: Nick Schermer +Date: Sun Nov 4 10:28:19 2012 +0100 + + Use seconds timers where possible. + +commit d3a6b9fef305fc7513905e953b5243586cad99b4 +Author: Nick Schermer +Date: Sun Nov 4 10:25:05 2012 +0100 + + Reduce text renderer structure size a tiny bit. + +commit 5c79330053c4b84cd8eadb06d54ca28edac4d893 +Author: Nick Schermer +Date: Sun Nov 4 10:23:05 2012 +0100 + + Use unsigned integer for idles and timers. + + Could technically overflow. + +commit b73ec63839ecc39bd66afa3b9da7f74bbd8547ab +Author: Nick Schermer +Date: Sun Nov 4 10:10:53 2012 +0100 + + Signal id's are gulong. + + Use the correct type for signal ids to avoid + integer overflow crashes. + +commit ed1bff3ed32b9e02657cb8612c0cbe79e026624b +Author: Jeff Bailes +Date: Sun Nov 4 09:48:16 2012 +0100 + + l10n: Updated English (United Kingdom) (en_GB) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 03304e66fd6c89a0bdb49d3c01abe8f2e503c2f2 +Author: Yaron Shahrabani +Date: Sun Nov 4 07:51:49 2012 +0100 + + l10n: Updated Hebrew (he) translation to 98% + + New status: 727 messages complete with 1 fuzzy and 10 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7c69149b80ac1b846f788888f5c75bcd698bc507 +Author: Yaron Shahrabani +Date: Sun Nov 4 07:49:21 2012 +0100 + + l10n: Updated Hebrew (he) translation to 97% + + New status: 721 messages complete with 5 fuzzies and 12 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f2741ecf81b86fac851b302db79ffc31ab179eb2 +Author: Yaron Shahrabani +Date: Sun Nov 4 07:45:44 2012 +0100 + + l10n: Updated Hebrew (he) translation to 96% + + New status: 715 messages complete with 9 fuzzies and 14 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d719c732702631caf89efc6772b61ef64cca22b1 +Author: Yaron Shahrabani +Date: Sun Nov 4 07:43:17 2012 +0100 + + l10n: Updated Hebrew (he) translation to 95% + + New status: 708 messages complete with 13 fuzzies and 17 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3910064b240d78af7e47d6799f51915c1227f05a +Author: Yaron Shahrabani +Date: Sun Nov 4 07:42:00 2012 +0100 + + l10n: Updated Hebrew (he) translation to 94% + + New status: 701 messages complete with 18 fuzzies and 19 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 551eeff9393df7c86ea7e063babf7d0f0e96df55 +Author: Yaron Shahrabani +Date: Sun Nov 4 07:40:29 2012 +0100 + + l10n: Updated Hebrew (he) translation to 94% + + New status: 696 messages complete with 22 fuzzies and 20 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1b93a6eb29b11d46cb133173f28a3d6c859512ef +Author: Yaron Shahrabani +Date: Sun Nov 4 07:39:27 2012 +0100 + + l10n: Updated Hebrew (he) translation to 94% + + New status: 694 messages complete with 22 fuzzies and 22 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c9ddcf731f151b217da9d1cebde8d5112baa1c9e +Author: Yaron Shahrabani +Date: Sun Nov 4 07:37:53 2012 +0100 + + l10n: Updated Hebrew (he) translation to 92% + + New status: 684 messages complete with 30 fuzzies and 24 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e91fad41f76b37c1e2e289a518ebff12a7639e37 +Author: Yaron Shahrabani +Date: Sun Nov 4 07:28:53 2012 +0100 + + l10n: Updated Hebrew (he) translation to 90% + + New status: 671 messages complete with 42 fuzzies and 25 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8462a6077c06a4fa8f88e477e4e9082f63d0a06e +Author: prflr88 +Date: Sun Nov 4 04:26:14 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fcb039eb51d8ac0f6ca3b7a68247b204e6b173ef +Author: prflr88 +Date: Sun Nov 4 04:24:01 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 99% + + New status: 733 messages complete with 5 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1b670bd0c73a73757b42daae44cf0b6819f4d0c8 +Author: Harald Judt +Date: Sat Nov 3 17:00:42 2012 +0100 + + l10n: Updated German (de) translation to 95% + + New status: 705 messages complete with 33 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit bf3cd13c0ce2ff4b2c2ddfb1f9bbf5ff6d33f2a8 +Author: Harald Judt +Date: Sat Nov 3 16:55:49 2012 +0100 + + l10n: Updated German (de) translation to 95% + + New status: 705 messages complete with 33 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 88d3ce6b5ccb82a86c23d3b16e2d574016de0cb2 +Author: Raphael Groner +Date: Sat Nov 3 14:31:41 2012 +0100 + + l10n: Updated German (de) translation to 97% + + New status: 720 messages complete with 16 fuzzies and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a841da74e5422a80ea6d241a24f59c15b381a873 +Author: Cristian Marchi +Date: Sat Nov 3 11:37:40 2012 +0100 + + l10n: Updated Italian (it) translation to 99% + + New status: 736 messages complete with 1 fuzzy and 1 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 62e5d2329fc48aa57962e055f1500d0669beebd5 +Author: Johannes Lips +Date: Sat Nov 3 08:55:03 2012 +0100 + + l10n: Updated German (de) translation to 97% + + New status: 720 messages complete with 13 fuzzies and 5 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e65286b3bfcbe8eb38d0a2b0a32bd9ca1c4e649c +Author: Ivica Kolić +Date: Sat Nov 3 00:02:41 2012 +0100 + + l10n: Updated Croatian (hr) translation to 85% + + New status: 631 messages complete with 0 fuzzies and 107 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8c79b99898fa2b9704bd2847a7a105fb28075e38 +Author: Yarema aka Knedlyk +Date: Fri Nov 2 19:54:31 2012 +0100 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 544f71e32032278686a9ec01844871b5dcbca768 +Author: Nick Schermer +Date: Fri Nov 2 18:41:49 2012 +0100 + + Fix back/forward gestures and 8/9 button events. + +commit 6468b891dae1cc85aa096104dc02e7592e5ae277 +Author: Carles Muñoz Gorriz +Date: Fri Nov 2 17:46:03 2012 +0100 + + l10n: Updated Catalan (Valencian) (ca) translation to 97% + + New status: 720 messages complete with 12 fuzzies and 6 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1f4f1c713e8eca0269b5aac92fbeae69e15b72c1 +Author: Carles Muñoz Gorriz +Date: Fri Nov 2 17:44:01 2012 +0100 + + l10n: Updated Catalan (Valencian) (ca) translation to 97% + + New status: 716 messages complete with 15 fuzzies and 7 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 95d113e588db9952c7d8ac918676e52cb2b286af +Author: Carles Muñoz Gorriz +Date: Fri Nov 2 17:36:25 2012 +0100 + + l10n: Updated Catalan (Valencian) (ca) translation to 94% + + New status: 694 messages complete with 24 fuzzies and 20 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7c70775378a377b8bee8c3a7b692638cdff32384 +Author: Carles Muñoz Gorriz +Date: Fri Nov 2 17:32:15 2012 +0100 + + l10n: Updated Catalan (Valencian) (ca) translation to 91% + + New status: 678 messages complete with 37 fuzzies and 23 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a6dc69a016a20da67cfdbbcf6cf87e074d1fd052 +Author: Seong-ho Cho +Date: Fri Nov 2 14:39:57 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dfdbb3916738f83e1c380fea98b12c7f490a119d +Author: Sergio Marques +Date: Fri Nov 2 12:40:39 2012 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c6bf802f6caee0013d83dd267c39ea841c0ac06e +Author: Piotr Sokół +Date: Fri Nov 2 10:32:26 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 466c95c460bfe3564274227b5c6a0e1447d7e4f3 +Author: Саша Петровић +Date: Fri Nov 2 10:04:10 2012 +0100 + + l10n: Updated Serbian (sr) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fa9c5a58cef94f2540862083b683cd543e765625 +Author: Marcin Romańczuk +Date: Fri Nov 2 00:50:00 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 96fd7ad0d69f05f4a41297647102646860d9f8cf +Author: Henrique P. Machado +Date: Fri Nov 2 00:18:40 2012 +0100 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ae91259e8057effec2dadaa79f3c52e89245a760 +Author: Henrique P. Machado +Date: Fri Nov 2 00:17:18 2012 +0100 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c729b9c60ee705ef0350a780ac8d668630125e20 +Author: Asier Iturralde Sarasola +Date: Thu Nov 1 22:59:05 2012 +0100 + + l10n: Updated Basque (eu) translation to 96% + + New status: 714 messages complete with 10 fuzzies and 14 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 97173c2075afd1667ab2f36c225d58ba88622e88 +Author: Asier Iturralde Sarasola +Date: Thu Nov 1 22:55:19 2012 +0100 + + l10n: Updated Basque (eu) translation to 95% + + New status: 708 messages complete with 14 fuzzies and 16 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 161e20582e63919dee0499d5a802f51181160865 +Author: Pjotr vertaalt +Date: Thu Nov 1 22:50:37 2012 +0100 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 738 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 59399680d863354201fb3d5815586c650e5487ea +Author: Asier Iturralde Sarasola +Date: Thu Nov 1 22:47:25 2012 +0100 + + l10n: Updated Basque (eu) translation to 92% + + New status: 685 messages complete with 31 fuzzies and 22 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 91b425798e964ab4f0c90491b94a6c71351e556c +Author: Jakob Kramer +Date: Thu Nov 1 22:14:52 2012 +0100 + + l10n: Updated German (de) translation to 97% + + New status: 720 messages complete with 5 fuzzies and 13 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ee373e994e7de7d6d74552ddcab5d99c8c7caa68 +Author: Jakob Kramer +Date: Thu Nov 1 22:13:14 2012 +0100 + + l10n: Updated German (de) translation to 97% + + New status: 716 messages complete with 8 fuzzies and 14 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 571f4617eab597e23813c6f2e723e5af2fb2970d +Author: Michał Olber +Date: Thu Nov 1 22:11:21 2012 +0100 + + l10n: Updated Polish (pl) translation to 99% + + New status: 737 messages complete with 0 fuzzies and 1 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit bb3fe5ed3e087e0086a9f53e5c8c1cce8fee1760 +Author: Jakob Kramer +Date: Thu Nov 1 22:11:08 2012 +0100 + + l10n: Updated German (de) translation to 96% + + New status: 709 messages complete with 15 fuzzies and 14 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit cbcccbce4f35cdb028bca143dcd2cfe38fed9b64 +Author: Jakob Kramer +Date: Thu Nov 1 22:07:55 2012 +0100 + + l10n: Updated German (de) translation to 94% + + New status: 700 messages complete with 24 fuzzies and 14 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 96ae1271050f0620d5f1b3b4c9f383ece64406dd +Author: Mario Blättermann +Date: Thu Nov 1 22:07:39 2012 +0100 + + l10n: Updated German (de) translation to 94% + + New status: 695 messages complete with 25 fuzzies and 18 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 92f3ef2a634bf1afda36b6e02bd5405ca715cba1 +Author: Nick Schermer +Date: Thu Nov 1 21:55:24 2012 +0100 + + Rebuild translations. + +commit 1567b995c746286cd736c705dee8afc266281e04 +Author: Nick Schermer +Date: Thu Nov 1 21:43:59 2012 +0100 + + Write localized name of a desktop file (bug #8783). + +commit 36b4a2778633d3ab8ba51fa951e92c81c3e75254 +Author: Nick Schermer +Date: Thu Nov 1 21:25:20 2012 +0100 + + Keep file permissions when renaming a desktop file. + +commit 045b964356b60e39fbe90d3ffc21d7abf6707146 +Author: Nick Schermer +Date: Thu Nov 1 21:17:16 2012 +0100 + + Also clear cache on reload of a file. + +commit f821e1cb18aaa12e2be769d66a21b6c5ea3ea00d +Author: Саша Петровић +Date: Thu Nov 1 21:26:49 2012 +0100 + + l10n: Updated Serbian (sr) translation to 100% + + New status: 688 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit bba664d1d23d93aa4546db73d5b418c901718f7c +Author: Nick Schermer +Date: Thu Nov 1 21:07:40 2012 +0100 + + Unset value after inserting to the array. + +commit d6d82a7534f2e79043719c6d2d60f32c9317e1cb +Author: Nick Schermer +Date: Thu Nov 1 21:02:34 2012 +0100 + + Clear cached icon when trash changed (bug #9432). + +commit b0ddb08e2d4a68c5360662112bb71544dd6cf2e0 +Author: Serg Bormant +Date: Thu Nov 1 19:59:06 2012 +0100 + + Fix typo of Trash in standard view (bug #9437). + +commit 70a4301660b81ecd7dc13845bfa14b625fe2e311 +Author: Lionel Le Folgoc +Date: Thu Nov 1 19:56:16 2012 +0100 + + Don't add duplicates of devices (bug #9440). + + On some setups the volume-added singal is emitted after the + devices have been added, resulting in devices appear twice + in the sidepane. + +commit 6e4f1c2dd65eeb88776673aabb8c73f86eaad358 +Author: Nick Schermer +Date: Thu Nov 1 19:51:06 2012 +0100 + + Use GArray instead of GValueArray and new mutex API. + + GValueArray is deprecated, so use GArray with GValue's + instead. Also use new mutex api. + +commit 731f6f73c41697b2eb82bd9082e2d12a5ad4d227 +Author: Lionel Le Folgoc +Date: Thu Nov 1 18:11:01 2012 +0100 + + Do not unref g_file_icon_get_file() file (bug #9439). + +commit 17bf70d04195a2341a7bb4ddfa7bc4841c584c7b +Author: Nick Schermer +Date: Thu Nov 1 18:10:07 2012 +0100 + + Don't use deprecated g_thread_init(). + +commit 62969df2d0b72f45c67f27d0d62b32dcda5b02e7 +Author: Masato Hashimoto +Date: Thu Nov 1 12:33:05 2012 +0100 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 739 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 52e34f0b71d34a275c87d8afcb0eff15b601c92e +Author: Nick Schermer +Date: Wed Oct 31 20:33:35 2012 +0100 + + Post release tag bump. + +commit 679b27bb532c1d76eebc71deeb55f004e998e572 +Author: Nick Schermer +Date: Wed Oct 31 20:23:36 2012 +0100 + + Updates for release. + +commit 98b752f33fb7fed37c6813c0c269fb38cbbb2090 +Author: Nick Schermer +Date: Tue Oct 30 22:04:07 2012 +0100 + + Only show Move to Trash if trash is supported. + +commit 4832cab6f92470786cb6b38551d0021f12e245b0 +Author: Nick Schermer +Date: Tue Oct 30 21:52:01 2012 +0100 + + Add menu item for permanent delete. + + Rename the old delete action to "Move to Trash" and add + permanent delete action. THe action still requests if + you //really// want to, but it got a bit easier. + +commit 251775c5c8decbba27fc5587feac405c6dad4273 +Author: Nick Schermer +Date: Tue Oct 30 21:29:51 2012 +0100 + + Drop the attachpoints structure. + +commit 987202b718b167b84b564670b6f8867910860d50 +Author: Nick Schermer +Date: Tue Oct 30 21:25:36 2012 +0100 + + Use seconds timer to flush user manager. + +commit 0fcc2f2dff3303f34d4a80dd691f67efa118e1e3 +Author: Nick Schermer +Date: Tue Oct 30 21:22:51 2012 +0100 + + Cache pixmaps on the ThunarFile and drop ring buffer. + + This is far more efficient since it also works for + thumbnails. When the theme changes, the data is automatically + removed and reloaded. + +commit 2d8c5db66116b8e72dacdf222fd2c1df65cac330 +Author: Nick Schermer +Date: Tue Oct 30 20:52:05 2012 +0100 + + Also constrain the size of themed preview icons. + +commit fbf1a04ea185bda503a85e1c03e4dc4dfd97bc90 +Author: Nick Schermer +Date: Tue Oct 30 20:50:46 2012 +0100 + + Load GLoadableIcons at the right scale. + +commit 1ac786f81c2c843468d4a64f3572f6327d7fedb7 +Author: Nick Schermer +Date: Tue Oct 30 20:27:41 2012 +0100 + + Add lazy checks to thumbnailer. + + Idea is simple, don't try to load thumbnails for files + that have already been tried when scrolling a view. This + saves a lot of requests. + +commit 0d5b53acae487b33641c1590ab57221941c97f08 +Author: Nick Schermer +Date: Tue Oct 30 20:13:53 2012 +0100 + + Only reload a file if there is a thumbnail ready. + +commit 42118955ae58b425c41037bf59b0f82708e76880 +Author: Nick Schermer +Date: Tue Oct 30 20:11:10 2012 +0100 + + If file thumbnail is known, remove it. + +commit 6d2a991f54cb09666b6153d9e25546d7c0434fb1 +Author: Nick Schermer +Date: Tue Oct 30 19:45:17 2012 +0100 + + Do not reverse the list twice. + + Reversing the list twice does not change the order. + +commit 7a22650c65d40a327afff860b22e2ec22fd9d9f7 +Author: Nick Schermer +Date: Tue Oct 30 18:07:30 2012 +0100 + + Remove unused quarks. + +commit 54724529b7395d81204b9cbf8bf8cc4cd9dfc995 +Author: Nick Schermer +Date: Tue Oct 30 18:05:26 2012 +0100 + + Use unsigned int for sweep timer in icon factory. + +commit 99eebd0f3987e200f67295015d222057ceba1226 +Author: Nick Schermer +Date: Tue Oct 30 18:04:21 2012 +0100 + + Remove unused variable from icon factory. + +commit 36c0bc57e750e0f8e6b7438884439076b8720c54 +Author: Nick Schermer +Date: Tue Oct 30 18:01:02 2012 +0100 + + Use slices in icon factory for keys. + +commit b6ce9c30fb184db37cd50566d2f6c10220504747 +Author: Nick Schermer +Date: Tue Oct 30 17:47:46 2012 +0100 + + Return const string in thunar_file_get_custom_icon. + + Not needed to duplicate it, although the string is + almost never set. + +commit 93095e43dd059d5474e1bf52f698e5357b7fd632 +Author: Nick Schermer +Date: Mon Oct 29 22:39:14 2012 +0100 + + Rename filename of insecure desktop files (bug #8786). + +commit 697b921b9a6fac4e3901bcb9a0bdd93f2f452a3a +Author: Nick Schermer +Date: Mon Oct 29 22:29:31 2012 +0100 + + Add some debug checks. + +commit 134d0187afd0c2ebc2d0e47fbde4bda71b25fbb9 +Author: Nick Schermer +Date: Mon Oct 29 22:16:36 2012 +0100 + + Revert "Remove XdndDirectSave0 protocol." (bug #9414). + + This reverts commit dfd6faa57224a9c3a697e9781aa4bd7525d9832b. + + THis breaks file-roller and probably some other stuff. + +commit 8b4429b68dbaf51eceae966ac9f6c339b412b5de +Author: Nick Schermer +Date: Mon Oct 29 22:02:26 2012 +0100 + + Avoid crash when toplevel window cannot be found (bug #9417). + +commit c3baf825e14bc8d4b578eca505ce00d3a2530bdf +Author: Nick Schermer +Date: Mon Oct 29 21:52:07 2012 +0100 + + Option to set small toolbar icons (bug #3971). + +commit e0182d851af5e76611c483b3a59376848d78810e +Author: Nick Schermer +Date: Mon Oct 29 21:43:20 2012 +0100 + + Collect properties at once in window_init and use infobar. + +commit bd7ca398c98ec50a9b49178b06e0de8ebd19973a +Author: Nick Schermer +Date: Mon Oct 29 20:19:02 2012 +0100 + + Open in tabs in the details view too. + +commit 872484b34da277bc3bcd167062390765ec26d253 +Author: Pjotr vertaalt +Date: Mon Oct 29 10:45:45 2012 +0100 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 735 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7ce73470cdf253f82042ee312bfae48580c7c1e8 +Author: Nick Schermer +Date: Sun Oct 28 22:08:12 2012 +0100 + + Make loading priority in shortcuts model higher. + + This avoid the visible loading of the bookmarks and devices. + +commit 4d7dbab1cd09b9383c23215bae391a6fce8a5863 +Author: Nick Schermer +Date: Sun Oct 28 21:12:37 2012 +0100 + + Revert "Only force ui update when switching tabs." + + This reverts commit ff39388ed16ad760426dec03e6df9b1e0593eb33. + +commit 6b9c71ac77e97d4328d1a8139fa3c6f6d7aa4a8b +Author: Simon Steinbeiss +Date: Sun Oct 28 20:27:30 2012 +0100 + + Slightly toned thumbnail frame. + + Also improve the positioning within the frame. + +commit e5f5087c2a1e1de38e269838a4b4ced9dc72de6c +Author: Nick Schermer +Date: Sun Oct 28 20:11:25 2012 +0100 + + Keep delaying selecing files if not loaded yet (bug #7328). + +commit b23507e7bcfa73be6c13c4ce308a1434a333054c +Author: Harald Judt +Date: Sun Oct 28 19:28:41 2012 +0100 + + Do not try to mount a device twice (bug #9412). + +commit ff39388ed16ad760426dec03e6df9b1e0593eb33 +Author: Nick Schermer +Date: Sun Oct 28 19:22:53 2012 +0100 + + Only force ui update when switching tabs. + +commit 39b83cfba6234bbafea25ebd31da8cf06432005e +Author: Nick Schermer +Date: Sun Oct 28 17:57:27 2012 +0100 + + Don't respond to middle-click in history buttons. + +commit 4e7cec02962d0cd951d2de0125d4869079a7a817 +Author: Nick Schermer +Date: Sat Oct 27 18:12:49 2012 +0200 + + Implement tabs in Thunar (bug #6102). + +commit d784bb149a646030beb8c6347e7a3815f04d8974 +Author: Francisco Javier Serrador +Date: Sun Oct 28 19:05:03 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 99% + + New status: 712 messages complete with 5 fuzzies and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7dadc69589b324eecd6c29db91fdc9c2766933f9 +Author: Marcin Romańczuk +Date: Sun Oct 28 12:57:07 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 719 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 657d83c171949d449739a0790d2083a673aa4465 +Author: André Miranda +Date: Sun Oct 28 03:00:22 2012 +0100 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 719 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8f10fab7479a21135a37a35e7b30c7a4b6de02ae +Author: Pjotr vertaalt +Date: Fri Oct 26 19:58:28 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 719 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5df3e2a8d5b9ff6841021fc27f38d6d626c32b47 +Author: Pjotr vertaalt +Date: Fri Oct 26 19:42:42 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 719 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 09d2b1beee73a46f99227466e93d73433c7076bb +Author: Masato Hashimoto +Date: Fri Oct 26 16:25:14 2012 +0200 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 719 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4699dd387aede8a6d337809cf4edfcdb656844b3 +Author: Nick Schermer +Date: Thu Oct 25 20:22:38 2012 +0200 + + Avoid segfault with null mime-type (bug #8390). + +commit 2282701217df440de6df5fc15d4aefb57dfd1fdd +Author: Yarema aka Knedlyk +Date: Thu Oct 25 19:59:02 2012 +0200 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 718 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit aeb44fda312009a79f653420eb104e578ca5e4ad +Author: Nick Schermer +Date: Thu Oct 25 19:33:19 2012 +0200 + + Extend history tooltips with function of button. + + Add a hack in the tooltip proxy code to strip newlines + from tooltips. + +commit 220949afa8d9f819c047a9b536bf9efb49f3bfb6 +Author: Nick Schermer +Date: Thu Oct 25 19:23:29 2012 +0200 + + Use some new API for actions. + +commit 876d761681f4c27fa2143f878fbb5211b257b0cc +Author: Piotr Sokół +Date: Thu Oct 25 10:32:35 2012 +0200 + + l10n: Updated Polish (pl) translation to 99% + + New status: 715 messages complete with 2 fuzzies and 1 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4247b3eb79d089bf601eeef7e088677b0aa2e58b +Author: Nick Schermer +Date: Wed Oct 24 21:37:43 2012 +0200 + + Drop the separators in the toolbar. + + We go for compact here, people know what to click. + + Also support updating the history menu item for toolbar changes. + +commit 08f9334a817f2e7eda16e434f76286ef0622b8b9 +Author: Nick Schermer +Date: Wed Oct 24 21:19:15 2012 +0200 + + Use go-home for menu and toolbar. + + In most themes this will match a lot nicer. + +commit d278d79e4059959ad9bffe6c1d4de9ee6922aa26 +Author: Harald Judt +Date: Wed Oct 24 21:13:06 2012 +0200 + + Shortcut pane: Do not mount after eject (bug #9403). + + If eject button has been pressed, do not perform any further action. + +commit 7df35529827eda827755df91600c86eaffabcc07 +Author: Nick Schermer +Date: Wed Oct 24 21:03:56 2012 +0200 + + Create pull-down history buttons and remove arrows. + + This is common for most users since web browsers do the same. + + You can popup the menu with a right-click, hold for 500ms or + pull-down (click and drag downwards). + +commit 2259bddaf7f3ebac98b38cdca709463a7ebf3f33 +Author: Kamil Polczak +Date: Wed Oct 24 19:25:40 2012 +0200 + + l10n: Updated Polish (pl) translation to 98% + + New status: 709 messages complete with 3 fuzzies and 6 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5de7005ab2e6c0435aa23a3c73911b2f853c5edf +Author: Gheyret Kenji +Date: Wed Oct 24 05:46:24 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 100% + + New status: 691 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f828a952f77e842ce4ccb5e5773d9dbe1d730422 +Author: Nick Schermer +Date: Tue Oct 23 21:39:54 2012 +0200 + + Put reload button in location entry. + + Gives some more space on the toolbar and reload is + not requently used anyway. + +commit b63fd6bcc745744ff2f3d89f5da9ee820b0b3111 +Author: Nick Schermer +Date: Tue Oct 23 20:09:12 2012 +0200 + + Improvements in device handling. + + Supprt GDrive stopping, improve notification code and + also condense the device_finish functions. + +commit ab899bff9bd91d2e0e514502cbaed8ad8d433c8a +Author: Pjotr vertaalt +Date: Tue Oct 23 19:48:39 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 718 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b486702c2387c90c416e85c71b984b1a22bf1439 +Author: Nick Schermer +Date: Mon Oct 22 21:12:11 2012 +0200 + + Reduce tumbler traffic on startup of Thunar. + + Create the tumbnailercache on demand and keep a reference + in daemon mode on the thumbnailer so the scheme/content-type + table doesn't need to be generated each time. + + Tumbler is also not started now in --daemon mode and will be + less restarted when no images are visible. + +commit 7fe78dee5a0b1a279a5a44efc15ad9bf0dd7af5a +Author: Harald Judt +Date: Mon Oct 22 20:46:35 2012 +0200 + + Do not call eject in thunar_device_volume_mount_finished. + + Fix copy & paste error. + +commit 5a0fd479b4a6e87ff9dea1597386ba935bf2aa6d +Author: Nick Schermer +Date: Mon Oct 22 20:38:58 2012 +0200 + + Uniform the deep copy function. + + There were 2 versions used. Use the one in thunarx + and use marcos for deep appending/prepending. + +commit 7012c86e217454141e24f7d819c4a93178a01c1f +Author: Nick Schermer +Date: Mon Oct 22 20:19:14 2012 +0200 + + Easy adding bookmarks for remote mounts. + + Add right-click menu item to add a bookmark in the + sidepane. Also use the function to generate nice + remote names. + +commit 0c5e3059464027ea7116b73f36a05b2965b089e6 +Author: Nick Schermer +Date: Mon Oct 22 20:12:55 2012 +0200 + + Add function to generate nice remote display names. + +commit fcf3c9417141a6d066d1a09d6588efb6b7dacdb5 +Author: Pjotr vertaalt +Date: Mon Oct 22 19:11:29 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 714 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fbf167517fe0ab87ad68562038eabe23217781df +Author: Nick Schermer +Date: Mon Oct 22 17:36:18 2012 +0200 + + End with a / in the path entry. + + This has 2 advantages: + - You probably want to navigate in the directory you've + just entered, so this saves typing a /. + - The code doesn't load the parent directory, saving + a job to collect all the files and their information + (ThunarFolder is shared). + +commit f0fbe0baf68374535f976cf4d58ed29885d4d7de +Author: Nick Schermer +Date: Mon Oct 22 17:35:48 2012 +0200 + + Add debug #if for dumping the file cache. + +commit bf583384eeff0bf0eaa3ea7ccf57adf736ddcccf +Author: Nick Schermer +Date: Sun Oct 21 21:23:12 2012 +0200 + + Show tooltip uri/filename in history menu item. + +commit 77471b4220d1ddd1a150dff8fca4a310a83efe3d +Author: Nick Schermer +Date: Sun Oct 21 21:21:06 2012 +0200 + + Don't show drive icon for remote mounts in history. + +commit 1e75dd17dcccf1298bc39da297e76bc2b9f81264 +Author: Nick Schermer +Date: Sun Oct 21 21:14:59 2012 +0200 + + Some improvements in ThunarFile. + + Use common function to get the display name + and drop unneeded debug check. + +commit fbcf575855e46cd018f63a2c76dfea3d33f8982a +Author: Nick Schermer +Date: Sun Oct 21 18:38:08 2012 +0200 + + Modify the history to release ThunarFiles and store GFiles. + + This makes remote mount easier and drops memory usage for + history items. Also handle removed location properly. + +commit edf2e8c4b5f770376d73a38b5f1c96032312d07b +Author: Nick Schermer +Date: Sun Oct 21 14:27:52 2012 +0200 + + Store GFiles in the list of files to scroll to. + + This way we release ThunarFiles more often, saving a bit + to memory and making remote mount probing easier. + +commit 3c9a18f548679a251b944c7caca40410d92a1b12 +Author: Nick Schermer +Date: Sat Oct 20 19:41:19 2012 +0200 + + Don't abort on non-utf8 charaters. + +commit c55f3dc995138ce78d33525db62adddb4a744d4d +Author: Nick Schermer +Date: Sat Oct 20 19:38:17 2012 +0200 + + Allow resizing of chooser dialog. + +commit dada966eae39a370bae5f9bf13dee8786a2ae28c +Author: Nick Schermer +Date: Sat Oct 20 19:34:41 2012 +0200 + + Drop usage of glib 2.32 functions. + +commit 8aa057167e3a078b3d35d2fbb171df9a54c71ccb +Author: Nick Schermer +Date: Sat Oct 20 19:15:00 2012 +0200 + + Show custom commands in the different models (bug #9169). + +commit 5649e02baaf9e03d55fff76db6eee4ec5ad00fba +Author: Alex Z +Date: Fri Oct 19 15:32:04 2012 +0200 + + l10n: Updated Russian (ru) translation to 98% + + New status: 703 messages complete with 5 fuzzies and 6 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 35b49c323a880c74293b64f5891036dcee4fcf3f +Author: Alex Z +Date: Fri Oct 19 15:20:10 2012 +0200 + + l10n: Updated Russian (ru) translation to 96% + + New status: 687 messages complete with 15 fuzzies and 12 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4e608d309d6685fd1d433cf7de35d8c6ea540820 +Author: Alex Z +Date: Fri Oct 19 15:14:35 2012 +0200 + + l10n: Updated Russian (ru) translation to 94% + + New status: 678 messages complete with 19 fuzzies and 17 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit efaa2042a38732b3a84cba8522680a554031f4c7 +Author: Ivica Kolić +Date: Wed Oct 17 00:14:34 2012 +0200 + + l10n: Updated Croatian (hr) translation to 85% + + New status: 613 messages complete with 0 fuzzies and 101 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a7dad56b580c51ac8bd6a14b82ac009221015561 +Author: Seong-ho Cho +Date: Tue Oct 16 11:44:51 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 714 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5e65f01c296ca7c6430de3819258aacab4529290 +Author: Cristian Marchi +Date: Mon Oct 15 20:36:10 2012 +0200 + + l10n: Updated Italian (it) translation to 100% + + New status: 714 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9a02dfdaf7e4678ee3883ccbb91aead3bddc5f0e +Author: Masato Hashimoto +Date: Mon Oct 15 14:17:45 2012 +0200 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 714 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f09939facc62b42cb76bd7ab0cc7c594b58ca229 +Author: Rafael Ferreira +Date: Mon Oct 15 05:49:16 2012 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 714 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit aaeece13e4a154dcfb0320439e2a4c96b94d0c97 +Author: Nick Schermer +Date: Sun Oct 14 15:05:35 2012 +0200 + + Port release tag bump. + +commit 2074df6b7d7aec65024fba9b09e0c55aac238398 +Author: Nick Schermer +Date: Sun Oct 14 14:59:37 2012 +0200 + + Updates for release. + +commit a76b6e508878a90d682b22046b78324fd69d8bf9 +Author: Nick Schermer +Date: Sun Oct 14 13:42:27 2012 +0200 + + Bump copyright year. + +commit faa7a6f9c7179be19fea11c64b58c0a0f2fd5dfb +Author: Nick Schermer +Date: Sun Oct 14 13:40:50 2012 +0200 + + Rename configure.in to configure.ac. + +commit 10ef12e96190fc009ba2f61107d1917ee0959584 +Author: Nick Schermer +Date: Sun Oct 14 13:12:32 2012 +0200 + + Don't force size of spinner in size label. + +commit ede666209f2ce1a798035ebcf8526d63a4fc9411 +Author: Nick Schermer +Date: Sun Oct 14 13:09:09 2012 +0200 + + Improve the free space label. + +commit daa0506d3abb84c0e068accc55cb6f139ef2824b +Author: Nick Schermer +Date: Sun Oct 14 13:08:29 2012 +0200 + + Draw translucent icons with cairo. + + Simpler and saves some pixbuf duplication. + +commit 0b54a67b2c4b48666755df00313aec9e2b0f45bf +Author: Yarema aka Knedlyk +Date: Sat Oct 13 23:22:08 2012 +0200 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 713 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 477f65cd52d23ac4aafb178f4be4dbb40c25116e +Author: Yarema aka Knedlyk +Date: Sat Oct 13 23:21:29 2012 +0200 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 713 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b3a4c45f20ed1810472a78ee0451aed51a1696b9 +Author: Nick Schermer +Date: Sat Oct 13 21:47:02 2012 +0200 + + Use icon property in gtk entry. + + This is supported in Gtk, so drop the custom code. + +commit 9c389fa4e5324eafa0a2aa579b9ea57b604b1b72 +Author: Nick Schermer +Date: Sat Oct 13 21:30:49 2012 +0200 + + Avoid criticals when scaling pixbugs to 0 pixels. + +commit d1274c70ede7f855fc4b0ba129059266d0a8939b +Author: Nick Schermer +Date: Sat Oct 13 21:04:00 2012 +0200 + + Use cairo to render the mouse gesture icon. + +commit 8e90cfa3e9ec0d1d1248294d47ad61bab1f0950e +Author: Nick Schermer +Date: Sat Oct 13 20:56:24 2012 +0200 + + Use cairo in the icon renderers. + +commit c4d3a3a9abe1977251779aa5427b854d2bc0435b +Author: Nick Schermer +Date: Sat Oct 13 18:28:30 2012 +0200 + + Don't force scrolling to the window edge. + + This avoid the small scrolls thunar sometimes makes. + +commit aab9d0378415e34d07fc8b3614d161db40ec7745 +Author: Nick Schermer +Date: Sat Oct 13 18:07:39 2012 +0200 + + Don't count directory size in deep-count-job. + + But useless to unclude the meta-data size in the grand-total. + +commit 3b0a930f6e213a5aba14d8a37fd3ca17ffdf5244 +Author: Nick Schermer +Date: Sat Oct 13 17:31:23 2012 +0200 + + Only deep-count on the same filesystem. + + Also parse the file info of the enumerator back into + the function instead of querying the files individually + (big performance inprovement). + +commit cd7f006cf4473faf59e77a63d36d1aa754aa1a48 +Author: Nick Schermer +Date: Sat Oct 13 16:08:03 2012 +0200 + + Unref mount operations in sidepane. + +commit f7ad8626aa84df1cd2e474a05dc053624be4039e +Author: Nick Schermer +Date: Sat Oct 13 15:32:32 2012 +0200 + + Emit pre-unmount asap. + + This is going to happen anyway, so emit before we even try, so + the view nicely jump to home. + +commit 6899eff311c42bff7f2a2e59b07f85b815f8d335 +Author: Nick Schermer +Date: Sat Oct 13 15:14:28 2012 +0200 + + Some optimizations. + + The file type was called too often and relativly slow in gio, + so cache the value when the file is loaded. + + Sorting by filename is also not required anymore and much slower + then the collation method. + +commit 61c59cd2eda6a9b6c3e1cdd5c942742c1e25d197 +Author: Nick Schermer +Date: Sat Oct 13 11:47:54 2012 +0200 + + Reduce size used for file monitoring. + + Not often used, so attach all data on the object + instead of storing it in the structure. + +commit 91d25840bfd7045941317db76c6f9fa7c56fac5d +Author: Nick Schermer +Date: Sat Oct 13 11:03:59 2012 +0200 + + Unref async file and do some additional checks. + +commit 315950fe7fbf9de3386c43cf469b1e0427cbe89d +Author: Nick Schermer +Date: Fri Oct 12 21:43:09 2012 +0200 + + Improvement in unmounting. + +commit 9226a465a50e5027e2def857f579114ccad211ea +Author: Nick Schermer +Date: Fri Oct 12 21:00:46 2012 +0200 + + Some random fixes. + +commit a50e51d7b0c266f274f049933f08d4df1db7d22e +Author: Nick Schermer +Date: Fri Oct 12 18:09:20 2012 +0200 + + Cache tooltip. + + Generated quite often, so cache it once. + +commit a8dddaa39ec28f24b3e73b1ddd990fce943d6f40 +Author: Nick Schermer +Date: Thu Oct 11 22:22:48 2012 +0200 + + Use the correct model. + +commit bef88fd401bf1dadb680553c6521e7a072537935 +Author: Nick Schermer +Date: Thu Oct 11 22:17:37 2012 +0200 + + Add tooltips to sidepane. + +commit 90b4f222bc0a72f986907ca7184c1b59ce22495b +Author: Nick Schermer +Date: Thu Oct 11 21:20:04 2012 +0200 + + Make hiding items in the sidepane work. + + Make the model work on top of a filter model and implement + hiding including related code and some small related + improvements. + +commit 919a5f205e7b699ec84bcfc858f15cfc7c744dfd +Author: Nick Schermer +Date: Sun Oct 7 21:25:35 2012 +0200 + + Better handling of files without info. + + Add function to check if a file has info, with remotes and + devices this sometimes is not working. Also handle null infos + better. + +commit 17dd6e7fd6bd5561b5a32d7bf0d12c7cadc641a8 +Author: Nick Schermer +Date: Sun Oct 7 21:08:43 2012 +0200 + + Fallback to activation root for pre-unmount of cdroms. + + Somestimes the mount of the removed volume does not + give a gfile, try the activation_root insteadso the window + nicely jumps to home when ejecting a cd. + +commit 28783086cff64b50f1e321165a85ea0e849f7dae +Author: Nick Schermer +Date: Sun Oct 7 20:57:32 2012 +0200 + + Add busy indication in shortcuts pane. + +commit a2e30106f3c7242d83b1496aa0d902fbb172a51e +Author: Nick Schermer +Date: Sun Oct 7 17:25:14 2012 +0200 + + Fix invalid signal. + +commit bdf2740c11aa707576b84626f3f52d996c764f24 +Author: Nick Schermer +Date: Sun Oct 7 13:46:21 2012 +0200 + + Propely leave unmounted mounts and volumes. + +commit 67578cbf9caead21d9fe137ba25862fe39455ef7 +Author: Nick Schermer +Date: Sun Oct 7 12:53:45 2012 +0200 + + Reload just-mounted files before creating a folder. + + This can happend when entering a remote filesystem. The + info is not loaded yet (so thunar_file_is_directory) fails. + +commit 19e3e68ac917c00cbe83fa0451192aeacb3b4944 +Author: Nick Schermer +Date: Sun Oct 7 12:22:01 2012 +0200 + + Add network before file system in tree. + + THis way also the devices are added before the / file system, + which is important for finding the current-dir anchestor. + +commit 8ffe01cce4bed0f0f6f8b4c2a4b7764cd9f2f8ff +Author: Nick Schermer +Date: Sun Oct 7 11:48:23 2012 +0200 + + Fix loading folder in tree view. + +commit 464fc0ab5b0adf8f737e4f7ae6ca6850f2d5ba65 +Author: Nick Schermer +Date: Sun Oct 7 11:11:09 2012 +0200 + + Emit a device-changed when a mount for a known volume is added. + +commit 06120820fe2e79cd909706cdda9536e1cddcdbde +Author: Nick Schermer +Date: Sun Oct 7 02:07:50 2012 +0200 + + Port the remains to ThunarDevice. + +commit 3dee1594752e97e7958abbfb029ce59ce026fe8f +Author: Nick Schermer +Date: Sun Oct 7 01:16:53 2012 +0200 + + Use ThunarDevice in the tree side pane. + +commit 24a3e95c1c840c5104f9918d413002737489c9ef +Author: Nick Schermer +Date: Sun Oct 7 00:14:12 2012 +0200 + + Port the shortcuts pane to ThunarDevice. + +commit 80b8bd1369e78797ff1b0450b0c760e8c11795c4 +Author: Nick Schermer +Date: Sun Oct 7 00:10:30 2012 +0200 + + Add ThunarDevice and ThunarDeviceMonitor. + + This is an shell around GVolumeMonitor and GVolume/GMount and + possibly in the future GDrive. The idea is that the models + and views don't need to know what type they handle. + + If a volume/drive/mount needs to be visible to the user, it is + added with device-added, if something changed, device-removed is + triggered and when the device need to be invisible or is removed + device-removed is called. + + It also takes care of the mount/unmount/eject feature, independent of + the type. + +commit 1995467b592f0f9c3f4ed6b960831b761ef79ae1 +Author: Nick Schermer +Date: Sat Oct 6 13:23:25 2012 +0200 + + Only show eject icon on ejectable devices. + +commit e1c6c8431be2f9f3f2d93c7535246289234453cc +Author: Nick Schermer +Date: Sat Oct 6 12:50:24 2012 +0200 + + Rename Disconnect to Eject on volumes. + +commit 5ba3277d8f0b3cae402e507d7795ac56aa948a5a +Author: Nick Schermer +Date: Sat Oct 6 12:41:56 2012 +0200 + + Idle loading on startup and reload. + +commit 7ec417f85721733f8a6315555f1e03c9c447a8c2 +Author: Nick Schermer +Date: Sat Oct 6 12:19:29 2012 +0200 + + Drop the default bookmark crap. + +commit 11e072438b966305c2f5df10a2d51d71d5b7acd3 +Author: Nick Schermer +Date: Sat Oct 6 12:16:06 2012 +0200 + + Use info from ThunarFiles for home/desktop/trash. + +commit c3c8aa5208e9b3075eebdeb376b919064269331d +Author: Nick Schermer +Date: Sat Oct 6 10:15:45 2012 +0200 + + Remove unneeded lines. + +commit 8bd14af8f0b10b6477c56b5652c2685f1b0b8207 +Author: Nick Schermer +Date: Fri Oct 5 23:27:35 2012 +0200 + + Fix unmounting devices. + +commit fdb1e49e2c80c52b7a6ad110d965bc6205752678 +Author: Nick Schermer +Date: Fri Oct 5 23:20:23 2012 +0200 + + Simplify eject and make it work for mounts. + +commit 20ce6724810584ba88e66afd8ba7b8bdd8cc86ae +Author: Nick Schermer +Date: Fri Oct 5 23:12:22 2012 +0200 + + Handle NULL ThunarFiles. + +commit e486a39069ea5ac99e59db74064f70037417053c +Author: Nick Schermer +Date: Fri Oct 5 23:02:00 2012 +0200 + + Work on a fancy-pancy sidepane in GtkTreeView. + +commit 5413440250858decf1c0ee0bb34ed2282dfcc967 +Author: Nick Schermer +Date: Fri Oct 5 16:55:49 2012 +0200 + + Add async location loading in the shortcuts view. + +commit 18163499264769379d0900c0f01ad820f12dbc31 +Author: Jannis Pohlmann +Date: Fri Oct 5 16:09:41 2012 +0200 + + Add async poking of file. + + There now is a new method thunar_browser_poke_location() for resolving GFile objects into ThunarFiles, in addition to the already existing methods for resoling ThunarFiles and GVolumes. + +commit c5d2afa13ff354c06dda474e305e8b940710e441 +Author: Nick Schermer +Date: Fri Oct 5 15:27:06 2012 +0200 + + Add support to render gicons in the shortcuts renderer. + +commit f112e549d108171f4d264951b95ee06104bbb115 +Author: Nick Schermer +Date: Fri Oct 5 15:04:15 2012 +0200 + + Don't bother about Thumbnails in .thumbnails. + + Bit too much to check this fore every file. + +commit 569d4db2c78f076e29aa24d670a920d89500bcad +Author: Nick Schermer +Date: Fri Oct 5 15:01:50 2012 +0200 + + Add function to generate display name for a GFile. + + This is a fallback in case no GFileInfo is available. + +commit fb21e1dfddeb8e6629fea02f5aae81b657b268f1 +Author: Nick Schermer +Date: Fri Oct 5 14:35:35 2012 +0200 + + Add async file loading for ThunarFile. + +commit c8e4db20f9434c4dc385dba8d752b91e6be796a8 +Author: Ivica Kolić +Date: Fri Oct 12 02:39:36 2012 +0200 + + l10n: Updated Croatian (hr) translation to 86% + + New status: 612 messages complete with 0 fuzzies and 94 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8e23cb843b38acdcf15bb1abd7b6aa6f335f4b17 +Author: Ivica Kolić +Date: Fri Oct 12 02:31:20 2012 +0200 + + l10n: Updated Croatian (hr) translation to 85% + + New status: 601 messages complete with 0 fuzzies and 105 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9633c00dbe5702f60b83817c8a0d6873470ac660 +Author: prflr88 +Date: Wed Oct 10 13:51:47 2012 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 99% + + New status: 700 messages complete with 5 fuzzies and 1 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 76f1a490c70d60fda6c69e27888dd1f93f890a4c +Author: ethan42411 +Date: Wed Oct 10 05:44:05 2012 +0200 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 94% + + New status: 669 messages complete with 23 fuzzies and 14 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 783a40fb50a8fa829b36a8f2de349e31f8ab7f2e +Author: ethan42411 +Date: Wed Oct 10 05:42:25 2012 +0200 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 94% + + New status: 667 messages complete with 24 fuzzies and 15 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8b84acca5e9cdae6e356c28ef9139882226a4503 +Author: Yarema aka Knedlyk +Date: Sun Oct 7 22:26:45 2012 +0200 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 706 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c2536971ed4c20036ee3e0e524799a96a8be10a7 +Author: Marcin Romańczuk +Date: Sun Oct 7 12:50:29 2012 +0200 + + l10n: Updated Polish (pl) translation to 100% + + New status: 706 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dad32f910e82775e8c64090dd70ce386b8209d84 +Author: Piotr Sokół +Date: Sun Oct 7 10:15:43 2012 +0200 + + l10n: Updated Polish (pl) translation to 99% + + New status: 704 messages complete with 0 fuzzies and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3df3b90844bf51ee25627bd092c613e30ff503fb +Author: Piotr Sokół +Date: Sun Oct 7 00:16:17 2012 +0200 + + l10n: Updated Polish (pl) translation to 99% + + New status: 700 messages complete with 4 fuzzies and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 51fc2758f2f4420f7de89342ed2b2a97b5a83fcf +Author: Piotr Sokół +Date: Sun Oct 7 00:14:14 2012 +0200 + + l10n: Updated Polish (pl) translation to 99% + + New status: 699 messages complete with 5 fuzzies and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 41d556d4c4ab57430c74b6566dc2425641658db3 +Author: Georgios Stefanakis +Date: Sat Oct 6 21:38:59 2012 +0200 + + l10n: Updated Greek (el) translation to 100% + + New status: 706 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6955225f88ae7c66bd2ed66c28eb5225fbf30e5d +Author: Georgios Stefanakis +Date: Sat Oct 6 21:18:52 2012 +0200 + + l10n: Updated Greek (el) translation to 98% + + New status: 692 messages complete with 5 fuzzies and 9 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 120fc032df2272a7d771a0f29ef4933d31a0cfb4 +Author: Georgios Stefanakis +Date: Sat Oct 6 20:48:40 2012 +0200 + + l10n: Updated Greek (el) translation to 95% + + New status: 677 messages complete with 19 fuzzies and 10 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 35fb895641e190775180a9faa9166e9c20c49add +Author: Georgios Stefanakis +Date: Sat Oct 6 20:46:38 2012 +0200 + + l10n: Updated Greek (el) translation to 95% + + New status: 674 messages complete with 22 fuzzies and 10 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2ffaf33d28fdd49a55091660cbc9fd53e56afe23 +Author: Marcin Romańczuk +Date: Sat Oct 6 19:34:49 2012 +0200 + + l10n: Updated Polish (pl) translation to 99% + + New status: 700 messages complete with 4 fuzzies and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c046a8ddfcac00725b3144a3e176cda75a16ac81 +Author: Cristian Marchi +Date: Fri Oct 5 19:03:16 2012 +0200 + + l10n: Updated Italian (it) translation to 100% + + New status: 706 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3e77b1fc96a30522eff6caf2105cbfa0ecef9630 +Author: Rafael Ferreira +Date: Fri Oct 5 08:14:37 2012 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 706 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 40a4a0a8f0084da584d14d8dbe7cca57f59b32f6 +Author: محمد الحرقان +Date: Thu Oct 4 22:55:03 2012 +0200 + + l10n: Updated Arabic (ar) translation to 100% + + New status: 706 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1fcb0e71632b9ed21e5f51c022687605fa4b4537 +Author: Andrzej +Date: Thu Oct 4 18:27:23 2012 +0200 + + Use g_utf8_collate_key_for_filename for sorting (bug #7110). + + This should resolve issue with non-ascii locales and it + respects the LC_COLLATE setting of the user. + +commit a877a2a50e64750f3118246f272bf17fb34de2cf +Author: Pjotr vertaalt +Date: Thu Oct 4 12:53:17 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 706 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 112ee589367d7ed9c522fc1cfacda0e10f1c2531 +Author: prflr88 +Date: Thu Oct 4 07:10:18 2012 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 98% + + New status: 696 messages complete with 5 fuzzies and 5 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2a3729f01a987562d142c8ca99623f60d83d3f17 +Author: Nick Schermer +Date: Wed Oct 3 22:02:01 2012 +0200 + + Add some attributes on common used functions. + +commit 956b0f8960c39e939c6915edab5b425c07dc815e +Author: Nick Schermer +Date: Wed Oct 3 21:54:47 2012 +0200 + + Make ThunarFile structure private. + + Not used, only through macros. This gives better type + checking esp with debugging enabled. + +commit 2172fa840c7606cd18e6758456e8dc40e5845adf +Author: Nick Schermer +Date: Wed Oct 3 21:42:09 2012 +0200 + + Only change file mode if old and new differ. + +commit 1ec8ff89ec5a3314fcd6a57f1475654ddecc9875 +Author: Nick Schermer +Date: Wed Oct 3 21:38:32 2012 +0200 + + Add secure desktop file launching (bug #5012). + + Only allow direct execution of desktop files in an XDG + directory and if they are executable. + +commit 5c2bf770b6ad5a4d7259a60e692483d4a1ea087d +Author: Piotr Sokół +Date: Wed Oct 3 18:30:50 2012 +0200 + + l10n: Updated Polish (pl) translation to 97% + + New status: 682 messages complete with 12 fuzzies and 7 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 544ada758ea527d01f631fa722f109c12892020a +Author: Nick Schermer +Date: Tue Oct 2 20:06:32 2012 +0200 + + Don't lookup actions that are not used. + +commit 2399620aacef34c4bd5da05e14f01055aee610ec +Author: Nick Schermer +Date: Tue Oct 2 20:05:21 2012 +0200 + + Fix segfault when creating a new folder. + +commit 77c7dba029442c1c5c198497ca85ed3da099a80b +Author: Nick Schermer +Date: Tue Oct 2 18:51:40 2012 +0200 + + Scroll to first file with pattern select. + +commit 02de74a76f493837a12925248187206651f26439 +Author: Nick Schermer +Date: Tue Oct 2 17:43:19 2012 +0200 + + Don't update entry name after rename (bug #8452). + + If the job succeeded the typed name is also the new name. In the + worst case, we have to wait 800ms for the file monitor. + + What could easily happen was an invalid file because of the rename + resulting in a possible segfault. + +commit 32b56bc3b41074a468404679ea50e4db0f54f6b4 +Author: Nick Schermer +Date: Tue Oct 2 17:38:28 2012 +0200 + + Resuce saving on startup and fix zoom-out sensitive. + + Reduce 1 save call on startup that is not required. Also + always update the action sensitivity, this failed for the + smallest zoom level (because THUNAR_ZOOM_LEVEL_SMALLEST == 0). + +commit 1a7f8e3c7f7b1874192fb6161de7b9e30727bc26 +Author: Nick Schermer +Date: Tue Oct 2 17:05:58 2012 +0200 + + Handle the very unlikely null case in file_name too. + + This can technically never happen, but better prepare for it. + +commit d552e492add0bb6e4e7b56e275a1f7c8653d0e37 +Author: Nick Schermer +Date: Tue Oct 2 17:02:40 2012 +0200 + + Handle null content-types when sorting (bug #8465). + +commit 06ec609814e5bf8a8cc7df9e33e76b51e329bece +Author: Nick Schermer +Date: Mon Oct 1 22:48:00 2012 +0200 + + Don't save properties when the window is not visible. + + These are all saved for no reason when the window is still + under construction. + +commit 917f4ca7efe2a41ece8ddc33342cfbef754debd0 +Author: Nick Schermer +Date: Mon Oct 1 22:29:30 2012 +0200 + + Allow all side pane sizes (bug #4183). + + Also use signal to save the pane position, because the binding + fired tons of changes to the preferences. + +commit af2fcaebf673d730b1297929978ff74d7ca71346 +Author: Nick Schermer +Date: Mon Oct 1 21:24:08 2012 +0200 + + Port settings to xfconf. + + Loading over DBus is a tiny bit slower, but makes + it a lot easier to change values and also saves a + lot of hassle with modified properties. + +commit 6b99127271a999cfb94364f4035cf9d0f96f4ac5 +Author: prflr88 +Date: Mon Oct 1 20:00:37 2012 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 97% + + New status: 686 messages complete with 9 fuzzies and 6 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 91c877d2baa406df5efb72e8cc8f15c691099613 +Author: Cristian Marchi +Date: Mon Oct 1 15:41:58 2012 +0200 + + l10n: Updated Italian (it) translation to 100% + + New status: 701 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2821da6db0f164572577bbf7be262ca9f56d1d44 +Author: Pjotr vertaalt +Date: Mon Oct 1 12:21:12 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 701 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 070ead555a10ed58db7f3d31871a755ffc0c7193 +Author: Ivica Kolić +Date: Mon Oct 1 00:56:27 2012 +0200 + + l10n: Updated Croatian (hr) translation to 85% + + New status: 600 messages complete with 0 fuzzies and 101 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ecad36219b96785e0549dd8ca133123a90c09a42 +Author: Nick Schermer +Date: Sun Sep 30 21:36:40 2012 +0200 + + Check free space before copying (bug #5658). + +commit 0901472b684d8621bbbbc50c04d95eb5783206f8 +Author: Nick Schermer +Date: Sun Sep 30 18:36:35 2012 +0200 + + Set cancel message in progress label, not bar. + +commit 9e0684eecacc7d6bc3c295f3910d0a4bfa761c21 +Author: Nick Schermer +Date: Sun Sep 30 18:32:40 2012 +0200 + + Drop removed file from POTFILES.in. + +commit f099302d60bbf463a8275d1be0547663b801a47d +Author: Nick Schermer +Date: Sun Sep 30 18:29:36 2012 +0200 + + Show transfer rate in transfer dialog (bug #8250). + + Show transfer rate when copying/downloading a file. The + rate is show after 10 seconds to be more reliable. + + The remaining time is also calculated with the transfer + speed. This makes the time snappier when the transfer + rate drops. + +commit 56d983d9387e3ea00feaaa3060a62383ccdf4ef9 +Author: Nick Schermer +Date: Sun Sep 30 16:31:00 2012 +0200 + + Make sure the dbus error is unset (bug #8046). + + Shouldn't be needed, but better be sure. + +commit e121ed80d9bfba8b133ca1943f76ad48bcab9b76 +Author: Nick Schermer +Date: Sun Sep 30 15:43:20 2012 +0200 + + Remove unused functions or make them static. + +commit edc8e5da5777813956cd8b30a4f64f586c97a3ee +Author: Nick Schermer +Date: Sun Sep 30 13:56:18 2012 +0200 + + Remove right-click drag possibility (bug #3549). + + This behaviour created conflicts with the previous commit + and IMHO there is no reason to allow drags with the 3rd + mouse button, only create for menu popup and 1st button + for dragging. + +commit d0513de8a5faa8f2f9436a8b059e674a2deea103 +Author: Nick Schermer +Date: Sun Sep 30 13:49:28 2012 +0200 + + Directly popup menus on selected items (bug #3550). + + No need to delay this. It also resulted in no menu + when gtk-menu-popup-delay = 0. + +commit 8b33ac5035afba919d656c7dc18b336a260a606d +Author: Nick Schermer +Date: Sun Sep 30 12:59:26 2012 +0200 + + Make plugin warning non-fatal (bug #2604). + + When compiler with low lever debugging, these warnings + can result in an abort. Use g_printerr to avoid this, + warnings are harmless anyway. + +commit a05cae53be734fcb9c7ec7fa292ab4054d8c3ac0 +Author: Nick Schermer +Date: Sun Sep 30 12:26:29 2012 +0200 + + Don't allow starting multiple daemons (bug #3814). + + Quit when the org.xfce.Thunar is already acquired. This is + saver then quiting the running instance and take over, because + the daemon could own windows or work on a transfer. + + In case things hang, the user can always run thunar -q and + afterwards thunar --daemon. + +commit 4393f889f081f285c4cfd855bfd1bea730f28cf7 +Author: Pjotr vertaalt +Date: Sat Sep 29 23:39:23 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 693 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 40a63bbcadfa19e60d1bd53d5c274d9a269db047 +Author: Nick Schermer +Date: Sat Sep 29 23:12:18 2012 +0200 + + Center align wrapping text in the renderer. + +commit 38dc34034c8d0fda651aa5c4d0430d91f80cdafb +Author: Nick Schermer +Date: Sat Sep 29 22:20:54 2012 +0200 + + Improve keyboard navigation in shortcuts view (bug #6635). + + When using up/down in the shortcuts view, enter the + directory but without loosing focus. + +commit e20942b733be6fcdf33595f000251dcb00e55e7a +Author: Nick Schermer +Date: Sat Sep 29 21:55:15 2012 +0200 + + Improve statusbar selection text (bug #8989). + + Couple of improvements: + - Only sum the filesize of regular files. This way we don't show + the size of directory and other files. Bug 8989. + - If multiple files are selected, make a difference between + folders and other items. + + This results in strings like "2 folders, 5 other items", "5 items", + or "5 folders". + +commit 8bbed0e37b5a6aa2170a31590f633fd6cf95858c +Author: Asier Iturralde Sarasola +Date: Sat Sep 29 21:22:19 2012 +0200 + + l10n: Updated Basque (eu) translation to 98% + + New status: 681 messages complete with 8 fuzzies and 4 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3a72b6bbd22d49922b0b031468a1968d97e5767a +Author: Asier Iturralde Sarasola +Date: Sat Sep 29 21:13:47 2012 +0200 + + l10n: Updated Basque (eu) translation to 98% + + New status: 681 messages complete with 8 fuzzies and 4 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 78e5aee2c256701a9357da9642f482b572d03fa6 +Author: Asier Iturralde Sarasola +Date: Sat Sep 29 21:03:47 2012 +0200 + + l10n: Updated Basque (eu) translation to 98% + + New status: 681 messages complete with 8 fuzzies and 4 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5dfbaf6461ee5bc41a2fb82bb7c77b11de7c7109 +Author: Asier Iturralde Sarasola +Date: Sat Sep 29 20:53:04 2012 +0200 + + l10n: Updated Basque (eu) translation to 98% + + New status: 681 messages complete with 8 fuzzies and 4 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 56d970c29eeaa8591b76760ab6d667ee47b26fe1 +Author: Asier Iturralde Sarasola +Date: Sat Sep 29 20:43:44 2012 +0200 + + l10n: Updated Basque (eu) translation to 98% + + New status: 681 messages complete with 8 fuzzies and 4 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d6dcddd3afdd0247c531818089abb878b2b4f73e +Author: Nick Schermer +Date: Sat Sep 29 19:22:02 2012 +0200 + + Add menu item to hide the menu bar. + + Option to hide the menu bar. You can temporarily toggle + the visibility with F10, which is also the key to focus + the first item (unfortunatly gtk_menu_shell_select_first + is broken). + +commit 372d5d61b987c7fd1dfd5eed67955f90db9f125e +Author: Nick Schermer +Date: Sat Sep 29 15:50:16 2012 +0200 + + Don't copy templates but create them (bug #8312). + + Instead of copying templates, create new files and allow + to feed a template file. It is then easy with + g_output_stream_splice to feed the template data into + the new file. + + This way the new file has the template data, but not + any of the attributes (timestamps etc). + +commit 369712ba250ac7e41939c9aa4aaa0f92ec18a99f +Author: Nick Schermer +Date: Sat Sep 29 14:28:43 2012 +0200 + + Depend on glib 2.30 and remove some #if's. + + Nearly all gtk 2.24 distros have 2.32 or newer, so + don't depend on 2.28 and use 2.30. + +commit b54d10fbfd88f1555b31626e49a78dbe2e9da286 +Author: Cristian Marchi +Date: Sat Sep 29 11:01:29 2012 +0200 + + l10n: Updated Italian (it) translation to 100% + + New status: 691 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d9129c8d59aecd3923e49db23266b271b50776b8 +Author: Nick Schermer +Date: Fri Sep 28 21:09:46 2012 +0200 + + Only collect image data if the mime-type is image/* (bug #2913). + + Bit of a rough check, but it should be save. Invalid or empy svg files + are not detected as image/svg+xml. + Another advantage is that not all files are loaded to check if + it is an image, only files that look like images. + +commit ae5f4024ea255d762627babcbdff967d722bbb6a +Author: Nick Schermer +Date: Fri Sep 28 20:49:48 2012 +0200 + + Unset DBUS variables once registered (bug #8800). + + Remove the DBUS_STARTER_ADDRESS and DBUS_STARTER_BUS_TYPE + environment variables when the dbus service is registered + and started from the service file (by thunar-settings for + exampple). + + Else these variables will also be in the child environ causing + problems in some applications that are execute by thunar. + +commit 28cf90311c3f8b66211838867f1a256d863d4bec +Author: Nick Schermer +Date: Fri Sep 28 20:49:27 2012 +0200 + + Set desktop type in empty desktop files. + +commit 1c0e847306b687ae6ca7de7ac6d374d24e0a37b9 +Author: Nick Schermer +Date: Fri Sep 28 20:38:33 2012 +0200 + + Allow editing desktop that are empty. + +commit b1599bc6b8fd64588468d88387e1ea20bcbe889d +Author: Nick Schermer +Date: Fri Sep 28 19:33:30 2012 +0200 + + Allow override Backspace as open-parent action (bug #5922). + + If you don't want Backspace event result in a back action, but + in a parent-folder action. You can set Backspace as an accelerator + for the open-parent action, without conflicts. + +commit 3ee371cfd06dcf78d7766e10cb462b1bcc422f46 +Author: Nick Schermer +Date: Fri Sep 28 19:01:26 2012 +0200 + + Add hidden option to show full path in window title (bug #6412). + + Set MiscFullPathInTitle=TRUE in the thunarrc to enable the + option. + +commit 7cb0de9b35f1bb0bbc5dc3104a25bcd79cb8b374 +Author: Nick Schermer +Date: Fri Sep 28 18:22:52 2012 +0200 + + Remove keys if field is empty in properties page. + + Some apps don't support for example an empty Path= so + remove the key from the file if the value is nul. + +commit cb4119a20abb4c1eb70ef595c953d3ed557cca40 +Author: Pjotr vertaalt +Date: Fri Sep 28 15:41:17 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 691 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 71ec7fe8a29f84ba7937bdc91cfd64f560d6cfde +Author: Gheyret Kenji +Date: Fri Sep 28 09:24:51 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 99% + + New status: 689 messages complete with 1 fuzzy and 1 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fa891128e3a3ce06fb2b6c1a227fbbb700cd2b43 +Author: Nick Schermer +Date: Thu Sep 27 22:47:13 2012 +0200 + + Generate thumbnails paths on the fly. + + This saves a lot of md5 hash creations, also make + the code a bit more efficient. + + Drop thumbnail::* namespace collection, since we don't + use that. + +commit 99fff9f6aaa3b64547eaf5f2244da310c8ad51bb +Author: Nick Schermer +Date: Thu Sep 27 22:10:07 2012 +0200 + + Improve display name creation (bug #8388). + + Better base name creation if the GFileInfo has no name. + +commit 5f04c77f57bea3786b45b4a0f92430577111adba +Author: Nick Schermer +Date: Thu Sep 27 21:42:25 2012 +0200 + + Use G_KEY_FILE_DESKTOP macros. + +commit 626b11c4dcf3847ebdf520d7c9c6786a9b0c8126 +Author: Peter de Ridder +Date: Thu Sep 27 21:36:57 2012 +0200 + + Add working directory entry to apr (bug #5760). + +commit b37271eb6dcdbc943520fc9c7563508f5480d19c +Author: Peter de Ridder +Date: Thu Sep 27 21:31:09 2012 +0200 + + Use Path from desktop file as CWD (bug #5760). + +commit c69f40c34b794567ff890570d7064e555c39b991 +Author: Nick Schermer +Date: Thu Sep 27 20:54:10 2012 +0200 + + Improve clipboard handing (bug #8271). + + Add case if the caller accepts uris. If normal utf-8 text + is requested, return filenames, not uris. + +commit acc411d36b8c82f105ff0be79beb35f7fe8ce47f +Author: Yarema aka Knedlyk +Date: Thu Sep 27 20:55:12 2012 +0200 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 689 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3afa40e0582e2a93d5582d66c93e4af464c1c1c4 +Author: Nick Schermer +Date: Thu Sep 27 19:42:48 2012 +0200 + + Don't add empty line at end of uri list (bug #9124). + + Nautilus doesn't understand empty element at the end of the + string. Tested with Nautilus 3.4. + +commit c32ef2bc99a6c8694873400bb4a61647992a5a5d +Author: Nick Schermer +Date: Thu Sep 27 18:00:22 2012 +0200 + + Update POTFILES.in. + +commit 94741acbc2ca0a6b667138ae7b2bb89e9231f713 +Author: László Horváth +Date: Thu Sep 27 19:05:39 2012 +0200 + + l10n: Updated Hungarian (hu) translation to 97% + + New status: 674 messages complete with 10 fuzzies and 5 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2dc0ad57067562fdb980c5b8f2bfaf69af461975 +Author: Pjotr vertaalt +Date: Thu Sep 27 15:47:13 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 689 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 73e42e7fee2d6885f7d29456bafd97e8ddfcede8 +Author: Nick Schermer +Date: Wed Sep 26 23:29:42 2012 +0200 + + Store metadata in GVFS's daemon. + + We already require GVFS for a trash implementation, so + why ot rely on the metadata storage too. + +commit 2ca57a22aa6c640ce6822a0afa41b3358357813c +Author: Nick Schermer +Date: Wed Sep 26 21:53:51 2012 +0200 + + Extend the launch content with a timestamp and icon (bug #4724). + + This makes launchding with startup notification work. Should + fix focus issues. + +commit 30fad13fb84ce2572d6aa96c3956fa7c5ab61206 +Author: Nick Schermer +Date: Wed Sep 26 21:38:17 2012 +0200 + + Don't show images on image menu items. + + Gtk takes care of this and it breaks "Show images in menus" + in the appearance settings. + +commit 1df6a901485bd92319d2332c8e81a88a27f5bbb7 +Author: Nick Schermer +Date: Wed Sep 26 21:35:43 2012 +0200 + + Fix icon size for templates in the menu. + +commit 44cc46cdbb60dd6d3ba450f38121b9a6aad85c2a +Author: Mike Massonnet +Date: Wed Sep 26 21:07:44 2012 +0200 + + Show full template filename in menu (bug #6140). + + Quite often template names are easier to understand when + the extension is shown. + +commit 9ceae105dce96ed03b77c2fe7adcfd7dd8c54fd8 +Author: Priyank Gosalia +Date: Wed Sep 26 20:59:20 2012 +0200 + + Fix function name typo in API docs (bug #5459). + +commit 9316fd300d0ccb01cb428d9840c1856be4f97468 +Author: Nick Schermer +Date: Wed Sep 26 20:57:14 2012 +0200 + + Fix typo "atleast" -> "at least" (bug #5560). + +commit dfd6faa57224a9c3a697e9781aa4bd7525d9832b +Author: Nick Schermer +Date: Wed Sep 26 20:51:55 2012 +0200 + + Remove XdndDirectSave0 protocol. + + It was added to allow dragging files from the old mozilla based + web browser to the frame. The mozilla side of the patch was never + upstreamed and anyway the new webkit based browser doesn't support + the protocol. + +commit 7fcfc3c37d40e013e741f6ab40e5cf14e1387fca +Author: Adam Plumb +Date: Wed Sep 26 20:45:23 2012 +0200 + + Emit file changed once (bug #6094). + + thunar_file_set_thumb_state also created a changed event. + +commit 07787a1b5265480671a78e69d0a6e5e1c917f4ae +Author: Nick Schermer +Date: Wed Sep 26 20:37:43 2012 +0200 + + Use the first job's icon-name for the dialog (bug #6808). + + Changing icons is probably a bit strange and lets assume quite + often only a single job is running, this is better then the + default Thunar icon. + +commit 406b914642fa3ff3f571261e536b62ab33e7a7ab +Author: Nick Schermer +Date: Wed Sep 26 20:28:22 2012 +0200 + + Make the cancel button smaller and don't take focus (bug #7082). + + A small cancel button is good enough. Also remove focus from + the cancel button, so you need to click it, else every key + press would be enough to cancel a transfer. + +commit d9d0bc4d2937580cc7429ca8f41aaa675ec10461 +Author: Nick Schermer +Date: Wed Sep 26 19:56:51 2012 +0200 + + Use key files directly to load the mime data. + + GAppInfo uses key files to load the data internally, so + use that directly to extract the mime data as well. + +commit dfd51c787e421854face98edf891661bef644c66 +Author: Nick Schermer +Date: Wed Sep 26 19:43:26 2012 +0200 + + Check mime type in desktop files in the sendto menu (bug #7392). + +commit 6d8057911d2d88286893821b6999e8def3730809 +Author: Nick Schermer +Date: Wed Sep 26 18:37:30 2012 +0200 + + Use Gtk function to get uris in tpa plugin. + + The function returns NULL if the data is not valid. + +commit 05c7d2372248d0ce90fda57e941958acf92a4a2e +Author: Nick Schermer +Date: Wed Sep 26 18:35:36 2012 +0200 + + Cleanup some example code. + +commit 9e73c836f4df979e7fa6bb1ccb6ed92c5ba1b73e +Author: Nick Schermer +Date: Wed Sep 26 18:29:13 2012 +0200 + + Hide NoDisplay applications in the File menu. + +commit 723b0243e40ae8bcbb2ab832016927ccd8c3728e +Author: prflr88 +Date: Wed Sep 26 18:46:29 2012 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 99% + + New status: 689 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1d65c006f8cfe2fd772609d9939756a34f63710d +Author: Nick Schermer +Date: Tue Sep 25 21:30:39 2012 +0200 + + Remove unused variable now uca uses gicons. + +commit 8732210f0ed171d2b8a55e3d69e64d88b0de15bd +Author: Nick Schermer +Date: Tue Sep 25 21:08:14 2012 +0200 + + Remove deprecated functions (bug #7795). + +commit 2e0fe9b4c2a6e5ad66b52e85880c26f2ad2dba0c +Author: Ivica Kolić +Date: Tue Sep 25 21:04:43 2012 +0200 + + l10n: Updated Croatian (hr) translation to 86% + + New status: 595 messages complete with 0 fuzzies and 95 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 098ee25529c04957d93ac42969271f47585e507e +Author: Nick Schermer +Date: Tue Sep 25 20:49:27 2012 +0200 + + Use GIcons in the UCA plugin (bug #8979). + + This removed the icon lookup code, we cache the GIcon and + it makes custom icon locations work again. + +commit 370c97f880470133fd3e974308e2cfe0703515a5 +Author: Nick Schermer +Date: Tue Sep 25 20:16:55 2012 +0200 + + Use system-file-manager iconname in desktop file (bug #9128). + +commit 9b831020542e41435817733ad5ae6c71ee8c9b54 +Author: Nick Schermer +Date: Tue Sep 25 20:13:37 2012 +0200 + + Sort recommended applications (bug #8927). + +commit a466d0668d9696d206f37c89a28d1ff5d7e6eebb +Author: Nick Schermer +Date: Tue Sep 25 20:12:31 2012 +0200 + + Also check visible for applications in chooser button. + +commit 159346a32e6d014267f45daed2ba7491f7b95838 +Author: Nick Schermer +Date: Tue Sep 25 20:08:40 2012 +0200 + + Hide applications that are not visible (bug #9169). + + Check if they have NoDisplay set or OnlyShowIn doesn't match. + +commit a34d540c346166768bce2caf13807a851fb2bfd9 +Author: Lionel Le Folgoc +Date: Tue Sep 25 20:03:01 2012 +0200 + + Don't segfault when supported schemes returns NULL (bug #9224). + + Sometimes g_vfs_get_supported_uri_schemes() returns NULL, handle + that properly. + +commit aa3e22ffa21d8f0f6836df51450c95d9e466fa0f +Author: Nick Schermer +Date: Tue Sep 25 18:59:36 2012 +0200 + + Use previous thumb state instead of mime check. + + If a thumb previously was generated without problems, + try it again without checking the scheme/uri combination. + + Same for files with the thumb state set to none; don't + both and skip them. + + This saves a lot of checking when resizing or scrolling a + view. + +commit 98c944530cd9cb64ea2b63767a99fe60c1ecee04 +Author: Nick Schermer +Date: Tue Sep 25 18:46:48 2012 +0200 + + Make the thumbnailer a singleton. + + Saves a lot of dbus traffic when opening multiple windows + and the object is perfectly capable to generate more requests + at once. + +commit bde6706f2ccc9d04f31b7804c00b88aff3c17918 +Author: Nick Schermer +Date: Tue Sep 25 18:41:23 2012 +0200 + + Optimize supported type comparison in the thumbnailer. + + Traversing the list was very inefficient, so go for the lazy + way and prepare a hash table with mimetypes and the supported + schemes in an array. This way it becomes much faster to + find out if a file is supported by the thumbnailer. + +commit f31046c1d802213c966b75c8deb499d2af55f448 +Author: jc jc1 +Date: Mon Sep 24 21:08:13 2012 +0200 + + l10n: Updated French (fr) translation to 99% + + New status: 687 messages complete with 3 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 714e6b67e4469e6408b8cac188b5474ddc3dddc1 +Author: jc jc1 +Date: Mon Sep 24 21:03:31 2012 +0200 + + l10n: Updated French (fr) translation to 98% + + New status: 677 messages complete with 13 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 803adcaa403278913e306a29b05fe40814dfa6c5 +Author: Nick Schermer +Date: Mon Sep 24 19:51:28 2012 +0200 + + Regenerate thumbnails on file changes (bug #8473). + + Watch file changes in the model and if this occurs, poke the + thumbnailer to regenerate the thumbnail. + + Also reduce the file-change emission a bit for cacse we don't + respond to (thumbnailing wise). + +commit 1e23b9a0675d4eaa2b75e7e7dadab293b456f7ac +Author: Nick Schermer +Date: Mon Sep 24 18:36:38 2012 +0200 + + Don't request thumbnails twice when entering a folder. + + Both in set_dir and size_allocate the images were requested, + resuling in doubling the traffic between tumbler and thunar. + +commit 62b1d1000c420d3dc5af9667e73148fd5e410a30 +Author: Nick Schermer +Date: Mon Sep 24 18:32:12 2012 +0200 + + Rework the internals of the thumbnailer. + + Use a single structure to follow a request inside the thumbnailer + instead of 3 hashtable. This makes the code easier to understand + and the hashtables were a bit overdue because there are never more + then n_windows running at the same time. + + Also properly implement dequeue. Jobs were never properly aborted + and also the returned uris were emitted inside thunar, even if + the file was not visible anymore. + + Don't emit file changes of jobs that are not known in the active + thumbnailer. Previously a file change was emitted n_windows-times + even if the other windows didn't even display the file. + +commit 22b43d384096187242a1f3a329d04ecc8a92abc4 +Author: Nick Schermer +Date: Sat Sep 22 21:32:56 2012 +0200 + + Don't emit a file change if thumbnail state is identical. + +commit 497f3353275a289471748f2412e2464d64198761 +Author: Cristian Marchi +Date: Sun Sep 23 10:38:34 2012 +0200 + + l10n: Updated Italian (it) translation to 100% + + New status: 690 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3f1ae7f9a0230b10fe473916a78653bfef2ac0f4 +Author: Seong-ho Cho +Date: Sun Sep 23 09:45:51 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 690 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b1af512319a17e8bb6609a1ed3dbf5143de5aeb0 +Author: Harald Judt +Date: Sat Sep 22 20:55:18 2012 +0200 + + Schedule thumbnail reload when manually reloading (bug #8473). + +commit 9b7506cc28a6dd1c0cc96438a75350cca86248ec +Author: Nick Schermer +Date: Sat Sep 22 20:35:34 2012 +0200 + + Change the way permanent deletes are detected. + + A part of bug #4173 was not resolved properly. The hard-coded + actions were properly blocked, but custom actions with a Shift + key (override delete with Shift+Delete to avoid easy deletion) + was always detected as a permanent deleted, not move to trash. + +commit eb8320d307a27a1629fd5cbc4f96d8bed12e539d +Author: Yarema aka Knedlyk +Date: Sat Sep 22 20:00:58 2012 +0200 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 690 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0048f569e32623321bcef6844df1c94b8a0833d8 +Author: Nick Schermer +Date: Sat Sep 22 19:03:53 2012 +0200 + + Remove line duplicate in previous commit. + +commit c08072e1b8e7af68aefb65052f8a8233e9389ecf +Author: Harald Judt +Date: Sat Sep 22 19:01:15 2012 +0200 + + Force bulk renamer when Shift is pressed (bug #7684). + + When theShift button is pressed in combination with F2, + force opening the bulk renamer, even if only 1 file + is selected. + +commit a9f67569ac06268aef1b070836e37984f387b1c6 +Author: Yarema aka Knedlyk +Date: Sat Sep 22 15:39:07 2012 +0200 + + l10n: Updated Ukrainian (uk) translation to 99% + + New status: 684 messages complete with 1 fuzzy and 5 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 57d64611132b69a81873c6286f8d6771d34b655f +Author: Nick Schermer +Date: Sat Sep 22 10:46:49 2012 +0200 + + Resize rename dialog based on filename length (bug #7684). + + Check the layout size of the entry and grow the dialog to + fit the contents. Maximum size is 90% of the parent window + size. Minimum is 300px, like it was. + +commit c861731d5ace6fe538763f411885663cc8627527 +Author: Cristian Marchi +Date: Fri Sep 21 21:09:15 2012 +0200 + + l10n: Updated Italian (it) translation to 98% + + New status: 680 messages complete with 6 fuzzies and 4 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 327078054248e9fcc181d9d9d74b32ab9398391e +Author: Gheyret Kenji +Date: Fri Sep 21 09:46:54 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 99% + + New status: 689 messages complete with 0 fuzzies and 1 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e49930178456ff7e6f75880d88609909397af923 +Author: Gheyret Kenji +Date: Fri Sep 21 09:43:19 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 99% + + New status: 685 messages complete with 2 fuzzies and 3 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 19aea038c79d988528eb7c6169f97a2c10c2e078 +Author: Gheyret Kenji +Date: Fri Sep 21 09:41:29 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 98% + + New status: 680 messages complete with 6 fuzzies and 4 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8bad097939248431f7ba7142755629788d3a62d8 +Author: Pjotr vertaalt +Date: Wed Sep 19 16:55:27 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 690 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ca17ff49ac72176e929c55ae4a5c2e80df080903 +Author: Tegegne Tefera +Date: Wed Sep 19 07:58:17 2012 +0200 + + l10n: Thuna Amharic po file submit + + New status: 3 messages complete with 0 fuzzies and 679 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d385dd9d08f84cb11797ec3421f2f0076446499f +Author: Nick Schermer +Date: Tue Sep 18 22:42:39 2012 +0200 + + Implement selection invertion. + +commit c21dc002c6cac3347bb94bc73627aef1d407cca6 +Author: Nick Schermer +Date: Tue Sep 18 21:40:18 2012 +0200 + + Improve view response when using dnd between 2 windows. + +commit 8fc3176fb50dbd00f381c16262917171840ff4ba +Author: Nick Schermer +Date: Tue Sep 18 18:51:06 2012 +0200 + + Use mnemonic widgets in the properties dialog. + +commit 8b99888a739492fd21426b525bd1fa174ee830e4 +Author: Pjotr vertaalt +Date: Tue Sep 18 11:02:02 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 688 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 41c2831bb36dee3837dea31a788054b509a2d613 +Author: Gheyret Kenji +Date: Tue Sep 18 03:45:33 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 99% + + New status: 685 messages complete with 1 fuzzy and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b96dc0a1a84e222bae4dbce16f3dddd51e5af6b1 +Author: Gheyret Kenji +Date: Tue Sep 18 03:43:49 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 98% + + New status: 681 messages complete with 6 fuzzies and 1 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1d837e2ce11ea2d9d0197a1f4088fa5271ca8974 +Author: Gheyret Kenji +Date: Tue Sep 18 03:42:50 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 98% + + New status: 680 messages complete with 6 fuzzies and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 545cc202db6e8de741f96cc3a38e6290d7063034 +Author: Efstathios Iosifidis +Date: Mon Sep 17 23:08:17 2012 +0200 + + l10n: Updated Greek (el) translation to 99% + + New status: 682 messages complete with 3 fuzzies and 3 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5a3cc67aad56fdff6860b4d932a03ba748db7a28 +Author: Seong-ho Cho +Date: Mon Sep 17 07:28:01 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 688 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 39a42d57c8f0bf33e307bff48be7831d56e38753 +Author: Nick Schermer +Date: Sun Sep 16 22:33:58 2012 +0200 + + Rebuild po files. + +commit 853001496fd176d6a60fca9ca8709686dd0f67c1 +Author: Nick Schermer +Date: Sun Sep 16 18:32:05 2012 +0200 + + Use g_(s)list_free_full where possible. + +commit e9ead973243a05d284f7db064430ff95b023f82d +Author: Nick Schermer +Date: Sun May 27 10:42:21 2012 +0200 + + Drop the button from the entry toolbar. + +commit e896587aceea32af7bb7bfab5a30e644087cd68d +Author: Nick Schermer +Date: Fri May 25 20:18:19 2012 +0200 + + Use a GtkSpinner instead of the ThunarThrobber. + + This is a new widget since 2.20, so we can use it. In Gtk3 + this widget also has a special rendering class in the + theme engine. + +commit c1420216a140e6e87b9291f4a5dcc0223c4432e7 +Author: Nick Schermer +Date: Fri May 25 19:23:37 2012 +0200 + + Drop usage of GtkObject and use GObject. + + Implement the destroy signal in ThunarFolder so we can + drop the usage of GtkObject. + +commit 463f66b5f077c41f84962c78dcdfe44101accbec +Author: Nick Schermer +Date: Wed May 16 18:05:26 2012 +0200 + + Use GtkLabel for actions, drop SexyUrlLabel. + +commit 076f73c290a2a6d5e880344eb15f117824a0a7ba +Author: Nick Schermer +Date: Sun Sep 16 18:33:20 2012 +0200 + + Depend on Gtk 2.24 and Glib 2.28. + +commit a6bed8f13d9e39fbf86b6f4128c06df9028e9d83 +Author: Nick Schermer +Date: Sun Sep 16 20:11:12 2012 +0200 + + Set full filenames list tooltip in the Names label. + +commit c75b772eaec23caa15e0d1ca9f0ff5b4cf3f6abe +Author: Nick Schermer +Date: Sun Sep 16 19:57:44 2012 +0200 + + Fix compiler warnings. + +commit e88682f80219f130ae543a170a73d1d2fc1f67b5 +Author: Nick Schermer +Date: Sun Sep 16 17:56:09 2012 +0200 + + Don't error during counting with multiple files. + + Handle this differently, so the count job does not + error, but if it turns out all content was unreadable + the size label will show a "permission denied" error. + +commit 1183d1a843d122bc121415f6968a67831b66c16d +Author: Nick Schermer +Date: Sun Sep 16 17:30:39 2012 +0200 + + Finalize permission handing for multiple files. + +commit e66e43d47ac05c50b9f31ff7a31931e7f103c9cb +Author: Nick Schermer +Date: Fri Sep 14 21:57:20 2012 +0200 + + Improve handling combinations of file permissions. + +commit 6e371848de03b01378dc1245efce8a4e5141ab13 +Author: Nick Schermer +Date: Fri Sep 14 19:01:21 2012 +0200 + + Fix critical error when F5 is pressed. + + Because the focussed widget was not visible in the multiple + view, and assertion occured when F5 was pressed: + 'WIDGET_REALIZED_FOR_EVENT (widget, event)' failed. + +commit 400dc13336243b4eed153dbfeef8e35ad37ca8c1 +Author: Nick Schermer +Date: Thu Sep 13 22:20:32 2012 +0200 + + Directly show the throbber for deep count jobs. + + It gives better feedback if the throbber is shown directly + when a deep count job is started. For single files it is always + hidden. + +commit 3867630a728710beda20142b2072c32d61280adf +Author: Nick Schermer +Date: Thu Sep 13 22:01:49 2012 +0200 + + Move some code around in size label. + +commit f60c5c3443d87220b3be28157683e39d7ae32564 +Author: Nick Schermer +Date: Thu Sep 13 21:55:46 2012 +0200 + + Make size label files property read write. + +commit 785499544063df50003f0ea6b4f001e00fc96d44 +Author: Nick Schermer +Date: Thu Sep 13 21:53:16 2012 +0200 + + Make the deep count job handle multiple files. + + Not the size label... + +commit fac3514fb550c404fc275dc59330ff9afc490cb1 +Author: Nick Schermer +Date: Thu Sep 13 20:45:19 2012 +0200 + + Make parts of the permissions chooser work with multiple files. + +commit e0acf17367457f73676e78b4df90484a69711a7b +Author: Nick Schermer +Date: Thu Sep 13 18:22:58 2012 +0200 + + Make chooser button work again if a single file is selected. + +commit c62c230397c3e1afe3772f17e97e8bf7fa4bc468 +Author: Nick Schermer +Date: Wed Sep 12 19:31:15 2012 +0200 + + Make the emblems work with multiple files. + +commit c15432bc00dd61ff8aeb10054694a788888c9619 +Author: Nick Schermer +Date: Tue Sep 11 21:45:15 2012 +0200 + + Update some copyrights. + +commit 2b7e3f4a2d9d2d5526b0eb6edcfd5c909e9cd4ba +Author: Nick Schermer +Date: Tue Sep 11 21:35:34 2012 +0200 + + Support multiple files in the size label. + +commit 068a9c5f921bab6b61abc07f61e0d6d5d0087139 +Author: Nick Schermer +Date: Tue Sep 11 19:59:08 2012 +0200 + + Show more information if multiple files are selected. + +commit 5e9173bd223fba277484280f124c49f7e7fdee2a +Author: Nick Schermer +Date: Mon Sep 10 21:47:13 2012 +0200 + + Fill in some content for the multiple files mode. + +commit 76172381b4d5d6414736a1d0bddf867a8aa48502 +Author: Nick Schermer +Date: Mon Sep 10 20:52:24 2012 +0200 + + Some initial work to get things starting. + +commit 75480e4f9ac7afff0bab687cab1c7e9d6ec5e5d0 +Author: Andhika Padmawan +Date: Sat Sep 15 05:10:53 2012 +0200 + + l10n: Updated Indonesian (id) translation to 100% + + New status: 682 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2c4bc9f183b4da4a91263ef4fb4283283f4c5107 +Author: Cristian Marchi +Date: Thu Sep 13 21:27:30 2012 +0200 + + l10n: Updated Italian (it) translation to 100% + + New status: 682 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 129c27f3b4fe5b813adaf436c2db14c62584f0af +Author: Pjotr vertaalt +Date: Tue Sep 11 11:57:29 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 682 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 16bde94bc58cbe79b1c8e20ed9838bc0adc18f68 +Author: Yarema aka Knedlyk +Date: Tue Sep 11 11:09:50 2012 +0200 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 682 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6c2ef06c0cef6009375900b2d6221d2f67c5231c +Author: prflr88 +Date: Sun Sep 9 21:32:12 2012 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 682 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b8cc0567f7c35e10443c511aeed05686137ceb99 +Author: Nick Schermer +Date: Sat Sep 8 19:33:45 2012 +0200 + + Add a sencence case rename mode to sbr. + + Only uppercase the first letter in the filename. + +commit ee26db254c9549fec46859612cdb7296f3e9ab60 +Author: Ivica Kolić +Date: Tue Aug 28 18:35:04 2012 +0200 + + l10n: Updates to Croatian (hr) translation + + New status: 591 messages complete with 0 fuzzies and 90 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3c22bca7aedaa1ef209676a4d17405141aa6186f +Author: Kris Thomsen +Date: Mon Aug 6 23:11:32 2012 +0200 + + l10n: Updated Danish (da) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f6b9fe2666c3e8240415336c87797f8497e00d46 +Author: Seong-ho Cho +Date: Sun Aug 5 22:11:16 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 816636bea006dc595876b29c5d2b1dfec2d67b87 +Author: Seong-ho Cho +Date: Sun Aug 5 22:09:10 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e27ee17f2d9ea76b0e35e35fb47d66cf3a13217b +Author: Seong-ho Cho +Date: Sun Aug 5 21:57:47 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6273b9cd5f310d285495c896c94dd79ddb7866fc +Author: Seong-ho Cho +Date: Sun Aug 5 21:34:58 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2c09cb0a51fd3a0e0a2d5855c755253e31278a47 +Author: Gheyret Kenji +Date: Wed Aug 1 07:12:49 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b65808a4faeb831d94764b54db5b49a6d1994684 +Author: Gheyret Kenji +Date: Wed Aug 1 07:05:05 2012 +0200 + + l10n: Updated Uyghur (ug) translation to None% + + New status: 0 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7930aea2e6464e91bdb923138e4cd38b5b0447fd +Author: Gheyret Kenji +Date: Mon Jul 16 08:15:32 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 97% + + New status: 662 messages complete with 0 fuzzies and 19 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d0c15acc8395a97e6cbbfd6ca8b8ff1d30548ef8 +Author: Gheyret Kenji +Date: Fri Jul 13 03:47:08 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 96% + + New status: 657 messages complete with 0 fuzzies and 24 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b40c20dc34c272e3e65a49ba1a9241b2b11b79c1 +Author: Sveinn í Felli +Date: Mon Jul 2 18:42:49 2012 +0200 + + l10n: Updated Icelandic (is) translation to 8% + + New status: 59 messages complete with 486 fuzzies and 134 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 708e11e76be6b3afc4d1b93557f6421fde962da7 +Author: Мирослав Николић +Date: Wed Jun 20 10:31:03 2012 +0200 + + l10n: Updated Serbian (sr) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 87ff51251f44609a34cf15e14fd17a6e1e99ee41 +Author: Gheyret Kenji +Date: Thu May 31 07:47:03 2012 +0200 + + l10n: Updated Uyghur (ug) translation to 96% + + New status: 656 messages complete with 0 fuzzies and 22 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0479bd4ce1d807213f78e2ede2cea5019d8884c4 +Author: محمد الحرقان +Date: Tue May 22 18:17:19 2012 +0200 + + l10n: Updated Arabic (ar) translation to 86% + + New status: 589 messages complete with 0 fuzzies and 92 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ad986b3d86c07001c398381afca52201ba5a561a +Author: Simon Steinbeiss +Date: Wed May 9 20:03:16 2012 +0200 + + Change icon-name in preferences-dialog to be in accordance with the freedesktop.org icon naming specification + +commit 014dc8f3bddc4602ca2f813652209f36cebada53 +Author: Andrei Zakharevich +Date: Fri May 4 19:26:10 2012 +0200 + + l10n: Updated Belarusian (be) translation to 94% + + New status: 643 messages complete with 31 fuzzies and 7 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 86eaa83a2615afa3e5bd1ec269e5cadf5a062fa3 +Author: Andrei Zakharevich +Date: Fri May 4 19:25:20 2012 +0200 + + l10n: Updated Belarusian (be) translation to 94% + + New status: 642 messages complete with 32 fuzzies and 7 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4f7fd43018fe0c7d8a2fbff49b9d32353a9ad154 +Author: Andrei Zakharevich +Date: Fri May 4 19:23:12 2012 +0200 + + l10n: Updated Belarusian (be) translation to 93% + + New status: 638 messages complete with 36 fuzzies and 7 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 68f6aa62e03a754ec223f55c8676d5d0a2570c4e +Author: Andrei Zakharevich +Date: Fri May 4 19:19:01 2012 +0200 + + l10n: Updated Belarusian (be) translation to 92% + + New status: 632 messages complete with 39 fuzzies and 10 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6076dc674e9e79ee8a1bb630ea323d533a83dbca +Author: Andrei Zakharevich +Date: Fri May 4 19:15:13 2012 +0200 + + l10n: Updated Belarusian (be) translation to 91% + + New status: 623 messages complete with 47 fuzzies and 11 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 61601dbced3e39f783dcfd501c67e7e6ac12dcae +Author: Nick Schermer +Date: Sat Apr 28 22:20:36 2012 +0200 + + Post release tag bump. + +commit 92f98402acf5d460ccba788ff5725d7c458a9646 +Author: Nick Schermer +Date: Sat Apr 28 22:16:35 2012 +0200 + + Updates for release. + +commit bb96af52c857572549b108274f6a67471de80571 +Author: Mișu Moldovan +Date: Fri Apr 27 23:47:35 2012 +0200 + + l10n: Updated Romanian (ro) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 97f1bd8e44c6382c077efe9d2578f6ca9205f343 +Author: Mișu Moldovan +Date: Fri Apr 27 23:41:48 2012 +0200 + + l10n: Updated Romanian (ro) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 262c009d6090da3abd02e77350c806e96a10bd0c +Author: Nick Schermer +Date: Fri Apr 27 19:23:44 2012 +0200 + + Fix invalid replacement from previous commit (bug #8779). + + This made thunar return the uri instead of the uri-scheme, breaking + the archive plugin. + +commit 5aeebcefe239054c647af6cd240797705becba5e +Author: Gabor Kelemen +Date: Fri Apr 27 10:15:55 2012 +0200 + + l10n: Updated Hungarian (hu) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c577c465c3648c6a1f594128ff2fd1b59b20caf0 +Author: Masato Hashimoto +Date: Wed Apr 25 13:37:31 2012 +0200 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0454ff2ba470fd47d647a92b6790f4115cb0bbfa +Author: Chipong Luo +Date: Mon Apr 23 14:16:48 2012 +0200 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit acedf370892a3b32d67b0dc3b3a9919e6abebdf7 +Author: Chipong Luo +Date: Mon Apr 23 14:08:43 2012 +0200 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d0d4d531cb203ea7b9e23d9b74a3c65aa47e0dd8 +Author: Masato Hashimoto +Date: Mon Apr 23 14:03:34 2012 +0200 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 52f0c0bbea4d1181ca3fd9c2b6896f615d3523ec +Author: Seong-ho Cho +Date: Mon Apr 23 04:21:54 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit bec3309bc88e0423fdf5bbee6e97747dc00a8c11 +Author: Seong-ho Cho +Date: Sun Apr 22 22:17:30 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 00eaaa884560af0cd0d69d79a1e9ab328b28d748 +Author: Masato Hashimoto +Date: Sat Apr 21 06:36:28 2012 +0200 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 15b16f45d212fd3f6e91655a6a125a817d5f9e69 +Author: Jakob Kramer +Date: Fri Apr 20 23:15:14 2012 +0200 + + l10n: Updated German (de) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 860ad073f1ec8e24c65889461de3ba042901a5ae +Author: Mișu Moldovan +Date: Fri Apr 20 16:14:41 2012 +0200 + + l10n: Updated Romanian (ro) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit aa316f618e5cc25ca9048f2a138880f065bc3491 +Author: Mișu Moldovan +Date: Fri Apr 20 16:13:46 2012 +0200 + + l10n: Updated Romanian (ro) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ecb214eb89fee7f17e82dc85f00c00f8ee239e30 +Author: Chipong Luo +Date: Fri Apr 20 14:53:09 2012 +0200 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fa2c7b4180c5f6d719bcf31763dae115d4bc3e40 +Author: Masato Hashimoto +Date: Fri Apr 20 14:09:29 2012 +0200 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit adb69cf57a79df85cf136913530221df1cab8a3d +Author: Bauzhan Muftakhidinov +Date: Fri Apr 20 10:03:52 2012 +0200 + + l10n: Updated Kazakh (kk) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 39bc594097ea0b1dfbd34db451d40f0513f8ab8a +Author: Nick Schermer +Date: Thu Apr 19 22:24:07 2012 +0200 + + Unref mount operation from sendto menu. + +commit 630dcf35ab247b91892f73746cfca34ec78ed991 +Author: Nick Schermer +Date: Thu Apr 19 22:21:49 2012 +0200 + + Use mount operations with eject and unmount. + + This removed some deprecated abi and gives to possibility + for communication with the user when performing the operation. + +commit 18c4dee71ff0e1de70c88d7517de214c850458fa +Author: Nick Schermer +Date: Thu Apr 19 21:18:55 2012 +0200 + + Don't use g_atexit anymore. + +commit 9d2034567c1b3ff721e5dc3aeaeaa7ff98f34afa +Author: Michał Olber +Date: Thu Apr 19 20:27:29 2012 +0200 + + l10n: Updated Polish (pl) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ac156da55494cd33d287af00ddd77d362f94527f +Author: Jeff Bailes +Date: Thu Apr 19 08:19:02 2012 +0200 + + l10n: Updated English (United Kingdom) (en_GB) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6f0275b78027d36ea83830bf4efc4234ebb05c6f +Author: Seong-ho Cho +Date: Tue Apr 17 15:47:34 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 76b487913a15143e5fca9e4f23e409d32a5b9d82 +Author: Pjotr Anon +Date: Tue Apr 17 12:20:51 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5bb175a370867662d64fa383fc365c0d5415f134 +Author: Petar Koretić +Date: Mon Apr 16 16:54:57 2012 +0200 + + l10n: Updated Croatian (hr) translation to 84% + + New status: 578 messages complete with 0 fuzzies and 103 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 16ab778bb7fd307f7ac35715a33283494373bce6 +Author: Jannis Pohlmann +Date: Sun Apr 15 22:42:21 2012 +0100 + + Move away from using a hard-coded size for window icons (bug #8626). + + The previous commit wasn't actually related to this bug. The problem + here was that the xfwm4 tab window now allows themes to change the size + of the displayed window icons but Thunar still hard-coded its own window + icons to 48px. + + From this commit Thunar on uses thunar_file_get_icon_name(current_dir) + to get an icon name for the current directory and and then calls + gtk_window_set_icon_name() rather than asking ThunarIconFactory for a + 48px GdkPixbuf that cannot be scaled up nicely. This is ok because we + only ever set icons for directories and for those ThunarIconFactory + never returns anything but a GdkPixbuf based on an icon name anyway. It + never returns a GdkPixbuf loaded from an absolute path or anything. + +commit 096f3b6eb37205b6cabb0da4ecc8886b24a67a28 +Author: Jannis Pohlmann +Date: Sun Apr 15 17:07:15 2012 +0100 + + Add an 64x64 and 128x128 icon for Thunar (bug #8626). + +commit 9a304dd4170fa9c996d9e9e91cca18152ac751c4 +Author: Nick Schermer +Date: Sun Apr 15 13:59:50 2012 +0200 + + Don't use deprecated g_format_size_for_display. + +commit 6da4524b8264233a20bb409ffb990570a9f68890 +Author: Jakob Kramer +Date: Sat Apr 14 23:44:28 2012 +0200 + + l10n: Updated German (de) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c6ea05f5ce018d0c4e398a6cfe32c66c0fd94dd8 +Author: Henrique P. Machado +Date: Sat Apr 14 23:37:39 2012 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2230067cde7ed97c9dcafa0bab8ddf4b3b1c9f3b +Author: Jakob Kramer +Date: Sat Apr 14 23:25:28 2012 +0200 + + l10n: Updated German (de) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fa91f100a421999e25a0f933c2e3a68bde5e14d7 +Author: Gabor Kelemen +Date: Sat Apr 14 20:44:18 2012 +0200 + + l10n: Updated Hungarian (hu) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5d69b201d30b89f58e47b36567d84a071b64cf4a +Author: Nick Schermer +Date: Sat Apr 14 16:57:01 2012 +0200 + + Link against gmodule (bug #8467). + +commit ea50afd4fd310ba8fd663551d839210c56756335 +Author: Piotr Sokół +Date: Sat Apr 14 12:32:53 2012 +0200 + + l10n: Updated Polish (pl) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c97fb91068c6132c390417a0d5db2d2f09fd3c9e +Author: Nick Schermer +Date: Sat Apr 14 00:38:06 2012 +0200 + + Post release tag bump. + +commit bc2fa68abb692cc4173b889036145e1ea39d27fa +Author: Nick Schermer +Date: Sat Apr 14 00:34:36 2012 +0200 + + Updates for release. + +commit 9971bb66744162dd53131cdc8b562ad6600de562 +Author: Iliyas Jorio +Date: Sat Apr 14 00:09:57 2012 +0200 + + l10n: Updated French (fr) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7c194fa77424d12a0e8d0a198ab46b5ea9396e04 +Author: Nick Schermer +Date: Fri Apr 13 18:05:06 2012 +0200 + + Use macro to search for sed (bug #8686). + +commit a176cc84685e33dc1358b0a02181428c246ad136 +Author: Seong-ho Cho +Date: Fri Apr 13 17:50:55 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 68ca50b63ae480157ac8c48f8d2146c775d65eae +Author: Seong-ho Cho +Date: Fri Apr 13 17:46:04 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d1bb398daedb8f25656d82d5d6f0326f53ff7dca +Author: Seong-ho Cho +Date: Fri Apr 13 17:43:37 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 58ab39a0bb228c08e9eb350c6c26932861cee474 +Author: Seong-ho Cho +Date: Fri Apr 13 13:25:27 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 22514fd537a4cf856f8e7b44b24c1096861b424d +Author: Jari Rahkonen +Date: Thu Apr 12 10:16:44 2012 +0200 + + l10n: Updated Finnish (fi) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 872b76fd3494826e7281ffd3e363c66492dde536 +Author: Masato Hashimoto +Date: Wed Apr 11 14:38:13 2012 +0200 + + l10n: Updated Japanese (ja) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ff1eea6ec1b6f03d8cfa6f8e1a6da3efb5e0c7fb +Author: Nuno Miguel +Date: Tue Apr 10 19:32:11 2012 +0200 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b53022331cd80f93c9f89feb4b61056fa9461cbe +Author: Leandro Regueiro +Date: Tue Apr 10 12:55:06 2012 +0200 + + l10n: Updated Galician (gl) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 835f2fb9d9787763ab9e071714640877be4e8dcb +Author: Eivind Ødegård +Date: Tue Apr 10 12:46:42 2012 +0200 + + l10n: Updated Norwegian Nynorsk (nn) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 66c4bd208c8c19e1bb492134f63474b8e3926caa +Author: Seong-ho Cho +Date: Sun Apr 8 15:25:13 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5a3cfeeafdb8bba4b2569235125c83135a98619d +Author: Seong-ho Cho +Date: Sun Apr 8 13:46:57 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 037364626687d75f91193757fd7f9dca4c48acef +Author: Michal Várady +Date: Sun Apr 8 11:25:35 2012 +0200 + + l10n: Updated Czech (cs) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9de6f9f9685c22021c98bb133b96ad2de8e0478f +Author: Nick Schermer +Date: Sat Apr 7 18:21:50 2012 +0200 + + Bump 4util and 4ui dependencies. + +commit f8d17b6445fbd78c06264ea9abce66eefd0309cb +Author: Seong-ho Cho +Date: Thu Apr 5 12:37:27 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3df74c7b525ed92299a0d0b2f8f070704d728355 +Author: Seong-ho Cho +Date: Thu Apr 5 12:09:06 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0dd8e8d941f703159bd2d8a617346d8872ba4d72 +Author: Seong-ho Cho +Date: Thu Apr 5 11:24:18 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9cffb6a33fedc52cc88285060f73f346ed736495 +Author: Seong-ho Cho +Date: Thu Apr 5 10:01:17 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit bbbbe00e10b31194d1039f5013dd6acd99aba4cc +Author: Seong-ho Cho +Date: Wed Apr 4 22:53:22 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2f4fdfb1826df7b695cf7e5143354f015cae4f68 +Author: Seong-ho Cho +Date: Wed Apr 4 22:37:32 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 02c180686f7d1ba0e1f4e85e8e83bacab152f626 +Author: Nick Schermer +Date: Wed Apr 4 14:49:06 2012 +0200 + + Use a normal ExoBinding. + + THe mutual binding reported a leak and it not needed. + +commit 2943a28a39795ea0a44d20137ee1b3b6b0f2744c +Author: Nick Schermer +Date: Wed Apr 4 14:34:22 2012 +0200 + + Free module list in provider factory. + +commit 363940efb3cde8b0495b4719dc1fa7ff7d908b62 +Author: Nick Schermer +Date: Wed Apr 4 14:06:30 2012 +0200 + + Fix file selection problems. + + Two lists of selected files were maintained in the standard view, + resuling in problems like no selection if a selected file was deleted. + + Drop the public list and continue using the internal list. + + Also fix a memory leak after deleting a selected file. + +commit bd860803cf533fb6ddd67b8b993d671efcef8c89 +Author: Nick Schermer +Date: Wed Apr 4 12:50:32 2012 +0200 + + Free string in progress view. + +commit 4aadead7d102898e6e137855c691e4873664509d +Author: Alper Tekinalp +Date: Tue Apr 3 11:40:54 2012 +0200 + + l10n: Updated Turkish (tr) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3ff416b07f60cf57f396a858b2af2a49feedba7b +Author: Alper Tekinalp +Date: Tue Apr 3 11:08:44 2012 +0200 + + l10n: Updated Turkish (tr) translation to 99% + + New status: 677 messages complete with 4 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e0f7de45a38d3cbc5757e8ae8452b9458e9f8fa5 +Author: Ivica Kolić +Date: Tue Apr 3 00:35:43 2012 +0200 + + l10n: Updated Croatian (hr) translation to 84% + + New status: 574 messages complete with 0 fuzzies and 107 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dfdce0f2de4a8de193038aaf07a9ba0488731e8f +Author: Nick Schermer +Date: Mon Apr 2 20:57:48 2012 +0200 + + Use macro to get uri where possible. + +commit a70c7477ac34e547ab5738a9804f5cfd1adf988e +Author: Nick Schermer +Date: Mon Apr 2 20:44:34 2012 +0200 + + Reload ThunarView if job finishes. + + This makes more or less all thunar file actions instant + in the interface (well the actions that complete before + the file monitor picks it up). + + Remove the old hook for new files from commit e5e26b9 + since that will trigger the reload twice. + +commit 3c465449d9d94813420658ab7d9dde1038eb72a9 +Author: Nick Schermer +Date: Mon Apr 2 18:10:43 2012 +0200 + + Plug more leaks in thumbnailer. + +commit b8d7fbd18d9adb303eef4ea9d88958f4159df05e +Author: Nick Schermer +Date: Mon Apr 2 18:01:13 2012 +0200 + + Hide thumb queue cleanup debug and plug memleak. + +commit be7c64b6ece15d96b16f3ca097070195ebe5629d +Author: Nick Schermer +Date: Mon Apr 2 17:50:28 2012 +0200 + + Enable startup-notify in the uca example. + + Exo 0.7.2 supports passing the startup timestamp + to the terminal, so use that. + +commit b8df164cbe62c04b79526b6f95611c19cbec8091 +Author: Nick Schermer +Date: Mon Apr 2 17:48:58 2012 +0200 + + Make uca.xml readable for humans. + + Use new lines and tabs to make the xml readable. I know + not many people look in the xml, but still... + +commit 219ef1483a741401387eda0441f90d2d5fafacb8 +Author: Pjotr Anon +Date: Mon Apr 2 10:40:48 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6b045a3de20f1a2b63f0423ee14b1ba1c6fcaf83 +Author: Evaggelos Balaskas +Date: Mon Apr 2 08:07:29 2012 +0200 + + l10n: Updated Greek (el) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b61cea14f12ac42a5446ba7d85e7b1b6b6bdbd96 +Author: Henrique P. Machado +Date: Mon Apr 2 02:41:15 2012 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f155a7219bb6283dc7bd5ceb384d29307b399e9c +Author: Pjotr Anon +Date: Mon Apr 2 00:05:00 2012 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 551cc4287197536e6d5cd2db5807750e2fcbd8ef +Author: Seong-ho Cho +Date: Sun Apr 1 11:55:08 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 08b4b2f871bd3fa900b4ed09fd33565ed4000195 +Author: Carles Muñoz Gorriz +Date: Sat Mar 31 17:42:00 2012 +0200 + + l10n: Updated Catalan (Valencian) (ca) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit eb6fcd420e35b2ce0c0f9604317453c13a4847a3 +Author: Piarres Beobide +Date: Sat Mar 31 00:54:52 2012 +0200 + + l10n: Updated Basque (eu) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7b08b1ed6f3e085bbed6f295fbac46f45faf9e05 +Author: Seong-ho Cho +Date: Thu Mar 29 23:18:17 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8a34ca8ba7bd479f199c0ef4c736e026603827f0 +Author: Sergio Marques +Date: Thu Mar 29 18:51:41 2012 +0200 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2853ba38c2bc43de64ac7f96a43235c254d0bddf +Author: Seong-ho Cho +Date: Thu Mar 29 12:41:42 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 31d256271516ebe330a03056652db7a761d84176 +Author: Seong-ho Cho +Date: Thu Mar 29 12:16:52 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 51766e062740efc416ef3d37aa95008713d59ec3 +Author: Andrzej +Date: Thu Jan 26 22:56:41 2012 +0900 + + Tpa: Make the plugin fit a single row of the panel. + +commit 9410825062964577e5e3c7620371be8bfb4bfcb0 +Author: Nick Schermer +Date: Wed Mar 28 19:03:18 2012 +0200 + + Post release tag bump. + +commit 0e69ea26e2fd443e8851a8648d044a446eaa4ad6 +Author: Nick Schermer +Date: Wed Mar 28 18:57:37 2012 +0200 + + Updates for release. + +commit ffba270cf75fa0670923ea9a1f8568a18f917929 +Author: Christoph Wickert +Date: Wed Mar 28 18:40:03 2012 +0200 + + l10n: Updated German (de) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 74a3a3d455812b596b6ff5237284b1ac67b3c20e +Author: Jannis Pohlmann +Date: Mon Mar 26 21:54:21 2012 +0100 + + Update NEWS. + +commit a29616d7734a28addf1d76f39ae14a3c92cdc4fc +Author: Seong-ho Cho +Date: Mon Mar 26 19:48:42 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit af19bdacb0aa1d44ab1b1dfe724bf25d3cf81413 +Author: Seong-ho Cho +Date: Mon Mar 26 19:06:52 2012 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit af578208bc6fcd61f2effb054cf649ef3ccb5237 +Author: Cheng-Chia Tseng +Date: Wed Mar 21 14:56:39 2012 +0100 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dd82ce58e463a472893ae7e967f36d24ad517bde +Author: Jakob Kramer +Date: Tue Mar 20 12:48:35 2012 +0100 + + l10n: Updated German (de) translation to 99% + + New status: 680 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b2236fbf324a7e1039c7f38969f17843036da150 +Author: Per Kongstad +Date: Sun Mar 18 20:54:14 2012 +0100 + + l10n: Updated Danish (da) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1c4efb28d2a14a6f191af7ddd69857ec0e85d3f5 +Author: Sergey Shlyapugin +Date: Sun Mar 18 12:02:59 2012 +0100 + + l10n: Updated Russian (ru) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d4f80e25d7596ae840c0e96c3cba0d421eb4e7d6 +Author: Andhika Padmawan +Date: Sun Mar 18 04:10:57 2012 +0100 + + l10n: Updated Indonesian (id) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d600dedde69766760127ba4e1ff79998dde676f3 +Author: Praveen Illa +Date: Sat Mar 17 05:19:41 2012 +0100 + + l10n: Updated Telugu (te) translation to 77% + + New status: 527 messages complete with 2 fuzzies and 152 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e5ce1369b901274c156e7462453a71bc5b44b01d +Author: Sergio Marques +Date: Fri Mar 16 13:53:08 2012 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3c816003340e201246c2030c485c711adb3639ea +Author: Bauzhan Muftakhidinov +Date: Thu Mar 15 15:30:16 2012 +0100 + + l10n: Updated Kazakh (kk) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5844bc15fc223598e972d4fe381a579b85bd1c10 +Author: Pjotr Anon +Date: Thu Mar 15 11:17:57 2012 +0100 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3b25563e5fb52ca94a83f34899bee1702d32bb32 +Author: Algimantas Margevičius +Date: Thu Mar 15 07:01:10 2012 +0100 + + l10n: Updated Lithuanian (lt) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit bfe3aeb4e82b2f8fea85e9a9705030c9cec6ee64 +Author: Yarema aka Knedlyk +Date: Wed Mar 14 23:54:57 2012 +0100 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 43fe907becfc8d1e57f38aa01deaf49c1945d559 +Author: Piotr Sokół +Date: Wed Mar 14 21:32:25 2012 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 90cf2be3bb73f91ba588485c43dfb6811af4a925 +Author: Andres Sanchez +Date: Wed Mar 14 17:45:15 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 66b9b4fcf3071f70b49917e494ba2d777bc07a52 +Author: Cristian Marchi +Date: Wed Mar 14 17:42:49 2012 +0100 + + l10n: Updated Italian (it) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ecbd989312ca834aa42007be7ae49af66f7b6bc2 +Author: Chipong Luo +Date: Wed Mar 14 15:46:55 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 347f4d9b87604977b6ee41d5fd58c92fd44f0292 +Author: Yaron Shahrabani +Date: Wed Mar 14 12:45:21 2012 +0100 + + l10n: Updated Hebrew (he) translation to 99% + + New status: 676 messages complete with 0 fuzzies and 5 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit acea80688037dc4ddb10b35d3c9758a25403eb45 +Author: Tomáš Vadina +Date: Wed Mar 14 09:49:37 2012 +0100 + + l10n: Updated Slovak (sk) translation to 100% + + New status: 681 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0dca6e49ab7bc11c3a3b6582b6a2508307a125aa +Author: Eric Koegel +Date: Tue Mar 13 22:17:00 2012 +0000 + + Add a "Skip All" button to the file overwrite dialog (bug #4263). + +commit 2d4e4abba012a4df994d07dbfe1f818fa8eb49e9 +Author: Chipong Luo +Date: Sun Mar 11 05:17:40 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 88f671281e47add85917e3e04c235b36226de8f6 +Author: Michal Várady +Date: Sat Mar 10 12:47:25 2012 +0100 + + l10n: Updated Czech (cs) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a827e831e0dae43225cb61940c6222a486655164 +Author: Seong-ho Cho +Date: Thu Mar 8 22:41:11 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f5f325f56370bf908f778443fd8780e2deb612e2 +Author: Seong-ho Cho +Date: Thu Mar 8 22:14:36 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ac117983d16be651dc9dcce8bd00c391372b5416 +Author: Seong-ho Cho +Date: Thu Mar 8 22:03:13 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ad92f93be4cf7d6a0896bee20962b936ca4369b6 +Author: Seong-ho Cho +Date: Thu Mar 8 19:14:03 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0d5e0c9793f12cf04c660bc71feccd30371af0c5 +Author: Seong-ho Cho +Date: Thu Mar 8 19:11:30 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0f5a5466290e50c28f7ce44aa264a033f5ed089a +Author: Seong-ho Cho +Date: Mon Mar 5 20:43:03 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e9b609bc4262ee5657186e13ad61c41a835b450c +Author: Seong-ho Cho +Date: Thu Mar 1 21:37:49 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 064808742b1b87476d45816c2b12d5a1526f9fd2 +Author: Seong-ho Cho +Date: Thu Mar 1 21:35:15 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3f81c6759d25fccaf103a6d4472bb4d0037f937f +Author: Seong-ho Cho +Date: Thu Mar 1 20:12:11 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit aec551b93d8df01ef8187cc20690fc3fb3509da5 +Author: Yaron Shahrabani +Date: Wed Feb 29 15:59:58 2012 +0100 + + l10n: Updated Hebrew (he) translation to 99% + + New status: 675 messages complete with 0 fuzzies and 5 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 87e27ab00ebb864833fd290f19493c7c30c99584 +Author: Michał Olber +Date: Wed Feb 29 15:02:07 2012 +0100 + + l10n: Updated Polish (pl) translation to 99% + + New status: 678 messages complete with 2 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 81ddc2dc99ccd3b28c320f27b0eb499c8d3bddec +Author: Seong-ho Cho +Date: Tue Feb 28 18:25:26 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c5417fe80141689237e8478d260b0270cf9c4831 +Author: Seong-ho Cho +Date: Tue Feb 28 12:25:12 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 49164a788fce94149dacc59f3db5c694fac689c8 +Author: Seong-ho Cho +Date: Tue Feb 28 07:13:04 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 16970b0723115cc6da386ebdeeccc6f63200ca9b +Author: Seong-ho Cho +Date: Mon Feb 27 14:25:36 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 57c9e95df7725b17f2160cb644ffad27c0b7bc31 +Author: Seong-ho Cho +Date: Mon Feb 27 14:22:33 2012 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b501fe002028f83d75959d37023f0812b3675dac +Author: Peter de Ridder +Date: Mon Feb 27 00:42:11 2012 +0000 + + Improve sorting of file names that include numbers (bug #5359). + + This commit improves the handling of leading zeros of numbers in file + names. Previously, the order was not always predictable and was also + often incorrect. + +commit 16055b933c938886488c06b402e68e7383318a3a +Author: John Lindgren +Date: Sun Feb 26 18:52:24 2012 +0000 + + Fix handling %U when launching multiple files with an app (bug #7456). + + GIO returns a newly allocated GAppInfo every time + g_app_info_get_default_for_type() is called. This means that if we use a + GHashTable and g_direct_hash() to associate GAppInfos with files to be + launched with each of them, we will actually end up with multiple + GAppInfos that are the same, and each of them will only have a single + file associated. + + To fix this, we now use a fake hash function that causes GHashTable to + always search the GAppInfo in the collision list. + +commit d47f4053b1ea47299f5ef501cd98e5d5c7cf2026 +Author: Jannis Pohlmann +Date: Sun Feb 26 17:38:50 2012 +0000 + + Fix crash when removing an ancestor of the current folder (bug #8168). + + Whenever we release the GFileMonitor of a ThunarFolder, we also need to + disconnect from its signals. Otherwise one of the signal handlers might + still be called, potentially with corrupted user data (which was the + case here). + +commit 16c99c3c0550d440a8e83cf3fb0775bb04065ab6 +Author: Ruei-Yuan Lu +Date: Wed Feb 22 03:28:18 2012 +0100 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 537f32f24498a9de9a72dffd1c8a6a8b4e237a30 +Author: كريم أولاد الشلحة +Date: Sun Feb 19 15:04:11 2012 +0100 + + l10n: Updated Arabic (ar) translation to 85% + + New status: 579 messages complete with 0 fuzzies and 101 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 16e2a31641e684d28ad1df12a572c3193cf102cc +Author: كريم أولاد الشلحة +Date: Sun Feb 19 14:23:48 2012 +0100 + + l10n: Updated Arabic (ar) translation to 82% + + New status: 564 messages complete with 0 fuzzies and 116 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8c2c02bf59a4d4d0eaae8df218acedd75e0568d2 +Author: كريم أولاد الشلحة +Date: Sun Feb 19 14:00:23 2012 +0100 + + l10n: Updated Arabic (ar) translation to 79% + + New status: 540 messages complete with 0 fuzzies and 140 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit cb1fe30f6876e4d473af3ecda46aeeb56af8c676 +Author: كريم أولاد الشلحة +Date: Sun Feb 19 13:35:25 2012 +0100 + + l10n: Updated Arabic (ar) translation to 75% + + New status: 515 messages complete with 0 fuzzies and 165 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 621c03ad62bab573dfa24f1ece44f235f74aed66 +Author: كريم أولاد الشلحة +Date: Sun Feb 19 13:25:45 2012 +0100 + + l10n: Updated Arabic (ar) translation to 75% + + New status: 514 messages complete with 0 fuzzies and 166 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b5c8a354f3543874dd5ebd271961f15fcc5e97d1 +Author: Michal Várady +Date: Sun Feb 19 02:35:16 2012 +0100 + + l10n: Updated Czech (cs) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b1bed726d7a9a18216c97f5876cc1e92d58248e7 +Author: كريم أولاد الشلحة +Date: Sat Feb 18 20:56:47 2012 +0100 + + l10n: Updated Arabic (ar) translation to 73% + + New status: 501 messages complete with 1 fuzzy and 178 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 93cbea39dfeb45fe3d3a4eaecd9b0607076921b1 +Author: كريم أولاد الشلحة +Date: Sat Feb 18 19:55:10 2012 +0100 + + l10n: Updated Arabic (ar) translation to 73% + + New status: 497 messages complete with 1 fuzzy and 182 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b66a0c73241b1b60a9aa32ea276eb90fb547d4fd +Author: Piarres Beobide +Date: Fri Feb 17 09:58:46 2012 +0100 + + l10n: Updated Basque (eu) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8cd931c5c8bbd2e7869333a7111ca9d93773c85e +Author: Nick Schermer +Date: Thu Feb 16 22:26:29 2012 +0100 + + Compress icons. + +commit 27cd098ba6cf859719383555f58072b3e6d7ba00 +Author: Nick Schermer +Date: Thu Feb 16 22:25:35 2012 +0100 + + Compress Thunar logo. + +commit 2b4dfabdef89b2bd6eb2d08651e0daab08e057a0 +Author: Nick Schermer +Date: Thu Feb 16 22:23:14 2012 +0100 + + Fix dist-check. + +commit 594a8e2faeca81212a843abd95ef00ff22a33c06 +Author: Nick Schermer +Date: Thu Feb 16 22:20:20 2012 +0100 + + Remove the manual. + + Manual has been moved to http://docs.xfce.org/xfce/thunar/start + +commit fa80cc29d04fe220c290d2b9bec884ebc1b803df +Author: Aleksandr Ponomarenko +Date: Thu Feb 16 13:56:20 2012 +0100 + + l10n: Updated Russian (ru) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 85d5f155c949b76efb264882c4c1995405834804 +Author: Chipong Luo +Date: Fri Feb 10 12:08:51 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e11b3dbd1ff99aa09d8433365b732fd27884d860 +Author: Roger Pueyo Centelles +Date: Thu Feb 9 13:05:06 2012 +0100 + + l10n: Updated Catalan (Valencian) (ca) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d7cf2ccccdd0cbbf3dc919b3a7d26d12e5ad004b +Author: Chipong Luo +Date: Thu Feb 9 11:02:06 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b2ef5f066bae53d203f375eac52f1ac3455ba3bd +Author: Tomáš Vadina +Date: Thu Feb 9 08:52:08 2012 +0100 + + l10n: Updated Slovak (sk) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 901062e4a267c59efc915c323b4431526f93846a +Author: Sergio Marques +Date: Wed Feb 8 17:14:40 2012 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 188e99a5e9e8c77060b7e1dc30d94754edf72d8c +Author: Amine +Date: Wed Feb 8 16:32:42 2012 +0100 + + l10n: Updated Arabic (ar) translation to 72% + + New status: 491 messages complete with 3 fuzzies and 186 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2e8945a5f1ac1d6f65b5420a604fabdbe11eaf50 +Author: Chipong Luo +Date: Wed Feb 8 10:19:47 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5e7728c1883147d1c993b63f829b4982e3b84aa1 +Author: Chipong Luo +Date: Wed Feb 8 07:35:09 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5e5efcdb5f9fba017b0aa5ca1f37c777a26f3232 +Author: كريم أولاد الشلحة +Date: Tue Feb 7 21:30:24 2012 +0100 + + l10n: Updated Arabic (ar) translation to 72% + + New status: 491 messages complete with 3 fuzzies and 186 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a7f93967f9e0d4d08890da21e19ba362763fc5fe +Author: Thomas Schütz +Date: Tue Feb 7 19:02:00 2012 +0100 + + l10n: Updated German (de) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1816e711668f65a200e9868e09acc7ffe1874b97 +Author: Chris Leick +Date: Tue Feb 7 18:42:38 2012 +0100 + + l10n: Updated German (de) translation to 99% + + New status: 679 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ce942f6e8f16a0787e747dc326775cf3b43da9ba +Author: Chipong Luo +Date: Tue Feb 7 06:49:52 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1d2117760c2427abdaeae559042fbe070d41d48d +Author: Chipong Luo +Date: Tue Feb 7 06:02:44 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2147190c02c2ece7a924752a8d63bcf45e5568af +Author: Jannis Pohlmann +Date: Sat Feb 4 11:56:23 2012 +0000 + + Use 32 instead of 36 pixels for small icons. + + It feels like a more sensible choice as 36px is not among the common + icon sizes such as 16, 24, 32, 48 etc., meaning that all icons loaded + from icon themes need to be rescaled when using 36px. + +commit 1863f2c8e08c774f4273d424d00863a36fae5ad6 +Author: Cheng-Chia Tseng +Date: Sat Feb 4 06:58:12 2012 +0100 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c10fcba0b21e7997f274e41bd23b6a453436e347 +Author: Benoit THIBAUD +Date: Fri Feb 3 13:58:50 2012 +0100 + + l10n: Updated French (fr) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e2c0f3ec4fbcbf40af475e845ce493ee3b6807fd +Author: كريم أولاد الشلحة +Date: Thu Feb 2 21:17:57 2012 +0100 + + l10n: Updated Arabic (ar) translation to 70% + + New status: 482 messages complete with 3 fuzzies and 195 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 14cc97c4f5ed76fc2df3d39eb77f6bf7de6a6898 +Author: Alper Tekinalp +Date: Mon Jan 30 21:55:07 2012 +0100 + + l10n: Updated Turkish (tr) translation to 99% + + New status: 676 messages complete with 4 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9068994351d2ee9e0e5a8d1e4c8052012532ea90 +Author: Andhika Padmawan +Date: Mon Jan 30 08:15:24 2012 +0100 + + l10n: Updated Indonesian (id) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 68263760ef4629e8daf587037d979417ee7437e2 +Author: كريم أولاد الشلحة +Date: Sun Jan 29 15:19:19 2012 +0100 + + l10n: Updated Arabic (ar) translation to 69% + + New status: 470 messages complete with 4 fuzzies and 206 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ba364f179459aee284ee84da63bf736bcbf45eb2 +Author: Chipong Luo +Date: Sat Jan 28 06:33:28 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d20d925b236cc20249733078806a4bf4cef01b3b +Author: كريم أولاد الشلحة +Date: Fri Jan 27 23:39:51 2012 +0100 + + l10n: Updated Arabic (ar) translation to 68% + + New status: 466 messages complete with 4 fuzzies and 210 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2c84f7c1befe77f1f3174e3c1e62b43c54c0528f +Author: كريم أولاد الشلحة +Date: Fri Jan 27 23:14:15 2012 +0100 + + l10n: Updated Arabic (ar) translation to 65% + + New status: 445 messages complete with 4 fuzzies and 231 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9055241c7735e0eb02b8769d30b4c4f32b81965e +Author: Nick Schermer +Date: Fri Jan 27 21:24:41 2012 +0100 + + Show Thunar settings in category. + +commit a5fcb5a849466c7abd0cc76519adf1bedd31783b +Author: Algimantas Margevičius +Date: Fri Jan 27 17:14:00 2012 +0100 + + l10n: Updated Lithuanian (lt) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 746334ce359ef5f812fcbb4e765bca8ff824c955 +Author: Thomas Schütz +Date: Fri Jan 27 12:35:26 2012 +0100 + + l10n: Updated German (de) translation to 99% + + New status: 679 messages complete with 1 fuzzy and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5672d62fb3642df482455f9a308d13c220300ec4 +Author: Andres Sanchez +Date: Tue Jan 24 20:36:14 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 37ee0ae3bfcbedad87904a3a71112c273d02d09e +Author: Algimantas Margevičius +Date: Tue Jan 24 16:59:39 2012 +0100 + + l10n: Updated Lithuanian (lt) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dea1461873b602faf56f60e9036e9b9a8fb3a770 +Author: Bauzhan Muftakhidinov +Date: Tue Jan 24 08:41:04 2012 +0100 + + l10n: Updated Kazakh (kk) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit cdb3685e36acef1fb412919b4a6923fb139bc4c0 +Author: Eivind Ødegård +Date: Mon Jan 23 23:33:48 2012 +0100 + + l10n: Updated Norwegian Nynorsk (nn) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a498849e1760a308cecb5abf1eaa87a314956874 +Author: Yarema aka Knedlyk +Date: Mon Jan 23 21:50:57 2012 +0100 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8d5e8473c23c22d7d97de1c40edb5c82b999fdd0 +Author: Cristian Marchi +Date: Mon Jan 23 12:53:21 2012 +0100 + + l10n: Updated Italian (it) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 96e837355aee36cd7193178685acfe4d7fe36bea +Author: Chipong Luo +Date: Mon Jan 23 12:05:12 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 125ee37681ef893ceee444a0896b01e183925881 +Author: Nick Schermer +Date: Sun Jan 22 13:26:37 2012 +0100 + + Use new time function in progress view. + + This makes the code a bit easier to read. + +commit 15a30ca67a6f95b47231616ee19ed9f0350877ab +Author: Nick Schermer +Date: Sun Jan 22 13:07:00 2012 +0100 + + Don't update more then fourth per second in deep count job. + + This restores the old behaviour of the job. + +commit aa48d43a2d4263e8084f84389aa6a64d995cc166 +Author: Pjotr Anon +Date: Sun Jan 22 10:54:06 2012 +0100 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d88d41033a2dd5118871c2f29e0e11cf8ae69ad0 +Author: Per Kongstad +Date: Sun Jan 22 10:38:32 2012 +0100 + + l10n: Updated Danish (da) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 38d5bbf219ee9b03e03cafd7a3805fc626c79577 +Author: Michal Várady +Date: Sun Jan 22 01:50:25 2012 +0100 + + l10n: Updated Czech (cs) translation to 100% + + New status: 680 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 401223479151f999a6913bdaf10ce7bff70dc822 +Author: Nick Schermer +Date: Sat Jan 21 15:46:10 2012 +0100 + + Fix sorting of applications in chooser dialog. + + We could use GtkTreeSortable here, but that will also + sort the main categories, so only sort the "other applications" + list. + +commit 3106972b15457365118e43c646c247c5e1821ff5 +Author: Nick Schermer +Date: Sat Jan 21 15:37:07 2012 +0100 + + Remove hack and use new Gtk API. + + We can now use gtk_action_set_gicon. + +commit c352a6f98d14cdee17759dca8e186f203324f62e +Author: Nick Schermer +Date: Sat Jan 21 15:17:45 2012 +0100 + + Fix removing custom launchers again. + +commit 9f249baaf40f96f402da87afdbd1ed56eb7b4c9e +Author: Nick Schermer +Date: Sat Jan 21 14:58:06 2012 +0100 + + Depend on Gtk 2.20 and Glib 2.24. + +commit d49135ddd7aae736c1eeef101bcc3580f4756537 +Author: Chipong Luo +Date: Sat Jan 14 01:09:11 2012 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6a02c58c17a056722146b1da3bd29b17af26bd9f +Author: Algimantas Margevičius +Date: Tue Jan 10 13:21:27 2012 +0100 + + l10n: Updated Lithuanian (lt) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit cee5e8fffb1fd536678100a3ebb502cd654811d4 +Author: Nick Schermer +Date: Sun Jan 8 12:45:59 2012 +0100 + + Small fix for previous commit. + +commit 0251e32742841aa7aa7ab176013928fac8cfb293 +Author: Nick Schermer +Date: Sun Jan 8 12:44:57 2012 +0100 + + Attach help buttons to docs.xfce.org. + +commit aa5cfe4555211c264a212a6d58d9816adac46393 +Author: Eivind Ødegård +Date: Sat Jan 7 00:17:09 2012 +0100 + + l10n: Updated Norwegian Nynorsk (nn) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7c82836fc031b065d191ecbef6a1b1fd3634684c +Author: Ričardas Vasiulis +Date: Thu Jan 5 20:50:01 2012 +0100 + + l10n: Updated Lithuanian (lt) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f73011324dfd1eefae697805b50af625f79b765e +Author: Ričardas Vasiulis +Date: Thu Jan 5 20:38:46 2012 +0100 + + l10n: Updated Lithuanian (lt) translation to None% + + New status: 0 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 82b433052b63e448f81eb8290e7912a2c1f859e1 +Author: Andres Sanchez +Date: Tue Jan 3 14:53:26 2012 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 89% + + New status: 262 messages complete with 21 fuzzies and 10 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fcd283882b28c29a9ea02388621d26ae4c09429f +Author: Michal Várady +Date: Mon Jan 2 02:17:44 2012 +0100 + + l10n: Updated Czech (cs) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d474fd41c7bf92e38992e82ac8ff9b5cf9dbb650 +Author: Alper Tekinalp +Date: Fri Dec 30 14:33:52 2011 +0100 + + l10n: Updated Turkish (tr) translation to 99% + + New status: 675 messages complete with 2 fuzzies and 2 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0fc92b18cdcca4cdd8ec7dc39d2a758c32d31319 +Author: Chipong Luo +Date: Thu Dec 29 15:05:35 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6bb6ca85c03c62dfb5859261d3366dc45628f57b +Author: Chipong Luo +Date: Thu Dec 29 14:58:40 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 1c5d4f5fbdb97054f21cbf8df18f0293cb50e63b +Author: Yaron Shahrabani +Date: Wed Dec 28 15:46:22 2011 +0100 + + l10n: Updated Hebrew (he) translation to 99% + + New status: 674 messages complete with 0 fuzzies and 5 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dfc55a2b3a3769b3846500136dc393cfde0ae523 +Author: Jannis Pohlmann +Date: Tue Dec 27 13:12:38 2011 +0100 + + Respect ThunarIconFactory::show-thumbnails. Fixes a regression. + + Whenever show-thumbnails is toggled, we need to either show thumbnails + again immediately or cancel any pending requests to put tumbler back + into idle mode. + +commit 679ad00ae31e1d48d061635f186f79e18981d5f0 +Author: André Luiz Dias de Miranda +Date: Sat Dec 17 21:27:05 2011 +0100 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 22% + + New status: 65 messages complete with 0 fuzzies and 228 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e278006e707a9dd3df61611b811629faae544060 +Author: André Luiz Dias de Miranda +Date: Sat Dec 17 20:19:45 2011 +0100 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 19% + + New status: 58 messages complete with 0 fuzzies and 235 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 3109c07139145de163fea3776833a867eff186c9 +Author: Chipong Luo +Date: Fri Dec 9 15:17:57 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 5cd7af51193c5e414928794e8210148ad3136967 +Author: Chipong Luo +Date: Fri Dec 9 15:16:39 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7bb62b8cb1058d1ea05d7c3e86689fd776dfc33d +Author: Chipong Luo +Date: Wed Dec 7 07:14:54 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fa72361c9b3eae8090017dd7ff1bce20e9e61750 +Author: Chipong Luo +Date: Wed Dec 7 07:11:05 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 57489635b994e33130ec2025ca7a73708f0ea3de +Author: Nick Schermer +Date: Sun Dec 4 12:52:35 2011 +0100 + + Prevent looping in some renamers. + + Some renamers trigger file changes when processing the + renamer name. Prevent this by checking if the disk content + really changed. + + This is for example triggered by the thunar-media-tags-plugin + in the bulk renamer. For an unknown reason, each time a file + is read, the "changed" signal is triggered on the folder, resulting + in endless looping on the file, consuming 100% cpu. + +commit ea7bdab1438715fb0fdb755aa32d310c2b014cf8 +Author: Chipong Luo +Date: Fri Dec 2 15:57:01 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 715944d5905b4d5a4b3a5d39fafe3b87a088c6a6 +Author: Chipong Luo +Date: Fri Dec 2 15:55:59 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit e5ff1183efe9c0b198b34fb95f0b80cc0648745c +Author: Chipong Luo +Date: Fri Dec 2 13:52:52 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 92fb3e65b34f71404cb334b8ec1daa867252b6aa +Author: Chipong Luo +Date: Fri Dec 2 13:40:14 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d39a27bdaa3aa6bcf09363f08e2be2208406882b +Author: Chipong Luo +Date: Fri Dec 2 10:45:38 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 49916c5290f1880d03bfb3f5e6263573c8256242 +Author: Chipong Luo +Date: Fri Dec 2 07:35:23 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 20e73a9740861579887eaf40355bb99ac9f1c96f +Author: Chipong Luo +Date: Fri Dec 2 05:03:28 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 05126280ba733053dbac6883ad62f04665529ba3 +Author: Nick Schermer +Date: Thu Dec 1 19:03:46 2011 +0100 + + Add function to print file reload changes. + + Print the changes of a file before and after reload, this + makes it easier to track looking reloads. + +commit 6f813ba48553e5b95a83bfa8463b20b8ee4607c4 +Author: Nick Schermer +Date: Wed Nov 30 18:45:57 2011 +0100 + + Fix segfault when plugin returns a NULL suffix. + +commit 51739512c675725c032cf94ac992c6432549fcf2 +Author: Sveinn í Felli +Date: Tue Nov 29 22:06:35 2011 +0100 + + l10n: sett inn + + New status: 30 messages complete with 54 fuzzies and 595 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f034c0fd86ed3db7b57db72ad7d706b25e1a2400 +Author: Chipong Luo +Date: Tue Nov 29 15:54:04 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 849e717cf0f838c9cb32b0f0ae23c13f4060aa64 +Author: Chipong Luo +Date: Tue Nov 29 15:43:41 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c4484a9df5baddf64c516b43377925c168008217 +Author: Chipong Luo +Date: Tue Nov 29 11:44:59 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit be66c664a0b20c902280e04342e6188d2aa1d44b +Author: Chipong Luo +Date: Tue Nov 29 10:47:21 2011 +0100 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8d95638a149a52b15bb85c2fa7e6fa4dff01016a +Author: Jean-Philippe Fleury +Date: Mon Nov 28 22:18:50 2011 +0100 + + l10n: Updated French (fr) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2923f51426d66c63c2e13942eabea422368bb712 +Author: Jean-Philippe Fleury +Date: Mon Nov 28 22:11:37 2011 +0100 + + l10n: Updated French (fr) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 712ae8ca91c8a24fc2af01391906308a457b085d +Author: Nick Schermer +Date: Wed Nov 23 21:28:07 2011 +0100 + + Remove module.xml. + +commit 1435bb7a885023c5115cd99b9f3c44785f98f42b +Author: Piotr Sokół +Date: Wed Nov 23 17:15:16 2011 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit eb85bdbd279711a5fa1f46823b7a69e532811ee6 +Author: Kamil Polczak +Date: Wed Nov 23 16:02:40 2011 +0100 + + l10n: Updated Polish (pl) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c029bfba59a94e6a9775ea79cef711c154194192 +Author: Seong-ho Cho +Date: Tue Nov 15 20:06:41 2011 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 03e3e8aa18913be0d2df1fd83b561e52e89de0bd +Author: Seong-ho Cho +Date: Tue Nov 15 20:02:00 2011 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2b90e4c089d4b74e19a6ed086814f60d8c4b03c7 +Author: Seong-ho Cho +Date: Tue Nov 15 19:59:55 2011 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fedd855e4fd5688e672b96e39ecc73dabe2778c0 +Author: Seong-ho Cho +Date: Tue Nov 15 19:59:19 2011 +0100 + + l10n: Updated Korean (ko) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit dbaddfcf6004ac951d539aa071b83d3eb82dd8f3 +Author: Nick Schermer +Date: Sun Nov 13 18:59:41 2011 +0100 + + Fix German manual translation. + +commit add9df3e1945c4369a81260c74e45f1bed19788a +Author: Nick Schermer +Date: Sun Nov 13 18:53:38 2011 +0100 + + Remove spec file, rpm build and update libtool. + +commit b41afa0c255c50d92025540fd072a642c2158d02 Author: Jannis Pohlmann -Date: Tue Sep 20 22:17:44 2011 +0200 +Date: Sun Nov 6 15:23:23 2011 +0100 + + Update NEWS. + +commit 464e9a39f4490b7bd4da0ee902018c9a98950d8f +Author: Eric Koegel +Date: Sun Nov 6 16:58:33 2011 +0300 + + Fix sorting of filenames with large numbers (bug #5356). + + Change compare_by_name_using_number() to use guint64. + + Signed-off-by: Jannis Pohlmann + +commit bb18fa8c31c0f1fa10b84010a5b05174378fd558 +Author: Nick Schermer +Date: Sun Nov 6 15:05:43 2011 +0100 + + Lowercase the thunar executable and install a Thunar symlink. + + This way we can reliably use the lowercase name in desktop files + which improves auto completion in the application finder. + +commit 008f396265e08d0ec5bf1e5f6f1a690e8f08d759 +Author: Gabor Kelemen +Date: Sat Nov 5 00:42:23 2011 +0100 + + l10n: Updated Hungarian (hu) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 075081d13fadad1d04c62454b44e6ee4e2458191 +Author: Chipong Luo +Date: Thu Oct 27 19:51:15 2011 +0200 l10n: Updated Chinese (China) (zh_CN) translation to 100% @@ -8,7 +12920,107 @@ Transmitted-via: Transifex (translations.xfce.org). -commit 5e3b25c4020d8b2ba8acebc748e873316c87885f +commit eb3fc109889ad7cd9c9f96b7ece571ee3255d507 +Author: Dmitry Nikitin +Date: Wed Oct 26 08:40:55 2011 +0200 + + l10n: Updated Ukrainian (uk) translation to 10% + + New status: 31 messages complete with 0 fuzzies and 262 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 4102f212aca13f16fc257e128b1d01bb40815604 +Author: Cristian Marchi +Date: Mon Oct 17 20:13:43 2011 +0200 + + l10n: Updated Italian (it) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit aca4195411b7533b01d39eac62b2729f76583850 +Author: Yarema aka Knedlyk +Date: Mon Oct 17 17:35:39 2011 +0200 + + l10n: Updated Ukrainian (uk) translation to 10% + + New status: 30 messages complete with 0 fuzzies and 263 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit c33402b4de0effd36b0dba8da1ff3ffb2c6e1246 +Author: Yarema aka Knedlyk +Date: Tue Oct 11 14:00:55 2011 +0200 + + l10n: Updated Ukrainian (uk) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 0b2d57e69050608846d860f26bc5cbf253ff5edb +Author: Tomas Schertel +Date: Wed Oct 5 21:08:42 2011 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 17% + + New status: 50 messages complete with 2 fuzzies and 241 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit d12473b27b127cf1633f46d92bb6275e847fc34e +Author: Tomas Schertel +Date: Wed Oct 5 17:54:49 2011 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 15% + + New status: 46 messages complete with 2 fuzzies and 245 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ad0b7c7d631e83195ce22938eee977814f307437 +Author: Xavier Devlamynck +Date: Sat Oct 1 19:15:47 2011 +0200 + + l10n: Updated French (fr) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 69ff85b44a0d5ad12bd6f2945fd95d9287732a60 +Author: Ivica Kolić +Date: Thu Sep 22 22:49:53 2011 +0200 + + l10n: Updated Croatian (hr) translation to 84% + + New status: 573 messages complete with 0 fuzzies and 106 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8c16694e3ab992c88016785397abbe927f128a90 +Author: Ivica Kolić +Date: Thu Sep 22 22:48:38 2011 +0200 + + l10n: Updated Croatian (hr) translation to 84% + + New status: 573 messages complete with 0 fuzzies and 106 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit eacfb73a6cc8811af397ed1d23107eb9f61f841e +Author: Chia-Han Lee +Date: Wed Sep 21 03:51:34 2011 +0200 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 70% + + New status: 206 messages complete with 1 fuzzy and 86 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fd2b39686f53fcdb1cf37bb9b7a89a2658dc2f67 Author: Jannis Pohlmann Date: Mon Sep 19 15:51:41 2011 +0200 @@ -16,7 +13028,15 @@ Fix by Lionel Le Folgoc. -commit 970a5fdc1fa28524a085fe678bb0550f532f8d29 +commit 1c4c7f92f30d50712d57c9ab4ed56e23c30f7255 +Author: Jannis Pohlmann +Date: Mon Sep 19 15:17:26 2011 +0200 + + Add missing NEWS entry. + + Sigh... I forget this too often. + +commit 594aa7b5be815a84f31a12d8ec49052865734855 Author: Jannis Pohlmann Date: Mon Sep 19 15:11:01 2011 +0200 @@ -29,7 +13049,7 @@ Patch by Martin Jürgens and Mark Trompell. -commit 57bf9e5088cf7ac6e7989541889544637e20a89d +commit cfab3c6a3b7ad714fc3fe67e84bf0d3b1fc6d4b1 Author: Jannis Pohlmann Date: Sat Sep 17 01:08:02 2011 +0200 @@ -37,35 +13057,313 @@ Patch by Alex Henrie. -commit 7085af8f93cccf1122b81e4cf82f4eb9a91e80b5 +commit 8ec1a0e9e197538bce0ed1e8815737f11acef01d Author: Jannis Pohlmann Date: Wed Sep 14 22:28:01 2011 +0200 Add missing NEWS entry. -commit 1ea7ededfe7fe642ba3ee7e80e99606f71003b40 +commit 4f8128a36453cd749f15751743f81f861d5191fb Author: Jannis Pohlmann Date: Wed Sep 14 22:26:53 2011 +0200 - Fix a compiler warning. + Fix a compiler warning. + +commit 2da5c8cfcccf484d6f39ff16cc0399859d1aff5e +Author: Andreas Mueller +Date: Thu Aug 11 10:00:33 2011 +0200 + + Fix segfaults in case icons are missing or not found (bug #7880). + + Signed-off-by: Jannis Pohlmann + +commit 4406581a896e46b7589a905424b1d99ae762147e +Author: Jannis Pohlmann +Date: Wed Sep 14 20:09:18 2011 +0200 + + Fix crash when opening a drive with no media (bugs #7308 and #7774). + + Patches provided by Ambroz Bizjak and Axel Sommerfeld. + +commit df1b16bfb87cd34630838702669fb5b3889b88a2 +Author: Cristian Marchi +Date: Wed Sep 14 08:39:09 2011 +0200 + + l10n: Updated Italian (it) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fae38b47f86ee2751dd256d6100d5e685c5209e4 +Author: Yarema aka Knedlyk +Date: Tue Sep 13 20:19:04 2011 +0200 + + l10n: Updated Ukrainian (uk) translation to 7% + + New status: 22 messages complete with 1 fuzzy and 270 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit cba8c5b64b903f0b6f797ceb0831e646732aa9f1 +Author: Seong-ho Cho +Date: Mon Sep 12 23:18:35 2011 +0200 + + l10n: Updated Korean (ko) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b24ab50bddbc8364f6a49da96fe721a1efaa8ad1 +Author: Yarema aka Knedlyk +Date: Thu Sep 8 21:54:34 2011 +0200 + + l10n: Ukrainian translation + + New status: 1 message complete with 0 fuzzies and 292 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit afee9862bfe1bf2592ac2748a1008eae590a6f46 +Author: Pjotr Anon +Date: Thu Sep 8 13:09:09 2011 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 87a986b3962e5d2fac1aa4bb393cc6034a457bed +Author: Cheng-Chia Tseng +Date: Mon Sep 5 05:40:48 2011 +0200 + + l10n: Updated Chinese (Taiwan) (zh_TW) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit cf442c932bb8c2a30a665a30382e1de92b1e662b +Author: Ivica Kolić +Date: Thu Sep 1 12:32:28 2011 +0200 + + l10n: Updated Croatian (hr) translation to 83% + + New status: 568 messages complete with 0 fuzzies and 111 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7fc3b2a1c5fc7aef5ba4826a28d792aa583d7aa0 +Author: Ardjuna +Date: Sun Aug 28 18:31:06 2011 +0200 + + l10n: Updated Indonesian (id) translation to 51% + + New status: 152 messages complete with 0 fuzzies and 141 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 9a71d278e8a14a28fc1ebc2a996e70f68ec77f9d +Author: Alexandr Boltris +Date: Fri Aug 26 16:15:33 2011 +0200 + + l10n: Updated Russian (ru) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 701a822cc032cddf9763f6ef4db28122cd00e8ea +Author: Alexandr Boltris +Date: Fri Aug 26 11:13:11 2011 +0200 + + l10n: Updated Russian (ru) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit b8e7a0ea0281fa430875f323c460a2df5163e35c +Author: Alexandr Boltris +Date: Fri Aug 26 11:07:57 2011 +0200 + + l10n: Updated Russian (ru) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 75114b63ad16c8dcb63c78cdf88fbcd553269a27 +Author: Alexandr Boltris +Date: Fri Aug 26 08:56:41 2011 +0200 + + l10n: Updated Russian (ru) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7cc3782df4ca9142926958bf02e53161efd80c7c +Author: Alexandr Boltris +Date: Thu Aug 25 13:58:13 2011 +0200 + + l10n: Updated Russian (ru) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f212414d91b90273433fa5c4a5641c336cd704c9 +Author: Alexandr Boltris +Date: Thu Aug 25 13:55:56 2011 +0200 + + l10n: Updated Russian (ru) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 05074c3665b2f26afa3a45a0229542945fb8ae8f +Author: Fabian Nowak +Date: Tue Aug 23 23:38:24 2011 +0200 + + l10n: Updated German (de) translation to 20% + + New status: 61 messages complete with 14 fuzzies and 218 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 448cc25ebdd755620c1386a6aae5e244c0378d18 +Author: Fabian Nowak +Date: Tue Aug 23 23:31:53 2011 +0200 + + l10n: Updated German (de) translation to 13% + + New status: 41 messages complete with 16 fuzzies and 236 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 2cad12dcba8533e24bcca8e7bf6166f9079cc7f1 +Author: Fabian Nowak +Date: Mon Aug 22 20:08:42 2011 +0200 + + l10n: Updated German (de) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 6fe0b5ffe19e9c6a7cadecafb89210ebfc4652bb +Author: Artem Zolochevskiy +Date: Wed Aug 17 13:56:43 2011 +0200 + + l10n: Updated Russian (ru) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f3c6e9a7559f2045afb0ceb2d5e97a609c327a5b +Author: Artem Zolochevskiy +Date: Wed Aug 17 13:36:46 2011 +0200 + + l10n: Updated Russian (ru) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 816e2a323cd703235d8fa65329fff4c3d2d36755 +Author: Pjotr Anon +Date: Sun Aug 14 12:22:46 2011 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8bedad139e99d1b1a9fbd3e02c87c8af7f81a2ed +Author: Andres Sanchez +Date: Wed Aug 10 19:49:01 2011 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 89% + + New status: 261 messages complete with 21 fuzzies and 11 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 69b9b457488c5dd1e2fe8e1729c30434e842fac5 +Author: Tomas Schertel +Date: Mon Aug 8 15:53:08 2011 +0200 + + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 13% + + New status: 39 messages complete with 0 fuzzies and 254 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 8449c53abcf82f3f271b31729ad970c20c3262b7 +Author: Tomas Schertel +Date: Mon Aug 8 15:49:29 2011 +0200 + + l10n: Initial commit to Brazilian Portuguese translation + + New status: 38 messages complete with 0 fuzzies and 255 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit af0e7490e3ed35ba4487158a9d4e53d5479d6348 +Author: Andres Sanchez +Date: Sun Aug 7 22:44:58 2011 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 89% + + New status: 261 messages complete with 3 fuzzies and 29 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 245c6b4affbafed4e89d07d82595fb0354d2e9ba +Author: Tomáš Vadina +Date: Sat Jul 30 18:24:21 2011 +0200 + + l10n: Updated Slovak (sk) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). -commit a9a495c31aee0b171807b777b635a480692c6ce7 +commit 4ff91980e48896bffc9587601d4b77210c3e8072 Author: Andreas Mueller -Date: Thu Aug 11 10:00:33 2011 +0200 +Date: Thu Jul 21 23:18:47 2011 +0200 - Fix segfaults in case icons are missing or not found (bug #7880). + docs: On installation create relative paths in symlinks to images - Signed-off-by: Jannis Pohlmann + Signed-off-by: Andreas Mueller -commit 2b29bae837016a06c8ee29da44a9486b0909da19 -Author: Jannis Pohlmann -Date: Wed Sep 14 20:09:18 2011 +0200 +commit c8b01e317a383aa169cc955b46bf035845d66921 +Author: Andres Sanchez +Date: Tue Jul 19 19:07:10 2011 +0200 - Fix crash when opening a drive with no media (bugs #7308 and #7774). + l10n: Updated Spanish (Castilian) (es) translation to 89% - Patches provided by Ambroz Bizjak and Axel Sommerfeld. + New status: 261 messages complete with 2 fuzzies and 30 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit 7b4861a68fec6bbe22dc3bc2b4e948de8fe0c8ee +Author: Andres Sanchez +Date: Tue Jul 19 19:04:52 2011 +0200 + + l10n: Updated Spanish (Castilian) (es) translation to 87% + + New status: 256 messages complete with 3 fuzzies and 34 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). -commit 76738b76d7d7e77db8f37efc7dab877d11f251bd +commit f1b600b21d30b467a76d3306906d144cf491bd82 Author: Jannis Pohlmann Date: Fri Jul 15 21:03:12 2011 +0200 @@ -77,89 +13375,89 @@ information). We will have to find another solution for the crash with mountable drivers that have no media. -commit 432d7abc5b84b7a15bb37d35bb95869d98a824a8 -Author: Andreas Mueller -Date: Thu Jul 21 23:18:47 2011 +0200 +commit 41e916c7f323a2723328dffce833d1e6bd76b901 +Author: Artem Zolochevskiy +Date: Fri Jul 15 18:44:37 2011 +0200 - docs: On installation create relative paths in symlinks to images + l10n: Updated Russian (ru) translation to 100% - Signed-off-by: Andreas Mueller + New status: 293 messages complete with 0 fuzzies and 0 untranslated. - (cherry picked from commit 4ff91980e48896bffc9587601d4b77210c3e8072) + Transmitted-via: Transifex (translations.xfce.org). -commit eb1de5a4d3b5f921381d1ad908f98a0aeb077ae5 -Author: Seong-ho Cho -Date: Mon Sep 12 19:22:04 2011 +0200 +commit 03aeb246d7edd89d765ee0d4611e917a238854a6 +Author: Dmitrij Smirnov +Date: Fri Jul 15 18:34:48 2011 +0200 - l10n: Updated Korean (ko) translation to 100% + l10n: Updated Russian (ru) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 884b4f9854687eaa754cc3d9b9709159f1b9596c -Author: Seong-ho Cho -Date: Mon Sep 12 17:56:09 2011 +0200 +commit f2e5bf4dcfbe3d307bbc3a21a0c74ff64bb771de +Author: Tomáš Vadina +Date: Thu Jul 14 09:17:56 2011 +0200 - l10n: Updated Korean (ko) translation to 100% + l10n: Updated Slovak (sk) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 0fbee836718b84b326e6b8a46c46d06d9d00087a -Author: Seong-ho Cho -Date: Mon Sep 12 17:52:03 2011 +0200 +commit 963f7adf350cec10bfe30e20357b05ebdd3e0c1f +Author: Praveen Illa +Date: Wed Jul 13 18:18:32 2011 +0200 - l10n: Updated Korean (ko) translation to 99% + l10n: Updated Telugu (te) translation to 75% - New status: 674 messages complete with 0 fuzzies and 5 untranslated. + New status: 512 messages complete with 0 fuzzies and 167 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit b045362680e344835aa474c53c4c8151c724b035 -Author: Seong-ho Cho -Date: Mon Sep 12 17:48:23 2011 +0200 +commit ee11230cc7c8911065689860db2e1dbc58568134 +Author: Artem Zolochevskiy +Date: Tue Jul 12 20:53:02 2011 +0200 - l10n: Updated Korean (ko) translation to 97% + l10n: Updated Russian (ru) translation to 100% - New status: 661 messages complete with 9 fuzzies and 9 untranslated. + New status: 293 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit b5e7350233130621472a9e25147b5ed5548ebe60 -Author: Seong-ho Cho -Date: Mon Sep 12 17:43:46 2011 +0200 +commit ef017d532e6f93c3452f5d18ff70d37f1ee97802 +Author: Christoph Mende +Date: Mon Jun 27 12:00:32 2011 +0200 - l10n: Updated Korean (ko) translation to 94% + l10n: Updated German (de) translation to 10% - New status: 641 messages complete with 25 fuzzies and 13 untranslated. + New status: 30 messages complete with 27 fuzzies and 236 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 8b91c527721391a15324582bfb94cc1d862f3658 -Author: Seong-ho Cho -Date: Mon Sep 12 17:21:55 2011 +0200 +commit 0849bb6f34abf9838c240e2f18c8ea612da95769 +Author: Christoph Mende +Date: Sun Jun 26 13:09:43 2011 +0200 - l10n: Updated Korean (ko) translation to 92% + l10n: Start German translation - New status: 631 messages complete with 34 fuzzies and 14 untranslated. + New status: 30 messages complete with 21 fuzzies and 242 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 9f81739155363b3cdfd389fd6c1ec67dffa47422 -Author: Pjotr Anon -Date: Wed Sep 7 20:29:08 2011 +0200 +commit e5b3d01690981e7797837c4ec37e960406db9201 +Author: Tomáš Vadina +Date: Sun Jun 26 09:39:26 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Slovak (sk) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 05ccce1beb10ff05ca1a13e0fd13567b938ebf29 +commit 9338c5c3c88c5197e2275cf73c9cb58afc1d82d3 Author: Pjotr Anon -Date: Mon Sep 5 16:14:28 2011 +0200 +Date: Fri Jun 17 00:45:52 2011 +0200 l10n: Updated Dutch (Flemish) (nl) translation to 100% @@ -167,169 +13465,239 @@ Transmitted-via: Transifex (translations.xfce.org). -commit ed9bb5bdc53922d5e933b0532328697472e5ad3b -Author: Alexandr Boltris -Date: Fri Aug 26 16:30:31 2011 +0200 +commit 29f2d0ebe984486f357c0438ae5fe9ed528789ba +Author: Tomáš Vadina +Date: Thu Jun 16 14:58:19 2011 +0200 - l10n: Updated Russian (ru) translation to 100% + l10n: Updated Slovak (sk) translation to 100% - New status: 293 messages complete with 0 fuzzies and 0 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 1b7ea54f163d12a6d40cd779956cc205118cfdbd -Author: Alexandr Boltris -Date: Fri Aug 26 16:16:19 2011 +0200 +commit bec77cb8dd6f24cf954f3fa4312057248ef22f11 +Author: Tomáš Vadina +Date: Thu Jun 16 14:56:13 2011 +0200 - l10n: Updated Russian (ru) translation to 99% + l10n: Updated Slovak (sk) translation to 100% - New status: 678 messages complete with 1 fuzzy and 0 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 6ea8b6214b76e002441b70d5b9b438e95e9a6cfc -Author: Alexandr Boltris -Date: Fri Aug 26 16:11:31 2011 +0200 +commit a8d3e76b2c4a8eb3e06775c915dc7a54317b4586 +Author: Pjotr Anon +Date: Tue Jun 14 18:27:00 2011 +0200 - l10n: Updated Russian (ru) translation to 99% + l10n: Updated Dutch (Flemish) (nl) translation to 100% - New status: 678 messages complete with 1 fuzzy and 0 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit faa158b12c90c01fc3e52a5ed97deb42a6abac28 -Author: Alexandr Boltris -Date: Fri Aug 26 09:04:38 2011 +0200 +commit 037e3a0eada76d5a5769172640a6510098e90144 +Author: Pjotr Anon +Date: Tue Jun 14 16:29:42 2011 +0200 - l10n: Updated Russian (ru) translation to 99% + l10n: Updated Dutch (Flemish) (nl) translation to 100% - New status: 678 messages complete with 1 fuzzy and 0 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit f9481d966a1fca95fb1ae443c661200f5cafca38 -Author: Alexandr Boltris -Date: Thu Aug 25 15:06:00 2011 +0200 +commit 8d288b33f6ba65436e6f86eeb8c54127cc8ba5e1 +Author: Ivica Kolić +Date: Mon Jun 13 01:58:21 2011 +0200 - l10n: Updated Russian (ru) translation to 100% + l10n: Updated Croatian (hr) translation to 82% - New status: 293 messages complete with 0 fuzzies and 0 untranslated. + New status: 563 messages complete with 0 fuzzies and 116 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit cf156d6bf2ae7a0fb8f5212c1fa6dd80760b7ab2 -Author: Alexandr Boltris -Date: Thu Aug 25 14:04:36 2011 +0200 +commit 310aa533374ed643082f70ef191d8c1959dc32ad +Author: Praveen Illa +Date: Fri Jun 10 23:38:05 2011 +0200 - l10n: Updated Russian (ru) translation to 99% + l10n: Updates to Telugu Translation - New status: 678 messages complete with 1 fuzzy and 0 untranslated. + New status: 315 messages complete with 0 fuzzies and 364 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit ea9ac2445ea5f5f7b716c8f50152d0e5fd38d8e6 -Author: Artem Zolochevskiy -Date: Wed Aug 17 13:59:17 2011 +0200 +commit e181d8fcaa8fb8a6bc4b2f9943c81257e7ca8cb4 +Author: Tomáš Vadina +Date: Wed Jun 8 09:20:49 2011 +0200 - l10n: Updated Russian (ru) translation to 99% + l10n: Updated Slovak (sk) translation to 100% - New status: 678 messages complete with 1 fuzzy and 0 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 749fd18e08f35ff50b4c868d5bdf876a133a1fcc -Author: Artem Zolochevskiy -Date: Wed Aug 17 13:38:01 2011 +0200 +commit a3d84905bbaf9f6f6e73915ed2fdc7d01300ad00 +Author: Tomáš Vadina +Date: Tue Jun 7 15:22:09 2011 +0200 - l10n: Updated Russian (ru) translation to 99% + l10n: Updated Slovak (sk) translation to 100% - New status: 678 messages complete with 1 fuzzy and 0 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 6cf9a5aec1121f6ba2d33a1cd5dd68968e40de8d -Author: Andres Sanchez -Date: Wed Aug 10 19:56:38 2011 +0200 +commit 823f625e41e6fd2e147545266b4c9285b7863e2f +Author: Jannis Pohlmann +Date: Thu Jun 2 23:30:07 2011 +0200 - l10n: Updated Spanish (Castilian) (es) translation to 100% + Revert "Speed up initial start by adding the Network item later (bug #7313)." + + This reverts commit 5ce61f48171c9b95e8b89e0d2c53a7bfbeb9ac93. + +commit 664cf8698e07a627bc9b62a6431498842ba25949 +Author: Andhika Padmawan +Date: Wed Jun 1 05:14:14 2011 +0200 + + l10n: Updated Indonesian (id) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit aa61d0873570d2a44126ae80a70a8869db101be9 -Author: Mohd. Nadzrin Sapari -Date: Wed Aug 10 19:32:28 2011 +0200 +commit de8f3cc3675d9c7c8f28f455e8886d62b88170e7 +Author: zaenal +Date: Sun May 29 21:29:15 2011 +0200 - l10n: Updates to Malay translation + l10n: Updated Indonesian (id) translation to 43% - New status: 9 messages complete with 0 fuzzies and 670 untranslated. + New status: 127 messages complete with 0 fuzzies and 166 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 56fbe2db9dd0672cf9a4dea0e5d5dfa971768771 -Author: Bauzhan Muftakhidinov -Date: Mon Aug 8 05:48:58 2011 +0200 +commit 5d91b5a11f6f049f048f440ae4fd931c7939a754 +Author: Jari Rahkonen +Date: Sun May 29 12:07:02 2011 +0200 - l10n: Updated Kazakh (kk) translation to 100% + l10n: Updated Finnish (fi) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 91963aaca870aafd06fccb78cd2e2420476dce4b -Author: Tomáš Vadina -Date: Sat Jul 30 18:25:00 2011 +0200 +commit 2fffb8e001c13927545d2d099fafa806f6d68c8e +Author: Pjotr Anon +Date: Fri May 27 14:59:55 2011 +0200 - l10n: Updated Slovak (sk) translation to 100% + l10n: Updated Dutch (Flemish) (nl) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 0d80d522e6f2b8a639a6e403e443077e0215f080 -Author: Tomáš Vadina -Date: Thu Jul 14 09:17:29 2011 +0200 +commit 46ec787076234dd609a0bdb879c1cebe4a05a921 +Author: Ivica Kolić +Date: Fri May 27 00:33:18 2011 +0200 - l10n: Updated Slovak (sk) translation to 100% + l10n: Updated Croatian (hr) translation to 79% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 539 messages complete with 0 fuzzies and 140 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 8f2db55477022682c80b5c4e122baa1773decc28 -Author: Praveen Illa -Date: Wed Jul 13 18:21:55 2011 +0200 +commit a1a03e46293b7a9ead88afa48c10036b08fcf815 +Author: Jannis Pohlmann +Date: Thu May 26 23:45:13 2011 +0200 - l10n: Updated Telugu (te) translation to 75% + Revert and fix a part of 32c528a8e9a36ab522b73590a03332027316040b. + +commit 0fef45d69692e1e95ef73a10fb790102268a16f9 +Author: Nick Schermer +Date: Thu May 26 08:04:07 2011 +0200 + + l10n: Updated Chinese (China) (zh_CN) translation to 100% - New status: 512 messages complete with 0 fuzzies and 167 untranslated. + New status: 293 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 6b70ad21a94368ccde9917bc0721b6019df35eb3 -Author: Cristian Marchi -Date: Sat Jul 2 14:40:41 2011 +0200 +commit f35e4b3696ceaa5b22e5ba71372de5562a68b5e2 +Author: Jannis Pohlmann +Date: Thu May 26 01:48:57 2011 +0200 - l10n: Updated Italian (it) translation to 100% + Fix the bug number. + +commit 5ce61f48171c9b95e8b89e0d2c53a7bfbeb9ac93 +Author: Jannis Pohlmann +Date: Thu May 26 01:16:10 2011 +0200 + + Speed up initial start by adding the Network item later (bug #7313). + + There are other ways to achieve the same effect: load the icon and the + name of items in the side pane first and only resolve the real files + when users click on them. But this was easier. Also, I expect the side + pane to be redesigned soon and this fix makes it easier to apply the + change to the 4.8 branch. + +commit d1addda2046961f52c195cf11119277ee3d4d2c8 +Author: Artem Zolochevskiy +Date: Wed May 25 14:32:38 2011 +0200 + + l10n: Updated Russian (ru) translation to 100% + + New status: 293 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit ceb9fdc22fa60ef36386dc98d0b858d8e7a65d64 +Author: Leandro Regueiro +Date: Mon May 23 12:54:26 2011 +0200 + + l10n: Updated Galician (gl) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit a1bf94a98064e8de5aeb053f7a48a5fa556bdda2 -Author: Tomáš Vadina -Date: Sun Jun 26 09:39:09 2011 +0200 +commit bb227bfe0d761476fbd8d72fa51afaeaffa10715 +Author: Jannis Pohlmann +Date: Fri May 20 02:05:06 2011 +0200 - l10n: Updated Slovak (sk) translation to 100% + Treat backup files as hidden, as with thunar-vfs (bug #7615). + +commit a6650a997c975d09a7c881329564cdfe5626e1b6 +Author: Jannis Pohlmann +Date: Fri Apr 15 14:07:52 2011 +0200 + + Improve the UI according to bugs #7496 and #7497. + +commit 298752609159f96a99669a98909f19b2a3e61313 +Author: Jérôme Guelfucci +Date: Sun May 15 19:17:04 2011 +0200 + + Fix typos in header file. + +commit 233336c3f0231989c640fd7b875398ca464b1619 +Author: Pjotr Anon +Date: Thu May 12 15:35:13 2011 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit a43638bbd2b90c2e8b66b8521ab18d492c5b742e +Author: Pjotr Anon +Date: Wed May 11 17:22:16 2011 +0200 + + l10n: Updated Dutch (Flemish) (nl) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit daa24f99756c2203025b99c332f67b434df5e32b +commit 0d91901338b9e7d4318ff6146593507d5a03c020 Author: Chipong Luo -Date: Fri Jun 24 04:38:54 2011 +0200 +Date: Wed May 11 04:29:09 2011 +0200 l10n: Updated Chinese (China) (zh_CN) translation to 100% @@ -337,331 +13705,361 @@ Transmitted-via: Transifex (translations.xfce.org). -commit e7bff5b48db3899de353f768f9013b3f9923422d -Author: Chipong Luo -Date: Tue Jun 21 15:22:27 2011 +0200 +commit fa83b6952f3e05cc9c8ef23ce6409b2b50b6b04f +Author: Nick Schermer +Date: Mon May 9 17:56:30 2011 +0200 - l10n: Updated Chinese (China) (zh_CN) translation to 100% + Make the clipboard persistence (bug #7060). - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + This is required to implement copy/paste if the thunar + daemon is not running. It does require a properly implemented + clipboard manager, like the one in xfsettingd. + +commit e91c529ec0830023758cd6aa3a84ab158cdfff44 +Author: kyberdev +Date: Mon May 9 09:31:10 2011 +0200 + + l10n: Updated Slovak (sk) translation to 98% + + New status: 666 messages complete with 6 fuzzies and 7 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 637ec25b7c5b2b8bee936008c2da1e857b092d03 -Author: Chipong Luo -Date: Mon Jun 20 11:22:49 2011 +0200 +commit a4248e014c6dc5735906a9e5ac089dad11d60dad +Author: Ivica Kolić +Date: Mon May 2 11:43:50 2011 +0200 - l10n: Updated Chinese (China) (zh_CN) translation to 100% + l10n: Updated Croatian (hr) translation to 78% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 532 messages complete with 0 fuzzies and 147 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 969511849b8bdb859b8458666d575cf3a4219d76 +commit 015ee84a256607387516eaac65072d8e18e2a305 Author: Chipong Luo -Date: Mon Jun 20 01:46:27 2011 +0200 +Date: Mon May 2 05:49:08 2011 +0200 l10n: Updated Chinese (China) (zh_CN) translation to 100% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 293 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 732670da01a2c177163f2507dc089d883c404c8d +commit 67947d818a69530d6deaa4f53cb280a3589588f5 Author: Chipong Luo -Date: Mon Jun 20 01:42:00 2011 +0200 +Date: Mon May 2 03:11:53 2011 +0200 l10n: Updated Chinese (China) (zh_CN) translation to 100% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 293 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 0c8a3043d11a1273dcf5bb7bebe4a8e1c941b159 -Author: Pjotr Anon -Date: Fri Jun 17 01:05:32 2011 +0200 +commit 9f0d8105d9a71b3fbb7462f5b492d6dec9443046 +Author: Chipong Luo +Date: Sun May 1 12:04:15 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 100% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 293 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit eb274faf2b83c0a8af454c0ac2ae657b660bcacf -Author: Tomáš Vadina -Date: Thu Jun 16 15:02:50 2011 +0200 +commit fc05e439b725d55c5a311bba8b255461165d59f5 +Author: Chipong Luo +Date: Sun May 1 11:05:48 2011 +0200 - l10n: Updated Slovak (sk) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 98% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 289 messages complete with 0 fuzzies and 4 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 3e3eea977cdc8af611caa94ffe80b2e4c258c54d -Author: Tomáš Vadina -Date: Thu Jun 16 15:02:14 2011 +0200 +commit b9994296f689c702062238aa9b28485b481417b6 +Author: Chipong Luo +Date: Sun May 1 10:34:12 2011 +0200 - l10n: Updated Slovak (sk) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 96% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 283 messages complete with 0 fuzzies and 10 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit d907a88797a9ede6cce93a483a2cb6bfe2d6460b -Author: Pjotr Anon -Date: Tue Jun 14 18:20:15 2011 +0200 +commit 109a65aa2d4d0d8247be46e47afd46d9daa4d808 +Author: Chipong Luo +Date: Sun May 1 01:45:59 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 91% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 269 messages complete with 0 fuzzies and 24 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit abe2ae84e8a0a01dc674421558e07574a8efe6e0 -Author: Pjotr Anon -Date: Tue Jun 14 16:01:37 2011 +0200 +commit 80c90d73b983e2a2863f5b4e078f91d9e39b9769 +Author: Chipong Luo +Date: Sun May 1 01:28:49 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 91% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 268 messages complete with 0 fuzzies and 25 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 28ca61f1e4b7a0262b6ea54ca2bed210f64369f0 -Author: Praveen Illa -Date: Fri Jun 10 23:40:20 2011 +0200 +commit febe776b82b2b4efe0b76f4b3bc504532bf84b4a +Author: Chipong Luo +Date: Sat Apr 30 16:00:53 2011 +0200 - l10n: Updates to Telugu Translation + l10n: Updated Chinese (China) (zh_CN) translation to 88% - New status: 315 messages complete with 0 fuzzies and 364 untranslated. + New status: 259 messages complete with 2 fuzzies and 32 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit ad89dbd9aa7e2fa83b1a5cb19f2df316f21be24f -Author: Tomáš Vadina -Date: Wed Jun 8 09:06:02 2011 +0200 +commit 79530b0a369270e629f4143c5a16fd6aa1e58eea +Author: Chipong Luo +Date: Sat Apr 30 14:30:16 2011 +0200 - l10n: Updated Slovak (sk) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 86% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 252 messages complete with 2 fuzzies and 39 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit fcf64f29b78a7e24b27f9494a6073c1247769024 -Author: Jannis Pohlmann -Date: Thu Jun 2 23:32:13 2011 +0200 +commit 3a4e9c35d6c70414208038e922b8a9521be0d396 +Author: Chipong Luo +Date: Sat Apr 30 04:45:50 2011 +0200 - Revert "Speed up initial start by adding the Network item later (bug #7373)." + l10n: Updated Chinese (China) (zh_CN) translation to 85% - This reverts commit a14345dafd7cb6333317d5ebddf62fbddc946c27. + New status: 250 messages complete with 0 fuzzies and 43 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). -commit 65c52faf4c192b9cc3eaf38a9b928759017e91c0 -Author: Piarres Beobide -Date: Mon May 30 22:00:46 2011 +0200 +commit c7828af615f19e2c2f395f209d3c9737d4f62aa8 +Author: Chipong Luo +Date: Sat Apr 30 04:17:04 2011 +0200 - l10n: Updated Basque (eu) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 84% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 249 messages complete with 0 fuzzies and 44 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit d2d3453f16306bcd5b93c1bc35ea6775cf37ea68 -Author: Pjotr Anon -Date: Fri May 27 12:37:49 2011 +0200 +commit d24160e438fb943fbffa185068eec3a65a19842e +Author: Chipong Luo +Date: Sat Apr 30 01:34:44 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 83% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 244 messages complete with 0 fuzzies and 49 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit b6b7d17f8f08880f2e94f0d4764a0fb1e24dbf54 -Author: Pjotr Anon -Date: Fri May 27 12:15:07 2011 +0200 +commit e3b139f61023f2db84a32b0876ecf69dd78abbd9 +Author: Chipong L +Date: Fri Apr 29 11:19:37 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 77% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 226 messages complete with 0 fuzzies and 67 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 34988e109963011e2b484aa7f5f9cc3a347a3bc3 -Author: Yves-Alexis Perez -Date: Thu Apr 21 16:59:40 2011 +0200 +commit 4a6aaf490a708d1e405a4123a8c778427733a490 +Author: Chipong L +Date: Thu Apr 28 22:42:11 2011 +0200 - Use glib functions for get/set cwd (bug #7522). + l10n: Updated Chinese (China) (zh_CN) translation to 76% - MAXPATHLEN isn't defined on all platforms and there - are glib functions to handle the platform specific code. - -commit 29a87328c38ef7b21e94fd9e63b8975f5a5a3b03 -Author: Jannis Pohlmann -Date: Fri May 27 00:22:46 2011 +0200 - - Post-release version bump. - -commit 3174e67eae7add14e09844d7c21bb503218e0fda -Author: Jannis Pohlmann -Date: Fri May 27 00:07:53 2011 +0200 - - Release 1.2.2! + New status: 224 messages complete with 0 fuzzies and 69 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). -commit 93ac409bee2f84f9ea52b025a9f7b9e0802b6c08 -Author: Jannis Pohlmann -Date: Fri May 27 00:07:37 2011 +0200 +commit 8d0cb64d3018cea41c3a17f809bc06dde9b9a346 +Author: Chipong L +Date: Thu Apr 28 09:20:56 2011 +0200 - Fix unused but set variable. + l10n: Updated Chinese (China) (zh_CN) translation to 70% + + New status: 208 messages complete with 3 fuzzies and 82 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). -commit b43798915a9ff891df405ae46ac15da1c64c93cd -Author: Jannis Pohlmann -Date: Thu May 26 23:45:13 2011 +0200 +commit 7620811ddaff7990c465987bedeb4caf0cb57984 +Author: Chipong L +Date: Thu Apr 28 06:08:32 2011 +0200 - Revert and fix a part of 32c528a8e9a36ab522b73590a03332027316040b. + l10n: Updated Chinese (China) (zh_CN) translation to 68% + + New status: 200 messages complete with 0 fuzzies and 93 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). -commit 48d089cd7f23d230d9956a1728c0c665ab8ec6c9 -Author: Nick Schermer -Date: Fri Apr 22 21:17:01 2011 +0200 +commit 3b3d8478915b3aac9d32bf162ebb21d676d728c0 +Author: Chipong L +Date: Thu Apr 28 04:26:02 2011 +0200 - Drop some unused variables. + l10n: Updated Chinese (China) (zh_CN) translation to 66% + + New status: 194 messages complete with 0 fuzzies and 99 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). -commit 2d14f17a152ac76d8d9c45aeef2d557c1bb10384 -Author: Lionel Le Folgoc -Date: Fri Apr 15 13:12:38 2011 +0200 +commit f481d1cee8d17b0a717f099e29221898e329444b +Author: Chipong L +Date: Thu Apr 28 03:25:10 2011 +0200 - Don't interpret file display names as format strings + l10n: Updated Chinese (China) (zh_CN) translation to 62% - This avoids a segfault when copying/moving files containing "%" formatters - in their name. + New status: 183 messages complete with 0 fuzzies and 110 untranslated. - Signed-off-by: Jannis Pohlmann + Transmitted-via: Transifex (translations.xfce.org). -commit 85917520a01ca48194716833421422b09f484c7c -Author: Pjotr Anon -Date: Thu May 26 10:05:02 2011 +0200 +commit 061e6b68e3bea3f18687bae1b56e1f29b906ffa6 +Author: Chipong L +Date: Thu Apr 28 01:02:07 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 62% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 183 messages complete with 0 fuzzies and 110 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit a14345dafd7cb6333317d5ebddf62fbddc946c27 -Author: Jannis Pohlmann -Date: Thu May 26 01:16:10 2011 +0200 +commit ce327de1ece3dc77c07f81c5157a024ebc34ebcd +Author: Chipong L +Date: Thu Apr 28 00:42:16 2011 +0200 - Speed up initial start by adding the Network item later (bug #7373). + l10n: Updated Chinese (China) (zh_CN) translation to 62% + + New status: 182 messages complete with 0 fuzzies and 111 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). -commit 9efd4b71e449406a90131b6a14b9bac318e204c1 -Author: Jannis Pohlmann -Date: Fri May 20 02:05:06 2011 +0200 +commit 8344568716cb924728604ccc2f77fbad670ce343 +Author: Chipong L +Date: Wed Apr 27 23:21:11 2011 +0200 - Treat backup files as hidden, as with thunar-vfs (bug #7615). + l10n: Updated Chinese (China) (zh_CN) translation to 58% + + New status: 171 messages complete with 0 fuzzies and 122 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). -commit d7c79615cd764cd1f82d041694ee03197d9ee9df -Author: Pjotr Anon -Date: Fri May 13 19:02:01 2011 +0200 +commit ea0cb81c3705367c4137b70f796a7211d41b9e85 +Author: Chipong L +Date: Wed Apr 27 15:10:50 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 49% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 146 messages complete with 0 fuzzies and 147 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit a99b2587f6a5037957d30d7c69357504b511dfc6 -Author: Pjotr Anon -Date: Fri May 13 15:07:40 2011 +0200 +commit 71c6bdd9b84b1e20070d501cb0dd283bab36a91f +Author: Chipong L +Date: Wed Apr 27 10:23:53 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 49% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 144 messages complete with 0 fuzzies and 149 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit e30b018a882ec0565d18cc710a6db5cbf7ec659e -Author: Chipong Luo -Date: Wed May 11 04:16:32 2011 +0200 +commit cd16629705b2e5f0e0e219df71248116a659e27a +Author: Chipong L +Date: Wed Apr 27 09:56:16 2011 +0200 - l10n: Updated Chinese (China) (zh_CN) translation to 100% + l10n: Updated Chinese (China) (zh_CN) translation to 48% - New status: 293 messages complete with 0 fuzzies and 0 untranslated. + New status: 142 messages complete with 0 fuzzies and 151 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit e704f494fc7511e0fd40158cea1b21c3927bb714 -Author: Chipong Luo -Date: Wed May 11 04:14:05 2011 +0200 +commit 812b510d0aba2fb9723113271522029b13f38799 +Author: Piarres Beobide +Date: Mon Apr 25 09:02:47 2011 +0200 - l10n: Updated Chinese (China) (zh_CN) translation to 99% + l10n: Updated Basque (eu) translation to 100% - New status: 291 messages complete with 0 fuzzies and 2 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit e495d9e80e95f20bd2053a324bf2a83e9801c47e -Author: Pjotr Anon -Date: Mon May 9 19:40:46 2011 +0200 +commit 9129f41817bc6bd66dad11f96ceabb1de7748df9 +Author: Sérgio Cipolla +Date: Mon Apr 25 02:22:21 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 70b048d81b4ed35f9b3bbc188210b5a9f11b35ab +commit 32c528a8e9a36ab522b73590a03332027316040b Author: Nick Schermer -Date: Mon May 9 17:56:30 2011 +0200 +Date: Fri Apr 22 21:17:01 2011 +0200 - Make the clipboard persistence (bug #7060). - - This is required to implement copy/paste if the thunar - daemon is not running. It does require a properly implemented - clipboard manager, like the one in xfsettingd. + Drop some unused variables. + +commit 9b80264fa596e18468066ffb3f03804421f3872e +Author: Yves-Alexis Perez +Date: Thu Apr 21 16:59:40 2011 +0200 + + Use glib functions for get/set cwd (bug #7522). - (cherry picked from commit fa83b6952f3e05cc9c8ef23ce6409b2b50b6b04f) + MAXPATHLEN isn't defined on all platforms and there + are glib functions to handle the platform specific code. -commit 9a24ec8f222a8eb167dc20a0e0d0a1af8317bde9 -Author: Pjotr Anon -Date: Mon May 9 11:58:16 2011 +0200 +commit a02ba13184390696d59c7e6e28cb449526571d65 +Author: Sérgio Cipolla +Date: Thu Apr 21 02:16:31 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 100% + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 83cb6dcbfc918099cd628abf12bf7dbca08ce3ae -Author: Pjotr Anon -Date: Sun May 8 21:38:00 2011 +0200 +commit cae33b89ad8ae9560aedf2cae9ce5d98d7827c8c +Author: Stavros Giannouris +Date: Tue Apr 19 16:17:39 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 98% + l10n: Updated Greek (el) translation to 100% - New status: 668 messages complete with 11 fuzzies and 0 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 68960ba9b344b44c095a8206bc028d5cd75caa96 -Author: Pjotr Anon -Date: Sun May 8 21:34:19 2011 +0200 +commit e90b0bc08451f141a275af323311ecae50261d7b +Author: Jannis Pohlmann +Date: Fri Apr 15 14:14:21 2011 +0200 + + Update the NEWS file. + +commit 03dd312e157d4fa8a11d5fa402706ae5b05806fa +Author: Lionel Le Folgoc +Date: Fri Apr 15 13:12:38 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 98% + Don't interpret file display names as format strings - New status: 667 messages complete with 12 fuzzies and 0 untranslated. + This avoids a segfault when copying/moving files containing "%" formatters + in their name. - Transmitted-via: Transifex (translations.xfce.org). + Signed-off-by: Jannis Pohlmann -commit 37136d52edb0dedca2925fe544d4d8d5812addb8 -Author: Pjotr Anon -Date: Sun May 8 18:19:28 2011 +0200 +commit 6f6bd15ae0f1117126db05c03c129771e3119fe9 +Author: Sérgio Cipolla +Date: Thu Apr 7 00:53:57 2011 +0200 - l10n: Updated Dutch (Flemish) (nl) translation to 88% + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% - New status: 604 messages complete with 57 fuzzies and 18 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 3794a96d50215e3abc6c4a317bfeb852d107d4ed +commit ee409fe58b7fec727b649d6bc60b129c68fba58b Author: Sérgio Cipolla -Date: Mon Apr 25 22:13:43 2011 +0200 +Date: Fri Apr 1 22:14:48 2011 +0200 l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% @@ -669,129 +14067,145 @@ Transmitted-via: Transifex (translations.xfce.org). -commit 6c7a8c9275bc81fcae7d64ab0b86bae3f333ae5e -Author: Stavros Giannouris -Date: Tue Apr 19 16:18:39 2011 +0200 +commit c82dcefb995f30928312d8cdee434d18e559249b +Author: Sérgio Cipolla +Date: Fri Apr 1 17:11:53 2011 +0200 - l10n: Updated Greek (el) translation to 100% + l10n: Updated Portuguese (Brazilian) (pt_BR) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 4a77e7d8ccca2af157bd6bdc3d43f5a43befda63 -Author: Andrei Zakharevich -Date: Sat Apr 16 22:39:31 2011 +0200 +commit cd70d6a18ff049a14ace3d72e4228c015c9a40ab +Author: Nick Schermer +Date: Sun Mar 27 14:12:13 2011 +0200 - l10n: Updated Belarusian (be) translation to 95% + Use portable abicheck.sh from xfconf. + +commit 5fa79c63419d6fb42ff836555f38faf5d57e178e +Author: Gonzalo Lagos +Date: Fri Mar 25 23:49:15 2011 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 86% - New status: 648 messages complete with 30 fuzzies and 1 untranslated. + New status: 253 messages complete with 3 fuzzies and 37 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 0ddee21faec89b46af88753ac8023f25038ed924 -Author: Andrei Zakharevich -Date: Sat Apr 16 22:34:13 2011 +0200 +commit b2462b86611db859714bfda516e4e4b617acba14 +Author: Piotr Sokół +Date: Thu Mar 24 09:50:43 2011 +0100 - l10n: Updated Belarusian (be) translation to 93% + l10n: Updated Polish (pl) translation to 99% - New status: 635 messages complete with 43 fuzzies and 1 untranslated. + New status: 675 messages complete with 3 fuzzies and 1 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 65de9bd1a2e5967b8e2ea49ec0db35d939c4eb85 -Author: Andrei Zakharevich -Date: Sat Apr 16 22:21:38 2011 +0200 +commit 482940cd7032627d58739b41aacc96830198f643 +Author: Harald Servat +Date: Tue Mar 15 13:01:33 2011 +0100 - l10n: Updated Belarusian (be) translation to 92% + l10n: Updated Catalan (Valencian) (ca) translation to 100% - New status: 626 messages complete with 49 fuzzies and 4 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 3a2049e843bc7028d07be9a8a4ce166e64214025 -Author: Andrei Zakharevich -Date: Sat Apr 16 21:51:26 2011 +0200 +commit a7c0d7cd9d704e0beb12a5de830f4942e7d1120e +Author: 微 尘 +Date: Sun Mar 13 06:17:53 2011 +0100 - l10n: Updated Belarusian (be) translation to 91% + l10n: Updated Chinese (China) (zh_CN) translation to 100% + + New status: 679 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit fcd28173fdd1501219796ec1fc8666cb89a1b33b +Author: Gonzalo Lagos +Date: Fri Mar 11 21:16:26 2011 +0100 + + l10n: Updated Spanish (Castilian) (es) translation to 82% - New status: 619 messages complete with 48 fuzzies and 12 untranslated. + New status: 243 messages complete with 1 fuzzy and 49 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 858956a3ea8b2435fc6f9c8ad7865af4055074aa -Author: Andrei Zakharevich -Date: Sat Apr 16 21:48:24 2011 +0200 +commit 0f066d44451d17ceb6352d55d81b1feefdaa0add +Author: Gonzalo Lagos +Date: Fri Mar 11 04:39:53 2011 +0100 - l10n: Updated Belarusian (be) translation to 90% + l10n: Updated Spanish (Castilian) (es) translation to 81% - New status: 617 messages complete with 48 fuzzies and 14 untranslated. + New status: 240 messages complete with 1 fuzzy and 52 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 46520dfb4547857b828f49d9e97469ae80390eb2 -Author: Yarema aka Knedlyk -Date: Sat Apr 16 00:13:53 2011 +0200 +commit 78cb539ca3e2d9447922ce92cd06b5cf7e14ae5c +Author: Gonzalo Lagos +Date: Wed Mar 9 19:13:14 2011 +0100 - l10n: Updated Ukrainian (uk) translation to 100% + l10n: Updated Spanish (Castilian) (es) translation to 81% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 239 messages complete with 1 fuzzy and 53 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit b67350ee12cd26af67dacdd134e9f8f8dae0e2c4 -Author: Jari Rahkonen -Date: Mon Apr 11 21:59:23 2011 +0200 +commit b655ee2fa82dcaf25c0635c1a43e43106b886bfc +Author: Gonzalo Lagos +Date: Wed Mar 9 18:56:01 2011 +0100 - l10n: Updated Finnish (fi) translation to 100% + l10n: Updated Spanish (Castilian) (es) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 11a6d374b3886a4c46f7730da16299d528eacbad -Author: 微 尘 -Date: Sun Apr 3 03:48:34 2011 +0200 +commit 58658d77f909706e421d49be80667dbfc7657c16 +Author: Dmitrij Smirnov +Date: Sun Mar 6 20:13:37 2011 +0100 - l10n: Updated Chinese (China) (zh_CN) translation to 100% + l10n: Updated Russian (ru) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 5e2c8c764b7161c11a76d881d338c95b70d3cfab -Author: necdetyucel -Date: Sun Mar 20 21:27:24 2011 +0100 +commit f3e4dbc2df11ffdf4fa92b31501f1b61b47c4b68 +Author: Cristian Marchi +Date: Sat Mar 5 22:05:31 2011 +0100 - l10n: Updated Turkish (tr) translation to 100% + l10n: Updated Italian (it) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 267b4cbb79daa92dc815ef14a9a8a9c3d6a4e6ed -Author: kozdincer -Date: Thu Mar 17 19:31:12 2011 +0100 +commit cd0b384b4a2b7f21f832fef1753395eedb69f369 +Author: Yarema aka Knedlyk +Date: Sat Mar 5 02:27:24 2011 +0100 - l10n: Updated Turkish (tr) translation to 100% + l10n: Updated Ukrainian (uk) translation to 100% - New status: 293 messages complete with 0 fuzzies and 0 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 78c632ae64db78c6cdd5e75759abf818dd6f40b4 -Author: necdetyucel -Date: Thu Mar 17 14:30:42 2011 +0100 +commit 268db052eff93a4bff7843892b64a18eebe9ea70 +Author: Sergio Marques +Date: Wed Mar 2 22:55:31 2011 +0100 - l10n: Updated Turkish (tr) translation to 99% + l10n: Updated Portuguese (pt) translation to 100% - New status: 677 messages complete with 0 fuzzies and 2 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit dc94c3122ed5c094e84a1c5bcfffad2cb4d8132a +commit ebab732b9fc49cfcd4a6b0c8eb21ff5f035a0149 Author: Daniel Nylander -Date: Mon Feb 28 12:17:25 2011 +0100 +Date: Mon Feb 28 11:39:11 2011 +0100 l10n: Updated Swedish (sv) translation to 100% @@ -799,59 +14213,71 @@ Transmitted-via: Transifex (translations.xfce.org). -commit 3c6224927dc4ee89831ced7fb5ad7ae4fc73bb5d -Author: Robert Hartl -Date: Sun Feb 27 11:42:51 2011 +0100 +commit 45625ae42a40bac2c6f6911bef938ec5cebc3363 +Author: Dmitrij Smirnov +Date: Sun Feb 27 22:50:54 2011 +0100 - l10n: Updated Slovak (sk) translation to 100% + l10n: Updated Russian (ru) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit cf404f619d35eb2cd3499f49810397989371e92d -Author: Masato Hashimoto -Date: Wed Feb 23 07:04:51 2011 +0100 +commit 63fe095dd6593e5729fb45bda47da340b2fdad2c +Author: Nick Schermer +Date: Sat Feb 26 12:50:04 2011 +0100 - l10n: Updated Japanese (ja) translation to 100% + Optipng manual images. + +commit eee8d715ac53264f2b6b397ea5ffe47ddd544eb1 +Author: Nick Schermer +Date: Sat Feb 26 12:39:20 2011 +0100 + + Add Greek manual screenshots. + +commit 169c5069d20fb8001a6706317f43521741c6a60c +Author: Yarema aka Knedlyk +Date: Thu Feb 24 13:46:47 2011 +0100 + + l10n: Updated Ukrainian (uk) translation to 100% New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 873a03a6f109c732726c436b2a751901a7a181b1 -Author: Sergey -Date: Mon Feb 21 16:15:23 2011 +0100 +commit 9be0585ffc038e5465dadf83196b27826dd0479f +Author: Bauzhan Muftakhidinov +Date: Thu Feb 24 06:34:06 2011 +0100 - l10n: Updated Russian (ru) translation to 100% + l10n: Updated Kazakh (kk) translation to 100% - New status: 293 messages complete with 0 fuzzies and 0 untranslated. + New status: 679 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 61f78e886ff9678bc954af8a3289e4fc75fb5012 -Author: Sergey -Date: Mon Feb 21 15:44:22 2011 +0100 +commit cc577da715a81c846c7c73c430f867dc0cd91144 +Author: Piotr Sokół +Date: Mon Feb 21 16:41:50 2011 +0100 - l10n: Updated Russian (ru) translation to 100% + l10n: Updated Polish (pl) translation to 99% - New status: 293 messages complete with 0 fuzzies and 0 untranslated. + New status: 675 messages complete with 2 fuzzies and 1 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 3faaa01cf93e46bacd5c4ed61a3e61ad54bd23b5 -Author: Sergio Marques -Date: Mon Feb 21 15:31:21 2011 +0100 +commit 998bd8b60936a6611df30d49a4e2e91860ec39c5 +Author: Sergey +Date: Mon Feb 21 16:14:09 2011 +0100 - l10n: Updated Portuguese (pt) translation to 100% + l10n: Updated Russian (ru) translation to 100% - New status: 679 messages complete with 0 fuzzies and 0 untranslated. + New status: 293 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 8cfd5cf7438d20aaefe2e8b399cb004ce1999bd3 +commit f3f17f75c730d2b3bc825f936da238b7203db356 Author: Sergey -Date: Mon Feb 21 10:38:01 2011 +0100 +Date: Mon Feb 21 10:42:37 2011 +0100 l10n: Updated Russian (ru) translation to 100% @@ -859,19 +14285,19 @@ Transmitted-via: Transifex (translations.xfce.org). -commit 7db68a72fcd7608d1db57c273f17eb43284389f1 +commit ef2b7daf3055b735e533bc9fc797d0f989a714db Author: Sergey -Date: Mon Feb 21 09:36:33 2011 +0100 +Date: Mon Feb 21 10:37:17 2011 +0100 - l10n: Updated Russian (ru) translation to 100% + l10n: Updated Russian (ru) translation to 99% - New status: 293 messages complete with 0 fuzzies and 0 untranslated. + New status: 292 messages complete with 0 fuzzies and 1 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 68b2251c9001d53ac19e0f150d41b40390c564f4 +commit 5ef5d8a212f23d3be1f211fd7cf41bf6b897c243 Author: Mișu Moldovan -Date: Sun Feb 20 11:37:58 2011 +0100 +Date: Sun Feb 20 11:39:48 2011 +0100 l10n: Updated Romanian (ro) translation to 100% @@ -879,9 +14305,9 @@ Transmitted-via: Transifex (translations.xfce.org). -commit e5d71fd85ddf394e20047e91b3528ca5cdb6b417 +commit 50ba0d6c76971755f8f250b9c6e0fc3b89b222fb Author: Per Kongstad -Date: Sun Feb 20 09:55:17 2011 +0100 +Date: Sun Feb 20 09:47:17 2011 +0100 l10n: Updated Danish (da) translation to 100% @@ -889,7 +14315,7 @@ Transmitted-via: Transifex (translations.xfce.org). -commit fc715a48bdaa80c6db500e086b453b8d6c86a28e +commit d5739ef148b02a5212dea2c0d7dcb7de4c79dd46 Author: Ambroz Bizjak Date: Sat Feb 19 18:26:20 2011 +0100 @@ -900,7 +14326,7 @@ Signed-off-by: Jannis Pohlmann -commit 61c04e0407e2e9db1ab8f2d2a7fe9adc4edde716 +commit f3def301388057f8080d675c8446907d7c62f3bc Author: Jannis Pohlmann Date: Sat Feb 19 16:06:27 2011 +0100 @@ -908,93 +14334,271 @@ Error spotted, reported and solved by Ambroz Bizjak. -commit 90ef6879c6518500f2abbdf3e13eec5b9e3adcc6 +commit bdaafeca93422438c25e76e237bd766cfef71bcf Author: Jannis Pohlmann Date: Sat Feb 19 15:52:53 2011 +0100 Fix properties dialog crash with files with unknown content type. -commit 506851c47e6cf415d71d45a5c67ca05984423717 +commit b3f4ba8174af70d4aed5068333014ddd0d5e620d Author: Jannis Pohlmann Date: Sat Feb 19 15:35:33 2011 +0100 Fix crash when trying to thumbnail a file with unknown content type. -commit a8bc7dfae527a4a3b63c93959c361ff0809fd91b -Author: Özgür Kuru -Date: Thu Feb 17 17:22:43 2011 +0100 +commit 2ea05d8bff3773803517f7ab9cd415efcbfc9991 +Author: Piotr Sokół +Date: Sat Feb 19 15:18:08 2011 +0100 - l10n: Updated Turkish (tr) translation to 99% + l10n: Updated Polish (pl) translation to 99% - New status: 675 messages complete with 1 fuzzy and 2 untranslated. + New status: 675 messages complete with 2 fuzzies and 1 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 6746ac3b86c9d41b5846bd52d54b32c29690dd84 -Author: Sergey -Date: Tue Feb 15 20:11:14 2011 +0100 +commit 2efb89974080e42cf16b6e8e5566c7767b4348e5 +Author: Piotr Sokół +Date: Fri Feb 18 12:56:26 2011 +0100 - l10n: Updated Russian (ru) translation to 52% + l10n: Updated Polish (pl) translation to 99% - New status: 154 messages complete with 5 fuzzies and 134 untranslated. + New status: 675 messages complete with 2 fuzzies and 1 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit cc9c920f069828debd98ef5c025c6fbfc1202df9 -Author: Claque -Date: Wed Feb 2 12:46:20 2011 +0100 +commit 7234d2fc32ca961252b9544ad57382ebef19c5e7 +Author: Jannis Pohlmann +Date: Mon Feb 14 15:01:35 2011 +0100 + + Release 1.3.0! + +commit 6ebca95f7cd2b2de82057994c7b8239f7cc3b5fb +Merge: 26d6c13 3415bea +Author: Jannis Pohlmann +Date: Mon Feb 14 14:09:15 2011 +0100 + + Merge branch 'jannis/thumbnailer-improvements' - l10n: Updated Russian (ru) translation to 48% +commit 3415bea8e7624012c4104791f0caf839b689636d +Author: Jannis Pohlmann +Date: Sun Feb 13 14:36:08 2011 +0100 + + Call thunar_thumbnail_cache_cleanup_file() when trashing a file/folder. + + When trashing a directory we cannot call the Delete() method of the + thumbnailer service as that would not delete thumbnails of its + descendants. Using the base URI parameter of Cleanup() we can achieve + this however. + +commit 9beaffa4809e88a52bd84bb0d51180bfd47ed2a0 +Author: Jannis Pohlmann +Date: Sun Feb 13 14:32:58 2011 +0100 + + Add thunar_thumbnail_cache_cleanup_file(). Sync with thumbnailer spec. + + Also increase the timeouts for Copy() and Delete() D-Bus method calls to + 500ms to reduce the D-Bus traffic. + +commit 26d6c13238f21f0967aa0ad4506e433934558c2e +Author: Guido Berhoerster +Date: Sat Feb 12 17:28:22 2011 +0100 + + Allow installation of the helpers in a custom location. + +commit 303037c1615657b675ce99917a55d86e93e324a3 +Author: Sergio Marques +Date: Wed Feb 9 15:05:23 2011 +0100 + + l10n: Updated Portuguese (pt) translation to 100% - New status: 141 messages complete with 14 fuzzies and 138 untranslated. + New status: 678 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 73f34ca2a53078f61a8f91bd0250f31a3eda7701 -Author: Claque -Date: Wed Feb 2 10:06:15 2011 +0100 +commit 68709d5a8e8db25fe60119321ae86e13f52051be +Author: Sergio Marques +Date: Wed Feb 9 15:02:13 2011 +0100 - l10n: Updated Russian (ru) translation to 48% + l10n: Updated Portuguese (pt) translation to 100% - New status: 141 messages complete with 9 fuzzies and 143 untranslated. + New status: 678 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit ceb0d24e970035d3cff2ca5b231f630a66da5562 -Author: Robert Hartl -Date: Mon Jan 31 14:46:09 2011 +0100 +commit 629fea8eb82c3e0ff891c6ce7156990303737ed7 +Author: mpopovic +Date: Tue Feb 8 23:33:32 2011 +0100 - l10n: Updated Slovak (sk) translation to 100% + l10n: Added Serbian Translation New status: 678 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 0ac42b8923834b33309586e599d3a412cd037d5b +commit 5a20e93a0d2734e8cb200d29dcb0ca31560805d0 +Author: Jannis Pohlmann +Date: Tue Feb 8 11:40:07 2011 +0100 + + Fix build without D-Bus. + +commit 216f3e9921557ddf2c763ac12d95ec085836cf14 +Author: Jannis Pohlmann +Date: Mon Feb 7 22:24:55 2011 +0100 + + Make the thumbnailing in ThunarStandardView a bit more responsive. + + Use a timeout of 175ms instead of 250ms. + +commit d52a31fda15823809f23c42724ae43c39ecd20df +Author: Jannis Pohlmann +Date: Mon Feb 7 22:22:40 2011 +0100 + + Improve the thumbnail cache support in transfer jobs a tiny bit. + +commit 9317f1b660ac0e3753c5a6cc6341a1b59d609381 +Author: Jannis Pohlmann +Date: Mon Feb 7 22:17:35 2011 +0100 + + Add thumbnail cache update support to the link job. + + This does wonders when linking stuff from slow remote locations into + your local system. + +commit ee3d81ed900dfd3e23b374504f34cc264abb3d2f Author: Jannis Pohlmann -Date: Sun Jan 30 19:36:56 2011 +0100 +Date: Mon Feb 7 21:54:58 2011 +0100 - Post-release version bump. + Use Move(), Copy() and Delete() cache methods in transfer jobs. + + This probably has to be improved (at least Copy() sometimes causes weird + icon view behavior when copying a lot of files to an open window). + Move transfer jobs work fine. + +commit 4f6e985763adc4c6dfed5153aaa5ec973f498f82 +Author: Jannis Pohlmann +Date: Mon Feb 7 21:51:17 2011 +0100 + + Call thunar_thumbnail_cache_delete_file() in the unlink job. + + This helps removing thumbnails from the on-disk cache that are no longer + needed because the original file no longer exists. It does a pretty good + job at that but there's more work to do to integrate Copy(), Move() and + Delete() in all the jobs. + +commit bdfbba792be55b094647fe06c739c5ac151b134f +Author: Jannis Pohlmann +Date: Mon Feb 7 21:49:22 2011 +0100 + + Add thunar_thumbnail_cache_copy_file(). + + This one also uses a queue and a timeout of 250ms to group Copy() D-Bus + method calls. + +commit 133d32f0fcc2c37f5c581d647ae5fd02014244f3 +Author: Jannis Pohlmann +Date: Mon Feb 7 21:21:58 2011 +0100 + + Add thunar_thumbnail_cache_delete_file(). Use queues for processing. + + We again use something like the wait queue in the old ThunarThumbnailer + here for grouping Move() and Delete() calls. The same will be done for + Copy(). It performs really well, moving 200 images from one folder to + another only generates a single Move() request with all images. At least + on my fast machine. + + The actual calls to thunar_thumbnail_cache_move_file() and + thunar_thumbnail_cache_delete_file() in the transfer and I/O jobs still + have to be added. + +commit 57cee92472be55feb9cb3549725190dfc035c314 +Author: Jannis Pohlmann +Date: Mon Feb 7 16:50:15 2011 +0100 + + Make sure to reset the thumbnail timeout/idle handler ID. + +commit d2dd3f68af0afaf4035a3ffbc7340d257703a003 +Author: Jannis Pohlmann +Date: Mon Feb 7 16:34:47 2011 +0100 + + Add a ThunarThumbnailCache to ThunarApplication, implement Move(). + + With this tumblerd can just copy the thumbnail and adjust its meta data + when a file is renamed. We thereby avoid regenerating thumbnails for + files that are simply renamed but whose contents don't change at all. + + We probably need some extra code to check whether the file type has now + changed or become incompatible with tumbler. In that case we will have + to drop the thumbnail. But how often does this really happen? + +commit 834e6455488ccfb505127ba175e5366e1c652691 +Author: Jannis Pohlmann +Date: Mon Feb 7 15:12:29 2011 +0100 + + Use a timeout/idle to request thumbnails in ThunarStandardView. + + This is the second part of redesigning how thumbnails are requested in + Thunar. Each ThunarStandardView now has a ThunerThumbnailer object. + On scroll and resize events and whenever a new directory has finished + loading, ThunarStandardView now schedules a timeout or idle handler + (depending on the situation) to request thumbnails for all visible items + of the view. + + This timeout/idle handler is rescheduled whenever the user starts + or continues scrolling or resizing. This avoids sending requests while + the user is scrolling and its important to not have D-Bus interfere with + the Thunar main loop. We now have a much more responsive thumbnailing + and scrolling experience! + + Requests are also dropped by each view when a directory is closed/left. + This means that we no longer generate thumbnails the user is not + interested in any more. + + This commit also uses the proper D-Bus method for cancelling thumbnail + requests (it's called "Dequeue", not "Unqueue"). + + The properties dialog is updated to match changes in the + ThunarThumbnailer API. + +commit f19df728cf8798152b175dd61467ea1633663660 +Author: Jannis Pohlmann +Date: Mon Feb 7 02:41:23 2011 +0100 + + Refactor ThunarThumbnailer and implement unqueue. + + This commit also drops ThunarThumbnailer in ThunarIconFactory and adds + it to ThunarPropertiesDialog. There will be one ThunarThumbnailer for + each ThunarStandardView soon in order to bring back normal thumbnail + generation. -commit eb6162dc5b97493af1930012f174e014408e2a26 +commit cc468f4b3f33c298c33942ee0ce64000a920c8ed Author: Jannis Pohlmann -Date: Sun Jan 30 19:34:18 2011 +0100 +Date: Sun Jan 30 19:36:16 2011 +0100 - Release 1.2.1! + Update NEWS. -commit 402dd4831fabe607c98365b415f117b2f619d3f0 +commit e5d3231c6ca5b52cdf6d1f89d8c0d45d5b4f69cf Author: Jannis Pohlmann Date: Sun Jan 30 18:28:17 2011 +0100 Fix memory leak caused by not destroying the rename job. -commit b70c4abab3503eb4d3682e3ff619a2c5336e8247 +commit 4eeef3ead20203f33eb6a96519f4f118f592c539 Author: Jannis Pohlmann Date: Sun Jan 30 18:19:38 2011 +0100 Force desktop file reload after changing the Name field. -commit 3c1227aa1232bf9d6009d6d34ea281468e070642 +commit 0222f08e2dbb1f0964fe3ba293a31301af3e3fc9 +Author: Sergio Marques +Date: Sun Jan 30 17:43:27 2011 +0100 + + l10n: Updated Portuguese (pt) translation to 100% + + New status: 678 messages complete with 0 fuzzies and 0 untranslated. + + Transmitted-via: Transifex (translations.xfce.org). + +commit f6bbdf98bae707b71c529d86e5896302c5119476 Author: Jannis Pohlmann Date: Sun Jan 30 15:01:10 2011 +0100 @@ -1007,13 +14611,13 @@ This also affects xfdesktop which uses Thunar's rename feature through D-Bus. -commit 9c67fe4bd38530cb169b50339bf5fb846e2a6f67 +commit aabb332fb07aa7b86c74eae518cadd9764c296ed Author: Jannis Pohlmann Date: Sat Jan 29 18:27:15 2011 +0100 Fix segfault when calling strcasecmp with NULL parameters (bug #7206). -commit 126b3fe860869fd45b532a8d1210ad9f23ed5b6e +commit 8f7a02c162880e48891ea5528e3513d71ef6105f Author: Jannis Pohlmann Date: Wed Jan 26 23:17:18 2011 +0100 @@ -1025,7 +14629,7 @@ but no appropriate replacement for "stock_folder-move"), so for now it's best to ship the icons ourselves, I think. -commit e7795bd3a691cd3dc3ee15f5b9f9384df3d18dc1 +commit 1d4dfafda30df071d7c1e0b370f0613cbc92ba74 Author: Jannis Pohlmann Date: Mon Jan 24 20:06:35 2011 +0100 @@ -1034,7 +14638,7 @@ This avoids a segmentation fault when creating files like '%s' or '%S' using File => Create Document => Empty File. -commit 066f159e6b3241d2ab50a430e86b432fa0c30797 +commit bcdceffe0a292aa6ef24f149b746c9d5f15977be Author: Jannis Pohlmann Date: Mon Jan 24 19:52:39 2011 +0100 @@ -1050,7 +14654,7 @@ This problem is covered in the trash specification under "Implementation notes". -commit 44f5f400ab884b2ff5a192a8cccafcdec0d96469 +commit c231b0f266ca52be057cac23dfef12d1c2995895 Author: Jannis Pohlmann Date: Mon Jan 24 18:55:16 2011 +0100 @@ -1061,25 +14665,25 @@ files (e.g. x1 and x2) were treated the same (x) and both were assigned the same emblems. -commit 3f57e2b554f0d7ff0122d5e12968be1768b3f950 +commit a78ad6084cfcb707e0a19b862e8a2f1d7bd827c1 Author: Jannis Pohlmann Date: Sun Jan 23 14:05:31 2011 +0100 Paste files in the correct order (bug #6504). -commit fa117386cba6015bd44976f4ed5a7b35b1e45e5e -Author: Daniel Nylander -Date: Thu Jan 20 17:57:50 2011 +0100 +commit c7c9e0c47b767cbcdf487618f3d08c063d7c10e4 +Author: Piotr Sokół +Date: Fri Jan 21 11:31:25 2011 +0100 - l10n: Updated Swedish (sv) translation to 19% + l10n: Updated Polish (pl) translation to 99% - New status: 56 messages complete with 11 fuzzies and 226 untranslated. + New status: 675 messages complete with 2 fuzzies and 1 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit e579a8503b00481cb0b940649a693880ac041cae +commit 611b74a33a57de508a1b6a98f1e2aab3274c2fd1 Author: Mișu Moldovan -Date: Thu Jan 20 12:35:59 2011 +0100 +Date: Thu Jan 20 12:35:06 2011 +0100 l10n: Updated Romanian (ro) translation to 100% @@ -1087,39 +14691,19 @@ Transmitted-via: Transifex (translations.xfce.org). -commit 24cac56b42d9b7820c244e8623a9f5fa65a76911 -Author: Leandro Regueiro -Date: Tue Jan 18 16:35:48 2011 +0100 - - l10n: Updated Galician (gl) translation to 100% - - New status: 678 messages complete with 0 fuzzies and 0 untranslated. - - Transmitted-via: Transifex (translations.xfce.org). - -commit 8122e986530a4bb17498c9d6c91109afbe4986ff -Author: Leandro Regueiro -Date: Tue Jan 18 16:35:01 2011 +0100 - - l10n: Updated Galician (gl) translation to 100% - - New status: 678 messages complete with 0 fuzzies and 0 untranslated. - - Transmitted-via: Transifex (translations.xfce.org). - -commit 3d56c787b9ccd3a8fc81cbdcfce91a033778d833 -Author: Leandro Regueiro -Date: Tue Jan 18 16:34:18 2011 +0100 +commit 1b679b8ca7f499ec5d7cfdbc6925494600e5e86f +Author: Piotr Sokół +Date: Thu Jan 20 11:19:10 2011 +0100 - l10n: Updated Galician (gl) translation to 100% + l10n: Updated Polish (pl) translation to 97% - New status: 678 messages complete with 0 fuzzies and 0 untranslated. + New status: 661 messages complete with 13 fuzzies and 4 untranslated. Transmitted-via: Transifex (translations.xfce.org). -commit 000d47df79945fc82af38a25f50cf6e3abbe64ed +commit 4d1fe2e53bcdb23f9a53dabe4b491526872ccdf6 Author: Leandro Regueiro -Date: Tue Jan 18 16:31:15 2011 +0100 +Date: Tue Jan 18 16:45:05 2011 +0100 l10n: Updated Galician (gl) translation to 98% @@ -1127,13 +14711,13 @@ Transmitted-via: Transifex (translations.xfce.org). -commit db4964b49f17c1a043c57beefd11c2ffd43ee7c6 +commit 034258906627895b09ce6fbd6100250984b9c460 Author: Leandro Regueiro -Date: Tue Jan 18 16:27:53 2011 +0100 +Date: Tue Jan 18 16:44:09 2011 +0100 - l10n: Updated Galician (gl) translation to 98% + l10n: Updated Galician (gl) translation to 100% - New status: 289 messages complete with 0 fuzzies and 4 untranslated. + New status: 678 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (translations.xfce.org). diff -Nru thunar-1.2.3/compile thunar-1.6.10/compile --- thunar-1.2.3/compile 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/compile 2015-05-22 20:47:31.000000000 +0000 @@ -1,10 +1,9 @@ #! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. +# Wrapper for compilers which do not understand '-c -o'. -scriptversion=2009-10-06.20; # UTC +scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software -# Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -29,21 +28,224 @@ # bugs to or send patches to # . +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + case $1 in '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. +right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF @@ -53,11 +255,13 @@ echo "compile $scriptversion" exit $? ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; esac ofile= cfile= -eat= for arg do @@ -66,8 +270,8 @@ else case $1 in -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we strip `-o arg' only if arg is an object. + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) @@ -94,10 +298,10 @@ done if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a + # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also + # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi @@ -106,7 +310,7 @@ 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 diff -Nru thunar-1.2.3/config.guess thunar-1.6.10/config.guess --- thunar-1.2.3/config.guess 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/config.guess 2015-05-22 20:47:31.000000000 +0000 @@ -1,14 +1,12 @@ #! /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, 2009 -# Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2009-11-20' +timestamp='2015-03-04' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -17,26 +15,22 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). # -# 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. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches to . + me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,8 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright 1992-2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -139,12 +132,33 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -154,20 +168,27 @@ # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) + arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ @@ -180,7 +201,14 @@ fi ;; *) - os=netbsd + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` ;; esac # The OS release @@ -199,7 +227,11 @@ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` @@ -223,7 +255,7 @@ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on @@ -269,7 +301,10 @@ # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead @@ -295,12 +330,12 @@ echo s390-ibm-zvmoe exit ;; *:OS400:*:*) - echo powerpc-ibm-os400 + echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) + arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -394,23 +429,23 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; @@ -480,8 +515,8 @@ echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ @@ -494,7 +529,7 @@ else echo i586-dg-dgux${UNAME_RELEASE} fi - exit ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; @@ -551,15 +586,16 @@ echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[456]) + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi @@ -594,52 +630,52 @@ 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + esac ;; + esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa @@ -730,22 +766,22 @@ exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; @@ -769,14 +805,14 @@ exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} @@ -788,30 +824,35 @@ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; @@ -848,15 +889,22 @@ exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-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 exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -866,52 +914,59 @@ EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; - esac + esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build @@ -930,51 +985,74 @@ #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-gnu + echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu + echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu + echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu + eval $set_cc_for_build + X86_64_ABI= + # If there is a compiler, see if it is configured for 32-bit objects. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + X86_64_ABI=x32 + fi + fi + echo x86_64-unknown-linux-gnu${X86_64_ABI} exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -983,11 +1061,11 @@ echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. + # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) @@ -1019,7 +1097,7 @@ fi exit ;; i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; @@ -1047,13 +1125,13 @@ exit ;; pc:*:*:*) # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp - exit ;; + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; @@ -1088,8 +1166,8 @@ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ @@ -1132,10 +1210,10 @@ echo ns32k-sni-sysv fi exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm @@ -1161,11 +1239,11 @@ exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi - exit ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; @@ -1178,6 +1256,9 @@ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1204,19 +1285,31 @@ exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) @@ -1230,7 +1323,10 @@ *:QNX:*:4*) echo i386-pc-qnx exit ;; - NSE-?:NONSTOP_KERNEL:*:*) + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) @@ -1275,13 +1371,13 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` + UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; @@ -1299,158 +1395,10 @@ i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi +esac cat >&2 <= 2.18.0 present */ +/* Define if gio-unix-2.0 >= 2.30.0 present */ #undef HAVE_GIO_UNIX /* Define to 1 if you have the header file. */ @@ -63,9 +66,6 @@ /* Define if libSM is available */ #undef HAVE_LIBSM -/* Define if libstartup-notification-1.0 >= 0.4 present */ -#undef HAVE_LIBSTARTUP_NOTIFICATION - /* Define if libX11 is available */ #undef HAVE_LIBX11 @@ -174,13 +174,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ +/* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR -/* Define to 1 if your C compiler doesn't accept -c and -o together. */ -#undef NO_MINUS_C_MINUS_O - /* Name of package */ #undef PACKAGE @@ -202,15 +198,6 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION -/* The size of `int', as computed by sizeof. */ -#undef SIZEOF_INT - -/* The size of `long', as computed by sizeof. */ -#undef SIZEOF_LONG - -/* The size of `short', as computed by sizeof. */ -#undef SIZEOF_SHORT - /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS @@ -242,6 +229,11 @@ /* Define to 1 if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS diff -Nru thunar-1.2.3/config.sub thunar-1.6.10/config.sub --- thunar-1.2.3/config.sub 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/config.sub 2015-05-22 20:47:31.000000000 +0000 @@ -1,38 +1,31 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. - -timestamp='2009-11-20' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# Copyright 1992-2015 Free Software Foundation, Inc. + +timestamp='2015-03-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -75,8 +68,7 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright 1992-2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -123,13 +115,18 @@ # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -152,12 +149,12 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) + -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; - -bluegene*) - os=-cnk + -bluegene*) + os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= @@ -173,10 +170,10 @@ os=-chorusos basic_machine=$1 ;; - -chorusrdb) - os=-chorusrdb + -chorusrdb) + os=-chorusrdb basic_machine=$1 - ;; + ;; -hiux*) os=-hiuxwe2 ;; @@ -221,6 +218,12 @@ -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; -lynx*) os=-lynxos ;; @@ -245,20 +248,28 @@ # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx | dvp \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -272,38 +283,55 @@ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ - | nios | nios2 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | or32 \ + | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ - | rx \ + | riscv32 | riscv64 \ + | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ - | v850 | v850e \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -313,6 +341,21 @@ basic_machine=mt-unknown ;; + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. @@ -327,25 +370,31 @@ # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | be32-* | be64-* \ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -359,33 +408,42 @@ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ - | nios-* | nios2-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ - | romp-* | rs6000-* | rx-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ | tron-* \ | ubicom32-* \ - | v850-* | v850e-* | vax-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) @@ -410,7 +468,7 @@ basic_machine=a29k-amd os=-udi ;; - abacus) + abacus) basic_machine=abacus-unknown ;; adobe68k) @@ -460,6 +518,9 @@ basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -480,11 +541,20 @@ basic_machine=powerpc-ibm os=-cnk ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; c90) basic_machine=c90-cray os=-unicos ;; - cegcc) + cegcc) basic_machine=arm-unknown os=-cegcc ;; @@ -516,7 +586,7 @@ basic_machine=craynv-cray os=-unicosmp ;; - cr16) + cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; @@ -674,7 +744,6 @@ i370-ibm* | ibm*) basic_machine=i370-ibm ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 @@ -713,6 +782,9 @@ basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; m68knommu) basic_machine=m68k-unknown os=-linux @@ -732,11 +804,15 @@ basic_machine=ns32k-utek os=-sysv ;; - microblaze) + microblaze*) basic_machine=microblaze-xilinx ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; mingw32) - basic_machine=i386-pc + basic_machine=i686-pc os=-mingw32 ;; mingw32ce) @@ -750,6 +826,24 @@ basic_machine=m68k-atari os=-mint ;; + mipsEE* | ee | ps2) + basic_machine=mips64r5900el-scei + case $os in + -linux*) + ;; + *) + os=-elf + ;; + esac + ;; + iop) + basic_machine=mipsel-scei + os=-irx + ;; + dvp) + basic_machine=dvp-scei + os=-elf + ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; @@ -764,6 +858,10 @@ basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) basic_machine=i386-pc os=-msdos @@ -771,10 +869,18 @@ ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; + msys) + basic_machine=i686-pc + os=-msys + ;; mvs) basic_machine=i370-ibm os=-mvs ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 @@ -839,6 +945,12 @@ np1) basic_machine=np1-gould ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -921,9 +1033,10 @@ ;; power) basic_machine=power-ibm ;; - ppc) basic_machine=powerpc-unknown + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown @@ -948,7 +1061,11 @@ basic_machine=i586-unknown os=-pw32 ;; - rdos) + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) basic_machine=i386-pc os=-rdos ;; @@ -1017,6 +1134,9 @@ basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -1073,20 +1193,8 @@ basic_machine=t90-cray os=-unicos ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; tile*) - basic_machine=tile-unknown + basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) @@ -1156,6 +1264,9 @@ xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos @@ -1253,11 +1364,11 @@ if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases + # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux + -auroraux) + os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` @@ -1281,28 +1392,29 @@ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ + | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -irx* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1341,7 +1453,7 @@ -opened*) os=-openedition ;; - -os400*) + -os400*) os=-os400 ;; -wince*) @@ -1390,7 +1502,7 @@ -sinix*) os=-sysv4 ;; - -tpf*) + -tpf*) os=-tpf ;; -triton*) @@ -1426,15 +1538,14 @@ -aros*) os=-aros ;; - -kaos*) - os=-kaos - ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; + -nacl*) + ;; -none) ;; *) @@ -1457,10 +1568,10 @@ # system, and we'll never get to this point. case $basic_machine in - score-*) + score-*) os=-elf ;; - spu-*) + spu-*) os=-elf ;; *-acorn) @@ -1472,8 +1583,23 @@ arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1493,14 +1619,11 @@ ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout ;; - mep-*) + mep-*) os=-elf ;; mips*-cisco) @@ -1527,7 +1650,7 @@ *-ibm) os=-aix ;; - *-knuth) + *-knuth) os=-mmixware ;; *-wec) diff -Nru thunar-1.2.3/configure thunar-1.6.10/configure --- thunar-1.2.3/configure 2011-09-20 20:28:18.000000000 +0000 +++ thunar-1.6.10/configure 2015-05-22 20:47:32.000000000 +0000 @@ -1,16 +1,14 @@ #! /bin/sh -# From configure.in Id. +# From configure.ac b4b50ad. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for Thunar 1.2.3. +# Generated by GNU Autoconf 2.69 for Thunar 1.6.10. # # Report bugs to . # -# Copyright (c) 2004-2011 The Thunar development team. All rights reserved. +# Copyright (c) 2004-2015 The Thunar development team. All rights reserved. # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -139,6 +137,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -172,7 +195,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -225,21 +249,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -342,6 +370,14 @@ } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -463,6 +499,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -497,16 +537,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -518,28 +558,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -573,8 +593,8 @@ # Identity of this package. PACKAGE_NAME='Thunar' PACKAGE_TARNAME='Thunar' -PACKAGE_VERSION='1.2.3' -PACKAGE_STRING='Thunar 1.2.3' +PACKAGE_VERSION='1.6.10' +PACKAGE_STRING='Thunar 1.6.10' PACKAGE_BUGREPORT='http://bugzilla.xfce.org/' PACKAGE_URL='' @@ -649,28 +669,6 @@ PLATFORM_LDFLAGS PLATFORM_CFLAGS PLATFORM_CPPFLAGS -GTK_DOC_EXTRA_CFLAGS -GENERATE_DOCUMENTATION_FALSE -GENERATE_DOCUMENTATION_TRUE -XMLLINT -XML2PO -XSLTPROC -GTK_DOC_USE_REBASE_FALSE -GTK_DOC_USE_REBASE_TRUE -GTK_DOC_USE_LIBTOOL_FALSE -GTK_DOC_USE_LIBTOOL_TRUE -GTK_DOC_BUILD_PDF_FALSE -GTK_DOC_BUILD_PDF_TRUE -GTK_DOC_BUILD_HTML_FALSE -GTK_DOC_BUILD_HTML_TRUE -ENABLE_GTK_DOC_FALSE -ENABLE_GTK_DOC_TRUE -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -HTML_DIR -GTKDOC_MKPDF -GTKDOC_REBASE -GTKDOC_CHECK HAVE_LIBNOTIFY_FALSE HAVE_LIBNOTIFY_TRUE LIBNOTIFY_REQUIRED_VERSION @@ -683,12 +681,6 @@ GUDEV_LIBS GUDEV_CFLAGS GUDEV_VERSION -HAVE_LIBSTARTUP_NOTIFICATION_FALSE -HAVE_LIBSTARTUP_NOTIFICATION_TRUE -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION -LIBSTARTUP_NOTIFICATION_LIBS -LIBSTARTUP_NOTIFICATION_CFLAGS -LIBSTARTUP_NOTIFICATION_VERSION HAVE_DBUS_FALSE HAVE_DBUS_TRUE DBUS_REQUIRED_VERSION @@ -704,6 +696,10 @@ LIBSM_LIBS LIBSM_LDFLAGS LIBSM_CFLAGS +XFCONF_REQUIRED_VERSION +XFCONF_LIBS +XFCONF_CFLAGS +XFCONF_VERSION LIBXFCE4UI_REQUIRED_VERSION LIBXFCE4UI_LIBS LIBXFCE4UI_CFLAGS @@ -720,6 +716,10 @@ GTK_LIBS GTK_CFLAGS GTK_VERSION +GMODULE_REQUIRED_VERSION +GMODULE_LIBS +GMODULE_CFLAGS +GMODULE_VERSION GTHREAD_REQUIRED_VERSION GTHREAD_LIBS GTHREAD_CFLAGS @@ -736,6 +736,8 @@ EXO_LIBS EXO_CFLAGS EXO_VERSION +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH PKG_CONFIG LIBX11_LIBS LIBX11_LDFLAGS @@ -754,16 +756,18 @@ INTLLIBS INSTOBJEXT GMOFILES +DATADIRNAME CATOBJEXT CATALOGS MSGFMT_OPTS GETTEXT_PACKAGE -TDB_U32_TYPE +HELPER_PATH_PREFIX THUNAR_VERSION_MICRO THUNAR_VERSION_MINOR THUNAR_VERSION_MAJOR THUNARX_VERSION_API THUNARX_VERINFO +LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO @@ -781,7 +785,6 @@ DUMPBIN LIBTOOL PERL -DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT @@ -807,6 +810,12 @@ INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE +intltool__v_merge_options_0 +intltool__v_merge_options_ +INTLTOOL_V_MERGE_OPTIONS +INTLTOOL__v_MERGE_0 +INTLTOOL__v_MERGE_ +INTLTOOL_V_MERGE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE @@ -820,6 +829,7 @@ am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE +am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE @@ -833,11 +843,13 @@ LDFLAGS CFLAGS CC -AM_BACKSLASH -AM_DEFAULT_VERBOSITY MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V am__untar am__tar AMTAR @@ -914,8 +926,8 @@ ac_subst_files='' ac_user_opts=' enable_option_checking -enable_maintainer_mode enable_silent_rules +enable_maintainer_mode enable_dependency_tracking with_gnu_ld enable_nls @@ -923,21 +935,17 @@ enable_shared with_pic enable_fast_install +with_aix_soname with_sysroot enable_libtool_lock +with_helper_path_prefix enable_largefile with_locales_dir with_x enable_gio_unix enable_dbus -enable_startup_notification enable_gudev enable_notifications -with_html_dir -enable_gtk_doc -enable_gtk_doc_html -enable_gtk_doc_pdf -enable_gen_doc enable_debug enable_linker_opts enable_apr_plugin @@ -957,6 +965,7 @@ LIBS CPPFLAGS CPP +LT_SYS_LIBRARY_PATH XMKMF PKG_CONFIG PKG_CONFIG_PATH @@ -1416,8 +1425,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1503,7 +1510,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 Thunar 1.2.3 to adapt to many kinds of systems. +\`configure' configures Thunar 1.6.10 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1578,7 +1585,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Thunar 1.2.3:";; + short | recursive ) echo "Configuration of Thunar 1.6.10:";; esac cat <<\_ACEOF @@ -1586,12 +1593,15 @@ --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0') - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build --disable-nls do not use Native Language Support --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] @@ -1605,11 +1615,6 @@ --enable-dbus Enable checking for D-BUS support (default=[]) --disable-dbus Disable checking for D-BUS support - --enable-startup-notification - Enable checking for startup notification library - (default=[]) - --disable-startup-notification - Disable checking for startup notification library --enable-gudev Enable checking for GUDev (required for thunar-volman) (default=[]) --disable-gudev Disable checking for GUDev (required for @@ -1617,11 +1622,6 @@ --enable-notifications Enable checking for Mount notification support (default=[yes]) --disable-notifications Disable checking for Mount notification support - --enable-gtk-doc use gtk-doc to build documentation [[default=no]] - --enable-gtk-doc-html build documentation in html format [[default=yes]] - --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] - --enable-gen-doc Generate HTML documentation (requires xsltproc, - xml2po and xmllint) [default=no] --enable-debug[=no|minimum|yes|full] Build with debugging support [default=[minimum]] @@ -1649,15 +1649,20 @@ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-pic try to use only PIC/non-PIC objects [default=use + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] - --with-sysroot=DIR Search for dependent libraries within DIR - (or the compiler's sysroot if not specified). + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-helper-path-prefix=PATH + Path prefix under which helper executables will be + installed (default: $libdir) --with-locales-dir=DIR Install locales into DIR --with-x use the X Window System - --with-html-dir=PATH path to installed docs Some influential environment variables: CC C compiler command @@ -1668,6 +1673,8 @@ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. XMKMF Path to xmkmf, Makefile generator for X Window System PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH @@ -1741,14 +1748,14 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Thunar configure 1.2.3 -generated by GNU Autoconf 2.68 +Thunar configure 1.6.10 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. -Copyright (c) 2004-2011 The Thunar development team. All rights reserved. +Copyright (c) 2004-2015 The Thunar development team. All rights reserved. _ACEOF exit fi @@ -2023,7 +2030,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2108,190 +2115,12 @@ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func - -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -# -------------------------------------------- -# Tries to find the compile-time value of EXPR in a program that includes -# INCLUDES, setting VAR accordingly. Returns whether the value could be -# computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in #(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 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 Thunar $as_me 1.2.3, which was -generated by GNU Autoconf 2.68. Invocation command line was +It was created by Thunar $as_me 1.6.10, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2642,6 +2471,7 @@ + ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then @@ -2783,7 +2613,7 @@ program_prefix=${target_alias}- -am__api_version='1.11' +am__api_version='1.14' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2822,7 +2652,7 @@ # 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 as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -2880,9 +2710,6 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2893,32 +2720,40 @@ esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$2" = conftest.file ) then @@ -2930,6 +2765,16 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -2952,12 +2797,12 @@ esac fi # Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then @@ -2969,10 +2814,10 @@ esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# 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. +# 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. @@ -2991,7 +2836,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3031,7 +2876,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3082,7 +2927,7 @@ test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -3111,12 +2956,6 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -3135,7 +2974,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3199,6 +3038,45 @@ fi rmdir .tst 2>/dev/null +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." @@ -3221,7 +3099,7 @@ # Define the identity of the package. PACKAGE='Thunar' - VERSION='1.2.3' + VERSION='1.6.10' cat >>confdefs.h <<_ACEOF @@ -3249,99 +3127,186 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + # We need awk for the "check" target. The system "awk" is bad on # some platforms. -# Always define AMTAR for backward compatibility. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' -AMTAR=${AMTAR-"${am_missing_run}tar"} +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' + +# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 +$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } + if test $am_uid -le $am_max_uid; 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; } + _am_tools=none + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 +$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } + if test $am_gid -le $am_max_gid; 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; } + _am_tools=none + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 $as_echo_n "checking how to create a ustar tar archive... " >&6; } -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar plaintar pax cpio none' -_am_tools=${am_cv_prog_tar_ustar-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - { echo "$as_me:$LINENO: $_am_tar --version" >&5 + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 ($_am_tar --version) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break - done - am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x ustar -w "$$tardir"' - am__tar_='pax -L -x ustar -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H ustar -L' - am__tar_='find "$tardir" -print | cpio -o -H ustar -L' - am__untar='cpio -i -H ustar -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_ustar}" && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } - rm -rf conftest.dir - if test -s conftest.tar; then - { echo "$as_me:$LINENO: $am__untar &5 + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 ($am__untar &5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi -done -rm -rf conftest.dir + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir -if ${am_cv_prog_tar_ustar+:} false; then : + if ${am_cv_prog_tar_ustar+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_ustar=$_am_tool fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 $as_echo "$am_cv_prog_tar_ustar" >&6; } + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi ac_config_headers="$ac_config_headers config.h" @@ -3372,11 +3337,38 @@ enableval=$enable_silent_rules; fi -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=0;; +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi AM_BACKSLASH='\' @@ -3399,7 +3391,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -3432,6 +3424,7 @@ if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= @@ -3464,7 +3457,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3504,7 +3497,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3557,7 +3550,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3598,7 +3591,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -3656,7 +3649,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3700,7 +3693,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4146,8 +4139,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4232,6 +4224,65 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 @@ -4243,8 +4294,9 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -4278,16 +4330,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # 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 + # 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 @@ -4296,16 +4348,16 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4514,7 +4566,7 @@ 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 + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -4580,7 +4632,7 @@ 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 + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -4787,8 +4839,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -# define __EXTENSIONS__ 1 - $ac_includes_default +# define __EXTENSIONS__ 1 + $ac_includes_default int main () { @@ -4905,7 +4957,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4945,7 +4997,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4998,7 +5050,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5039,7 +5091,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -5097,7 +5149,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5141,7 +5193,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5337,8 +5389,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -5423,6 +5474,65 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 @@ -5434,8 +5544,9 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -5469,16 +5580,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # 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 + # 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 @@ -5487,16 +5598,16 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -5572,7 +5683,7 @@ for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue + as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in @@ -5651,7 +5762,7 @@ for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue + as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in @@ -5747,7 +5858,7 @@ $ECHO "" } -case "$ECHO" in +case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 @@ -5773,19 +5884,19 @@ # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld -if test "$GCC" = yes; then +if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw + # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; @@ -5799,7 +5910,7 @@ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done - test -z "$LD" && LD="$ac_prog" + test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. @@ -5810,7 +5921,7 @@ with_gnu_ld=unknown ;; esac -elif test "$with_gnu_ld" = yes; then +elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else @@ -5821,32 +5932,32 @@ $as_echo_n "(cached) " >&6 else if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" + lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } @@ -5882,131 +5993,6 @@ -if test "x$CC" != xcc; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 -$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 -$as_echo_n "checking whether cc understands -c and -o together... " >&6; } -fi -set dummy $CC; ac_cc=`$as_echo "$2" | - sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -# Make sure it works both with $CC and with simple cc. -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -rm -f conftest2.* -if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; -then - eval ac_cv_prog_cc_${ac_cc}_c_o=yes - if test "x$CC" != xcc; then - # Test first that cc exists at all. - if { ac_try='cc -c conftest.$ac_ext >&5' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' - rm -f conftest2.* - if { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && - test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; - then - # cc works too. - : - else - # cc exists but doesn't like -o. - eval ac_cv_prog_cc_${ac_cc}_c_o=no - fi - fi - fi -else - eval ac_cv_prog_cc_${ac_cc}_c_o=no -fi -rm -f core conftest* - -fi -if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h - -fi - -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o -if test "$am_t" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi - @@ -6033,14 +6019,12 @@ ;; esac +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 $as_echo_n "checking for intltool >= ... " >&6; } - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - { $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" || @@ -6065,7 +6049,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6105,7 +6089,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6145,7 +6129,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6171,25 +6155,48 @@ 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 $< $@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi + + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' + + + + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' + + + + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' @@ -6306,7 +6313,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6346,7 +6353,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6386,7 +6393,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6426,7 +6433,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6477,7 +6484,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6508,7 +6515,7 @@ if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi @@ -6526,44 +6533,6 @@ # Substitute ALL_LINGUAS so we can use it in po/Makefile -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - DATADIRNAME=share -else - case $host in - *-*-solaris*) - ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" -if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - DATADIRNAME=share -else - DATADIRNAME=lib -fi - - ;; - *) - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - - @@ -6585,7 +6554,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PERL="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6609,35 +6578,74 @@ test -n "$PERL" && break done +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac -# Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi else - enable_static=no + ac_cv_path_SED=$SED fi - - - - - +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed @@ -6649,8 +6657,8 @@ -macro_version='2.4' -macro_revision='1.3293' +macro_version='2.4.6' +macro_revision='2.4.6' @@ -6664,7 +6672,7 @@ -ltmain="$ac_aux_dir/ltmain.sh" +ltmain=$ac_aux_dir/ltmain.sh # Backslashify metacharacters that are still active within # double-quoted strings. @@ -6690,33 +6698,38 @@ else if test -n "$NM"; then # Let the user override the test. - lt_cv_path_NM="$NM" + lt_cv_path_NM=$NM else - lt_nm_to_check="${ac_tool_prefix}nm" + lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" - break + break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" - break + break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but @@ -6727,15 +6740,15 @@ esac fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : @@ -6760,7 +6773,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6804,7 +6817,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6841,9 +6854,9 @@ fi fi - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) - DUMPBIN="$DUMPBIN -symbols" + DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: @@ -6851,8 +6864,8 @@ esac fi - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" + if test : != "$DUMPBIN"; then + NM=$DUMPBIN fi fi test -z "$NM" && NM=nm @@ -6903,7 +6916,7 @@ $as_echo_n "(cached) " >&6 else i=0 - teststring="ABCD" + teststring=ABCD case $build_os in msdosdjgpp*) @@ -6943,7 +6956,7 @@ lt_cv_sys_max_cmd_len=8192; ;; - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -6962,6 +6975,11 @@ lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -6988,22 +7006,23 @@ ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do + for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough + test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring @@ -7021,7 +7040,7 @@ fi -if test -n $lt_cv_sys_max_cmd_len ; then +if test -n "$lt_cv_sys_max_cmd_len"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else @@ -7039,30 +7058,6 @@ : ${MV="mv -f"} : ${RM="rm -f"} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else @@ -7185,13 +7180,13 @@ reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then + if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi @@ -7223,7 +7218,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7263,7 +7258,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7319,13 +7314,13 @@ # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. +# 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) @@ -7352,8 +7347,7 @@ # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else @@ -7389,10 +7383,6 @@ fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -7430,8 +7420,8 @@ lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; @@ -7453,8 +7443,8 @@ lt_cv_deplibs_check_method=pass_all ;; -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' @@ -7507,6 +7497,9 @@ tpf*) lt_cv_deplibs_check_method=pass_all ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; esac fi @@ -7569,7 +7562,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7609,7 +7602,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7664,8 +7657,8 @@ case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib @@ -7677,7 +7670,7 @@ ;; *) # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" + lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac @@ -7712,7 +7705,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7756,7 +7749,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7831,7 +7824,7 @@ ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - if test "$ac_status" -eq 0; then + if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 @@ -7839,7 +7832,7 @@ ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - if test "$ac_status" -ne 0; then + if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi @@ -7852,7 +7845,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } -if test "x$lt_cv_ar_at_file" = xno; then +if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file @@ -7881,7 +7874,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7921,7 +7914,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7980,7 +7973,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8020,7 +8013,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8069,14 +8062,14 @@ if test -n "$RANLIB"; then case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in @@ -8159,7 +8152,7 @@ symcode='[ABCDGISTW]' ;; hpux*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; @@ -8192,14 +8185,44 @@ symcode='[ABCDGIRSTW]' ;; esac +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -8217,20 +8240,24 @@ # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" @@ -8278,11 +8305,11 @@ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST -#elif defined(__osf__) +#elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else @@ -8308,7 +8335,7 @@ { { "@PROGRAM@", (void *) 0 }, _LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; @@ -8328,13 +8355,13 @@ mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" + LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then + test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS @@ -8355,7 +8382,7 @@ rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then + if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= @@ -8408,6 +8435,16 @@ + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } @@ -8420,9 +8457,9 @@ lt_sysroot= -case ${with_sysroot} in #( +case $with_sysroot in #( yes) - if test "$GCC" = yes; then + if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( @@ -8432,8 +8469,8 @@ no|'') ;; #( *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 -$as_echo "${with_sysroot}" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac @@ -8445,18 +8482,99 @@ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes +test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 @@ -8465,24 +8583,25 @@ test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) - HPUX_IA64_MODE="32" + HPUX_IA64_MODE=32 ;; *ELF-64*) - HPUX_IA64_MODE="64" + HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - if test "$lt_cv_prog_gnu_ld" = yes; then + if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" @@ -8511,9 +8630,50 @@ rm -rf conftest* ;; -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 @@ -8527,9 +8687,19 @@ LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" ;; - ppc64-*linux*|powerpc64-*linux*) + powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -8548,7 +8718,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - ppc*-*linux*|powerpc*-*linux*) + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) @@ -8566,7 +8739,7 @@ *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" + SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } @@ -8606,13 +8779,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then + if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" + CFLAGS=$SAVE_CFLAGS fi ;; -sparc*-*solaris*) - # Find out which ABI we are using. +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 @@ -8622,7 +8796,20 @@ case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -8636,7 +8823,7 @@ ;; esac -need_locks="$enable_libtool_lock" +need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. @@ -8655,7 +8842,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8695,7 +8882,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8747,7 +8934,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test "x$lt_cv_path_mainfest_tool" != xyes; then +if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi @@ -8775,7 +8962,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8815,7 +9002,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8867,7 +9054,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8907,7 +9094,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8959,7 +9146,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8999,7 +9186,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9051,7 +9238,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9091,7 +9278,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9143,7 +9330,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9183,7 +9370,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9250,7 +9437,7 @@ $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then + if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the @@ -9262,7 +9449,13 @@ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 @@ -9273,6 +9466,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : @@ -9300,11 +9494,12 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : @@ -9326,7 +9521,9 @@ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 @@ -9339,32 +9536,32 @@ $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then + if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -9372,6 +9569,41 @@ ;; esac +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default @@ -9390,6 +9622,35 @@ # Set options +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_static=no +fi + + + + + + + @@ -9408,14 +9669,14 @@ *) enable_shared=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -9434,14 +9695,27 @@ # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : - withval=$with_pic; pic_mode="$withval" + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac else pic_mode=default fi -test -z "$pic_mode" && pic_mode=default - @@ -9457,14 +9731,14 @@ *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -9478,11 +9752,63 @@ + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + # This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" +LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' @@ -9512,6 +9838,10 @@ + + + + test -z "$LN_S" && LN_S="ln -s" @@ -9527,7 +9857,7 @@ -if test -n "${ZSH_VERSION+set}" ; then +if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi @@ -9566,7 +9896,7 @@ # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then + if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -9577,14 +9907,14 @@ ofile=libtool can_build_shared=yes -# All known linkers require a `.a' archive for static linking (except MSVC, +# All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a -with_gnu_ld="$lt_cv_prog_gnu_ld" +with_gnu_ld=$lt_cv_prog_gnu_ld -old_CC="$CC" -old_CFLAGS="$CFLAGS" +old_CC=$CC +old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc @@ -9593,15 +9923,8 @@ test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +func_cc_basename $compiler +cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it @@ -9616,22 +9939,22 @@ else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : @@ -9654,13 +9977,13 @@ break fi done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } @@ -9682,22 +10005,22 @@ else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : @@ -9720,13 +10043,13 @@ break fi done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } @@ -9747,7 +10070,7 @@ # Use C for the default configuration in the libtool script -lt_save_CC="$CC" +lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -9805,7 +10128,7 @@ lt_prog_compiler_no_builtin_flag= -if test "$GCC" = yes; then +if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; @@ -9821,7 +10144,7 @@ lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins @@ -9851,7 +10174,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : @@ -9869,17 +10192,18 @@ lt_prog_compiler_static= - if test "$GCC" = yes; then + if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi + lt_prog_compiler_pic='-fPIC' ;; amigaos*) @@ -9890,8 +10214,8 @@ ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac @@ -9907,6 +10231,11 @@ # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac ;; darwin* | rhapsody*) @@ -9967,7 +10296,9 @@ case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' - lt_prog_compiler_pic='-Xcompiler -fPIC' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi ;; esac else @@ -9975,7 +10306,7 @@ case $host_os in aix*) lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else @@ -9983,10 +10314,29 @@ fi ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac ;; hpux9* | hpux10* | hpux11*) @@ -10002,7 +10352,7 @@ ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' + lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) @@ -10011,9 +10361,9 @@ lt_prog_compiler_static='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. + # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' @@ -10038,6 +10388,12 @@ lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) @@ -10058,18 +10414,33 @@ ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; esac ;; esac @@ -10120,7 +10491,7 @@ ;; sysv4*MP*) - if test -d /usr/nec ;then + if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi @@ -10149,7 +10520,7 @@ fi case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: + # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; @@ -10181,7 +10552,7 @@ lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins @@ -10211,7 +10582,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then +if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; @@ -10243,7 +10614,7 @@ $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then @@ -10262,13 +10633,13 @@ fi fi $RM -r conftest* - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } -if test x"$lt_cv_prog_compiler_static_works" = xyes; then +if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= @@ -10388,8 +10759,8 @@ -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } @@ -10401,9 +10772,9 @@ ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -10431,7 +10802,6 @@ hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported @@ -10447,9 +10817,9 @@ # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if @@ -10464,7 +10834,7 @@ # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. - if test "$GCC" != yes; then + if test yes != "$GCC"; then with_gnu_ld=no fi ;; @@ -10472,7 +10842,7 @@ # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; - openbsd*) + openbsd* | bitrig*) with_gnu_ld=no ;; esac @@ -10482,7 +10852,7 @@ # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility @@ -10504,24 +10874,24 @@ esac fi - if test "$lt_use_gnu_ld_interface" = yes; then + if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' + wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no - case `$LD -v 2>&1` in + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -10534,7 +10904,7 @@ case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then + if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 @@ -10553,7 +10923,7 @@ case $host_cpu in powerpc) # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) @@ -10569,7 +10939,7 @@ allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi @@ -10579,7 +10949,7 @@ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='${wl}--export-all-symbols' + export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes @@ -10587,61 +10957,89 @@ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no - if test "$host_os" = linux-dietlibc; then + if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no + && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -10652,43 +11050,47 @@ lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -10702,8 +11104,8 @@ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -10721,8 +11123,8 @@ _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -10734,7 +11136,7 @@ ld_shlibs=no cat <<_LT_EOF 1>&2 -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify @@ -10749,9 +11151,9 @@ # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -10768,15 +11170,15 @@ *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac - if test "$ld_shlibs" = no; then + if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= @@ -10792,7 +11194,7 @@ # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported @@ -10800,34 +11202,57 @@ ;; aix[4-9]*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' - no_entry_flag="" + no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi ;; esac @@ -10846,13 +11271,21 @@ hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes - file_list_spec='${wl}-f,' + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac - if test "$GCC" = yes; then + if test yes = "$GCC"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` + collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then @@ -10871,35 +11304,42 @@ ;; esac shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' else # not using gcc - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' else - shared_flag='${wl}-bM:SRE' + shared_flag='$wl-bM:SRE' fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' fi fi - export_dynamic_flag_spec='${wl}-bexpall' + export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then + if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : @@ -10934,7 +11374,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" + lt_cv_aix_libpath_=/usr/lib:/lib fi fi @@ -10942,17 +11382,17 @@ aix_libpath=$lt_cv_aix_libpath_ fi - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then + if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : @@ -10987,7 +11427,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" + lt_cv_aix_libpath_=/usr/lib:/lib fi fi @@ -10995,21 +11435,33 @@ aix_libpath=$lt_cv_aix_libpath_ fi - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; @@ -11018,7 +11470,7 @@ case $host_cpu in powerpc) # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) @@ -11048,35 +11500,37 @@ # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' ;; *) # Assume MSVC wrapper @@ -11085,7 +11539,7 @@ # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. @@ -11104,23 +11558,24 @@ hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else whole_archive_flag_spec='' fi link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" + allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; + ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac - if test "$_lt_dar_can_shared" = "yes"; then + if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no @@ -11134,10 +11589,6 @@ hardcode_shlibpath_var=no ;; - freebsd1*) - ld_shlibs=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -11150,7 +11601,7 @@ ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes @@ -11166,34 +11617,33 @@ ;; hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' + export_dynamic_flag_spec='$wl-E' ;; hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' + export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes @@ -11201,25 +11651,25 @@ ;; hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then + if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) @@ -11231,7 +11681,7 @@ $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then @@ -11250,14 +11700,14 @@ fi fi $RM -r conftest* - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } -if test x"$lt_cv_prog_compiler__b" = xyes; then - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi @@ -11265,8 +11715,8 @@ ;; esac fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in @@ -11277,7 +11727,7 @@ *) hardcode_direct=yes hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' + export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. @@ -11288,8 +11738,8 @@ ;; irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. @@ -11299,8 +11749,8 @@ if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } @@ -11312,24 +11762,34 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test "$lt_cv_irix_exported_symbol" = yes; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out @@ -11344,7 +11804,7 @@ newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; @@ -11352,27 +11812,19 @@ *nto* | *qnx*) ;; - openbsd*) + openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no @@ -11383,33 +11835,53 @@ hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes ;; osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' @@ -11420,24 +11892,24 @@ solaris*) no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) - wlarc='${wl}' - archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi @@ -11447,11 +11919,11 @@ solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', + # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi @@ -11461,10 +11933,10 @@ ;; sunos4*) - if test "x$host_vendor" = xsequent; then + if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi @@ -11513,43 +11985,43 @@ ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' + no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not + # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' + export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; @@ -11564,10 +12036,10 @@ ;; esac - if test x$host_vendor = xsni; then + if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' + export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi @@ -11575,7 +12047,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no +test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld @@ -11601,7 +12073,7 @@ # Assume -lc should be added archive_cmds_need_lc=yes - if test "$enable_shared" = yes && test "$GCC" = yes; then + if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. @@ -11813,22 +12285,17 @@ - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } -if test "$GCC" = yes; then +if test yes = "$GCC"; then case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in @@ -11844,28 +12311,35 @@ ;; esac # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. + # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; + lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } @@ -11879,7 +12353,7 @@ # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([A-Za-z]:\),\1,g'` ;; + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else @@ -11888,7 +12362,7 @@ library_names_spec= libname_spec='lib$name' soname_spec= -shrext_cmds=".so" +shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -11905,56 +12379,108 @@ # flags to be left without arguments need_version=unknown + + case $host_os in aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' + soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac shlibpath_var=LIBPATH fi ;; @@ -11964,27 +12490,27 @@ powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) - library_names_spec='${libname}${shared_ext}' + library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" @@ -11996,7 +12522,7 @@ cygwin* | mingw* | pw32* | cegcc*) version_type=windows - shrext_cmds=".dll" + shrext_cmds=.dll need_version=no need_lib_prefix=no @@ -12005,8 +12531,8 @@ # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ @@ -12022,17 +12548,17 @@ case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' @@ -12041,8 +12567,8 @@ *,cl*) # Native MSVC libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' case $build_os in mingw*) @@ -12069,7 +12595,7 @@ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) - sys_lib_search_path_spec="$LIB" + sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` @@ -12082,8 +12608,8 @@ esac # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' @@ -12096,7 +12622,7 @@ *) # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac @@ -12109,8 +12635,8 @@ version_type=darwin need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' @@ -12120,18 +12646,14 @@ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -12139,25 +12661,39 @@ objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi - version_type=freebsd-$objformat + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac + case $version_type in freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no + ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -12176,25 +12712,15 @@ esac ;; -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - haiku*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes + shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -12212,14 +12738,15 @@ dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' @@ -12227,8 +12754,8 @@ dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; @@ -12237,8 +12764,8 @@ dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... @@ -12248,11 +12775,11 @@ ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -12263,16 +12790,16 @@ case $host_os in nonstopux*) version_type=nonstopux ;; *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= @@ -12291,8 +12818,8 @@ esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; @@ -12301,13 +12828,33 @@ dynamic_linker=no ;; -# This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -12351,14 +12898,15 @@ # before this can be enabled. hardcode_into_libs=yes - # Add ABI-specific directories to the system library path. - sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - - # Append ld.so.conf contents to the search path + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -12375,12 +12923,12 @@ need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH @@ -12389,8 +12937,8 @@ ;; newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; @@ -12399,58 +12947,68 @@ version_type=qnx need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; -openbsd*) +openbsd* | bitrig*) version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" + sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no else - shlibpath_overrides_runpath=yes + need_version=yes fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' - shrext_cmds=".dll" + version_type=windows + shrext_cmds=.dll + need_version=no need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) @@ -12458,11 +13016,11 @@ ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes @@ -12472,20 +13030,20 @@ sunos4*) version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) @@ -12506,24 +13064,24 @@ ;; sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf + version_type=sco need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' @@ -12538,19 +13096,19 @@ tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -12560,20 +13118,35 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no +test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then +if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + @@ -12670,15 +13243,15 @@ hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then + test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && + if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else @@ -12693,12 +13266,12 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi @@ -12708,7 +13281,7 @@ - if test "x$enable_dlopen" != xyes; then + if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown @@ -12718,23 +13291,23 @@ case $host_os in beos*) - lt_cv_dlopen="load_add_on" + lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) - lt_cv_dlopen="dlopen" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) - # if libdl is installed we need to link against it + # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : @@ -12772,10 +13345,10 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else - lt_cv_dlopen="dyld" + lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes @@ -12783,10 +13356,18 @@ ;; + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" + lt_cv_dlopen=shl_load else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } @@ -12825,11 +13406,11 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" + lt_cv_dlopen=dlopen else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } @@ -12868,7 +13449,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } @@ -12907,7 +13488,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } @@ -12946,7 +13527,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi @@ -12967,21 +13548,21 @@ ;; esac - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else + if test no = "$lt_cv_dlopen"; then enable_dlopen=no + else + enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - save_LIBS="$LIBS" + save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 @@ -12989,7 +13570,7 @@ if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -13036,9 +13617,9 @@ # endif #endif -/* When -fvisbility=hidden is used, assume the code has been annotated +/* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif @@ -13068,7 +13649,7 @@ (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -13088,14 +13669,14 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } - if test "x$lt_cv_dlopen_self" = xyes; then + if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -13142,9 +13723,9 @@ # endif #endif -/* When -fvisbility=hidden is used, assume the code has been annotated +/* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif @@ -13174,7 +13755,7 @@ (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -13195,9 +13776,9 @@ $as_echo "$lt_cv_dlopen_self_static" >&6; } fi - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS ;; esac @@ -13241,7 +13822,7 @@ # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) - if test -n "$STRIP" ; then + if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -13269,7 +13850,7 @@ - # Report which library types will actually be built + # Report what library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 @@ -13277,13 +13858,13 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no + test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) - test "$enable_shared" = yes && enable_static=no + test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' @@ -13291,8 +13872,12 @@ ;; aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac fi ;; esac @@ -13302,7 +13887,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes + test yes = "$enable_shared" || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } @@ -13316,7 +13901,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -CC="$lt_save_CC" +CC=$lt_save_CC + + @@ -13342,123 +13929,23 @@ THUNARX_VERINFO=0:0:0 THUNARX_VERSION_API=2 THUNAR_VERSION_MAJOR=1 -THUNAR_VERSION_MINOR=2 -THUNAR_VERSION_MICRO=3 - - - - - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if ${ac_cv_sizeof_int+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } +THUNAR_VERSION_MINOR=6 +THUNAR_VERSION_MICRO=10 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if ${ac_cv_sizeof_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if ${ac_cv_sizeof_short+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - +# Check whether --with-helper-path-prefix was given. +if test "${with_helper_path_prefix+set}" = set; then : + withval=$with_helper_path_prefix; HELPER_PATH_PREFIX="$withval" else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_short=0 - fi -fi - + HELPER_PATH_PREFIX="$libdir" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for 32bit unsigned integer" >&5 -$as_echo_n "checking for 32bit unsigned integer... " >&6; } -case 4 in -$ac_cv_sizeof_int) TDB_U32_TYPE="unsigned int" ;; -$ac_cv_sizeof_long) TDB_U32_TYPE="unsigned long" ;; -$ac_cv_sizeof_short) TDB_U32_TYPE="unsigned short" ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $TDB_U32_TYPE" >&5 -$as_echo "$TDB_U32_TYPE" >&6; } # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : @@ -13656,6 +14143,8 @@ esac rm -rf conftest* fi + + fi @@ -13878,7 +14367,7 @@ rm -f conftest.mmap conftest.txt for ac_func in localeconv mkdtemp pread pwrite sched_yield setgroupent \ - setpassent strcoll strlcpy strptime symlink + setpassent strcoll strlcpy strptime symlink atexit do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -13900,7 +14389,7 @@ - ALL_LINGUAS="ar ast be bn ca cs da de dz el en_GB eo es et eu fi fr gl he hr hu id it ja ka kk ko ku lt lv mk ms nb nl nn pa pl pt_BR pt ro ru si sk sq sv te tr ug uk ur_PK ur vi zh_CN zh_TW " + ALL_LINGUAS="am ar ast be bg bn ca cs da de el en_AU en_GB eo es et eu fi fr gl he hr hu id is it ja kk ko lt lv ms nb nl nn oc pa pl pt_BR pt ro ru si sk sl sq sr sv te th tr ug uk ur_PK ur vi zh_CN zh_HK zh_TW " for ac_header in locale.h do : @@ -14399,7 +14888,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -14486,6 +14975,10 @@ fi ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; *) CATOBJEXT=.mo DATADIRNAME=lib @@ -15405,10 +15898,18 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -15425,7 +15926,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -15434,7 +15935,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -15448,44 +15948,94 @@ fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exo-1 >= 0.6.0" >&5 -$as_echo_n "checking for exo-1 >= 0.6.0... " >&6; } - if $PKG_CONFIG "--atleast-version=0.6.0" "exo-1" >/dev/null 2>&1; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exo-1 >= 0.10.0" >&5 +$as_echo_n "checking for exo-1 >= 0.10.0... " >&6; } + if $PKG_CONFIG "--atleast-version=0.10.0" "exo-1" >/dev/null 2>&1; then EXO_VERSION=`$PKG_CONFIG --modversion "exo-1"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXO_VERSION" >&5 $as_echo "$EXO_VERSION" >&6; } @@ -15502,7 +16052,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXO_LIBS" >&5 $as_echo "$EXO_LIBS" >&6; } - EXO_REQUIRED_VERSION=0.6.0 + EXO_REQUIRED_VERSION=0.10.0 @@ -15518,7 +16068,7 @@ echo "*** The required package exo-1 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade exo-1 to atleast version 0.6.0, or adjust" + echo "*** Please upgrade exo-1 to atleast version 0.10.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -15530,7 +16080,7 @@ echo "*** The required package exo-1 was not found on your system." - echo "*** Please install exo-1 (atleast version 0.6.0) or adjust" + echo "*** Please install exo-1 (atleast version 0.10.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -15543,10 +16093,18 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -15563,7 +16121,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -15572,7 +16130,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -15586,61 +16143,111 @@ fi - - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-2.0 >= 2.18.0" >&5 -$as_echo_n "checking for glib-2.0 >= 2.18.0... " >&6; } - if $PKG_CONFIG "--atleast-version=2.18.0" "glib-2.0" >/dev/null 2>&1; then - GLIB_VERSION=`$PKG_CONFIG --modversion "glib-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_VERSION" >&5 -$as_echo "$GLIB_VERSION" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GLIB_CFLAGS" >&5 -$as_echo_n "checking GLIB_CFLAGS... " >&6; } - GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_CFLAGS" >&5 -$as_echo "$GLIB_CFLAGS" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GLIB_LIBS" >&5 -$as_echo_n "checking GLIB_LIBS... " >&6; } +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-2.0 >= 2.30.0" >&5 +$as_echo_n "checking for glib-2.0 >= 2.30.0... " >&6; } + if $PKG_CONFIG "--atleast-version=2.30.0" "glib-2.0" >/dev/null 2>&1; then + GLIB_VERSION=`$PKG_CONFIG --modversion "glib-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_VERSION" >&5 +$as_echo "$GLIB_VERSION" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GLIB_CFLAGS" >&5 +$as_echo_n "checking GLIB_CFLAGS... " >&6; } + GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_CFLAGS" >&5 +$as_echo "$GLIB_CFLAGS" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GLIB_LIBS" >&5 +$as_echo_n "checking GLIB_LIBS... " >&6; } GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_LIBS" >&5 $as_echo "$GLIB_LIBS" >&6; } - GLIB_REQUIRED_VERSION=2.18.0 + GLIB_REQUIRED_VERSION=2.30.0 @@ -15656,7 +16263,7 @@ echo "*** The required package glib-2.0 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade glib-2.0 to atleast version 2.18.0, or adjust" + echo "*** Please upgrade glib-2.0 to atleast version 2.30.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -15668,7 +16275,7 @@ echo "*** The required package glib-2.0 was not found on your system." - echo "*** Please install glib-2.0 (atleast version 2.18.0) or adjust" + echo "*** Please install glib-2.0 (atleast version 2.30.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -15681,10 +16288,18 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -15701,7 +16316,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -15710,7 +16325,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -15724,44 +16338,94 @@ fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gio-2.0 >= 2.18.0" >&5 -$as_echo_n "checking for gio-2.0 >= 2.18.0... " >&6; } - if $PKG_CONFIG "--atleast-version=2.18.0" "gio-2.0" >/dev/null 2>&1; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gio-2.0 >= 2.30.0" >&5 +$as_echo_n "checking for gio-2.0 >= 2.30.0... " >&6; } + if $PKG_CONFIG "--atleast-version=2.30.0" "gio-2.0" >/dev/null 2>&1; then GIO_VERSION=`$PKG_CONFIG --modversion "gio-2.0"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIO_VERSION" >&5 $as_echo "$GIO_VERSION" >&6; } @@ -15778,7 +16442,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIO_LIBS" >&5 $as_echo "$GIO_LIBS" >&6; } - GIO_REQUIRED_VERSION=2.18.0 + GIO_REQUIRED_VERSION=2.30.0 @@ -15794,7 +16458,7 @@ echo "*** The required package gio-2.0 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade gio-2.0 to atleast version 2.18.0, or adjust" + echo "*** Please upgrade gio-2.0 to atleast version 2.30.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -15806,7 +16470,7 @@ echo "*** The required package gio-2.0 was not found on your system." - echo "*** Please install gio-2.0 (atleast version 2.18.0) or adjust" + echo "*** Please install gio-2.0 (atleast version 2.30.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -15819,10 +16483,18 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -15839,7 +16511,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -15848,7 +16520,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -15862,113 +16533,19 @@ fi - - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gthread-2.0 >= 2.18.0" >&5 -$as_echo_n "checking for gthread-2.0 >= 2.18.0... " >&6; } - if $PKG_CONFIG "--atleast-version=2.18.0" "gthread-2.0" >/dev/null 2>&1; then - GTHREAD_VERSION=`$PKG_CONFIG --modversion "gthread-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTHREAD_VERSION" >&5 -$as_echo "$GTHREAD_VERSION" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTHREAD_CFLAGS" >&5 -$as_echo_n "checking GTHREAD_CFLAGS... " >&6; } - GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTHREAD_CFLAGS" >&5 -$as_echo "$GTHREAD_CFLAGS" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTHREAD_LIBS" >&5 -$as_echo_n "checking GTHREAD_LIBS... " >&6; } - GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTHREAD_LIBS" >&5 -$as_echo "$GTHREAD_LIBS" >&6; } - - GTHREAD_REQUIRED_VERSION=2.18.0 - - - - - - - - elif $PKG_CONFIG --exists "gthread-2.0" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "gthread-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 -$as_echo "found, but $xdt_cv_version" >&6; } - - - echo "*** The required package gthread-2.0 was found on your system," - echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade gthread-2.0 to atleast version 2.18.0, or adjust" - echo "*** the PKG_CONFIG_PATH environment variable if you installed" - echo "*** the new version of the package in a nonstandard prefix so" - echo "*** pkg-config is able to find it." - exit 1 - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - - - echo "*** The required package gthread-2.0 was not found on your system." - echo "*** Please install gthread-2.0 (atleast version 2.18.0) or adjust" - echo "*** the PKG_CONFIG_PATH environment variable if you" - echo "*** installed the package in a nonstandard prefix so that" - echo "*** pkg-config is able to find it." - exit 1 - - fi - - - - # minimum supported version of pkg-config - xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - case $PKG_CONFIG in + case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -15977,8 +16554,8 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -15986,75 +16563,81 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk+-2.0 >= 2.14.0" >&5 -$as_echo_n "checking for gtk+-2.0 >= 2.14.0... " >&6; } - if $PKG_CONFIG "--atleast-version=2.14.0" "gtk+-2.0" >/dev/null 2>&1; then - GTK_VERSION=`$PKG_CONFIG --modversion "gtk+-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VERSION" >&5 -$as_echo "$GTK_VERSION" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gthread-2.0 >= 2.30.0" >&5 +$as_echo_n "checking for gthread-2.0 >= 2.30.0... " >&6; } + if $PKG_CONFIG "--atleast-version=2.30.0" "gthread-2.0" >/dev/null 2>&1; then + GTHREAD_VERSION=`$PKG_CONFIG --modversion "gthread-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTHREAD_VERSION" >&5 +$as_echo "$GTHREAD_VERSION" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_CFLAGS" >&5 -$as_echo_n "checking GTK_CFLAGS... " >&6; } - GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_CFLAGS" >&5 -$as_echo "$GTK_CFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTHREAD_CFLAGS" >&5 +$as_echo_n "checking GTHREAD_CFLAGS... " >&6; } + GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTHREAD_CFLAGS" >&5 +$as_echo "$GTHREAD_CFLAGS" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_LIBS" >&5 -$as_echo_n "checking GTK_LIBS... " >&6; } - GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_LIBS" >&5 -$as_echo "$GTK_LIBS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTHREAD_LIBS" >&5 +$as_echo_n "checking GTHREAD_LIBS... " >&6; } + GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTHREAD_LIBS" >&5 +$as_echo "$GTHREAD_LIBS" >&6; } - GTK_REQUIRED_VERSION=2.14.0 + GTHREAD_REQUIRED_VERSION=2.30.0 @@ -16062,15 +16645,15 @@ - elif $PKG_CONFIG --exists "gtk+-2.0" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "gtk+-2.0"` + elif $PKG_CONFIG --exists "gthread-2.0" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "gthread-2.0"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 $as_echo "found, but $xdt_cv_version" >&6; } - echo "*** The required package gtk+-2.0 was found on your system," + echo "*** The required package gthread-2.0 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade gtk+-2.0 to atleast version 2.14.0, or adjust" + echo "*** Please upgrade gthread-2.0 to atleast version 2.30.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -16081,8 +16664,8 @@ $as_echo "not found" >&6; } - echo "*** The required package gtk+-2.0 was not found on your system." - echo "*** Please install gtk+-2.0 (atleast version 2.14.0) or adjust" + echo "*** The required package gthread-2.0 was not found on your system." + echo "*** Please install gthread-2.0 (atleast version 2.30.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -16095,10 +16678,18 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -16115,7 +16706,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -16124,7 +16715,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -16138,113 +16728,19 @@ fi - - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk-pixbuf-2.0 >= 2.14.0" >&5 -$as_echo_n "checking for gdk-pixbuf-2.0 >= 2.14.0... " >&6; } - if $PKG_CONFIG "--atleast-version=2.14.0" "gdk-pixbuf-2.0" >/dev/null 2>&1; then - GDK_PIXBUF_VERSION=`$PKG_CONFIG --modversion "gdk-pixbuf-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDK_PIXBUF_VERSION" >&5 -$as_echo "$GDK_PIXBUF_VERSION" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GDK_PIXBUF_CFLAGS" >&5 -$as_echo_n "checking GDK_PIXBUF_CFLAGS... " >&6; } - GDK_PIXBUF_CFLAGS=`$PKG_CONFIG --cflags "gdk-pixbuf-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDK_PIXBUF_CFLAGS" >&5 -$as_echo "$GDK_PIXBUF_CFLAGS" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GDK_PIXBUF_LIBS" >&5 -$as_echo_n "checking GDK_PIXBUF_LIBS... " >&6; } - GDK_PIXBUF_LIBS=`$PKG_CONFIG --libs "gdk-pixbuf-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDK_PIXBUF_LIBS" >&5 -$as_echo "$GDK_PIXBUF_LIBS" >&6; } - - GDK_PIXBUF_REQUIRED_VERSION=2.14.0 - - - - - - - - elif $PKG_CONFIG --exists "gdk-pixbuf-2.0" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "gdk-pixbuf-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 -$as_echo "found, but $xdt_cv_version" >&6; } - - - echo "*** The required package gdk-pixbuf-2.0 was found on your system," - echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade gdk-pixbuf-2.0 to atleast version 2.14.0, or adjust" - echo "*** the PKG_CONFIG_PATH environment variable if you installed" - echo "*** the new version of the package in a nonstandard prefix so" - echo "*** pkg-config is able to find it." - exit 1 - - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - - - echo "*** The required package gdk-pixbuf-2.0 was not found on your system." - echo "*** Please install gdk-pixbuf-2.0 (atleast version 2.14.0) or adjust" - echo "*** the PKG_CONFIG_PATH environment variable if you" - echo "*** installed the package in a nonstandard prefix so that" - echo "*** pkg-config is able to find it." - exit 1 - - fi - - - - # minimum supported version of pkg-config - xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - case $PKG_CONFIG in + case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -16253,8 +16749,8 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -16262,75 +16758,81 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxfce4util-1.0 >= 4.8.0" >&5 -$as_echo_n "checking for libxfce4util-1.0 >= 4.8.0... " >&6; } - if $PKG_CONFIG "--atleast-version=4.8.0" "libxfce4util-1.0" >/dev/null 2>&1; then - LIBXFCE4UTIL_VERSION=`$PKG_CONFIG --modversion "libxfce4util-1.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UTIL_VERSION" >&5 -$as_echo "$LIBXFCE4UTIL_VERSION" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gmodule-2.0 >= 2.30.0" >&5 +$as_echo_n "checking for gmodule-2.0 >= 2.30.0... " >&6; } + if $PKG_CONFIG "--atleast-version=2.30.0" "gmodule-2.0" >/dev/null 2>&1; then + GMODULE_VERSION=`$PKG_CONFIG --modversion "gmodule-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMODULE_VERSION" >&5 +$as_echo "$GMODULE_VERSION" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXFCE4UTIL_CFLAGS" >&5 -$as_echo_n "checking LIBXFCE4UTIL_CFLAGS... " >&6; } - LIBXFCE4UTIL_CFLAGS=`$PKG_CONFIG --cflags "libxfce4util-1.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UTIL_CFLAGS" >&5 -$as_echo "$LIBXFCE4UTIL_CFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GMODULE_CFLAGS" >&5 +$as_echo_n "checking GMODULE_CFLAGS... " >&6; } + GMODULE_CFLAGS=`$PKG_CONFIG --cflags "gmodule-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMODULE_CFLAGS" >&5 +$as_echo "$GMODULE_CFLAGS" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXFCE4UTIL_LIBS" >&5 -$as_echo_n "checking LIBXFCE4UTIL_LIBS... " >&6; } - LIBXFCE4UTIL_LIBS=`$PKG_CONFIG --libs "libxfce4util-1.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UTIL_LIBS" >&5 -$as_echo "$LIBXFCE4UTIL_LIBS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GMODULE_LIBS" >&5 +$as_echo_n "checking GMODULE_LIBS... " >&6; } + GMODULE_LIBS=`$PKG_CONFIG --libs "gmodule-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMODULE_LIBS" >&5 +$as_echo "$GMODULE_LIBS" >&6; } - LIBXFCE4UTIL_REQUIRED_VERSION=4.8.0 + GMODULE_REQUIRED_VERSION=2.30.0 @@ -16338,15 +16840,15 @@ - elif $PKG_CONFIG --exists "libxfce4util-1.0" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "libxfce4util-1.0"` + elif $PKG_CONFIG --exists "gmodule-2.0" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "gmodule-2.0"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 $as_echo "found, but $xdt_cv_version" >&6; } - echo "*** The required package libxfce4util-1.0 was found on your system," + echo "*** The required package gmodule-2.0 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade libxfce4util-1.0 to atleast version 4.8.0, or adjust" + echo "*** Please upgrade gmodule-2.0 to atleast version 2.30.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -16357,8 +16859,8 @@ $as_echo "not found" >&6; } - echo "*** The required package libxfce4util-1.0 was not found on your system." - echo "*** Please install libxfce4util-1.0 (atleast version 4.8.0) or adjust" + echo "*** The required package gmodule-2.0 was not found on your system." + echo "*** Please install gmodule-2.0 (atleast version 2.30.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -16371,10 +16873,18 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -16391,7 +16901,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -16400,7 +16910,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -16414,77 +16923,127 @@ fi - - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done + done +IFS=$as_save_IFS + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxfce4ui-1 >= 4.8.0" >&5 -$as_echo_n "checking for libxfce4ui-1 >= 4.8.0... " >&6; } - if $PKG_CONFIG "--atleast-version=4.8.0" "libxfce4ui-1" >/dev/null 2>&1; then - LIBXFCE4UI_VERSION=`$PKG_CONFIG --modversion "libxfce4ui-1"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UI_VERSION" >&5 -$as_echo "$LIBXFCE4UI_VERSION" >&6; } + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXFCE4UI_CFLAGS" >&5 -$as_echo_n "checking LIBXFCE4UI_CFLAGS... " >&6; } - LIBXFCE4UI_CFLAGS=`$PKG_CONFIG --cflags "libxfce4ui-1"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UI_CFLAGS" >&5 -$as_echo "$LIBXFCE4UI_CFLAGS" >&6; } +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXFCE4UI_LIBS" >&5 -$as_echo_n "checking LIBXFCE4UI_LIBS... " >&6; } - LIBXFCE4UI_LIBS=`$PKG_CONFIG --libs "libxfce4ui-1"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UI_LIBS" >&5 -$as_echo "$LIBXFCE4UI_LIBS" >&6; } + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk+-2.0 >= 2.24.0" >&5 +$as_echo_n "checking for gtk+-2.0 >= 2.24.0... " >&6; } + if $PKG_CONFIG "--atleast-version=2.24.0" "gtk+-2.0" >/dev/null 2>&1; then + GTK_VERSION=`$PKG_CONFIG --modversion "gtk+-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_VERSION" >&5 +$as_echo "$GTK_VERSION" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_CFLAGS" >&5 +$as_echo_n "checking GTK_CFLAGS... " >&6; } + GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_CFLAGS" >&5 +$as_echo "$GTK_CFLAGS" >&6; } - LIBXFCE4UI_REQUIRED_VERSION=4.8.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_LIBS" >&5 +$as_echo_n "checking GTK_LIBS... " >&6; } + GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_LIBS" >&5 +$as_echo "$GTK_LIBS" >&6; } + GTK_REQUIRED_VERSION=2.24.0 - elif $PKG_CONFIG --exists "libxfce4ui-1" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "libxfce4ui-1"` + + elif $PKG_CONFIG --exists "gtk+-2.0" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "gtk+-2.0"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 $as_echo "found, but $xdt_cv_version" >&6; } - echo "*** The required package libxfce4ui-1 was found on your system," + echo "*** The required package gtk+-2.0 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade libxfce4ui-1 to atleast version 4.8.0, or adjust" + echo "*** Please upgrade gtk+-2.0 to atleast version 2.24.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -16495,8 +17054,8 @@ $as_echo "not found" >&6; } - echo "*** The required package libxfce4ui-1 was not found on your system." - echo "*** Please install libxfce4ui-1 (atleast version 4.8.0) or adjust" + echo "*** The required package gtk+-2.0 was not found on your system." + echo "*** Please install gtk+-2.0 (atleast version 2.24.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -16506,88 +17065,216 @@ + # minimum supported version of pkg-config + xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - LIBSM_CFLAGS= LIBSM_LDFLAGS= LIBSM_LIBS= - if test x"$no_x" != x"yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SmcSaveYourselfDone in -lSM" >&5 -$as_echo_n "checking for SmcSaveYourselfDone in -lSM... " >&6; } -if ${ac_cv_lib_SM_SmcSaveYourselfDone+:} false; then : + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lSM $LIBX11_CFLAGS $LIBX11_LDFLAGS $LIBX11_LIBS -lICE $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -/* 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 SmcSaveYourselfDone (); -int -main () -{ -return SmcSaveYourselfDone (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_SM_SmcSaveYourselfDone=yes + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else - ac_cv_lib_SM_SmcSaveYourselfDone=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_SM_SmcSaveYourselfDone" >&5 -$as_echo "$ac_cv_lib_SM_SmcSaveYourselfDone" >&6; } -if test "x$ac_cv_lib_SM_SmcSaveYourselfDone" = xyes; then : +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk-pixbuf-2.0 >= 2.14.0" >&5 +$as_echo_n "checking for gdk-pixbuf-2.0 >= 2.14.0... " >&6; } + if $PKG_CONFIG "--atleast-version=2.14.0" "gdk-pixbuf-2.0" >/dev/null 2>&1; then + GDK_PIXBUF_VERSION=`$PKG_CONFIG --modversion "gdk-pixbuf-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDK_PIXBUF_VERSION" >&5 +$as_echo "$GDK_PIXBUF_VERSION" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GDK_PIXBUF_CFLAGS" >&5 +$as_echo_n "checking GDK_PIXBUF_CFLAGS... " >&6; } + GDK_PIXBUF_CFLAGS=`$PKG_CONFIG --cflags "gdk-pixbuf-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDK_PIXBUF_CFLAGS" >&5 +$as_echo "$GDK_PIXBUF_CFLAGS" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GDK_PIXBUF_LIBS" >&5 +$as_echo_n "checking GDK_PIXBUF_LIBS... " >&6; } + GDK_PIXBUF_LIBS=`$PKG_CONFIG --libs "gdk-pixbuf-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDK_PIXBUF_LIBS" >&5 +$as_echo "$GDK_PIXBUF_LIBS" >&6; } + + GDK_PIXBUF_REQUIRED_VERSION=2.14.0 + + + + + + + + elif $PKG_CONFIG --exists "gdk-pixbuf-2.0" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "gdk-pixbuf-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 +$as_echo "found, but $xdt_cv_version" >&6; } + + + echo "*** The required package gdk-pixbuf-2.0 was found on your system," + echo "*** but the installed version ($xdt_cv_version) is too old." + echo "*** Please upgrade gdk-pixbuf-2.0 to atleast version 2.14.0, or adjust" + echo "*** the PKG_CONFIG_PATH environment variable if you installed" + echo "*** the new version of the package in a nonstandard prefix so" + echo "*** pkg-config is able to find it." + exit 1 -$as_echo "#define HAVE_LIBSM 1" >>confdefs.h + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } - LIBSM_CFLAGS="$LIBX11_CFLAGS" - LIBSM_LDFLAGS="$LIBX11_LDFLAGS" - LIBSM_LIBS="$LIBX11_LIBS" - if ! echo $LIBSM_LIBS | grep -- '-lSM' >/dev/null; then - LIBSM_LIBS="$LIBSM_LIBS -lSM -lICE" - fi -fi + echo "*** The required package gdk-pixbuf-2.0 was not found on your system." + echo "*** Please install gdk-pixbuf-2.0 (atleast version 2.14.0) or adjust" + echo "*** the PKG_CONFIG_PATH environment variable if you" + echo "*** installed the package in a nonstandard prefix so that" + echo "*** pkg-config is able to find it." + exit 1 fi + # minimum supported version of pkg-config + xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # Check whether --enable-gio-unix was given. -if test "${enable_gio_unix+set}" = set; then : - enableval=$enable_gio_unix; xdt_cv_GIO_UNIX_check=$enableval -else - xdt_cv_GIO_UNIX_check=yes -fi - - if test x"$xdt_cv_GIO_UNIX_check" = x"yes"; then - if $PKG_CONFIG --exists "gio-unix-2.0 >= 2.18.0" >/dev/null 2>&1; then - # minimum supported version of pkg-config - xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -16604,7 +17291,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -16613,7 +17300,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -16627,82 +17313,127 @@ fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gio-unix-2.0 >= 2.18.0" >&5 -$as_echo_n "checking for gio-unix-2.0 >= 2.18.0... " >&6; } - if $PKG_CONFIG "--atleast-version=2.18.0" "gio-unix-2.0" >/dev/null 2>&1; then - GIO_UNIX_VERSION=`$PKG_CONFIG --modversion "gio-unix-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIO_UNIX_VERSION" >&5 -$as_echo "$GIO_UNIX_VERSION" >&6; } + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GIO_UNIX_CFLAGS" >&5 -$as_echo_n "checking GIO_UNIX_CFLAGS... " >&6; } - GIO_UNIX_CFLAGS=`$PKG_CONFIG --cflags "gio-unix-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIO_UNIX_CFLAGS" >&5 -$as_echo "$GIO_UNIX_CFLAGS" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GIO_UNIX_LIBS" >&5 -$as_echo_n "checking GIO_UNIX_LIBS... " >&6; } - GIO_UNIX_LIBS=`$PKG_CONFIG --libs "gio-unix-2.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIO_UNIX_LIBS" >&5 -$as_echo "$GIO_UNIX_LIBS" >&6; } - GIO_UNIX_REQUIRED_VERSION=2.18.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxfce4util-1.0 >= 4.10.0" >&5 +$as_echo_n "checking for libxfce4util-1.0 >= 4.10.0... " >&6; } + if $PKG_CONFIG "--atleast-version=4.10.0" "libxfce4util-1.0" >/dev/null 2>&1; then + LIBXFCE4UTIL_VERSION=`$PKG_CONFIG --modversion "libxfce4util-1.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UTIL_VERSION" >&5 +$as_echo "$LIBXFCE4UTIL_VERSION" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXFCE4UTIL_CFLAGS" >&5 +$as_echo_n "checking LIBXFCE4UTIL_CFLAGS... " >&6; } + LIBXFCE4UTIL_CFLAGS=`$PKG_CONFIG --cflags "libxfce4util-1.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UTIL_CFLAGS" >&5 +$as_echo "$LIBXFCE4UTIL_CFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXFCE4UTIL_LIBS" >&5 +$as_echo_n "checking LIBXFCE4UTIL_LIBS... " >&6; } + LIBXFCE4UTIL_LIBS=`$PKG_CONFIG --libs "libxfce4util-1.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UTIL_LIBS" >&5 +$as_echo "$LIBXFCE4UTIL_LIBS" >&6; } + LIBXFCE4UTIL_REQUIRED_VERSION=4.10.0 -$as_echo "#define HAVE_GIO_UNIX 1" >>confdefs.h - GIO_UNIX_FOUND="yes" - elif $PKG_CONFIG --exists "gio-unix-2.0" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "gio-unix-2.0"` + elif $PKG_CONFIG --exists "libxfce4util-1.0" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "libxfce4util-1.0"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 $as_echo "found, but $xdt_cv_version" >&6; } - echo "*** The required package gio-unix-2.0 was found on your system," + echo "*** The required package libxfce4util-1.0 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade gio-unix-2.0 to atleast version 2.18.0, or adjust" + echo "*** Please upgrade libxfce4util-1.0 to atleast version 4.10.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -16713,8 +17444,8 @@ $as_echo "not found" >&6; } - echo "*** The required package gio-unix-2.0 was not found on your system." - echo "*** Please install gio-unix-2.0 (atleast version 2.18.0) or adjust" + echo "*** The required package libxfce4util-1.0 was not found on your system." + echo "*** Please install libxfce4util-1.0 (atleast version 4.10.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -16722,51 +17453,23 @@ fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package gio-unix-2.0 >= 2.18.0" >&5 -$as_echo_n "checking for optional package gio-unix-2.0 >= 2.18.0... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package gio-unix-2.0" >&5 -$as_echo_n "checking for optional package gio-unix-2.0... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 -$as_echo "disabled" >&6; } - fi - - if test x"$GIO_UNIX_FOUND" = x"yes"; then - HAVE_GIO_UNIX_TRUE= - HAVE_GIO_UNIX_FALSE='#' -else - HAVE_GIO_UNIX_TRUE='#' - HAVE_GIO_UNIX_FALSE= -fi + # minimum supported version of pkg-config + xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # Check whether --enable-dbus was given. -if test "${enable_dbus+set}" = set; then : - enableval=$enable_dbus; xdt_cv_DBUS_check=$enableval -else - xdt_cv_DBUS_check=yes -fi - if test x"$xdt_cv_DBUS_check" = x"yes"; then - if $PKG_CONFIG --exists "dbus-glib-1 >= 0.34" >/dev/null 2>&1; then - # minimum supported version of pkg-config - xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -16783,7 +17486,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -16792,7 +17495,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -16806,82 +17508,127 @@ fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbus-glib-1 >= 0.34" >&5 -$as_echo_n "checking for dbus-glib-1 >= 0.34... " >&6; } - if $PKG_CONFIG "--atleast-version=0.34" "dbus-glib-1" >/dev/null 2>&1; then - DBUS_VERSION=`$PKG_CONFIG --modversion "dbus-glib-1"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_VERSION" >&5 -$as_echo "$DBUS_VERSION" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_CFLAGS" >&5 -$as_echo_n "checking DBUS_CFLAGS... " >&6; } - DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-glib-1"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_CFLAGS" >&5 -$as_echo "$DBUS_CFLAGS" >&6; } + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_LIBS" >&5 -$as_echo_n "checking DBUS_LIBS... " >&6; } - DBUS_LIBS=`$PKG_CONFIG --libs "dbus-glib-1"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_LIBS" >&5 -$as_echo "$DBUS_LIBS" >&6; } - DBUS_REQUIRED_VERSION=0.34 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxfce4ui-1 >= 4.10.0" >&5 +$as_echo_n "checking for libxfce4ui-1 >= 4.10.0... " >&6; } + if $PKG_CONFIG "--atleast-version=4.10.0" "libxfce4ui-1" >/dev/null 2>&1; then + LIBXFCE4UI_VERSION=`$PKG_CONFIG --modversion "libxfce4ui-1"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UI_VERSION" >&5 +$as_echo "$LIBXFCE4UI_VERSION" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXFCE4UI_CFLAGS" >&5 +$as_echo_n "checking LIBXFCE4UI_CFLAGS... " >&6; } + LIBXFCE4UI_CFLAGS=`$PKG_CONFIG --cflags "libxfce4ui-1"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UI_CFLAGS" >&5 +$as_echo "$LIBXFCE4UI_CFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXFCE4UI_LIBS" >&5 +$as_echo_n "checking LIBXFCE4UI_LIBS... " >&6; } + LIBXFCE4UI_LIBS=`$PKG_CONFIG --libs "libxfce4ui-1"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXFCE4UI_LIBS" >&5 +$as_echo "$LIBXFCE4UI_LIBS" >&6; } + LIBXFCE4UI_REQUIRED_VERSION=4.10.0 -$as_echo "#define HAVE_DBUS 1" >>confdefs.h - DBUS_FOUND="yes" - elif $PKG_CONFIG --exists "dbus-glib-1" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "dbus-glib-1"` + elif $PKG_CONFIG --exists "libxfce4ui-1" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "libxfce4ui-1"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 $as_echo "found, but $xdt_cv_version" >&6; } - echo "*** The required package dbus-glib-1 was found on your system," + echo "*** The required package libxfce4ui-1 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade dbus-glib-1 to atleast version 0.34, or adjust" + echo "*** Please upgrade libxfce4ui-1 to atleast version 4.10.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -16892,8 +17639,8 @@ $as_echo "not found" >&6; } - echo "*** The required package dbus-glib-1 was not found on your system." - echo "*** Please install dbus-glib-1 (atleast version 0.34) or adjust" + echo "*** The required package libxfce4ui-1 was not found on your system." + echo "*** Please install libxfce4ui-1 (atleast version 4.10.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -16901,51 +17648,23 @@ fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package dbus-glib-1 >= 0.34" >&5 -$as_echo_n "checking for optional package dbus-glib-1 >= 0.34... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package dbus-glib-1" >&5 -$as_echo_n "checking for optional package dbus-glib-1... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 -$as_echo "disabled" >&6; } - fi - - if test x"$DBUS_FOUND" = x"yes"; then - HAVE_DBUS_TRUE= - HAVE_DBUS_FALSE='#' -else - HAVE_DBUS_TRUE='#' - HAVE_DBUS_FALSE= -fi + # minimum supported version of pkg-config + xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # Check whether --enable-startup-notification was given. -if test "${enable_startup_notification+set}" = set; then : - enableval=$enable_startup_notification; xdt_cv_LIBSTARTUP_NOTIFICATION_check=$enableval -else - xdt_cv_LIBSTARTUP_NOTIFICATION_check=yes -fi - if test x"$xdt_cv_LIBSTARTUP_NOTIFICATION_check" = x"yes"; then - if $PKG_CONFIG --exists "libstartup-notification-1.0 >= 0.4" >/dev/null 2>&1; then - # minimum supported version of pkg-config - xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -16962,7 +17681,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -16971,7 +17690,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -16985,82 +17703,127 @@ fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libstartup-notification-1.0 >= 0.4" >&5 -$as_echo_n "checking for libstartup-notification-1.0 >= 0.4... " >&6; } - if $PKG_CONFIG "--atleast-version=0.4" "libstartup-notification-1.0" >/dev/null 2>&1; then - LIBSTARTUP_NOTIFICATION_VERSION=`$PKG_CONFIG --modversion "libstartup-notification-1.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBSTARTUP_NOTIFICATION_VERSION" >&5 -$as_echo "$LIBSTARTUP_NOTIFICATION_VERSION" >&6; } + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBSTARTUP_NOTIFICATION_CFLAGS" >&5 -$as_echo_n "checking LIBSTARTUP_NOTIFICATION_CFLAGS... " >&6; } - LIBSTARTUP_NOTIFICATION_CFLAGS=`$PKG_CONFIG --cflags "libstartup-notification-1.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBSTARTUP_NOTIFICATION_CFLAGS" >&5 -$as_echo "$LIBSTARTUP_NOTIFICATION_CFLAGS" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBSTARTUP_NOTIFICATION_LIBS" >&5 -$as_echo_n "checking LIBSTARTUP_NOTIFICATION_LIBS... " >&6; } - LIBSTARTUP_NOTIFICATION_LIBS=`$PKG_CONFIG --libs "libstartup-notification-1.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBSTARTUP_NOTIFICATION_LIBS" >&5 -$as_echo "$LIBSTARTUP_NOTIFICATION_LIBS" >&6; } - LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION=0.4 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxfconf-0 >= 4.10.0" >&5 +$as_echo_n "checking for libxfconf-0 >= 4.10.0... " >&6; } + if $PKG_CONFIG "--atleast-version=4.10.0" "libxfconf-0" >/dev/null 2>&1; then + XFCONF_VERSION=`$PKG_CONFIG --modversion "libxfconf-0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFCONF_VERSION" >&5 +$as_echo "$XFCONF_VERSION" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking XFCONF_CFLAGS" >&5 +$as_echo_n "checking XFCONF_CFLAGS... " >&6; } + XFCONF_CFLAGS=`$PKG_CONFIG --cflags "libxfconf-0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFCONF_CFLAGS" >&5 +$as_echo "$XFCONF_CFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking XFCONF_LIBS" >&5 +$as_echo_n "checking XFCONF_LIBS... " >&6; } + XFCONF_LIBS=`$PKG_CONFIG --libs "libxfconf-0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFCONF_LIBS" >&5 +$as_echo "$XFCONF_LIBS" >&6; } + XFCONF_REQUIRED_VERSION=4.10.0 -$as_echo "#define HAVE_LIBSTARTUP_NOTIFICATION 1" >>confdefs.h - LIBSTARTUP_NOTIFICATION_FOUND="yes" - elif $PKG_CONFIG --exists "libstartup-notification-1.0" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "libstartup-notification-1.0"` + elif $PKG_CONFIG --exists "libxfconf-0" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "libxfconf-0"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 $as_echo "found, but $xdt_cv_version" >&6; } - echo "*** The required package libstartup-notification-1.0 was found on your system," + echo "*** The required package libxfconf-0 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade libstartup-notification-1.0 to atleast version 0.4, or adjust" + echo "*** Please upgrade libxfconf-0 to atleast version 4.10.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -17071,8 +17834,8 @@ $as_echo "not found" >&6; } - echo "*** The required package libstartup-notification-1.0 was not found on your system." - echo "*** Please install libstartup-notification-1.0 (atleast version 0.4) or adjust" + echo "*** The required package libxfconf-0 was not found on your system." + echo "*** Please install libxfconf-0 (atleast version 4.10.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -17080,59 +17843,149 @@ fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package libstartup-notification-1.0 >= 0.4" >&5 -$as_echo_n "checking for optional package libstartup-notification-1.0 >= 0.4... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package libstartup-notification-1.0" >&5 -$as_echo_n "checking for optional package libstartup-notification-1.0... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 -$as_echo "disabled" >&6; } + + + + + LIBSM_CFLAGS= LIBSM_LDFLAGS= LIBSM_LIBS= + if test x"$no_x" != x"yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SmcSaveYourselfDone in -lSM" >&5 +$as_echo_n "checking for SmcSaveYourselfDone in -lSM... " >&6; } +if ${ac_cv_lib_SM_SmcSaveYourselfDone+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lSM $LIBX11_CFLAGS $LIBX11_LDFLAGS $LIBX11_LIBS -lICE $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char SmcSaveYourselfDone (); +int +main () +{ +return SmcSaveYourselfDone (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_SM_SmcSaveYourselfDone=yes +else + ac_cv_lib_SM_SmcSaveYourselfDone=no +fi +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:${as_lineno-$LINENO}: result: $ac_cv_lib_SM_SmcSaveYourselfDone" >&5 +$as_echo "$ac_cv_lib_SM_SmcSaveYourselfDone" >&6; } +if test "x$ac_cv_lib_SM_SmcSaveYourselfDone" = xyes; then : + + +$as_echo "#define HAVE_LIBSM 1" >>confdefs.h + + LIBSM_CFLAGS="$LIBX11_CFLAGS" + LIBSM_LDFLAGS="$LIBX11_LDFLAGS" + LIBSM_LIBS="$LIBX11_LIBS" + if ! echo $LIBSM_LIBS | grep -- '-lSM' >/dev/null; then + LIBSM_LIBS="$LIBSM_LIBS -lSM -lICE" + fi + +fi + fi - if test x"$LIBSTARTUP_NOTIFICATION_FOUND" = x"yes"; then - HAVE_LIBSTARTUP_NOTIFICATION_TRUE= - HAVE_LIBSTARTUP_NOTIFICATION_FALSE='#' + + + + + + + + # Check whether --enable-gio-unix was given. +if test "${enable_gio_unix+set}" = set; then : + enableval=$enable_gio_unix; xdt_cv_GIO_UNIX_check=$enableval else - HAVE_LIBSTARTUP_NOTIFICATION_TRUE='#' - HAVE_LIBSTARTUP_NOTIFICATION_FALSE= + xdt_cv_GIO_UNIX_check=yes fi + if test x"$xdt_cv_GIO_UNIX_check" = x"yes"; then + if $PKG_CONFIG --exists "gio-unix-2.0 >= 2.30.0" >/dev/null 2>&1; then + # minimum supported version of pkg-config + xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # Check whether --enable-gudev was given. -if test "${enable_gudev+set}" = set; then : - enableval=$enable_gudev; xdt_cv_GUDEV_check=$enableval + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else - xdt_cv_GUDEV_check=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - if test x"$xdt_cv_GUDEV_check" = x"yes"; then - if $PKG_CONFIG --exists "gudev-1.0 >= 145" >/dev/null 2>&1; then - - - # minimum supported version of pkg-config - xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - case $PKG_CONFIG in + case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -17141,8 +17994,8 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -17150,75 +18003,81 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gudev-1.0 >= 145" >&5 -$as_echo_n "checking for gudev-1.0 >= 145... " >&6; } - if $PKG_CONFIG "--atleast-version=145" "gudev-1.0" >/dev/null 2>&1; then - GUDEV_VERSION=`$PKG_CONFIG --modversion "gudev-1.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUDEV_VERSION" >&5 -$as_echo "$GUDEV_VERSION" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gio-unix-2.0 >= 2.30.0" >&5 +$as_echo_n "checking for gio-unix-2.0 >= 2.30.0... " >&6; } + if $PKG_CONFIG "--atleast-version=2.30.0" "gio-unix-2.0" >/dev/null 2>&1; then + GIO_UNIX_VERSION=`$PKG_CONFIG --modversion "gio-unix-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIO_UNIX_VERSION" >&5 +$as_echo "$GIO_UNIX_VERSION" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GUDEV_CFLAGS" >&5 -$as_echo_n "checking GUDEV_CFLAGS... " >&6; } - GUDEV_CFLAGS=`$PKG_CONFIG --cflags "gudev-1.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUDEV_CFLAGS" >&5 -$as_echo "$GUDEV_CFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GIO_UNIX_CFLAGS" >&5 +$as_echo_n "checking GIO_UNIX_CFLAGS... " >&6; } + GIO_UNIX_CFLAGS=`$PKG_CONFIG --cflags "gio-unix-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIO_UNIX_CFLAGS" >&5 +$as_echo "$GIO_UNIX_CFLAGS" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking GUDEV_LIBS" >&5 -$as_echo_n "checking GUDEV_LIBS... " >&6; } - GUDEV_LIBS=`$PKG_CONFIG --libs "gudev-1.0"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUDEV_LIBS" >&5 -$as_echo "$GUDEV_LIBS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GIO_UNIX_LIBS" >&5 +$as_echo_n "checking GIO_UNIX_LIBS... " >&6; } + GIO_UNIX_LIBS=`$PKG_CONFIG --libs "gio-unix-2.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIO_UNIX_LIBS" >&5 +$as_echo "$GIO_UNIX_LIBS" >&6; } - GUDEV_REQUIRED_VERSION=145 + GIO_UNIX_REQUIRED_VERSION=2.30.0 @@ -17227,19 +18086,19 @@ -$as_echo "#define HAVE_GUDEV 1" >>confdefs.h +$as_echo "#define HAVE_GIO_UNIX 1" >>confdefs.h - GUDEV_FOUND="yes" + GIO_UNIX_FOUND="yes" - elif $PKG_CONFIG --exists "gudev-1.0" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "gudev-1.0"` + elif $PKG_CONFIG --exists "gio-unix-2.0" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "gio-unix-2.0"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 $as_echo "found, but $xdt_cv_version" >&6; } - echo "*** The required package gudev-1.0 was found on your system," + echo "*** The required package gio-unix-2.0 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade gudev-1.0 to atleast version 145, or adjust" + echo "*** Please upgrade gio-unix-2.0 to atleast version 2.30.0, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -17250,8 +18109,8 @@ $as_echo "not found" >&6; } - echo "*** The required package gudev-1.0 was not found on your system." - echo "*** Please install gudev-1.0 (atleast version 145) or adjust" + echo "*** The required package gio-unix-2.0 was not found on your system." + echo "*** Please install gio-unix-2.0 (atleast version 2.30.0) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -17260,24 +18119,24 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package gudev-1.0 >= 145" >&5 -$as_echo_n "checking for optional package gudev-1.0 >= 145... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package gio-unix-2.0 >= 2.30.0" >&5 +$as_echo_n "checking for optional package gio-unix-2.0 >= 2.30.0... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package gudev-1.0" >&5 -$as_echo_n "checking for optional package gudev-1.0... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package gio-unix-2.0" >&5 +$as_echo_n "checking for optional package gio-unix-2.0... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 $as_echo "disabled" >&6; } fi - if test x"$GUDEV_FOUND" = x"yes"; then - HAVE_GUDEV_TRUE= - HAVE_GUDEV_FALSE='#' + if test x"$GIO_UNIX_FOUND" = x"yes"; then + HAVE_GIO_UNIX_TRUE= + HAVE_GIO_UNIX_FALSE='#' else - HAVE_GUDEV_TRUE='#' - HAVE_GUDEV_FALSE= + HAVE_GIO_UNIX_TRUE='#' + HAVE_GIO_UNIX_FALSE= fi @@ -17285,25 +18144,33 @@ - # Check whether --enable-notifications was given. -if test "${enable_notifications+set}" = set; then : - enableval=$enable_notifications; xdt_cv_LIBNOTIFY_check=$enableval + # Check whether --enable-dbus was given. +if test "${enable_dbus+set}" = set; then : + enableval=$enable_dbus; xdt_cv_DBUS_check=$enableval else - xdt_cv_LIBNOTIFY_check=yes + xdt_cv_DBUS_check=yes fi - if test x"$xdt_cv_LIBNOTIFY_check" = x"yes"; then - if $PKG_CONFIG --exists "libnotify >= 0.4.0" >/dev/null 2>&1; then + if test x"$xdt_cv_DBUS_check" = x"yes"; then + if $PKG_CONFIG --exists "dbus-glib-1 >= 0.34" >/dev/null 2>&1; then # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -17320,7 +18187,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -17329,7 +18196,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -17343,61 +18209,111 @@ fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnotify >= 0.4.0" >&5 -$as_echo_n "checking for libnotify >= 0.4.0... " >&6; } - if $PKG_CONFIG "--atleast-version=0.4.0" "libnotify" >/dev/null 2>&1; then - LIBNOTIFY_VERSION=`$PKG_CONFIG --modversion "libnotify"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBNOTIFY_VERSION" >&5 -$as_echo "$LIBNOTIFY_VERSION" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBNOTIFY_CFLAGS" >&5 -$as_echo_n "checking LIBNOTIFY_CFLAGS... " >&6; } - LIBNOTIFY_CFLAGS=`$PKG_CONFIG --cflags "libnotify"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBNOTIFY_CFLAGS" >&5 -$as_echo "$LIBNOTIFY_CFLAGS" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBNOTIFY_LIBS" >&5 -$as_echo_n "checking LIBNOTIFY_LIBS... " >&6; } - LIBNOTIFY_LIBS=`$PKG_CONFIG --libs "libnotify"` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBNOTIFY_LIBS" >&5 -$as_echo "$LIBNOTIFY_LIBS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbus-glib-1 >= 0.34" >&5 +$as_echo_n "checking for dbus-glib-1 >= 0.34... " >&6; } + if $PKG_CONFIG "--atleast-version=0.34" "dbus-glib-1" >/dev/null 2>&1; then + DBUS_VERSION=`$PKG_CONFIG --modversion "dbus-glib-1"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_VERSION" >&5 +$as_echo "$DBUS_VERSION" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_CFLAGS" >&5 +$as_echo_n "checking DBUS_CFLAGS... " >&6; } + DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-glib-1"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_CFLAGS" >&5 +$as_echo "$DBUS_CFLAGS" >&6; } - LIBNOTIFY_REQUIRED_VERSION=0.4.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_LIBS" >&5 +$as_echo_n "checking DBUS_LIBS... " >&6; } + DBUS_LIBS=`$PKG_CONFIG --libs "dbus-glib-1"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_LIBS" >&5 +$as_echo "$DBUS_LIBS" >&6; } + + DBUS_REQUIRED_VERSION=0.34 @@ -17406,19 +18322,19 @@ -$as_echo "#define HAVE_LIBNOTIFY 1" >>confdefs.h +$as_echo "#define HAVE_DBUS 1" >>confdefs.h - LIBNOTIFY_FOUND="yes" + DBUS_FOUND="yes" - elif $PKG_CONFIG --exists "libnotify" >/dev/null 2>&1; then - xdt_cv_version=`$PKG_CONFIG --modversion "libnotify"` + elif $PKG_CONFIG --exists "dbus-glib-1" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "dbus-glib-1"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 $as_echo "found, but $xdt_cv_version" >&6; } - echo "*** The required package libnotify was found on your system," + echo "*** The required package dbus-glib-1 was found on your system," echo "*** but the installed version ($xdt_cv_version) is too old." - echo "*** Please upgrade libnotify to atleast version 0.4.0, or adjust" + echo "*** Please upgrade dbus-glib-1 to atleast version 0.34, or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you installed" echo "*** the new version of the package in a nonstandard prefix so" echo "*** pkg-config is able to find it." @@ -17429,8 +18345,8 @@ $as_echo "not found" >&6; } - echo "*** The required package libnotify was not found on your system." - echo "*** Please install libnotify (atleast version 0.4.0) or adjust" + echo "*** The required package dbus-glib-1 was not found on your system." + echo "*** Please install dbus-glib-1 (atleast version 0.34) or adjust" echo "*** the PKG_CONFIG_PATH environment variable if you" echo "*** installed the package in a nonstandard prefix so that" echo "*** pkg-config is able to find it." @@ -17439,27 +18355,47 @@ fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package libnotify >= 0.4.0" >&5 -$as_echo_n "checking for optional package libnotify >= 0.4.0... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package dbus-glib-1 >= 0.34" >&5 +$as_echo_n "checking for optional package dbus-glib-1 >= 0.34... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package libnotify" >&5 -$as_echo_n "checking for optional package libnotify... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package dbus-glib-1" >&5 +$as_echo_n "checking for optional package dbus-glib-1... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 $as_echo "disabled" >&6; } fi - if test x"$LIBNOTIFY_FOUND" = x"yes"; then - HAVE_LIBNOTIFY_TRUE= - HAVE_LIBNOTIFY_FALSE='#' + if test x"$DBUS_FOUND" = x"yes"; then + HAVE_DBUS_TRUE= + HAVE_DBUS_FALSE='#' else - HAVE_LIBNOTIFY_TRUE='#' - HAVE_LIBNOTIFY_FALSE= + HAVE_DBUS_TRUE='#' + HAVE_DBUS_FALSE= +fi + + + + + + + # Check whether --enable-gudev was given. +if test "${enable_gudev+set}" = set; then : + enableval=$enable_gudev; xdt_cv_GUDEV_check=$enableval +else + xdt_cv_GUDEV_check=yes fi + if test x"$xdt_cv_GUDEV_check" = x"yes"; then + if $PKG_CONFIG --exists "gudev-1.0 >= 145" >/dev/null 2>&1; then + + + # minimum supported version of pkg-config + xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 + + @@ -17487,7 +18423,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -17530,7 +18466,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -17568,7 +18504,7 @@ fi if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION { $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 @@ -17581,296 +18517,140 @@ fi fi + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - # Extract the first word of "gtkdoc-check", so it can be a program name with args. -set dummy gtkdoc-check; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GTKDOC_CHECK+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GTKDOC_CHECK in - [\\/]* | ?:[\\/]*) - ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK -if test -n "$GTKDOC_CHECK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5 -$as_echo "$GTKDOC_CHECK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - for ac_prog in gtkdoc-rebase -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GTKDOC_REBASE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GTKDOC_REBASE in - [\\/]* | ?:[\\/]*) - ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gudev-1.0 >= 145" >&5 +$as_echo_n "checking for gudev-1.0 >= 145... " >&6; } + if $PKG_CONFIG "--atleast-version=145" "gudev-1.0" >/dev/null 2>&1; then + GUDEV_VERSION=`$PKG_CONFIG --modversion "gudev-1.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUDEV_VERSION" >&5 +$as_echo "$GUDEV_VERSION" >&6; } - ;; -esac -fi -GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE -if test -n "$GTKDOC_REBASE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5 -$as_echo "$GTKDOC_REBASE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GUDEV_CFLAGS" >&5 +$as_echo_n "checking GUDEV_CFLAGS... " >&6; } + GUDEV_CFLAGS=`$PKG_CONFIG --cflags "gudev-1.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUDEV_CFLAGS" >&5 +$as_echo "$GUDEV_CFLAGS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking GUDEV_LIBS" >&5 +$as_echo_n "checking GUDEV_LIBS... " >&6; } + GUDEV_LIBS=`$PKG_CONFIG --libs "gudev-1.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUDEV_LIBS" >&5 +$as_echo "$GUDEV_LIBS" >&6; } - test -n "$GTKDOC_REBASE" && break -done -test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true" + GUDEV_REQUIRED_VERSION=145 - # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args. -set dummy gtkdoc-mkpdf; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GTKDOC_MKPDF+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GTKDOC_MKPDF in - [\\/]* | ?:[\\/]*) - ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - ;; -esac -fi -GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF -if test -n "$GTKDOC_MKPDF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5 -$as_echo "$GTKDOC_MKPDF" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -# Check whether --with-html-dir was given. -if test "${with_html_dir+set}" = set; then : - withval=$with_html_dir; -else - with_html_dir='${datadir}/gtk-doc/html' -fi - HTML_DIR="$with_html_dir" +$as_echo "#define HAVE_GUDEV 1" >>confdefs.h - # Check whether --enable-gtk-doc was given. -if test "${enable_gtk_doc+set}" = set; then : - enableval=$enable_gtk_doc; -else - enable_gtk_doc=no -fi + GUDEV_FOUND="yes" + elif $PKG_CONFIG --exists "gudev-1.0" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "gudev-1.0"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 +$as_echo "found, but $xdt_cv_version" >&6; } - if test x$enable_gtk_doc = xyes; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - : -else - as_fn_error $? "You need to have gtk-doc >= 1.0 installed to build $PACKAGE_NAME" "$LINENO" 5 -fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5 -$as_echo_n "checking whether to build gtk-doc documentation... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5 -$as_echo "$enable_gtk_doc" >&6; } + echo "*** The required package gudev-1.0 was found on your system," + echo "*** but the installed version ($xdt_cv_version) is too old." + echo "*** Please upgrade gudev-1.0 to atleast version 145, or adjust" + echo "*** the PKG_CONFIG_PATH environment variable if you installed" + echo "*** the new version of the package in a nonstandard prefix so" + echo "*** pkg-config is able to find it." + exit 1 - # Check whether --enable-gtk-doc-html was given. -if test "${enable_gtk_doc_html+set}" = set; then : - enableval=$enable_gtk_doc_html; -else - enable_gtk_doc_html=yes -fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } - # Check whether --enable-gtk-doc-pdf was given. -if test "${enable_gtk_doc_pdf+set}" = set; then : - enableval=$enable_gtk_doc_pdf; -else - enable_gtk_doc_pdf=no -fi + echo "*** The required package gudev-1.0 was not found on your system." + echo "*** Please install gudev-1.0 (atleast version 145) or adjust" + echo "*** the PKG_CONFIG_PATH environment variable if you" + echo "*** installed the package in a nonstandard prefix so that" + echo "*** pkg-config is able to find it." + exit 1 - if test -z "$GTKDOC_MKPDF"; then - enable_gtk_doc_pdf=no fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package gudev-1.0 >= 145" >&5 +$as_echo_n "checking for optional package gudev-1.0 >= 145... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package gudev-1.0" >&5 +$as_echo_n "checking for optional package gudev-1.0... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 +$as_echo "disabled" >&6; } + fi - if test x$enable_gtk_doc = xyes; then - ENABLE_GTK_DOC_TRUE= - ENABLE_GTK_DOC_FALSE='#' + if test x"$GUDEV_FOUND" = x"yes"; then + HAVE_GUDEV_TRUE= + HAVE_GUDEV_FALSE='#' else - ENABLE_GTK_DOC_TRUE='#' - ENABLE_GTK_DOC_FALSE= + HAVE_GUDEV_TRUE='#' + HAVE_GUDEV_FALSE= fi - if test x$enable_gtk_doc_html = xyes; then - GTK_DOC_BUILD_HTML_TRUE= - GTK_DOC_BUILD_HTML_FALSE='#' -else - GTK_DOC_BUILD_HTML_TRUE='#' - GTK_DOC_BUILD_HTML_FALSE= -fi - if test x$enable_gtk_doc_pdf = xyes; then - GTK_DOC_BUILD_PDF_TRUE= - GTK_DOC_BUILD_PDF_FALSE='#' -else - GTK_DOC_BUILD_PDF_TRUE='#' - GTK_DOC_BUILD_PDF_FALSE= -fi - if test -n "$LIBTOOL"; then - GTK_DOC_USE_LIBTOOL_TRUE= - GTK_DOC_USE_LIBTOOL_FALSE='#' -else - GTK_DOC_USE_LIBTOOL_TRUE='#' - GTK_DOC_USE_LIBTOOL_FALSE= -fi - if test -n "$GTKDOC_REBASE"; then - GTK_DOC_USE_REBASE_TRUE= - GTK_DOC_USE_REBASE_FALSE='#' + + + # Check whether --enable-notifications was given. +if test "${enable_notifications+set}" = set; then : + enableval=$enable_notifications; xdt_cv_LIBNOTIFY_check=$enableval else - GTK_DOC_USE_REBASE_TRUE='#' - GTK_DOC_USE_REBASE_FALSE= + xdt_cv_LIBNOTIFY_check=yes fi + if test x"$xdt_cv_LIBNOTIFY_check" = x"yes"; then + if $PKG_CONFIG --exists "libnotify >= 0.4.0" >/dev/null 2>&1; then -# Check whether --enable-gen-doc was given. -if test "${enable_gen_doc+set}" = set; then : - enableval=$enable_gen_doc; -else - enable_gen_doc=no -fi -if test x"$enable_gen_doc" = x"yes"; then - # Extract the first word of "xsltproc", so it can be a program name with args. -set dummy xsltproc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XSLTPROC+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $XSLTPROC in - [\\/]* | ?:[\\/]*) - ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + # minimum supported version of pkg-config + xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 + - test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="no" - ;; -esac -fi -XSLTPROC=$ac_cv_path_XSLTPROC -if test -n "$XSLTPROC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 -$as_echo "$XSLTPROC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - if test x"$XSLTPROC" = x"no"; then - enable_gen_doc=no - fi - # Extract the first word of "xml2po", so it can be a program name with args. -set dummy xml2po; ac_word=$2 + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XML2PO+:} false; then : +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - case $XML2PO in + case $PKG_CONFIG in [\\/]* | ?:[\\/]*) - ac_cv_path_XML2PO="$XML2PO" # Let the user override the test with a path. + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -17879,8 +18659,8 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_XML2PO="$as_dir/$ac_word$ac_exec_ext" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -17888,34 +18668,32 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_XML2PO" && ac_cv_path_XML2PO="no" ;; esac fi -XML2PO=$ac_cv_path_XML2PO -if test -n "$XML2PO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XML2PO" >&5 -$as_echo "$XML2PO" >&6; } +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test x"$XML2PO" = x"no"; then - enable_gen_doc=no - fi - - # Extract the first word of "xmllint", so it can be a program name with args. -set dummy xmllint; ac_word=$2 +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XMLLINT+:} false; then : +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - case $XMLLINT in + case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) - ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path. + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -17924,8 +18702,8 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext" + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -17933,38 +18711,145 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_XMLLINT" && ac_cv_path_XMLLINT="no" ;; esac fi -XMLLINT=$ac_cv_path_XMLLINT -if test -n "$XMLLINT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5 -$as_echo "$XMLLINT" >&6; } +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi - if test x"$XML2PO" = x"no"; then - enable_gen_doc=no - fi +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnotify >= 0.4.0" >&5 +$as_echo_n "checking for libnotify >= 0.4.0... " >&6; } + if $PKG_CONFIG "--atleast-version=0.4.0" "libnotify" >/dev/null 2>&1; then + LIBNOTIFY_VERSION=`$PKG_CONFIG --modversion "libnotify"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBNOTIFY_VERSION" >&5 +$as_echo "$LIBNOTIFY_VERSION" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBNOTIFY_CFLAGS" >&5 +$as_echo_n "checking LIBNOTIFY_CFLAGS... " >&6; } + LIBNOTIFY_CFLAGS=`$PKG_CONFIG --cflags "libnotify"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBNOTIFY_CFLAGS" >&5 +$as_echo "$LIBNOTIFY_CFLAGS" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBNOTIFY_LIBS" >&5 +$as_echo_n "checking LIBNOTIFY_LIBS... " >&6; } + LIBNOTIFY_LIBS=`$PKG_CONFIG --libs "libnotify"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBNOTIFY_LIBS" >&5 +$as_echo "$LIBNOTIFY_LIBS" >&6; } + + LIBNOTIFY_REQUIRED_VERSION=0.4.0 + + + + + + + + +$as_echo "#define HAVE_LIBNOTIFY 1" >>confdefs.h + + LIBNOTIFY_FOUND="yes" + + elif $PKG_CONFIG --exists "libnotify" >/dev/null 2>&1; then + xdt_cv_version=`$PKG_CONFIG --modversion "libnotify"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5 +$as_echo "found, but $xdt_cv_version" >&6; } + + + echo "*** The required package libnotify was found on your system," + echo "*** but the installed version ($xdt_cv_version) is too old." + echo "*** Please upgrade libnotify to atleast version 0.4.0, or adjust" + echo "*** the PKG_CONFIG_PATH environment variable if you installed" + echo "*** the new version of the package in a nonstandard prefix so" + echo "*** pkg-config is able to find it." + exit 1 + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + + + echo "*** The required package libnotify was not found on your system." + echo "*** Please install libnotify (atleast version 0.4.0) or adjust" + echo "*** the PKG_CONFIG_PATH environment variable if you" + echo "*** installed the package in a nonstandard prefix so that" + echo "*** pkg-config is able to find it." + exit 1 + + fi - if test x"$enable_gen_doc" = x"no"; then - as_fn_error $? "Compiling with --enable-gen-doc but one of xml2po, xsltproc or xmllint not found." "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package libnotify >= 0.4.0" >&5 +$as_echo_n "checking for optional package libnotify >= 0.4.0... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } fi -fi - if test x"$enable_gen_doc" = x"yes"; then - GENERATE_DOCUMENTATION_TRUE= - GENERATE_DOCUMENTATION_FALSE='#' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for optional package libnotify" >&5 +$as_echo_n "checking for optional package libnotify... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 +$as_echo "disabled" >&6; } + fi + + if test x"$LIBNOTIFY_FOUND" = x"yes"; then + HAVE_LIBNOTIFY_TRUE= + HAVE_LIBNOTIFY_FALSE='#' else - GENERATE_DOCUMENTATION_TRUE='#' - GENERATE_DOCUMENTATION_FALSE= + HAVE_LIBNOTIFY_TRUE='#' + HAVE_LIBNOTIFY_FALSE= fi + # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; enable_debug=$enableval @@ -17987,10 +18872,10 @@ -Wdeclaration-after-statement \ -Wmissing-declarations \ -Wmissing-noreturn -Wshadow -Wpointer-arith \ - -Wcast-align -Wformat-security \ + -Wcast-align -Wformat -Wformat-security -Wformat-y2k \ -Winit-self -Wmissing-include-dirs -Wundef \ - -Wmissing-format-attribute -Wnested-externs" - CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2" + -Wnested-externs" + CPPFLAGS="$CPPFLAGS" if test x`uname` = x"Linux"; then xdt_cv_additional_CFLAGS="$xdt_cv_additional_CFLAGS -fstack-protector" @@ -18050,7 +18935,7 @@ CPPFLAGS="$CPPFLAGS -DNDEBUG" if test x"$enable_debug" = x"no"; then - CPPFLAGS="$CPPFLAGS -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS" + CPPFLAGS="$CPPFLAGS -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT" { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else @@ -18061,33 +18946,6 @@ - for flag in -Wno-sign-compare; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag" >&5 -$as_echo_n "checking if $CC supports $flag... " >&6; } - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - flag_supported=yes -else - flag_supported=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$saved_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_supported" >&5 -$as_echo "$flag_supported" >&6; } - - if test "x$flag_supported" = "xyes"; then - GTK_DOC_EXTRA_CFLAGS="$GTK_DOC_EXTRA_CFLAGS $flag" - fi - done - - - - # Check whether --enable-linker-opts was given. if test "${enable_linker_opts+set}" = set; then : enableval=$enable_linker_opts; enable_linker_opts=$enableval @@ -18184,10 +19042,18 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -18204,7 +19070,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18213,7 +19079,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -18227,39 +19092,89 @@ fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi - fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libexif >= 0.6.0" >&5 @@ -18384,10 +19299,18 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -18404,7 +19327,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18413,7 +19336,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -18427,39 +19349,89 @@ fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libpcre >= 6.0" >&5 @@ -18559,10 +19531,18 @@ # minimum supported version of pkg-config xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0 - # lookup pkg-config utility - if test x"$PKG_CONFIG" = x""; then - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : @@ -18579,7 +19559,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18588,7 +19568,6 @@ done IFS=$as_save_IFS - test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi @@ -18602,39 +19581,89 @@ fi +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - if test x"$PKG_CONFIG" = x"no"; then - echo "*** The pkg-config utility could not be found on your system." - echo "*** Make sure it is in your path, or set the PKG_CONFIG" - echo "*** environment variable to the full path to pkg-config." - echo "*** You can download pkg-config from the freedesktop.org" - echo "*** software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi - # check pkg-config version - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION" >&5 -$as_echo_n "checking for pkg-config >= $xdt_cv_PKG_CONFIG_MIN_VERSION... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $xdt_cv_PKG_CONFIG_MIN_VERSION; then - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - else - xdt_cv_PKG_CONFIG_VERSION=`$PKG_CONFIG --version` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xdt_cv_PKG_CONFIG_VERSION" >&5 -$as_echo "$xdt_cv_PKG_CONFIG_VERSION" >&6; } - echo "*** Your version of pkg-config is too old. You need atleast" - echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config " - echo "*** from the freedesktop.org software repository at" - echo "***" - echo "*** http://www.freedesktop.org/software/pkgconfig" - echo "***" - exit 1 - fi + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=$xdt_cv_PKG_CONFIG_MIN_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + if test x"$PKG_CONFIG" = x""; then + echo + echo "*** Your version of pkg-config is too old. You need atleast" + echo "*** pkg-config $xdt_cv_PKG_CONFIG_MIN_VERSION or newer. You can download pkg-config" + echo "*** from the freedesktop.org software repository at" + echo "***" + echo "*** http://www.freedesktop.org/software/pkgconfig" + echo "***" + exit 1; + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxfce4panel-1.0 >= 4.7.0" >&5 @@ -18757,7 +19786,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_xfconf_query_found="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -18788,7 +19817,7 @@ fi -ac_config_files="$ac_config_files Makefile Thunar.spec docs/Makefile docs/design/Makefile docs/manual/Makefile docs/manual/images/Makefile docs/manual/images/fr/Makefile docs/manual/images/ja/Makefile docs/manual/images/pl/Makefile docs/manual/po/Makefile docs/papers/Makefile docs/reference/Makefile docs/reference/thunarx/Makefile docs/reference/thunarx/version.xml examples/Makefile examples/tex-open-terminal/Makefile icons/Makefile icons/16x16/Makefile icons/24x24/Makefile icons/48x48/Makefile icons/scalable/Makefile pixmaps/Makefile plugins/Makefile plugins/thunar-apr/Makefile plugins/thunar-sbr/Makefile plugins/thunar-sendto-email/Makefile plugins/thunar-tpa/Makefile plugins/thunar-uca/Makefile plugins/thunar-wallpaper/Makefile po/Makefile.in tdb/Makefile tdb/tdbconfig.h thunar/Makefile thunarx/Makefile thunarx/thunarx-2.pc thunarx/thunarx-config.h" +ac_config_files="$ac_config_files Makefile docs/Makefile docs/design/Makefile docs/papers/Makefile examples/Makefile examples/tex-open-terminal/Makefile icons/Makefile icons/16x16/Makefile icons/24x24/Makefile icons/48x48/Makefile icons/64x64/Makefile icons/128x128/Makefile icons/scalable/Makefile pixmaps/Makefile plugins/Makefile plugins/thunar-apr/Makefile plugins/thunar-sbr/Makefile plugins/thunar-sendto-email/Makefile plugins/thunar-tpa/Makefile plugins/thunar-uca/Makefile plugins/thunar-wallpaper/Makefile po/Makefile.in thunar/Makefile thunarx/Makefile thunarx/thunarx-2.pc thunarx/thunarx-config.h" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -18899,6 +19928,14 @@ LTLIBOBJS=$ac_ltlibobjs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -18935,10 +19972,6 @@ as_fn_error $? "conditional \"HAVE_DBUS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${HAVE_LIBSTARTUP_NOTIFICATION_TRUE}" && test -z "${HAVE_LIBSTARTUP_NOTIFICATION_FALSE}"; then - as_fn_error $? "conditional \"HAVE_LIBSTARTUP_NOTIFICATION\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${HAVE_GUDEV_TRUE}" && test -z "${HAVE_GUDEV_FALSE}"; then as_fn_error $? "conditional \"HAVE_GUDEV\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -18947,30 +19980,6 @@ as_fn_error $? "conditional \"HAVE_LIBNOTIFY\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then - as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then - as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then - as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then - as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then - as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${GENERATE_DOCUMENTATION_TRUE}" && test -z "${GENERATE_DOCUMENTATION_FALSE}"; then - as_fn_error $? "conditional \"GENERATE_DOCUMENTATION\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${THUNAR_PLUGIN_APR_TRUE}" && test -z "${THUNAR_PLUGIN_APR_FALSE}"; then as_fn_error $? "conditional \"THUNAR_PLUGIN_APR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -19297,16 +20306,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -19366,28 +20375,16 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -19408,8 +20405,8 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Thunar $as_me 1.2.3, which was -generated by GNU Autoconf 2.68. Invocation command line was +This file was extended by Thunar $as_me 1.6.10, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -19474,11 +20471,11 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Thunar config.status 1.2.3 -configured by $0, generated by GNU Autoconf 2.68, +Thunar config.status 1.6.10 +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -19569,7 +20566,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -19611,12 +20608,14 @@ SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' @@ -19657,10 +20656,13 @@ GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' @@ -19693,7 +20695,6 @@ allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' @@ -19726,7 +20727,8 @@ finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' @@ -19754,6 +20756,7 @@ SHELL \ ECHO \ LD \ +PATH_SEPARATOR \ NM \ LN_S \ lt_SP2NL \ @@ -19776,9 +20779,12 @@ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ nm_file_list_spec \ +lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ @@ -19799,7 +20805,6 @@ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ -hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ @@ -19814,7 +20819,7 @@ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -19841,10 +20846,11 @@ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -19853,19 +20859,16 @@ done ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' -# See if we are running on zsh, and set the options which allow our +# See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then +if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' @@ -19886,25 +20889,17 @@ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "Thunar.spec") CONFIG_FILES="$CONFIG_FILES Thunar.spec" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; "docs/design/Makefile") CONFIG_FILES="$CONFIG_FILES docs/design/Makefile" ;; - "docs/manual/Makefile") CONFIG_FILES="$CONFIG_FILES docs/manual/Makefile" ;; - "docs/manual/images/Makefile") CONFIG_FILES="$CONFIG_FILES docs/manual/images/Makefile" ;; - "docs/manual/images/fr/Makefile") CONFIG_FILES="$CONFIG_FILES docs/manual/images/fr/Makefile" ;; - "docs/manual/images/ja/Makefile") CONFIG_FILES="$CONFIG_FILES docs/manual/images/ja/Makefile" ;; - "docs/manual/images/pl/Makefile") CONFIG_FILES="$CONFIG_FILES docs/manual/images/pl/Makefile" ;; - "docs/manual/po/Makefile") CONFIG_FILES="$CONFIG_FILES docs/manual/po/Makefile" ;; "docs/papers/Makefile") CONFIG_FILES="$CONFIG_FILES docs/papers/Makefile" ;; - "docs/reference/Makefile") CONFIG_FILES="$CONFIG_FILES docs/reference/Makefile" ;; - "docs/reference/thunarx/Makefile") CONFIG_FILES="$CONFIG_FILES docs/reference/thunarx/Makefile" ;; - "docs/reference/thunarx/version.xml") CONFIG_FILES="$CONFIG_FILES docs/reference/thunarx/version.xml" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "examples/tex-open-terminal/Makefile") CONFIG_FILES="$CONFIG_FILES examples/tex-open-terminal/Makefile" ;; "icons/Makefile") CONFIG_FILES="$CONFIG_FILES icons/Makefile" ;; "icons/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES icons/16x16/Makefile" ;; "icons/24x24/Makefile") CONFIG_FILES="$CONFIG_FILES icons/24x24/Makefile" ;; "icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES icons/48x48/Makefile" ;; + "icons/64x64/Makefile") CONFIG_FILES="$CONFIG_FILES icons/64x64/Makefile" ;; + "icons/128x128/Makefile") CONFIG_FILES="$CONFIG_FILES icons/128x128/Makefile" ;; "icons/scalable/Makefile") CONFIG_FILES="$CONFIG_FILES icons/scalable/Makefile" ;; "pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;; "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;; @@ -19915,8 +20910,6 @@ "plugins/thunar-uca/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/thunar-uca/Makefile" ;; "plugins/thunar-wallpaper/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/thunar-wallpaper/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "tdb/Makefile") CONFIG_FILES="$CONFIG_FILES tdb/Makefile" ;; - "tdb/tdbconfig.h") CONFIG_FILES="$CONFIG_FILES tdb/tdbconfig.h" ;; "thunar/Makefile") CONFIG_FILES="$CONFIG_FILES thunar/Makefile" ;; "thunarx/Makefile") CONFIG_FILES="$CONFIG_FILES thunarx/Makefile" ;; "thunarx/thunarx-2.pc") CONFIG_FILES="$CONFIG_FILES thunarx/thunarx-2.pc" ;; @@ -20518,7 +21511,7 @@ 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 + # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in @@ -20531,7 +21524,7 @@ # 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 + # 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. @@ -20565,21 +21558,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # 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 + 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 + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || @@ -20614,55 +21605,53 @@ ;; "libtool":C) - # See if we are running on zsh, and set the options which allow our + # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then + if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi - cfgfile="${ofile}T" + cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Generated automatically by $as_me ($PACKAGE) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can 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 of the License, or +# (at your option) any later version. # -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool is free software; you can 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. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. # -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT 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 GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# along with this program. If not, see . # The names of the tagged configurations supported by this script. -available_tags="" +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG @@ -20687,13 +21676,13 @@ # An echo program that protects backslashes. ECHO=$lt_ECHO -# Whether or not to build static libraries. -build_old_libs=$enable_static - # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision +# Whether or not to build static libraries. +build_old_libs=$enable_static + # Whether or not to build shared libraries. build_libtool_libs=$enable_shared @@ -20703,6 +21692,12 @@ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + # The host system. host_alias=$host_alias host=$host @@ -20796,18 +21791,27 @@ # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec -# The root where to search for dependent libraries,and in which our libraries should be installed. +# The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + # The name of the directory that contains temporary libtool files. objdir=$objdir @@ -20898,8 +21902,11 @@ # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen @@ -20989,20 +21996,16 @@ # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute @@ -21054,13 +22057,72 @@ _LT_EOF + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then +if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -21069,7 +22131,7 @@ esac -ltmain="$ac_aux_dir/ltmain.sh" +ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if @@ -21079,165 +22141,6 @@ sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) - if test x"$xsi_shell" = xyes; then - sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -func_dirname ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_basename ()$/,/^} # func_basename /c\ -func_basename ()\ -{\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -func_dirname_and_basename ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -func_stripname ()\ -{\ -\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -\ # positional parameters, so assign one to ordinary parameter first.\ -\ func_stripname_result=${3}\ -\ func_stripname_result=${func_stripname_result#"${1}"}\ -\ func_stripname_result=${func_stripname_result%"${2}"}\ -} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -func_split_long_opt ()\ -{\ -\ func_split_long_opt_name=${1%%=*}\ -\ func_split_long_opt_arg=${1#*=}\ -} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -func_split_short_opt ()\ -{\ -\ func_split_short_opt_arg=${1#??}\ -\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -func_lo2o ()\ -{\ -\ case ${1} in\ -\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -\ *) func_lo2o_result=${1} ;;\ -\ esac\ -} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_xform ()$/,/^} # func_xform /c\ -func_xform ()\ -{\ - func_xform_result=${1%.*}.lo\ -} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_arith ()$/,/^} # func_arith /c\ -func_arith ()\ -{\ - func_arith_result=$(( $* ))\ -} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_len ()$/,/^} # func_len /c\ -func_len ()\ -{\ - func_len_result=${#1}\ -} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - -fi - -if test x"$lt_shell_append" = xyes; then - sed -e '/^func_append ()$/,/^} # func_append /c\ -func_append ()\ -{\ - eval "${1}+=\\${2}"\ -} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -func_append_quoted ()\ -{\ -\ func_quote_for_eval "${2}"\ -\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -fi - - mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" @@ -21318,11 +22221,6 @@ else echo "* GIO UNIX features: no" fi -if test x"$LIBSTARTUP_NOTIFICATION_FOUND" = x"yes"; then -echo "* Startup Notification: yes" -else -echo "* Startup Notification: no" -fi if test x"$GUDEV_FOUND" = x"yes"; then echo "* GUDev (required for thunar-volman): yes" else @@ -21334,13 +22232,6 @@ echo "* Mount notification support: no" fi echo "* Debug Support: $enable_debug" -if test x"$enable_gen_doc" = x"yes"; then -echo "* Documentation: yes (generate)" -elif test -d "${srcdir}/docs/manual/html"; then -echo "* Documentation: yes (in tarball)" -else -echo "* Documentation: no" -fi echo echo "Additional Plugins:" echo diff -Nru thunar-1.2.3/configure.ac thunar-1.6.10/configure.ac --- thunar-1.2.3/configure.ac 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/configure.ac 2015-05-22 20:47:27.000000000 +0000 @@ -0,0 +1,289 @@ +dnl +dnl This file was autogenerated from "configure.ac.in". +dnl Edit that file instead! +dnl + +# vi:set et ai sw=2 sts=2 ts=2: */ +#- +# Copyright (c) 2004-2007 Benedikt Meurer +# Copyright (c) 2009-2011 Jannis Pohlmann +# Copyright (c) 2004-2015 Xfce Development Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +dnl *************************** +dnl *** Version information *** +dnl *************************** +m4_define([thunarx_verinfo], [0:0:0]) +m4_define([thunarx_version_api], [2]) +m4_define([thunar_version_major], [1]) +m4_define([thunar_version_minor], [6]) +m4_define([thunar_version_micro], [10]) +m4_define([thunar_version_nano], []) +m4_define([thunar_version_build], [b4b50ad]) +m4_define([thunar_version_tag], []) +m4_define([thunar_version], [thunar_version_major().thunar_version_minor().thunar_version_micro()ifelse(thunar_version_nano(), [], [], [.thunar_version_nano()])ifelse(thunar_version_tag(), [git], [thunar_version_tag()-thunar_version_build()], [thunar_version_tag()])]) + +dnl ******************************************* +dnl *** Debugging support for GIT snapshots *** +dnl ******************************************* +m4_define([thunar_debug_default], [ifelse(thunar_version_tag(), [git], [yes], [minimum])]) + +dnl *************************** +dnl *** Initialize autoconf *** +dnl *************************** +AC_COPYRIGHT([Copyright (c) 2004-2015 The Thunar development team. All rights reserved.]) +AC_INIT([Thunar], [thunar_version], [http://bugzilla.xfce.org/], [Thunar]) +AC_PREREQ([2.60]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CANONICAL_TARGET() +AC_REVISION([thunar_version_build]) + +dnl *************************** +dnl *** Initialize automake *** +dnl *************************** +AM_INIT_AUTOMAKE([1.11 dist-bzip2 tar-ustar no-dist-gzip]) +AC_CONFIG_HEADERS([config.h]) +AM_MAINTAINER_MODE() +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +dnl ******************************* +dnl *** Check for UNIX variants *** +dnl ******************************* +AC_AIX() +AC_ISC_POSIX() +AC_MINIX() + +if test "x$target_os" = "xlinux-gnu"; then + AC_DEFINE([HAVE_LINUX], [], [Whether we are building on Linux or not]) +fi + +dnl ******************************** +dnl *** Check for basic programs *** +dnl ******************************** +AC_PROG_CC() +AC_PROG_LD() +AM_PROG_CC_C_O() +AC_PROG_INSTALL() +IT_PROG_INTLTOOL() +AC_CHECK_PROGS([PERL], [perl5 perl]) +m4_ifdef([AC_PROG_SED], [AC_PROG_SED], [AC_CHECK_PROG(SED, sed, sed)]) + +dnl ************************** +dnl *** Initialize libtool *** +dnl ************************** +LT_PREREQ([2.4]) +LT_INIT([disable-static]) + +dnl ************************************** +dnl *** Substitute version information *** +dnl ************************************** +THUNARX_VERINFO=thunarx_verinfo() +THUNARX_VERSION_API=thunarx_version_api() +THUNAR_VERSION_MAJOR=thunar_version_major() +THUNAR_VERSION_MINOR=thunar_version_minor() +THUNAR_VERSION_MICRO=thunar_version_micro() +AC_SUBST([THUNARX_VERINFO]) +AC_SUBST([THUNARX_VERSION_API]) +AC_SUBST([THUNAR_VERSION_MAJOR]) +AC_SUBST([THUNAR_VERSION_MINOR]) +AC_SUBST([THUNAR_VERSION_MICRO]) + +dnl ****************************** +dnl *** Set helper path prefix *** +dnl ****************************** +AC_ARG_WITH([helper-path-prefix], + [AC_HELP_STRING([--with-helper-path-prefix=PATH], + [Path prefix under which helper executables will be installed (default: $libdir)])], + [HELPER_PATH_PREFIX="$withval"], + [HELPER_PATH_PREFIX="$libdir"]) +AC_SUBST([HELPER_PATH_PREFIX]) + +dnl *********************************************** +dnl *** Work-around system-specific limitations *** +dnl *********************************************** +AC_SYS_LARGEFILE() + +dnl ********************************** +dnl *** Check for standard headers *** +dnl ********************************** +AC_CHECK_HEADERS([ctype.h errno.h fcntl.h grp.h limits.h locale.h memory.h \ + paths.h pwd.h sched.h signal.h stdarg.h stdlib.h string.h \ + sys/mman.h sys/param.h sys/stat.h sys/time.h sys/types.h \ + sys/uio.h sys/wait.h time.h]) + +dnl ************************************ +dnl *** Check for standard functions *** +dnl ************************************ +AC_FUNC_MMAP() +AC_CHECK_FUNCS([localeconv mkdtemp pread pwrite sched_yield setgroupent \ + setpassent strcoll strlcpy strptime symlink atexit]) + +dnl ****************************** +dnl *** Check for i18n support *** +dnl ****************************** +XDT_I18N([am ar ast be bg bn ca cs da de el en_AU en_GB eo es et eu fi fr gl he hr hu id is it ja kk ko lt lv ms nb nl nn oc pa pl pt_BR pt ro ru si sk sl sq sr sv te th tr ug uk ur_PK ur vi zh_CN zh_HK zh_TW ]) + +dnl ********************* +dnl *** Check for X11 *** +dnl ********************* +XDT_CHECK_LIBX11_REQUIRE() + +dnl *********************************** +dnl *** Check for required packages *** +dnl *********************************** +XDT_CHECK_PACKAGE([EXO], [exo-1], [0.10.0]) +XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.30.0]) +XDT_CHECK_PACKAGE([GIO], [gio-2.0], [2.30.0]) +XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.30.0]) +XDT_CHECK_PACKAGE([GMODULE], [gmodule-2.0], [2.30.0]) +XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.24.0]) +XDT_CHECK_PACKAGE([GDK_PIXBUF], [gdk-pixbuf-2.0], [2.14.0]) +XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.10.0]) +XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.10.0]) +XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.10.0]) + +dnl ******************************************** +dnl *** Check for session management support *** +dnl ******************************************** +XDT_CHECK_LIBSM() + +dnl ********************************** +dnl *** Optional GIO UNIX features *** +dnl ********************************** +XDT_CHECK_OPTIONAL_PACKAGE([GIO_UNIX], [gio-unix-2.0], + [2.30.0], [gio-unix], [GIO UNIX features]) + +dnl ********************************** +dnl *** Optional support for D-BUS *** +dnl ********************************** +XDT_CHECK_OPTIONAL_PACKAGE([DBUS], [dbus-glib-1], + [0.34], [dbus], [D-BUS support]) + +dnl *************************************************************** +dnl *** Optional support for GUDev (required for thunar-volman) *** +dnl *************************************************************** +XDT_CHECK_OPTIONAL_PACKAGE([GUDEV], [gudev-1.0], [145], [gudev], + [GUDev (required for thunar-volman)]) + +dnl ************************************** +dnl *** Optional support for libnotify *** +dnl ************************************** +XDT_CHECK_OPTIONAL_PACKAGE([LIBNOTIFY], [libnotify], [0.4.0], [notifications], + [Mount notification support], [yes]) + +dnl *********************************** +dnl *** Check for debugging support *** +dnl *********************************** +XDT_FEATURE_DEBUG([thunar_debug_default]) + +dnl ************************************** +dnl *** Check for linker optimizations *** +dnl ************************************** +XDT_FEATURE_LINKER_OPTS() + +dnl dnl **************************************** +dnl dnl *** Check for ELF visibility support *** +dnl dnl **************************************** +dnl XDT_FEATURE_VISIBILITY() + +dnl ********************************* +dnl *** Substitute platform flags *** +dnl ********************************* +AC_MSG_CHECKING([PLATFORM_CPPFLAGS]) +AC_MSG_RESULT([$PLATFORM_CPPFLAGS]) +AC_SUBST([PLATFORM_CPPFLAGS]) +AC_MSG_CHECKING([PLATFORM_CFLAGS]) +AC_MSG_RESULT([$PLATFORM_CFLAGS]) +AC_SUBST([PLATFORM_CFLAGS]) +AC_MSG_CHECKING([PLATFORM_LDFLAGS]) +AC_MSG_RESULT([$PLATFORM_LDFLAGS]) +AC_SUBST([PLATFORM_LDFLAGS]) + +dnl ************************************ +dnl *** Check for additional plugins *** +dnl ************************************ +BM_THUNAR_PLUGIN_APR() +BM_THUNAR_PLUGIN_SBR() +BM_THUNAR_PLUGIN_TPA() +BM_THUNAR_PLUGIN_UCA() +BM_THUNAR_PLUGIN_WALLPAPER() + +AC_OUTPUT([ +Makefile +docs/Makefile +docs/design/Makefile +docs/papers/Makefile +examples/Makefile +examples/tex-open-terminal/Makefile +icons/Makefile +icons/16x16/Makefile +icons/24x24/Makefile +icons/48x48/Makefile +icons/64x64/Makefile +icons/128x128/Makefile +icons/scalable/Makefile +pixmaps/Makefile +plugins/Makefile +plugins/thunar-apr/Makefile +plugins/thunar-sbr/Makefile +plugins/thunar-sendto-email/Makefile +plugins/thunar-tpa/Makefile +plugins/thunar-uca/Makefile +plugins/thunar-wallpaper/Makefile +po/Makefile.in +thunar/Makefile +thunarx/Makefile +thunarx/thunarx-2.pc +thunarx/thunarx-config.h +]) + +dnl *************************** +dnl *** Print configuration *** +dnl *************************** +echo +echo "Build Configuration:" +echo +if test x"$DBUS_FOUND" = x"yes"; then +echo "* D-BUS support: yes" +else +echo "* D-BUS support: no" +fi +if test x"$GIO_UNIX_FOUND" = x"yes"; then +echo "* GIO UNIX features: yes" +else +echo "* GIO UNIX features: no" +fi +if test x"$GUDEV_FOUND" = x"yes"; then +echo "* GUDev (required for thunar-volman): yes" +else +echo "* GUDev (required for thunar-volman): no" +fi +if test x"$LIBNOTIFY_FOUND" = x"yes"; then +echo "* Mount notification support: yes" +else +echo "* Mount notification support: no" +fi +echo "* Debug Support: $enable_debug" +echo +echo "Additional Plugins:" +echo +echo "* Advanced Properties: $ac_bm_thunar_plugin_apr" +echo "* Simple Builtin Renamers: $ac_bm_thunar_plugin_sbr" +echo "* Trash Panel Applet: $ac_bm_thunar_plugin_tpa" +echo "* User Customizable Actions: $ac_bm_thunar_plugin_uca" +echo "* Wallpaper support: $ac_bm_thunar_plugin_wallpaper" +echo diff -Nru thunar-1.2.3/configure.in thunar-1.6.10/configure.in --- thunar-1.2.3/configure.in 2011-09-20 20:28:01.000000000 +0000 +++ thunar-1.6.10/configure.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,357 +0,0 @@ -dnl -dnl This file was autogenerated from "configure.in.in". -dnl Edit that file instead! -dnl - -# vi:set et ai sw=2 sts=2 ts=2: */ -#- -# Copyright (c) 2004-2007 Benedikt Meurer -# Copyright (c) 2009-2011 Jannis Pohlmann -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public -# License along with this program; if not, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -dnl *************************** -dnl *** Version information *** -dnl *************************** -m4_define([thunarx_verinfo], [0:0:0]) -m4_define([thunarx_version_api], [2]) -m4_define([thunar_version_major], [1]) -m4_define([thunar_version_minor], [2]) -m4_define([thunar_version_micro], [3]) -m4_define([thunar_version_nano], []) -m4_define([thunar_version_build], [9737dc9]) -m4_define([thunar_version_tag], []) -m4_define([thunar_version], [thunar_version_major().thunar_version_minor().thunar_version_micro()ifelse(thunar_version_nano(), [], [], [.thunar_version_nano()])ifelse(thunar_version_tag(), [git], [thunar_version_tag()-thunar_version_build()], [thunar_version_tag()])]) - -dnl ******************************************* -dnl *** Debugging support for SVN snapshots *** -dnl ******************************************* -m4_define([thunar_debug_default], [ifelse(thunar_version_tag(), [git], [yes], [minimum])]) - -dnl *************************** -dnl *** Initialize autoconf *** -dnl *************************** -AC_COPYRIGHT([Copyright (c) 2004-2011 The Thunar development team. All rights reserved.]) -AC_INIT([Thunar], [thunar_version], [http://bugzilla.xfce.org/], [Thunar]) -AC_PREREQ([2.50]) -AC_CANONICAL_TARGET() -AC_REVISION([$Id$]) - -dnl *************************** -dnl *** Initialize automake *** -dnl *************************** -AM_INIT_AUTOMAKE([1.8 dist-bzip2 tar-ustar]) -AM_CONFIG_HEADER([config.h]) -AM_MAINTAINER_MODE() -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - -dnl ******************************* -dnl *** Check for UNIX variants *** -dnl ******************************* -AC_AIX() -AC_ISC_POSIX() -AC_MINIX() - -if test "x$target_os" = "xlinux-gnu"; then - AC_DEFINE([HAVE_LINUX], [], [Whether we are building on Linux or not]) -fi - -dnl ******************************** -dnl *** Check for basic programs *** -dnl ******************************** -AC_PROG_CC() -AC_PROG_LD() -AM_PROG_CC_C_O() -AC_PROG_INSTALL() -AC_PROG_INTLTOOL() -AC_CHECK_PROGS([PERL], [perl5 perl]) - -dnl ************************** -dnl *** Initialize libtool *** -dnl ************************** -AC_DISABLE_STATIC() -AC_PROG_LIBTOOL() - -dnl ************************************** -dnl *** Substitute version information *** -dnl ************************************** -THUNARX_VERINFO=thunarx_verinfo() -THUNARX_VERSION_API=thunarx_version_api() -THUNAR_VERSION_MAJOR=thunar_version_major() -THUNAR_VERSION_MINOR=thunar_version_minor() -THUNAR_VERSION_MICRO=thunar_version_micro() -AC_SUBST([THUNARX_VERINFO]) -AC_SUBST([THUNARX_VERSION_API]) -AC_SUBST([THUNAR_VERSION_MAJOR]) -AC_SUBST([THUNAR_VERSION_MINOR]) -AC_SUBST([THUNAR_VERSION_MICRO]) - -dnl *********************************************** -dnl *** Determine the u32 type required for tdb *** -dnl *********************************************** -AC_CHECK_SIZEOF([int]) -AC_CHECK_SIZEOF([long]) -AC_CHECK_SIZEOF([short]) -AC_MSG_CHECKING([for 32bit unsigned integer]) -case 4 in -$ac_cv_sizeof_int) TDB_U32_TYPE="unsigned int" ;; -$ac_cv_sizeof_long) TDB_U32_TYPE="unsigned long" ;; -$ac_cv_sizeof_short) TDB_U32_TYPE="unsigned short" ;; -esac -AC_SUBST([TDB_U32_TYPE]) -AC_MSG_RESULT([$TDB_U32_TYPE]) - -dnl *********************************************** -dnl *** Work-around system-specific limitations *** -dnl *********************************************** -AC_SYS_LARGEFILE() - -dnl ********************************** -dnl *** Check for standard headers *** -dnl ********************************** -AC_CHECK_HEADERS([ctype.h errno.h fcntl.h grp.h limits.h locale.h memory.h \ - paths.h pwd.h sched.h signal.h stdarg.h stdlib.h string.h \ - sys/mman.h sys/param.h sys/stat.h sys/time.h sys/types.h \ - sys/uio.h sys/wait.h time.h]) - -dnl ************************************ -dnl *** Check for standard functions *** -dnl ************************************ -AC_FUNC_MMAP() -AC_CHECK_FUNCS([localeconv mkdtemp pread pwrite sched_yield setgroupent \ - setpassent strcoll strlcpy strptime symlink]) - -dnl ****************************** -dnl *** Check for i18n support *** -dnl ****************************** -XDT_I18N([ar ast be bn ca cs da de dz el en_GB eo es et eu fi fr gl he hr hu id it ja ka kk ko ku lt lv mk ms nb nl nn pa pl pt_BR pt ro ru si sk sq sv te tr ug uk ur_PK ur vi zh_CN zh_TW ]) - -dnl ********************* -dnl *** Check for X11 *** -dnl ********************* -XDT_CHECK_LIBX11_REQUIRE() - -dnl *********************************** -dnl *** Check for required packages *** -dnl *********************************** -XDT_CHECK_PACKAGE([EXO], [exo-1], [0.6.0]) -XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.18.0]) -XDT_CHECK_PACKAGE([GIO], [gio-2.0], [2.18.0]) -XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.18.0]) -XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.14.0]) -XDT_CHECK_PACKAGE([GDK_PIXBUF], [gdk-pixbuf-2.0], [2.14.0]) -XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.8.0]) -XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.8.0]) - -dnl ******************************************** -dnl *** Check for session management support *** -dnl ******************************************** -XDT_CHECK_LIBSM() - -dnl ********************************** -dnl *** Optional GIO UNIX features *** -dnl ********************************** -XDT_CHECK_OPTIONAL_PACKAGE([GIO_UNIX], [gio-unix-2.0], - [2.18.0], [gio-unix], [GIO UNIX features]) - -dnl ********************************** -dnl *** Optional support for D-BUS *** -dnl ********************************** -XDT_CHECK_OPTIONAL_PACKAGE([DBUS], [dbus-glib-1], - [0.34], [dbus], [D-BUS support]) - -dnl ************************************************* -dnl *** Optional support for startup notification *** -dnl ************************************************* -XDT_CHECK_OPTIONAL_PACKAGE([LIBSTARTUP_NOTIFICATION], - [libstartup-notification-1.0], - [0.4], [startup-notification], - [startup notification library]) - -dnl *************************************************************** -dnl *** Optional support for GUDev (required for thunar-volman) *** -dnl *************************************************************** -XDT_CHECK_OPTIONAL_PACKAGE([GUDEV], [gudev-1.0], [145], [gudev], - [GUDev (required for thunar-volman)]) - -dnl ************************************** -dnl *** Optional support for libnotify *** -dnl ************************************** -XDT_CHECK_OPTIONAL_PACKAGE([LIBNOTIFY], [libnotify], [0.4.0], [notifications], - [Mount notification support], [yes]) - -dnl ************************* -dnl *** Check for gtk-doc *** -dnl ************************* -GTK_DOC_CHECK([1.0]) - -dnl *************************************************** -dnl *** Check if we need to build the documentation *** -dnl *************************************************** -AC_ARG_ENABLE([gen-doc], [AC_HELP_STRING([--enable-gen-doc], - [Generate HTML documentation (requires xsltproc, xml2po and xmllint) [default=no]])],, [enable_gen_doc=no]) -if test x"$enable_gen_doc" = x"yes"; then - AC_PATH_PROG([XSLTPROC], [xsltproc], [no]) - if test x"$XSLTPROC" = x"no"; then - enable_gen_doc=no - fi - - AC_PATH_PROG([XML2PO], [xml2po], [no]) - if test x"$XML2PO" = x"no"; then - enable_gen_doc=no - fi - - AC_PATH_PROG([XMLLINT], [xmllint], [no]) - if test x"$XML2PO" = x"no"; then - enable_gen_doc=no - fi - - if test x"$enable_gen_doc" = x"no"; then - AC_MSG_ERROR([Compiling with --enable-gen-doc but one of xml2po, xsltproc or xmllint not found.]) - fi -fi -AM_CONDITIONAL([GENERATE_DOCUMENTATION], [test x"$enable_gen_doc" = x"yes"]) - -dnl *********************************** -dnl *** Check for debugging support *** -dnl *********************************** -XDT_FEATURE_DEBUG([thunar_debug_default]) - -dnl ************************************* -dnl *** Compensate for broken gtk-doc *** -dnl ************************************* -XDT_SUPPORTED_FLAGS([GTK_DOC_EXTRA_CFLAGS], [-Wno-sign-compare]) -AC_SUBST([GTK_DOC_EXTRA_CFLAGS]) - -dnl ************************************** -dnl *** Check for linker optimizations *** -dnl ************************************** -XDT_FEATURE_LINKER_OPTS() - -dnl dnl **************************************** -dnl dnl *** Check for ELF visibility support *** -dnl dnl **************************************** -dnl XDT_FEATURE_VISIBILITY() - -dnl ********************************* -dnl *** Substitute platform flags *** -dnl ********************************* -AC_MSG_CHECKING([PLATFORM_CPPFLAGS]) -AC_MSG_RESULT([$PLATFORM_CPPFLAGS]) -AC_SUBST([PLATFORM_CPPFLAGS]) -AC_MSG_CHECKING([PLATFORM_CFLAGS]) -AC_MSG_RESULT([$PLATFORM_CFLAGS]) -AC_SUBST([PLATFORM_CFLAGS]) -AC_MSG_CHECKING([PLATFORM_LDFLAGS]) -AC_MSG_RESULT([$PLATFORM_LDFLAGS]) -AC_SUBST([PLATFORM_LDFLAGS]) - -dnl ************************************ -dnl *** Check for additional plugins *** -dnl ************************************ -BM_THUNAR_PLUGIN_APR() -BM_THUNAR_PLUGIN_SBR() -BM_THUNAR_PLUGIN_TPA() -BM_THUNAR_PLUGIN_UCA() -BM_THUNAR_PLUGIN_WALLPAPER() - -AC_OUTPUT([ -Makefile -Thunar.spec -docs/Makefile -docs/design/Makefile -docs/manual/Makefile -docs/manual/images/Makefile -docs/manual/images/fr/Makefile -docs/manual/images/ja/Makefile -docs/manual/images/pl/Makefile -docs/manual/po/Makefile -docs/papers/Makefile -docs/reference/Makefile -docs/reference/thunarx/Makefile -docs/reference/thunarx/version.xml -examples/Makefile -examples/tex-open-terminal/Makefile -icons/Makefile -icons/16x16/Makefile -icons/24x24/Makefile -icons/48x48/Makefile -icons/scalable/Makefile -pixmaps/Makefile -plugins/Makefile -plugins/thunar-apr/Makefile -plugins/thunar-sbr/Makefile -plugins/thunar-sendto-email/Makefile -plugins/thunar-tpa/Makefile -plugins/thunar-uca/Makefile -plugins/thunar-wallpaper/Makefile -po/Makefile.in -tdb/Makefile -tdb/tdbconfig.h -thunar/Makefile -thunarx/Makefile -thunarx/thunarx-2.pc -thunarx/thunarx-config.h -]) - -dnl *************************** -dnl *** Print configuration *** -dnl *************************** -echo -echo "Build Configuration:" -echo -if test x"$DBUS_FOUND" = x"yes"; then -echo "* D-BUS support: yes" -else -echo "* D-BUS support: no" -fi -if test x"$GIO_UNIX_FOUND" = x"yes"; then -echo "* GIO UNIX features: yes" -else -echo "* GIO UNIX features: no" -fi -if test x"$LIBSTARTUP_NOTIFICATION_FOUND" = x"yes"; then -echo "* Startup Notification: yes" -else -echo "* Startup Notification: no" -fi -if test x"$GUDEV_FOUND" = x"yes"; then -echo "* GUDev (required for thunar-volman): yes" -else -echo "* GUDev (required for thunar-volman): no" -fi -if test x"$LIBNOTIFY_FOUND" = x"yes"; then -echo "* Mount notification support: yes" -else -echo "* Mount notification support: no" -fi -echo "* Debug Support: $enable_debug" -if test x"$enable_gen_doc" = x"yes"; then -echo "* Documentation: yes (generate)" -elif test -d "${srcdir}/docs/manual/html"; then -echo "* Documentation: yes (in tarball)" -else -echo "* Documentation: no" -fi -echo -echo "Additional Plugins:" -echo -echo "* Advanced Properties: $ac_bm_thunar_plugin_apr" -echo "* Simple Builtin Renamers: $ac_bm_thunar_plugin_sbr" -echo "* Trash Panel Applet: $ac_bm_thunar_plugin_tpa" -echo "* User Customizable Actions: $ac_bm_thunar_plugin_uca" -echo "* Wallpaper support: $ac_bm_thunar_plugin_wallpaper" -echo diff -Nru thunar-1.2.3/debian/changelog thunar-1.6.10/debian/changelog --- thunar-1.2.3/debian/changelog 2012-04-04 16:52:19.000000000 +0000 +++ thunar-1.6.10/debian/changelog 2015-06-12 18:51:11.000000000 +0000 @@ -1,25 +1,168 @@ -thunar (1.2.3-3ubuntu2) precise; urgency=low +thunar (1.6.10-1~ubuntu12.04.1) precise; urgency=low + * No-change backport to precise + + -- Pavel Sofishchenko Fri, 12 Jun 2015 23:51:11 +0500 + +thunar (1.6.10-1) unstable; urgency=medium + + [ Mateusz Łukasik ] + * New upstream release: + - Fix trash state at startup. (LP: #880533) + + -- Yves-Alexis Perez Sun, 24 May 2015 15:26:49 +0200 + +thunar (1.6.9-1) unstable; urgency=medium + + * debian/thunar.postinst dropped, it was needed for transition from Squeeze + to Wheezy. + * New upstream bugfix release. + * debian/thunar-data.install: + - stop installing the documentation, not built anymore. + + -- Yves-Alexis Perez Sun, 17 May 2015 15:01:48 +0200 + +thunar (1.6.8-2) unstable; urgency=medium + + * New upsream release. + * debian/control: + - drop build-dep on libstartup-notification, not needed anymore. + * Upload to unstable. + + -- Yves-Alexis Perez Wed, 06 May 2015 16:24:56 +0200 + +thunar (1.6.7-1) experimental; urgency=medium + + [ Mateusz Łukasik ] + * New upstream release. + + -- Yves-Alexis Perez Thu, 23 Apr 2015 23:15:58 +0200 + +thunar (1.6.6-1) experimental; urgency=medium + + [ Yves-Alexis Perez ] + * debian/control: + - add build-dep on xfce4-dev-tools, libtool, gtk-doc-tools + * debian/rules: + - call xdt-autogen before configure. closes: #733193 + + [ Mateusz Łukasik ] + * New upstream release: + - remove 02_fix-default-application-selection.patch included upstream. + * debian/thunar.install - install appdata and polkit files + + -- Yves-Alexis Perez Sun, 08 Mar 2015 20:51:12 +0100 + +thunar (1.6.3-2) unstable; urgency=medium + + [ Evgeni Golov ] + * Correct Vcs-* URLs to point to anonscm.debian.org + + [ Jackson Doak ] + * Bump standards-version to 3.9.6 + + [ Yves-Alexis Perez ] + * debian/control: + - update long descriptions. + - fix typo in thunar-dbg long description * debian/patches: - - 03_fix-crash-ancestor-remove.patch: added, should fix crashes when the - ancestor of a folder is removed. lp: #847070 - - xubuntu_64px-tabwin-icons.patch: added, use a larger app icon by default, - so tabwin won't show a blurry folder icon. - - -- Lionel Le Folgoc Wed, 04 Apr 2012 18:51:36 +0200 - -thunar (1.2.3-3ubuntu1) precise; urgency=low - - * Resync with Debian unstable, bugs fixed: - - 64 bit Thunar 'Send to mail recipient' fails, needs i386 library. - lp: #931650 + - 02_fix-default-application-selection added, fix selection of default + application for opening files, broken since glib 2.42. closes: #763726 + + -- Yves-Alexis Perez Thu, 30 Oct 2014 11:00:02 +0100 + +thunar (1.6.3-1) unstable; urgency=low + + * New upstream release. + * Upload to unstable. + * debian/rules: + - enable verbose build so blhc can extract information from the log. + - don't disable dh_auto_test anymore. + - enable all hardening flags. + + -- Yves-Alexis Perez Tue, 21 May 2013 23:55:06 +0200 + +thunar (1.6.2-1) experimental; urgency=low + + * New upstream stable release. + + -- Yves-Alexis Perez Sun, 30 Dec 2012 20:40:59 +0100 + +thunar (1.6.1-1) experimental; urgency=low + + [ Lionel Le Folgoc ] + * Drop the "Send to printer" action, xfprint4 is obsolete. + * debian/control: + - dropped libtdb-dev from b-deps, emblems have been moved to gvfs. + - bumped minimum required exo version to 0.10.0 for the new symbol. + + [ Yves-Alexis Perez ] + * New upstream release. + + -- Yves-Alexis Perez Tue, 11 Dec 2012 21:56:56 +0100 + +thunar (1.4.0-1) experimental; urgency=low + + * New upstream stable release. + * debian/patches: + - 02_fix-link-gmodule.patch: dropped, included upstream. + * debian/control: + - debian/control: revert to unversioned libxfce4util-dev, bump required + versions for Xfce 4.10. + - drop b-deps on xfce4-dev-tools, libtool, automake, autoconf and + gtk-doc-tools, unneeded. + + -- Lionel Le Folgoc Sat, 05 May 2012 14:08:14 +0200 + +thunar (1.3.2-1) experimental; urgency=low + + * New upstream development release. + + -- Lionel Le Folgoc Sun, 15 Apr 2012 16:06:21 +0200 + +thunar (1.3.1-1) experimental; urgency=low + + [ Lionel Le Folgoc ] + * New upstream development release. + * debian/patches: add missing DEP3 headers. + * debian/patches/02_fix-link-gmodule.patch: added, explicitly link with + gmodule, fix FTBFS. + * debian/control: + - switch to libxfce4util6-dev for the new api, and bump libxfce4ui-1-dev + b-dep to >= 4.9.0 for the new help api. + - b-dep on xfce4-dev-tools, libtool, automake, autoconf and + gtk-doc-tools, needed by xdt-autogen. + * debian/rules: + - pass -X .la to dh_install instead of deleting them manually. + - run xdt-autogen before configure, needed by the patch. + * debian/patches/02_fix-link-gmodule.patch: fixed to apply cleanly against + thunar 1.3.1. + + [ Yves-Alexis Perez ] + * debian/control: + - update exo build-dep to 0.6.0. + - update standards version to 3.9.3. + * debian/watch updated to track all releases. + * debian/rules: + - build with --parallel. + + -- Lionel Le Folgoc Sun, 08 Apr 2012 22:19:33 +0200 + +thunar (1.2.3-4) unstable; urgency=low + + [ Lionel Le Folgoc ] + * debian/patches: add missing DEP3 headers. * debian/patches/02_fix-link-gmodule.patch: added, explicitly link with gmodule, fix FTBFS. * debian/control: b-dep on xfce4-dev-tools, libtool, automake, autoconf and gtk-doc-tools, needed by xdt-autogen. * debian/rules: run xdt-autogen before configure, needed by the patch. - -- Lionel Le Folgoc Tue, 14 Feb 2012 23:36:35 +0100 + [ Yves-Alexis Perez ] + * debian/control: + - update standards version to 3.9.3. + + -- Yves-Alexis Perez Sun, 01 Apr 2012 14:15:12 +0200 thunar (1.2.3-3) unstable; urgency=low diff -Nru thunar-1.2.3/debian/control thunar-1.6.10/debian/control --- thunar-1.2.3/debian/control 2012-02-14 22:28:24.000000000 +0000 +++ thunar-1.6.10/debian/control 2015-05-05 19:58:15.000000000 +0000 @@ -1,20 +1,19 @@ Source: thunar Section: xfce Priority: optional -Maintainer: Xubuntu Developers -XSBC-Original-Maintainer: Debian Xfce Maintainers -Uploaders: Yves-Alexis Perez , +Maintainer: Debian Xfce Maintainers +Uploaders: Yves-Alexis Perez , Lionel Le Folgoc -Build-Depends: debhelper (>= 9), libexo-1-dev (>= 0.5.1), libxml-parser-perl, +Build-Depends: debhelper (>= 9), libexo-1-dev (>= 0.10.0), libxml-parser-perl, libdbus-glib-1-dev, libexif-dev, libgtk2.0-dev (>= 2.10.1), chrpath, - libpcre3-dev, libjpeg-dev, libstartup-notification0-dev (>= 0.4), intltool, - libxfce4util-dev (>= 4.8.0), libxfce4ui-1-dev (>= 4.8.0), libnotify-dev, - libgudev-1.0-dev [linux-any], xfce4-panel-dev (>= 4.8.0), libtdb-dev, - xfce4-dev-tools, libtool, automake, autoconf, gtk-doc-tools -Standards-Version: 3.9.2 + libpcre3-dev, libjpeg-dev, intltool, + libxfce4util-dev (>= 4.10.0), libxfce4ui-1-dev (>= 4.10.0), libnotify-dev, + libgudev-1.0-dev [linux-any], xfce4-panel-dev (>= 4.10.0), xfce4-dev-tools, + libtool, gtk-doc-tools +Standards-Version: 3.9.6 Homepage: http://thunar.xfce.org -Vcs-Svn: svn://svn.debian.org/pkg-xfce/desktop/trunk/thunar/ -Vcs-Browser: http://svn.debian.org/wsvn/pkg-xfce/desktop/trunk/thunar/ +Vcs-Svn: svn://anonscm.debian.org/pkg-xfce/desktop/trunk/thunar/ +Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-xfce/desktop/trunk/thunar/ Package: libthunarx-2-dev Section: libdevel @@ -44,24 +43,24 @@ Breaks: thunar-data (<< 1.2.3-3) Replaces: thunar-data (<< 1.2.3-3) Description: File Manager for Xfce - Thunar is the file manager designed to be the default file manager of Xfce 4.6 - It has been designed to be fast and easy to use. + Thunar is the file manager designed to be the default file manager for the + Xfce desktop environment. It has been designed to be fast and easy to use. . - An Xfce plugin can manages the trash, if xfce4-panel is installed as well. - Please read README.Debian for volume management stuff. + Also included is an Xfce panel plugin which can manage the desktop trash. Package: thunar-data Section: xfce Architecture: all Depends: ${misc:Depends} Description: Provides thunar documentation, icons and translations - This package contains architecture-independent files for thunar. + This package contains architecture-independent files for thunar, the file + manager and file management libraries for Xfce desktop environment. Package: thunar-dbg Section: debug Architecture: any Priority: extra Depends: ${shlibs:Depends}, thunar (= ${binary:Version}), ${misc:Depends} -Description: debugging informations for thunar +Description: debugging information for thunar This package contains debugging symbols for thunar and libthunarx, the file - manager and file management libraries for Xfce Desktop Environment. + manager and file management libraries for Xfce desktop environment. diff -Nru thunar-1.2.3/debian/patches/0001-Don-t-copy-templates-but-create-them-bug-8312.patch thunar-1.6.10/debian/patches/0001-Don-t-copy-templates-but-create-them-bug-8312.patch --- thunar-1.2.3/debian/patches/0001-Don-t-copy-templates-but-create-them-bug-8312.patch 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/debian/patches/0001-Don-t-copy-templates-but-create-them-bug-8312.patch 2013-05-21 21:54:01.000000000 +0000 @@ -0,0 +1,256 @@ +From 372d5d61b987c7fd1dfd5eed67955f90db9f125e Mon Sep 17 00:00:00 2001 +From: Nick Schermer +Date: Sat, 29 Sep 2012 15:50:16 +0200 +Subject: [PATCH] Don't copy templates but create them (bug #8312). + +Instead of copying templates, create new files and allow +to feed a template file. It is then easy with +g_output_stream_splice to feed the template data into +the new file. + +This way the new file has the template data, but not +any of the attributes (timestamps etc). +--- + thunar/thunar-application.c | 27 ++++++++++++++------------ + thunar/thunar-application.h | 1 + + thunar/thunar-io-jobs.c | 42 ++++++++++++++++++++++++++++++++++++----- + thunar/thunar-io-jobs.h | 3 ++- + thunar/thunar-standard-view.c | 13 ++++--------- + 5 files changed, 59 insertions(+), 27 deletions(-) + +diff --git a/thunar/thunar-application.c b/thunar/thunar-application.c +index c6dc674..94762ac 100644 +--- a/thunar/thunar-application.c ++++ b/thunar/thunar-application.c +@@ -1414,7 +1414,7 @@ thunar_application_create_file (ThunarApplication *application, + if (is_directory) + thunar_application_mkdir (application, screen, &path_list, NULL); + else +- thunar_application_creat (application, screen, &path_list, NULL); ++ thunar_application_creat (application, screen, &path_list, NULL, NULL); + + g_object_unref (path_list.data); + g_free (name); +@@ -1444,7 +1444,6 @@ thunar_application_create_file_from_template (ThunarApplication *application, + GdkScreen *screen, + const gchar *startup_id) + { +- GList source_path_list; + GList target_path_list; + gchar *name; + gchar *title; +@@ -1468,18 +1467,15 @@ thunar_application_create_file_from_template (ThunarApplication *application, + title); + if (G_LIKELY (name != NULL)) + { +- /* fake the source file list */ +- source_path_list.data = thunar_file_get_file (template_file); +- source_path_list.prev = source_path_list.next = NULL; +- + /* fake the target path list */ + target_path_list.data = g_file_get_child (thunar_file_get_file (parent_directory), name); + target_path_list.next = target_path_list.prev = NULL; + + /* launch the operation */ +- thunar_application_copy_to (application, screen, +- &source_path_list, &target_path_list, +- NULL); ++ thunar_application_creat (application, screen, ++ &target_path_list, ++ thunar_file_get_file (template_file), ++ NULL); + + /* release the target path */ + g_object_unref (target_path_list.data); +@@ -1817,10 +1813,11 @@ thunar_application_trash (ThunarApplication *application, + + + static ThunarJob * +-creat_stub (GList *source_path_list, ++creat_stub (GList *template_file, + GList *target_path_list) + { +- return thunar_io_jobs_create_files (source_path_list); ++ _thunar_return_val_if_fail (template_file->data == NULL || G_IS_FILE (template_file->data), NULL); ++ return thunar_io_jobs_create_files (target_path_list, template_file->data); + } + + +@@ -1842,15 +1839,21 @@ void + thunar_application_creat (ThunarApplication *application, + gpointer parent, + GList *file_list, ++ GFile *template_file, + GClosure *new_files_closure) + { ++ GList template_list; ++ + _thunar_return_if_fail (parent == NULL || GDK_IS_SCREEN (parent) || GTK_IS_WIDGET (parent)); + _thunar_return_if_fail (THUNAR_IS_APPLICATION (application)); + ++ template_list.next = template_list.prev = NULL; ++ template_list.data = template_file; ++ + /* launch the operation */ + thunar_application_launch (application, parent, "document-new", + _("Creating files..."), creat_stub, +- file_list, file_list, new_files_closure); ++ &template_list, file_list, new_files_closure); + } + + +diff --git a/thunar/thunar-application.h b/thunar/thunar-application.h +index 50845a3..f674544 100644 +--- a/thunar/thunar-application.h ++++ b/thunar/thunar-application.h +@@ -127,6 +127,7 @@ void thunar_application_trash (ThunarApplic + void thunar_application_creat (ThunarApplication *application, + gpointer parent, + GList *file_list, ++ GFile *template_file, + GClosure *new_files_closure); + + void thunar_application_mkdir (ThunarApplication *application, +diff --git a/thunar/thunar-io-jobs.c b/thunar/thunar-io-jobs.c +index a90ab69..6db1b8b 100644 +--- a/thunar/thunar-io-jobs.c ++++ b/thunar/thunar-io-jobs.c +@@ -96,18 +96,33 @@ _thunar_io_jobs_create (ThunarJob *job, + GList *lp; + gchar *base_name; + gchar *display_name; ++ GFile *template_file; ++ GFileInputStream *template_stream = NULL; + + _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); + _thunar_return_val_if_fail (param_values != NULL, FALSE); +- _thunar_return_val_if_fail (param_values->n_values == 1, FALSE); ++ _thunar_return_val_if_fail (param_values->n_values == 2, FALSE); + _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + /* get the file list */ + file_list = g_value_get_boxed (g_value_array_get_nth (param_values, 0)); ++ template_file = g_value_get_object (g_value_array_get_nth (param_values, 1)); + + /* we know the total amount of files to be processed */ + thunar_job_set_total_files (THUNAR_JOB (job), file_list); + ++ /* check if we need to open the template */ ++ if (template_file != NULL) ++ { ++ /* open read stream to feed in the new files */ ++ template_stream = g_file_read (template_file, exo_job_get_cancellable (EXO_JOB (job)), &err); ++ if (G_UNLIKELY (template_stream == NULL)) ++ { ++ g_propagate_error (error, err); ++ return FALSE; ++ } ++ } ++ + /* iterate over all files in the list */ + for (lp = file_list; + err == NULL && lp != NULL && !exo_job_is_cancelled (EXO_JOB (job)); +@@ -197,9 +212,24 @@ again: + } + } + else +- g_object_unref (stream); ++ { ++ if (template_stream != NULL) ++ { ++ /* write the template into the new file */ ++ g_output_stream_splice (G_OUTPUT_STREAM (stream), ++ G_INPUT_STREAM (template_stream), ++ G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET, ++ exo_job_get_cancellable (EXO_JOB (job)), ++ NULL); ++ } ++ ++ g_object_unref (stream); ++ } + } + ++ if (template_stream != NULL) ++ g_object_unref (template_stream); ++ + /* check if we have failed */ + if (err != NULL) + { +@@ -220,10 +250,12 @@ again: + + + ThunarJob * +-thunar_io_jobs_create_files (GList *file_list) ++thunar_io_jobs_create_files (GList *file_list, ++ GFile *template_file) + { +- return thunar_simple_job_launch (_thunar_io_jobs_create, 1, +- THUNAR_TYPE_G_FILE_LIST, file_list); ++ return thunar_simple_job_launch (_thunar_io_jobs_create, 2, ++ THUNAR_TYPE_G_FILE_LIST, file_list, ++ G_TYPE_FILE, template_file); + } + + +diff --git a/thunar/thunar-io-jobs.h b/thunar/thunar-io-jobs.h +index 11d9c0d..51dc682 100644 +--- a/thunar/thunar-io-jobs.h ++++ b/thunar/thunar-io-jobs.h +@@ -26,7 +26,8 @@ + + G_BEGIN_DECLS + +-ThunarJob *thunar_io_jobs_create_files (GList *file_list) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; ++ThunarJob *thunar_io_jobs_create_files (GList *file_list, ++ GFile *template_file) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; + ThunarJob *thunar_io_jobs_make_directories (GList *file_list) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; + ThunarJob *thunar_io_jobs_unlink_files (GList *file_list) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; + ThunarJob *thunar_io_jobs_move_files (GList *source_file_list, +diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c +index 6a90e41..ebb2151 100644 +--- a/thunar/thunar-standard-view.c ++++ b/thunar/thunar-standard-view.c +@@ -1875,7 +1875,7 @@ thunar_standard_view_action_create_empty_file (GtkAction *action, + + /* launch the operation */ + application = thunar_application_get (); +- thunar_application_creat (application, GTK_WIDGET (standard_view), &path_list, ++ thunar_application_creat (application, GTK_WIDGET (standard_view), &path_list, NULL, + thunar_standard_view_new_files_closure (standard_view, NULL)); + g_object_unref (application); + +@@ -1941,7 +1941,6 @@ thunar_standard_view_action_create_template (GtkAction *action, + { + ThunarApplication *application; + ThunarFile *current_directory; +- GList source_path_list; + GList target_path_list; + gchar *name; + gchar *title; +@@ -1965,11 +1964,6 @@ thunar_standard_view_action_create_template (GtkAction *action, + current_directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (standard_view)); + if (G_LIKELY (current_directory != NULL)) + { +- /* fake the source path list */ +- source_path_list.data = thunar_file_get_file (file); +- source_path_list.next = NULL; +- source_path_list.prev = NULL; +- + /* fake the target path list */ + target_path_list.data = g_file_get_child (thunar_file_get_file (current_directory), name); + target_path_list.next = NULL; +@@ -1977,8 +1971,9 @@ thunar_standard_view_action_create_template (GtkAction *action, + + /* launch the operation */ + application = thunar_application_get (); +- thunar_application_copy_to (application, GTK_WIDGET (standard_view), &source_path_list, &target_path_list, +- thunar_standard_view_new_files_closure (standard_view, NULL)); ++ thunar_application_creat (application, GTK_WIDGET (standard_view), &target_path_list, ++ thunar_file_get_file (file), ++ thunar_standard_view_new_files_closure (standard_view, NULL)); + g_object_unref (G_OBJECT (application)); + + /* release the target path */ +-- +1.7.10.4 + diff -Nru thunar-1.2.3/debian/patches/01_support-non-multiarch-modules.patch thunar-1.6.10/debian/patches/01_support-non-multiarch-modules.patch --- thunar-1.2.3/debian/patches/01_support-non-multiarch-modules.patch 2011-10-11 19:59:45.000000000 +0000 +++ thunar-1.6.10/debian/patches/01_support-non-multiarch-modules.patch 2012-02-20 20:47:12.000000000 +0000 @@ -5,6 +5,8 @@ This will let a multiarch enabled libthunarx find plugins built against a non-multiarch thunar (load plugins from both /usr/lib/$triplet and /usr/lib). + +Forwarded: not-needed --- thunarx/thunarx-provider-factory.c | 12 +++++++++++- thunarx/thunarx-provider-module.c | 6 ++++++ diff -Nru thunar-1.2.3/debian/patches/02_fix-link-gmodule.patch thunar-1.6.10/debian/patches/02_fix-link-gmodule.patch --- thunar-1.2.3/debian/patches/02_fix-link-gmodule.patch 2012-02-14 22:36:33.000000000 +0000 +++ thunar-1.6.10/debian/patches/02_fix-link-gmodule.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -Description: Explicitly link with gmodule -Author; Lionel Le Folgoc -Bug: https://bugzilla.xfce.org/show_bug.cgi?id=8467 - ---- thunar-1.2.3.orig/configure.in -+++ thunar-1.2.3/configure.in -@@ -150,6 +150,7 @@ dnl *********************************** - XDT_CHECK_PACKAGE([EXO], [exo-1], [0.6.0]) - XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.18.0]) - XDT_CHECK_PACKAGE([GIO], [gio-2.0], [2.18.0]) -+XDT_CHECK_PACKAGE([GMODULE], [gmodule-2.0], [2.10.0]) - XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.18.0]) - XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.14.0]) - XDT_CHECK_PACKAGE([GDK_PIXBUF], [gdk-pixbuf-2.0], [2.14.0]) ---- thunar-1.2.3.orig/thunarx/Makefile.am -+++ thunar-1.2.3/thunarx/Makefile.am -@@ -49,6 +49,7 @@ libthunarx_2_la_SOURCES = \ - libthunarx_2_la_CFLAGS = \ - $(GLIB_CFLAGS) \ - $(GIO_CFLAGS) \ -+ $(GMODULE_CFLAGS) \ - $(GTK_CFLAGS) \ - $(PLATFORM_CFLAGS) - -@@ -61,6 +62,7 @@ libthunarx_2_la_LDFLAGS = \ - libthunarx_2_la_LIBADD = \ - $(GLIB_LIBS) \ - $(GIO_LIBS) \ -+ $(GMODULE_LIBS) \ - $(GTK_LIBS) - - pkgconfigdir = $(libdir)/pkgconfig diff -Nru thunar-1.2.3/debian/patches/03_fix-crash-ancestor-remove.patch thunar-1.6.10/debian/patches/03_fix-crash-ancestor-remove.patch --- thunar-1.2.3/debian/patches/03_fix-crash-ancestor-remove.patch 2012-04-04 16:50:57.000000000 +0000 +++ thunar-1.6.10/debian/patches/03_fix-crash-ancestor-remove.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -From 71f6f207cfd0194a3f3db83cb5fab694a5036e22 Mon Sep 17 00:00:00 2001 -From: Jannis Pohlmann -Date: Sun, 26 Feb 2012 17:38:50 +0000 -Subject: Fix crash when removing an ancestor of the current folder (bug #8168). - -Whenever we release the GFileMonitor of a ThunarFolder, we also need to -disconnect from its signals. Otherwise one of the signal handlers might -still be called, potentially with corrupted user data (which was the -case here). - - Patch slightly edited for Xubuntu to remove the NEWS change. ---- -diff --git a/thunar/thunar-folder.c b/thunar/thunar-folder.c -index 62015fe..4076b8d 100644 ---- a/thunar/thunar-folder.c -+++ b/thunar/thunar-folder.c -@@ -236,6 +236,7 @@ thunar_folder_finalize (GObject *object) - /* disconnect from the file alteration monitor */ - if (G_LIKELY (folder->monitor != NULL)) - { -+ g_signal_handlers_disconnect_matched (folder->monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, folder); - g_file_monitor_cancel (folder->monitor); - g_object_unref (folder->monitor); - } -@@ -705,6 +706,7 @@ thunar_folder_reload (ThunarFolder *folder) - /* disconnect from the file alteration monitor */ - if (G_UNLIKELY (folder->monitor != NULL)) - { -+ g_signal_handlers_disconnect_matched (folder->monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, folder); - g_file_monitor_cancel (folder->monitor); - g_object_unref (folder->monitor); - folder->monitor = NULL; --- -cgit v0.9.0.3 diff -Nru thunar-1.2.3/debian/patches/series thunar-1.6.10/debian/patches/series --- thunar-1.2.3/debian/patches/series 2012-04-04 16:51:31.000000000 +0000 +++ thunar-1.6.10/debian/patches/series 2015-01-24 22:03:53.000000000 +0000 @@ -1,4 +1 @@ 01_support-non-multiarch-modules.patch -02_fix-link-gmodule.patch -03_fix-crash-ancestor-remove.patch -xubuntu_64px-tabwin-icons.patch diff -Nru thunar-1.2.3/debian/patches/xubuntu_64px-tabwin-icons.patch thunar-1.6.10/debian/patches/xubuntu_64px-tabwin-icons.patch --- thunar-1.2.3/debian/patches/xubuntu_64px-tabwin-icons.patch 2012-04-04 16:50:57.000000000 +0000 +++ thunar-1.6.10/debian/patches/xubuntu_64px-tabwin-icons.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Description: Provide a larger app icon -Author: Lionel Le Folgoc -Bug: https://bugzilla.xfce.org/show_bug.cgi?id=8626 -Forwarded: no - ---- thunar-1.2.3.orig/thunar/thunar-window.c -+++ thunar-1.2.3/thunar/thunar-window.c -@@ -2417,7 +2417,7 @@ thunar_window_current_directory_changed - g_free (title); - - /* set window icon */ -- icon = thunar_icon_factory_load_file_icon (window->icon_factory, current_directory, THUNAR_FILE_ICON_STATE_DEFAULT, 48); -+ icon = thunar_icon_factory_load_file_icon (window->icon_factory, current_directory, THUNAR_FILE_ICON_STATE_DEFAULT, 64); - if (G_LIKELY (icon != NULL)) - { - gtk_window_set_icon (GTK_WINDOW (window), icon); diff -Nru thunar-1.2.3/debian/rules thunar-1.6.10/debian/rules --- thunar-1.2.3/debian/rules 2012-02-14 22:22:43.000000000 +0000 +++ thunar-1.6.10/debian/rules 2015-03-01 21:11:11.000000000 +0000 @@ -1,20 +1,22 @@ #!/usr/bin/make -f export DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed -Wl,-O1 -Wl,-z,defs -export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,+bindnow +export DEB_BUILD_MAINT_OPTIONS=hardening=+all DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) %: - dh $@ + dh $@ --parallel override_dh_auto_configure: + mkdir -p m4 NOCONFIGURE=1 xdt-autogen - dh_auto_configure -- --enable-dbus --enable-startup-notification --enable-apr-plugin \ - --enable-exif --enable-pcre --enable-sbr-plugin --enable-tpa-plugin --enable-uca-plugin \ - --docdir=\$${prefix}/share/doc/thunar-data - -override_dh_auto_test: + dh_auto_configure -- \ + --docdir=\$${prefix}/share/doc/thunar-data \ + --disable-silent-rules \ + --enable-dbus --enable-startup-notification --enable-apr-plugin \ + --enable-exif --enable-pcre --enable-sbr-plugin --enable-tpa-plugin \ + --enable-uca-plugin override_dh_install: rm -f $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/*.la diff -Nru thunar-1.2.3/debian/thunar-data.install thunar-1.6.10/debian/thunar-data.install --- thunar-1.2.3/debian/thunar-data.install 2012-01-30 21:13:59.000000000 +0000 +++ thunar-1.6.10/debian/thunar-data.install 2015-05-17 12:03:35.000000000 +0000 @@ -1,10 +1,8 @@ etc/* usr/share/dbus-1 usr/share/doc -usr/share/gtk-doc usr/share/icons usr/share/locale usr/share/pixmaps debian/bluetooth-sendto.desktop usr/share/Thunar/sendto debian/gnome-obex-send.desktop usr/share/Thunar/sendto -debian/xfprint.desktop usr/share/Thunar/sendto diff -Nru thunar-1.2.3/debian/thunar.install thunar-1.6.10/debian/thunar.install --- thunar-1.2.3/debian/thunar.install 2012-01-30 21:13:59.000000000 +0000 +++ thunar-1.6.10/debian/thunar.install 2015-03-01 21:17:11.000000000 +0000 @@ -3,5 +3,7 @@ usr/share/applications/* usr/share/man usr/lib/*/xfce4/panel/plugins/libthunar-tpa.so -usr/share/xfce4/panel-plugins/thunar-tpa.desktop +usr/share/xfce4/panel/plugins/thunar-tpa.desktop usr/share/Thunar/sendto/thunar-sendto-email.desktop +usr/share/appdata +usr/share/polkit-1 diff -Nru thunar-1.2.3/debian/thunar.postinst thunar-1.6.10/debian/thunar.postinst --- thunar-1.2.3/debian/thunar.postinst 2011-03-31 10:58:09.000000000 +0000 +++ thunar-1.6.10/debian/thunar.postinst 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -#!/bin/sh - -set -e - -if [ "$1" = "configure" ] && dpkg --compare-versions "$2" eq "1.0.0-2"; -then - cd /usr/share/doc/thunar && rm -f thunar-data -fi - -#DEBHELPER# - -exit 0 diff -Nru thunar-1.2.3/debian/watch thunar-1.6.10/debian/watch --- thunar-1.2.3/debian/watch 2011-03-31 11:51:57.000000000 +0000 +++ thunar-1.6.10/debian/watch 2013-05-21 21:54:01.000000000 +0000 @@ -1,3 +1,3 @@ version=3 -http://archive.xfce.org/src/xfce/thunar/([\d\.]+[02468])/ \ +http://archive.xfce.org/src/xfce/thunar/([\d\.]+)/ \ Thunar-([\d\.]+)\.tar\.(?:gz|bz2) diff -Nru thunar-1.2.3/debian/xfprint.desktop thunar-1.6.10/debian/xfprint.desktop --- thunar-1.2.3/debian/xfprint.desktop 2008-04-27 14:01:59.000000000 +0000 +++ thunar-1.6.10/debian/xfprint.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Printer -Exec=xfprint4 %f -Icon=printer -TryExec=xfprint4 diff -Nru thunar-1.2.3/depcomp thunar-1.6.10/depcomp --- thunar-1.2.3/depcomp 2011-09-20 20:28:17.000000000 +0000 +++ thunar-1.6.10/depcomp 2015-05-22 20:47:32.000000000 +0000 @@ -1,10 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2009-04-28.21; # UTC +scriptversion=2013-05-30.07; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# Copyright (C) 1999-2013 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,9 +27,9 @@ case $1 in '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] @@ -40,11 +39,11 @@ Environment variables: depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. + tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . @@ -57,6 +56,66 @@ ;; esac +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 @@ -69,6 +128,9 @@ rm -f "$tmpdepfile" +# Avoid interferences from the environment. +gccflag= dashmflag= + # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case @@ -80,18 +142,32 @@ fi if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" - depmode=msvisualcpp + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc fi case "$depmode" in @@ -114,8 +190,7 @@ done "$@" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -123,13 +198,17 @@ ;; gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then @@ -137,31 +216,31 @@ fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. + # The second -e expression handles DOS-style file names with drive + # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. +## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory +## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as -## well. +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -179,8 +258,7 @@ "$@" -MDupdate "$tmpdepfile" fi stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -188,43 +266,41 @@ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" - # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the + # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> "$depfile" + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" + make_dummy_depfile fi rm -f "$tmpdepfile" ;; +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the + # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u @@ -237,9 +313,7 @@ "$@" -M fi stat=$? - - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi @@ -248,44 +322,100 @@ do test -f "$tmpdepfile" && break done - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : + # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -297,8 +427,8 @@ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -309,9 +439,8 @@ # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d @@ -322,8 +451,7 @@ "$@" +Maked fi stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi @@ -333,77 +461,107 @@ test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" else - echo "#dummy" > "$depfile" + make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; #nosideeffect) # This comment above is used by automake to tell side-effect @@ -422,7 +580,7 @@ shift fi - # Remove `-o $object'. + # Remove '-o $object'. IFS=" " for arg do @@ -442,18 +600,18 @@ done test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' + # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -503,12 +661,15 @@ touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; @@ -525,7 +686,7 @@ shift fi - # Remove `-o $object'. + # Remove '-o $object'. IFS=" " for arg do @@ -544,10 +705,10 @@ esac done - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" @@ -579,23 +740,23 @@ shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; + set fnord "$@" + shift + shift + ;; *) - set fnord "$@" "$arg" - shift - shift - ;; + set fnord "$@" "$arg" + shift + shift + ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; diff -Nru thunar-1.2.3/docs/design/Makefile.am thunar-1.6.10/docs/design/Makefile.am --- thunar-1.2.3/docs/design/Makefile.am 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/docs/design/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -# $Id$ - EXTRA_DIST = \ mime.xmi \ overview.xmi diff -Nru thunar-1.2.3/docs/design/Makefile.in thunar-1.6.10/docs/design/Makefile.in --- thunar-1.2.3/docs/design/Makefile.in 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/docs/design/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 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,9 +13,52 @@ # PARTICULAR PURPOSE. @SET_MAKE@ - -# $Id$ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,24 +79,36 @@ host_triplet = @host@ target_triplet = @target@ subdir = docs/design -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -114,6 +168,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -121,11 +179,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -133,7 +187,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -145,6 +199,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -156,10 +214,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -179,6 +233,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -221,7 +276,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -229,12 +283,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -272,6 +327,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -339,11 +396,11 @@ clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -390,10 +447,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -474,15 +536,16 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/docs/Makefile.am thunar-1.6.10/docs/Makefile.am --- thunar-1.2.3/docs/Makefile.am 2010-08-31 15:19:29.000000000 +0000 +++ thunar-1.6.10/docs/Makefile.am 2015-05-22 13:25:36.000000000 +0000 @@ -1,14 +1,9 @@ -# $Id$ - SUBDIRS = \ design \ - manual \ - papers \ - reference + papers doc_DATA = \ - README.gtkrc \ - README.thunarrc + README.gtkrc man_MANS = \ Thunar.1 diff -Nru thunar-1.2.3/docs/Makefile.in thunar-1.6.10/docs/Makefile.in --- thunar-1.2.3/docs/Makefile.in 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/docs/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,9 +14,52 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,31 +80,43 @@ host_triplet = @host@ target_triplet = @target@ subdir = docs -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -84,6 +138,12 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(docdir)" NROFF = nroff @@ -91,9 +151,29 @@ DATA = $(doc_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -181,6 +261,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -188,11 +272,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -200,7 +280,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,6 +292,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -223,10 +307,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -246,6 +326,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -288,7 +369,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -296,12 +376,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -339,6 +420,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -365,13 +448,10 @@ xfconf_query_found = @xfconf_query_found@ SUBDIRS = \ design \ - manual \ - papers \ - reference + papers doc_DATA = \ - README.gtkrc \ - README.thunarrc + README.gtkrc man_MANS = \ Thunar.1 @@ -422,11 +502,18 @@ -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" - @list=''; test -n "$(man1dir)" || exit 0; \ - { for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.1[a-z]*$$/p'; \ + @list1=''; \ + list2='$(man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ @@ -455,13 +542,14 @@ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - test -z "$$files" || { \ - echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) - test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -475,27 +563,28 @@ @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(docdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(docdir)" && rm -f $$files + dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -510,57 +599,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -576,12 +620,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -593,15 +632,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -610,24 +645,26 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) - @list='$(MANS)'; if test -n "$$list"; then \ - list=`for p in $$list; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ - if test -n "$$list" && \ - grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ - echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ - grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ - echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ - echo " typically \`make maintainer-clean' will remove them" >&2; \ - exit 1; \ - else :; fi; \ - else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -659,13 +696,10 @@ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -703,10 +737,15 @@ installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -786,23 +825,22 @@ uninstall-man: uninstall-man1 -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-docDATA 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-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-docDATA uninstall-man uninstall-man1 +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-docDATA 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-docDATA \ + uninstall-man uninstall-man1 @MAINTAINER_MODE_TRUE@%.1: %.xml diff -Nru thunar-1.2.3/docs/manual/html/bn/advanced-topics.html thunar-1.6.10/docs/manual/html/bn/advanced-topics.html --- thunar-1.2.3/docs/manual/html/bn/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -উচ্চ পর্যায়ের বিষয়

উচ্চ পর্যায়ের বিষয়

বাল্কে ফাইলগুলো পুনরায় নামকরণ করুন

ফাইল বাল্ক পুনরায় নামকরণ করুন বলতে বুঝায় কিছু শর্তাবলী মেনে একাধিক ফাইলের পুনরায় নামকরণ করা, যা অন্তত একটি ফাইলে প্রয়োগ করা যায়। Thunar এ বাল্ক পুনঃনামকারক থাকে যা Thunar -B কমান্ড ব্যবহার করে পৃথকভাবে চালানে যায় অথবা Thunar এর মধ্যে মেইন এরিয়ায় দুই বা ততোধিক ফাইল নির্বাচন করে F2 চেপে মেইন মেনু থেকে সম্পাদন করুনপুনরায় নামকরণ করুন... বাছাই করেও চালানো যায়।

বাল্ক পুনরায় নামকরণ ফাইল

বাল্ক পুনরায় নামকরণকারী ফাইলের নামে, সাফিক্সে অথবা দুইখানেই প্রয়োগ করা যেতে পারে। বর্তমানে Thunar নিম্নলিখিত বাল্ক পুনরায় নামকরণকারী কে সমর্থন করে:

  • অক্ষর মুছে ফেলুন।

  • সংখ্যায়িত ফাইল।

  • তারিখ বা সময় দিন।

  • অক্ষর প্রবেশ বা উপরিলিখন করুন।

  • অক্ষর অনুসন্ধান এবং প্রতিস্থাপন

  • বড় হাতের, ছোট হাতের অথবা যান্ত্রিক অক্ষরে রূপান্তর করে নিন।

Thunar এর জন্য প্লাগিং হিসাবে অতিরিক্ত বাল্ক পুনরায় নামকরনকারী ইন্সটল করা যেতে পারে। বর্তমানে বিদ্যমান বর্ধিতাংশের জন্য Thunar প্লাগ‌ইন ওয়েবসাইটটি দেখুন। Thunar প্রজেক্ট উইকি তে এই ফিচার সম্পর্কে বিস্তারিত তথ্য আছে। নিশ্চিন্তে উইকিতে আরও তথ্য সংযুক্ত করুন।

ইউনিক্স ফাইল সিস্টেম

Thunar ফাইল ব্যবস্থাপক মূল ফাইল সিস্টেমের বিস্তারিত বিষয়াবলীকে যথার্থভাবে সংক্ষেপ করতে পারে, সুতরাং ব্যবহারকারীকে এটা নিয়ে ভাবতে হয় না, কখনও কখনও পুরো ব্যাপারটাকে জানতে মূল ধারণাটি বুঝতে পারা বেশ কার্যকর। এই অংশটি UNIX ফাইল সিস্টেমের সংক্ষিপ্ত পরিচিতিমূলক ধারণা দেয় যা বর্তমানে লিনাক্সসহ UNIX এর সকল প্রতিনিধিত্বকারীই ব্যবহার করে।

ফোল্ডার এবং পাথ

UNIX ফাইল সিস্টেমে ফোল্ডারগুলো একটি উল্টানো ট্রী এর মত করে সাজানো থাকে যেখানে একটি শীর্ষ ফোল্ডার থেকে অন্যান্য ফোল্ডার শাখার মত থাকে, যা রুট ডিরেক্টরি (ফোল্ডার এর বদলে ডিরেক্টরি টার্মটি ব্যবহৃত হয়) নামে পরিচিত এবং Thunar এ ফাইল সিস্টেম আকারে প্রদর্শিত হয়। অর্থাৎ আপনি ট্রীর সাহায্যে একটি সাধারন বিন্দুতে পৌছানো পর্যন্ত যেকোনো ফোল্ডার থেকে অন্য ফোল্ডারে যেতে পারেন এবং ট্রীর নিচের দিকে এসে সঠিক সাবফোল্ডারের মাধ্যমে লক্ষ্যে পৌছাতে পারেন।

ট্রীতে অবস্থিত যেকোনো ফাইল বা ফোল্ডারের অবস্থান তার পাথ থেকে বর্ণনা করা যায়। পাথ হল গন্তব্য ফোল্ডার বা ফাইল বের করার জন্য সবচেয়ে উপরের ফোল্ডার থেকে শুরু করে নীচ পর্যন্ত ফোল্ডারের তালিকা। যেমন, /home/luke হল শীর্ষস্তর ফোল্ডারের home সাবফোল্ডারের luke সাবফোল্ডার এবং /home/luke/myfile.txt হল ওই সাবফোল্ডারের myfile.txt ফাইল। এই পাথের প্রথম অংশ / দ্বারা শীর্ষস্তরের ফোল্ডারকে বোঝায়।

প্রত্যেক ব্যবহারকারীর নিজস্ব ফোল্ডার আছে যেখানে সে তার ব্যক্তিগত ফাইল ও সেটিংসমূহ রাখতে পারে। এই ফোল্ডারকে প্রধান ডিরেক্টরি বলা হয় এবং ব্যবহারকারীর নাম লগিং করতেই বিশেষ আইকন আকারে Thunar এ প্রদর্শিত হয়। ফোল্ডারটি উইন্ডোর আমার ফাইল ফোল্ডারের অনুরূপ। সিস্টেমে বিভিন্ন ব্যবহারকারীর প্রধান ডিরেক্টরি সাধারণত /home ফোল্ডারের নিচে থাকে। যেমন,/home/luke, ব্যবহারকারীর লগিং নাম luke এর প্রধান ডিরেক্টরি হবে এবং /home/jane, ব্যবহারকারীর লগিং নাম jane এর প্রধান ডিরেক্টরি হবে।

ফাইলের ধরণ

আপনি ইতোমধ্যেই শুনে থাকবেন যে সবগুলো UNIX এর ফাইল। আজকাল UNIX সিস্টেমের সব অবজেক্টের জন্যই এটা প্রযোজ্য। প্রকৃতপক্ষে, ডিভাইসকেও বিশেষ ফাইল আকারে দেখানো হয়। প্রথমে এটাকে দেখে অর্থহীনও মনে হতে পারে, কিন্তু UNIX এবং এর ডিরাইভেটের এটি একটি ক্ষমতা এবং এটি সহজ একটি মূল বিষয় মেনে চলে যেখানে অন্য অপারেটিং সিস্টেমগুলোতে প্রতিটি নতুন প্রযুক্তির সাথে নতুন ধারণা যোগ করতে হয়।

এগুলো UNIX ফাইল সিস্টেমের চারটি সবচেয়ে গুরুত্বপূর্ন ফাইল।

সাধারণ ফাইল

একটি সাধারন ফাইলে টেক্সট, প্রোগ্রাম অথবা অন্যান্য ডাটা থাকতে পারে। এগুলোতে ছবি ফাইল, অডিও ফাইল, অফিস ডকুমেন্ট এবং ভিডিও ফাইল যুক্ত থাকে। সাধারণ ফাইল বোঝাতে ফাইল টার্মটি ব্যবহার করা হয়।

ফোল্ডার ফাইল

UNIX ফাইল সিস্টেমে ফোল্ডার ফাইল আকারে থাকে। প্রকৃতপক্ষে ফোল্ডার হল এ

প্রতীকি লিংক ফাইল

প্রতীকি লিঙ্ক (প্রায়ই সিমলিঙ্ক বলা হয়) হল একটি বিশেষ ফাইল যেখানে ফাইল সিস্টেমের অন্য একটি ফাইলের পাথ থাকে। অতএব, প্রতীকি লিঙ্ক ফাইলে কোনো কার্যকরী তথ্য থাকেনা, কিন্তু অন্য ফাইলে আছে তা উল্লেখ করে দেয়।

ডিভাইস ফাইল

পূর্বে উল্লেখানুসারে, পূর্ববর্তী (বেশীরভাগ) ডিভাইসসমূহ ফাইল সিস্টেমের সাহায্যে চালু হয়। এই বিশেষ ডিভাইস ফাইলগুলো সাধারনত /dev ফোল্ডারেই থাকে। যেমন, বিশেষ ফাইল /dev/hda লিনাক্সে IDE ডিস্ককেই বোঝায়।

diff -Nru thunar-1.2.3/docs/manual/html/bn/copyright.html thunar-1.6.10/docs/manual/html/bn/copyright.html --- thunar-1.2.3/docs/manual/html/bn/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar সম্পর্কে

Thunar সম্পর্কে

Benedikt Meurer () Thunar লিখেছেন। আরও তথ্য জানার জন্য Thunar ওয়েবসাইট দেখুন।

Benedikt Meurer () এই ডকুমেন্টেশনটি লিখেছেন। এই ডকুমেন্টের সর্বশেষ সংস্করনটি সবসময় Thunar ওয়েবসাইট এ পাওয়া যায়।

মুক্ত সফটওয়্যার ফাউন্ডেশন থেকে প্রকাশিত GNU পাবলিক লাইসেন্সসের সংস্করণ ২ বা পরবর্তী অন্য কোনো সংস্করণ (ইচ্ছামত) এর শর্তমতে সফটওয়্যারটির বন্টন করা হয়।

আপনি প্রোগ্রামসহ GNU পাবলিক লাইসেন্সসের একটি অনুলিপি পেয়ে থাকবেন; যদি না পান তবে মুক্ত সফটওয়্যার ফাউন্ডেশন, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA এ লিখে পাঠান।

diff -Nru thunar-1.2.3/docs/manual/html/bn/customizing-thunar.html thunar-1.6.10/docs/manual/html/bn/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/bn/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -Thunar পছন্দসই করা হচ্ছে

Thunar পছন্দসই করা হচ্ছে

এই অধ্যায় ফাইল ব্যবস্থাপকের কিছু নির্দিষ্ট অংশকে প্রয়োজনানুসারে কিভাবে স্বনির্মান করতে হয় তা বর্ণনা করে।

"যেখানে পাঠানো হবে" মেনু

Thunar এ প্রেরণ করুন মেনু থাকে, যা কোথায় ফাইল ও ফোল্ডার প্রেরণ করতে হবে তার সম্ভাব্য লক্ষ্য স্থির করে। প্রেরণ করুন মেনুতে প্রবেশ করতে মেইন মেনু থেকে ফাইলপ্রেরণ করুন বাছাই করুন অথবা ফাইল বা ফোল্ডারে ডান-ক্লিক করুন এবং প্রেরণ করুন বাছাই করুন।

"যেখানে পাঠানো হবে" মেনু

ডিফল্ট হিসাবে প্রেরণ করুন মেনুতে সব ফাইল ও ফোল্ডারের জন্য একটি ডেক্সটপ (লিঙ্ক তেরি করুন) নামক ভুক্তি থাকে যা প্রতিটি নির্বাচিত ফাইলের জন্য ডেক্সটপে একটি লিঙ্ক তৈরি করে। এছাড়া, যদি শর্টকাট প্যান সক্রিয় থাকে তবে মেনুতে ফোল্ডারের জন্য সাইড প্যান (শর্টকাট তৈরি করুন) নামক একটি ভুক্তি থাকে যা ব্যবহারকারীকে সাইড প্যানে নতুন শর্টকাট যোগ করার অনুমোদন দেয়। ভুক্তিসমুহ অনুসরন করে Thunar কম্পিউটারে প্রবেশকৃত স্থানান্তরযোগ্য ড্রাইভগুলোর তালিকা তৈরি করা হয়। উপরোক্ত স্ক্রিনশটে ফ্লপি ড্রাইভ একটি সম্ভাব্য লক্ষ্য দেখায় যেখানে ফাইলগুলো প্রেরণ করা যায়। লক্ষ্য রাখুন, প্রেরণ করুন মেনু থেকে নির্বাচিত ডিভাইসটি স্বয়ংক্রিয়ভাবে মাউন্ট হয়, সুতরাং আপনাকে নিজে থেকে মাউন্ট করতে হয়না।

এছাড়াও Thunar, thunar-প্রেরণ করুন-ইমেইল প্লাগিং চালায় যা মেইল প্রাপক ভুক্তি হিসাবে মেনুতে যোগ করে এবং নতুন মেইলের সাথে যোগ করা নির্বাচিত ফাইলসমূহ মেইল কম্পোজারের সাহায্যে খুলে। নির্বাচিত অংশে যদি একটিও ফোল্ডার থাকে তবে নির্বাচিত আইটেম ইমেইলের সাথে যুক্ত হওয়ার আগে ZIP আর্কাইভে নিয়ে নিতে হবে। অন্যথায়, নির্বাচিত অংশে যদি একাধিক ফাইল বা ২০০Kib এর চেয়ে বড় কোনো ফাইল থাকে তবে ব্যবহারকারীই ফাইলগুলো ZIP আর্কাইভে প্যাক করে প্রেরণ করবে।

Thunar এর অন্যান্য বৈশিষ্ট্যাবলীর মতই, প্রেরণ করুন মেনুটিকে ব্যবহারকারী এবং অ্যাপ্লিকেশন ডেভেলপারগণ নতুন টার্গেট নিয়ে ডেক্সটপ ভুক্তি ফাইলসমূহ ব্যবহার করে সম্প্রসারিত করতে পারে। এই ফাইলগুলো $XDG_DATA_DIRS/Thunar/sendto/ ফোল্ডারে ইন্সটল করতে হবে ($XDG_DATA_DIRS ভেরিয়েবল সম্পর্কে আরও তথ্য জানার জন্য XDG বেস ডিরেক্টরি সুনির্দিষ্টকরণ দেখুন)।

.ডেক্সটপ টার্গেটের MimeType ফাইলের ধরণ নির্ধারন করে দেয় যার জন্য প্রেরণ করুন মেনুতে অ্যাকশনটি থাকতে হয়। উদাহরণস্বরূপ, আপনি Flickr আপলোডার টুলের জন্য একটি ভুক্তি যোগ করতে চান, তখন নির্বাচিত অংশে JPEG ফাইল (অন্যান্য ফাইল ফরমেট Flickr সমর্থিত নয়) থাকলেই কেবল ভুক্তটি প্রদর্শিত হবে এবং সেজন্য আপনাকে MimeType=image/jpeg; লাইনটি যোগ করতে হবে। আপনি যদি কোনো MimeType নির্দিষ্ট করতে না পারেন তবে ভুক্তিটি সব ধরনের ফাইলের জন্যই প্রদর্শিত হবে।

postr অ্যাপ্লিকেশন ব্যবহার করে একটি সম্পূর্ন উদাহরণ নিচে দেখানো হল:

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

আপনি যদি ~/.local/share/Thunar/sendto/ (ফোল্ডার না থাকলে তৈরি করুন) এ ফাইল ইন্সটল করেন তবে, JPEG ফাইলের প্রেরণ করুন মেনু নতুন ভুক্তি Flickr প্রদর্শন করবে, যা Flickr এ JPEG ছবি আপলোড করতে ব্যবহার করা যেতে পারে।

Thunar প্রকল্প উইকিপ্রেরণ করুন মেনুর কার্যকরী লক্ষ্যের কিছু বাড়তি উদাহরণ থাকে। নিঃসংকোচে নতুন নতুন উদাহরণ দিয়ে উইকি পেজ সম্প্রসারন করুন।

থাম্বনেইলারস

নির্দষ্ট কিছু ফাইল টাইপের থাম্বনেইল তৈরি করতে Thunar কিছু ছোট উপযোগিতা ব্যবহার করে এবং ফাইল কন্টেন্টের প্রাকদর্শন আকারে থাম্বনেইল প্রদর্শন করে। এই ছোট টুলগুলোকে থাম্বনেইলার বলা হয়। Thunar ছবি এবং ফন্ট ফাইল থাম্বনেইলারে প্রেরণ করে, GNOME থেকে স্বয়ংক্রিয়ভাবে ইন্সটল করা থাম্বনেইলার

আপনি যদি একটি পছন্দনীসই থাম্বনেইলার লেখার পরিকল্পনা করে থাকেন তবে এমন একটি প্রোগ্রাম দিয়ে শুরু করা উচিৎ যা নূন্যতম দুটি কমান্ড লাইন প্যারামিটার গ্রহন করে, একটি হল ইনপুট ফাইল যেটি হল সেই ধরনের ফাইল যা আপনি সমর্থন করার পরিকল্পনা করেছেন এবং অন্যটি আউটপুট ফাইল যা একটি PNG ফাইল এবং থাম্বনেইল ম্যানেজমেন্ট স্টান্ডার্ড দ্বারা নির্দিষ্টকৃত বিন্যাস মেনে চলে। উপরন্তু, আপনার প্রোগ্রাম থাম্বনেইলের প্রত্যাশিত আকারও গ্রহন করতে পারে, যা ঐচ্ছিক কিন্তু উচ্চমাত্রায় সুপারিশকৃত। আপনি যদি একটি এলমেলো আকারের ছবির ভেতর আউটপুট ফাইলটি লিখতে চান তবে Thunar একে আপনার প্রত্যাশিত আকারে এনে দিবে কিন্তু তা অনুরোধকৃত মাত্রার থাম্বনেইলের চেয়ে কিছুটা কম সঠিক মাত্রার হতে পারে।

একবার যদি থাম্বনেইল তৈরির উপযোগিতা শেষ হয়ে যায় তবে আপনাকে থাম্বনেইলার রেজিস্টার করতে হবে যাতে Thunar এর অবস্থান চিহ্নিত করে ব্যবহার করতে পারে। অতএব, আপনাকে থাম্বনেইলের $XDG_DATA_DIRS/thumbnailers/ পাথে একটি বর্ণনা ফাইল (একটি .desktop ফাইল) ইন্সটল করতে হবে। যেমন, আপনি যদি শুধু নিজের অ্যাকাউন্টের জন্য থাম্বনেইলার রেজিস্টার করতে চান তবে ~/.local/share/thumbnailers/ ফোল্ডারে ফাইলটি ইন্সটল করতে পারেন। .desktop এর থাম্বনেইলারের জন্য নিম্নোক্ত ফরম্যাট রয়েছে।

থাম্বনেইলার ফাইলের ধরণ

থাম্বনেইলার বর্ণনা ফাইল X-Thumbnailer এর বিশেষ টাইপ সহ ডেক্সটপ ভুক্তি ফরম্যাট এবং নতুন ক্ষেত্র কোড সহ বিশেষ ক্ষেত্রX-Thumbnailer-Exec এর যথাযথভাবে ব্যবহার করে। মূলত, থাম্বনেইলার বর্ণনা ফাইলের নিম্নোক্ত বিন্যাস থাকে।

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

সংস্করণ এবং এনকোডিং ডেক্সটপ ভুক্তি সুনির্দিষ্টকরণের অধিভুক্ত, কেবল উপরোক্ত উদাহরণের মানগুলো ব্যবহার করুন। টাইপক্ষেত্রের বিশেষ মান X-Thumbnailer থাকা উচিৎ, অন্যথায় আপনার থাম্বনেইলারকে সনাক্ত করা যাবে না। নাম মানটি আপনার থাম্বনেইলারের বর্ণনা দেয়।

X-Thumbnailer-Exec ক্ষেত্রে আপনার থাম্বনেইলার চালানোর কমান্ড থাকে, এবং কিছু ক্ষেত্রের কোড সমর্থন করে যা থাম্বনেইলার চালানোর সময় প্রতিস্থাপিত হয়ে যাবে। সনাক্তকৃত ক্ষেত্রের কোডসমুহ নিম্নলিখিত:

%i

যে ইনপুট ফাইলটির জন্য থাম্বনেইল তৈরি করতে হবে তার স্থানীয় পাথ। থাম্বনেইলার যেরকম চায় তেমন ডিরেক্টরি সম্পর্কিত পাথ অথবা শুধু একটি পাথও হতে পারে।

%o

আউটপুট ফাইলের স্থানীয় পাথ যেখানে তৈরীকৃত থাম্বনেইল সংরক্ষন করা হয়। থাম্বনেইল স্টান্ডার্ড (উপরে দেখুন) অনুসারে আউটপুট ফাইলটি PNG ফাইল আকারে লেখা হবে। লক্ষ্য রাখুন, পাথটি যাতে .png এ শেষ না হয়ে যায় কারন আপনি যদি তৃতীয় পক্ষের টুল চেয়ে থাকেন তবে তা এখানে প্রভাব ফেলবে।

%s

তৈরি হওয়া থাম্বনেইলের প্রত্যাশিত আকার পিক্সেলে থাকে। এই প্যারামিটারটি ঐচ্ছিক।

%u

%i এর মতই, কিন্তু পাথ দ্বারা প্রতিস্থাপিত না হয়ে URI দ্বারা প্রতিস্থাপিত হয়। GNOME এর সাথে সুসংগতির বজায় রাখার জন্যই একে যোগ করা হয়।

%%

একক % দ্বারা প্রতিস্থাপিত হবে।

আপনার নূন্যতম %o এবং %i অথবা %u কে সংযুক্ত করা প্রয়োজন, নতুবা আপনার থাম্বনেইলার অকার্যকরী হয়ে পরবে।

MimeType MIME টাইপের তালিকা তৈরি করে - যা সেমিকোলন দ্বারা পৃথক করা থাকে - যার মাধ্যমে থাম্বনেইলার প্রিভিউ তৈরি করতে পারে।

উদাহরণ EPS থাম্বনেইলার

এই উদাহরণটি .eps ফাইলের জন্য নতুন থাম্বনেইলার কিভাবে লিখতে হয় এবং ইন্সটল করতে হয় তা বর্ণনা করে যা রূপান্তর করুন উপযোগীতা ব্যবহার করে ImageMagick এর অংশ হিসাবে চলে। প্রথমে আমরা একটি সহজ স্ক্রিপ্ট দিয়ে শুরু করি যা রূপান্তর করুনএ অনুরোধকৃত আকারে থাম্বনেইল তৈরী করতে সাহায্য করে।

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

eps-থাম্বনেইলার এ উপরের স্ক্রিপ্ট সংরক্ষণ করুন, ফাইলটি কার্যকরী কিনা তা নিশ্চিত হয়ে নিন এবং /usr/local/bin এ ফাইলটি ইন্সটল করুন।

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

পরবর্তীতে আমাদের থাম্বনেইল বিস্তারিত ফাইল eps-thumbnailer.desktop তৈরি করতে হবে, যা নিম্নরূপ:

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

এই ফাইলটি /usr/local/share/thumbnailers এ ইন্সটল করতে হবে (ফোল্ডার না থাকলে তৈরি করতে হবে)।

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

eps-থাম্বনেইলার.ডেক্সটপ ফাইল TryExec বিশেষ কী ব্যবহার করে যা নির্দিষ্ট করা থাকলে থাম্বনেইলারকে কার্যকর করার জন্য সিস্টেমে আছে এমন একটি কমান্ড উল্লেখ করে। এই ক্ষেত্রে, যদি রূপান্তর করা উপযোগীতা না থাকে তবে আমাদের স্ক্রিপ্ট অকার্যকর হয়ে পড়ে।

শেষ ধাপ হল থাম্বনেইলার ক্যাশ পুনঃনির্মাণ করা, সুতারাং Thunar আমাদের থাম্বনেইলারটি বেছে নিবে। থাম্বনেইলার ক্যাশ $XDG_CACHE_HOME/Thunar/thumbnailers.cache (আপনি বা আপনার সিস্টেম প্রশাসক ওভাররাইড না করা পর্যন্ত $XDG_CACHE_HOME, ফোল্ডার ~/.cache/ কে নির্দেশ করে) এ অবস্থিত। Thunar থাম্বনেইলার ক্যাশকে পুনঃনির্মাণ করে, কিন্তু আপনি thunar-vfs-update-thumbnailers-cache-1 ব্যবহার করে যা Thuanr এর অংশ হিসাবে চলে, এটি পুনঃনির্মাণ করতে পারেন। সাধারণত আপনার ইন্সটলেশন প্রীফিক্স (ডেবিয়ান/উবুন্ট এsbin) এর সাবফোল্ডার libexec এ ইউটিলিটি ইন্সটল করা থাকে। সুতরাং, উদাহরণস্বরূপ, thunar যদি /usr এ ইন্সটল করা থাকে তবে নিম্নরূপে ইউটিলিটি চায়:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

নিশ্চিত হয়ে নিন যে আপনি প্রোগ্রামটি ইউজার অ্যাকাউন্ট থেকেই চালাচ্ছেন, সুপার ইউজার অ্যাকাউন্ট থেকে নয়, কারণ থাম্বনেইলার ক্যাশ পুরো সিস্টেম জুড়ে জমা না থেকে আপনার হোম ফোল্ডারে জমা থাকে।

এখন যদি Thunar ফাইল বদল পর্যবেক্ষন (FAM অথবা Gamin সেবাসমুহ ব্যবহার করে) সমর্থন করে, তবে কিছুক্ষনের মধ্যেই এটি স্বয়ংক্রিয়ভাবে মধ্যেই নতুন থাম্বনেইলার ক্যাশ খুঁজে বের করবে এবং স্বনির্ধারিত থাম্বনেইলার ব্যবহার করে থাম্বনেইল তৈরি করবে। অন্যথায়, পরিবর্তনসমূহ প্রয়োগ করতে Thunar পুনরায় শুরু করতে হবে,

$ Thunar -q

যেকোনো চলমান মূহুর্তে বন্ধ করার জন্য এবং পরে লঞ্চার থেকে পুনরায় চালু করার জন্য।

থাম্বনেইল মুছে ফেলা হচ্ছে

তৈরি হওয়া থাম্বনেইল থাম্বনেইল ম্যানেজমেন্ট স্ট্যান্ডার্ড এর সাথে যুক্ত ~/.thumbnails/ ফোল্ডারে জমা হয়। নতুন কোনো থাম্বনেইলার পরীক্ষা করার সময় থাম্বনেইল ক্যাশ পরিস্কার করতে

$ rm -rf ~/.thumbnails/

যা আপনার হোম ফোল্ডারে কিছু খালি জায়গা রাখবে। কারন, এই ফোল্ডারে জমা রাখা তথ্যসমুহ আপনার ফাইল সিস্টেমের ফাইল থেকে স্বয়ংক্রিয়ভাবে তৈরি হয়, ফলে আপনি কোনো সংবেদনশীল ডাটাও হারাবেন না।

diff -Nru thunar-1.2.3/docs/manual/html/bn/faq.html thunar-1.6.10/docs/manual/html/bn/faq.html --- thunar-1.2.3/docs/manual/html/bn/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -যেসব প্রশ্ন প্রায়ই জিজ্ঞাসা করা হয়

যেসব প্রশ্ন প্রায়ই জিজ্ঞাসা করা হয়

এই বিভাগের উদ্দেশ্য হল Thunar এ কাজ প্রসঙ্গে কিছু সংখ্যক প্রায়ই জিজ্ঞাসিত প্রশ্ন সংগ্রহ করা। আপনি যদি এমন কোনো প্রশ্ন জানেন যেটা এই পৃষ্ঠায় নাই ,তবে একটি অনুরোধ ফাইল করুন দেখুন।

Thunar কার্যকরী হিসাবে চিহ্নিত ফাইলকে কার্যকর করে না কেন?

নিরাপত্তার জন্য Thunar কেবল application/x-desktop, application/x-executable এবং application/x-shellscript ফাইলগুলোকেই কার্যকর করে। ডেক্সটপ ফাইলের জন্য কার্যকরী ফিচার সক্রিয় হবে না যদি ফাইলটি Application টাইপের হয় ও একটি কার্যকরী লাইন Exec দেয়া থাকে অথবা Link টাইপের হয় ও একটি কার্যকরী লাইন URL দেয়া থাকে দেয়া থাকে। অন্যান্য টাইপের জন্য ফিচারটি পাওয়া যায় যদি ফাইলটি বর্তমান ব্যবহারকারীর কাছ

আরও লক্ষ করুন যে application/x-executable এবং application/x-shellscript এর সাথে এই ধরণের ফাইলের মিল হওয়ার কোনো দরকার নাই, নির্বাচিত ফাইল টাইপের যদি প্যারেন্ট থাকে যা উপরোক্ত তালিকার সাথে মিলে যায় অথবা MIME-টাইপ উপনাম হিসাবে ব্যবহার করা হয়, তাই যথেষ্ট।

Thunar ফাইলের সাথে সংযুক্ত মেটাডাটা কোথায় জমা রাখে?

Thunar ফাইল/ফোল্ডারের বিভিন্ন সেটিং এর সাথে সম্পর্কিত, যাকে মেটাডাটা বলা হয়। সব ফাইলের মেটাডাটা tdb ডাটাবেস ফাইলে জমা থাকে, যাকে মেটাফাইল বলা হয়। ডাটাবেস ফাইলটি $XDG_CACHE_HOME/Thunar/metafile.tdb এ জমা থাকে এবং tdbtool ব্যবহার করে পরীক্ষা করা যায় যা Thunar বন্টনের অংশ (tdb/ সাব-ডিরেক্টরিতে অবস্থিত)।

Thunar এর পছন্দসমুহ কোথায় জমা থাকে?

Thunar ব্যবহারকারীর কনফিগারেবল পছন্দসমূহকে (এবং আড়াল করা সেটিংসমূহ) .ini ফাইলে জমা রাখে, যা $XDG_CONFIG_HOME/Thunar/thunarrc এ অবস্থিত এবং টেক্সট সম্পাদক দিয়ে পরীক্ষা করা যায়। বিভিন্ন পছন্দসমূহের সারসংক্ষেপের জন্য docs/README.thunarrc দেখুন।

Thunar এ কিভাবে মাউস ভঙ্গিমা ব্যবহার করতে হয়?

Thunar বর্তমানে এর আইকন ভিউতে মাউস ভঙ্গিমা এর জন্য মূল সমর্থন দেয়। যখন আইকন ভিউ কম্পোনেন্টের (আইকন অথবা টেক্সট দ্বারা ঢেকে নেই এমন) মাউস পয়েন্টার পটভূমিতে থাকে তখন মাউসের মধ্যবর্তী বোতাম (সাধারণত মাউস হুইল) ধরে রেখে আপনি মাউস ভঙ্গিমা ব্যবহার করতে পারেন । এখন আপনি নিম্নোক্ত কাজ করার জন্য কারসার চতুর্দিকে নাড়াতে পারবেন।

বাম - পূর্বে পরিদর্শিত ফোল্ডার খোলে
উপরে- প্যারেন্ট ফোল্ডার খোলে
ডান - পরবর্তী ফোল্ডার খোলে
নীচে - বর্তমান ফোল্ডার রিলোড করে

আমি কিভাবে কিবোর্ডের বিভিন্ন শর্টকাট বরাদ্দ করবো?

আপনি যদি শর্টকাটটি পুনরায় যোগ করতে চান তবে Thunar শর্টকাট বদলের উপায় হিসাবে আদর্শ GTK+ সমর্থন করে: মাউস পয়েন্টার দিয়ে মেনু অপশনের উপর দিয়ে ঘুরে আসুন এবং যেটি যোগ করতে চান সেই কীবোর্ড শর্টকাটটি চাপুন।

কীবোর্ড এসাইনমেন্ট অপসারণ করতে চাইলে আপনি যখন মেনু ভুক্তিতে থাকেন তখন Backspace কী চাপুন।

শর্টকাট যদি না বদলাতে চান তবে আপনি ফিচারটি GTK+ এ সক্রিয় করুন। তিনটি উপায়ে এটি করা যায়:

  • আপনি যদি Xfce 4.3 বা তার পরবর্তী সংস্করন চালান তবে ব্যবহারকারী ইন্টারফেস পছন্দসমূহ ডায়ালগে

  • যদি আপনি GNOME চালান তবে মেনু এবং টুলবার নিয়ন্ত্রন কেন্দ্র ডায়ালগে সম্পাদনীয় মেনু অ্যাক্সিলেটর সক্রিয় করুন।

  • অন্যথায় ~/.gtkrc-2.0 ফাইল (যদি না থাকে ফাইলটি তৈরি করুন):

    gtk-can-change-accels=1

    এ নিম্নোক্তটি যোগ করুন

Thunar কীবোর্ড শর্টকাট কোথায় জমা রাখে?

স্বনির্ধারিত কীবোর্ড শর্টকাট আদর্শ GTK+ এক্সেল ম্যাপ ফরম্যাট ফাইলে জমা থাকে যা $XDG_CONFIG_HOME/Thunar/accels.scm এ অবস্থিত। ; দিয়ে শুরু হওয়া লাইনগুলো হল মন্তব্য। ফাইল ফরম্যাট বিস্তারিত জানার জন্য GTK+ ডকুমেন্টেশন দেখুন।

আপনি যদি প্যাকেজকারক বা সিস্টেম প্রশাসক হন এবং কীবোর্ড শর্টকাটের জন্য পুরো সিস্টেম জুড়ে ডিফল্ট করতে চান তবে সেটা হবে Thunar এর ডিফল্ট শর্টকাট থেকে আলাদা, আপনি $XDG_CONFIG_DIRS এ একটি ফাইল Thunar/accels.scm তৈরি করতে পারেন। যেমন, /etc/xdg যদি $XDG_CONFIG_DIRS (বেশিরভাগ লিনাক্স বন্টনের ডিফল্ট হিসাবে থাকে) এর অংশ হয় তবে আপনি /etc/xdg/Thunar/accels.scm এ পুরো সিস্টেমের জন্য ডিফল্ট ইনস্টল করতে পারেন। Thunar তখন প্রথম থেকেই এই ফাইল থেকে শর্টকাট লোড করে নেয়।

diff -Nru thunar-1.2.3/docs/manual/html/bn/index.html thunar-1.6.10/docs/manual/html/bn/index.html --- thunar-1.2.3/docs/manual/html/bn/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar ফাইল ম্যানেজার

Thunar ফাইল ম্যানেজার

বেনেডিক্ট মিউরার

সফটওয়্যার ডেভেলপার
অস-সিলেশন
সিস্টেম ডেভেলপমেন্ট


এই ম্যানুয়ালটি 1.2.0git-cc468f4 of Thunar সংস্করণটি ব্যাখ্যা করে।

GNU মু

November 2007


সূচিপত্র

Thunar এর ভূমিকা
ফাইল ব্যবস্থাপক উইন্ডো
অবয়ব পছন্দসই করা হচ্ছে
ফাইল এবং ফোল্ডারে কাজ করা হচ্ছে
ফাইল খোলা হচ্ছে
ফাইলের বৈশিষ্ট্যাবলী
স্থানান্তরযোগ্য মিডিয়া ব্যবহার করা হচ্ছে
স্থানান্তরযোগ্য মিডিয়ায় কাজ করা হচ্ছে
স্থানান্তরযোগ্য ড্রাইভ এবং মিডিয়া ব্যবস্থাপনা
ফাইল ম্যানেজমেন্ট পছন্দসমূহ
প্রদর্শনের পছন্দসমূহ
সাইড প্যান পছন্দসমূহ
আচরণ পছন্দসমূহ
উচ্চ পর্যায়ের পছন্দসমূহ
Thunar পছন্দসই করা হচ্ছে
"যেখানে পাঠানো হবে" মেনু
থাম্বনেইলারস
উচ্চ পর্যায়ের বিষয়
বাল্কে ফাইলগুলো পুনরায় নামকরণ করুন
ইউনিক্স ফাইল সিস্টেম
যেসব প্রশ্ন প্রায়ই জিজ্ঞাসা করা হয়
Thunar কার্যকরী হিসাবে চিহ্নিত ফাইলকে কার্যকর করে না কেন?
Thunar ফাইলের সাথে সংযুক্ত মেটাডাটা কোথায় জমা রাখে?
Thunar এর পছন্দসমুহ কোথায় জমা থাকে?
Thunar এ কিভাবে মাউস ভঙ্গিমা ব্যবহার করতে হয়?
আমি কিভাবে কিবোর্ডের বিভিন্ন শর্টকাট বরাদ্দ করবো?
Thunar কীবোর্ড শর্টকাট কোথায় জমা রাখে?
সাপোর্ট
Thunar সম্পর্কে

Thunar এর ভূমিকা

Xfce ডেক্সটপ এনভারনমেন্টের জন্য Thunar একটি নতুন আধুনিক ফাইল ব্যবস্থাপক। Thunar দ্রুত ও সহজে ব্যবহারের করার মত করে তৈরি করা হয়েছে। এর ব্যবহারকারী ইন্টারফেস পরিচ্ছন্ন এবং অন্তর্জ্ঞানলব্ধ, এবং এতে ডিফল্ট হিসাবে কোনো গোলমেলে ও অপ্রয়োজনীয় অপশন থাকে না। চালু হতে ও ফোল্ডার লোড করতে খুব কম সময় নেয়ার কারণে Thunar দ্রুত কাজ করে এবং সাড়াও দেয় দ্রুত।

Thunar ফাইল ব্যবস্থাপক আপনার ফাইল এবং অ্যাপ্লিকেশনসমূহের জন্য একটি সমন্বিত প্রবেশ পয়েন্ট প্রদান করে। নিম্নোক্ত কাজগুলো করতে ফাইল ম্যানেজারটি ব্যবহার করতে পারেন:

  • ফোল্ডার এবং ডকুমেন্ট তৈরি করুন।

  • আপনার ফাইল এবং ফোল্ডার প্রদর্শন করে।

  • আপনার ফাইল এবং ফোল্ডার ব্যবস্থাপনা করে।

  • পছন্দসই অ্যাকশন চালায় এবং ম্যানেজ করে।

  • স্থানান্তরযোগ্য মিডিয়ায় কাজ করা হয়।

diff -Nru thunar-1.2.3/docs/manual/html/bn/preferences.html thunar-1.6.10/docs/manual/html/bn/preferences.html --- thunar-1.2.3/docs/manual/html/bn/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ফাইল ম্যানেজমেন্ট পছন্দসমূহ

ফাইল ম্যানেজমেন্ট পছন্দসমূহ

আপনার Thunar ফাইল ব্যবস্থাপক পছন্দসমূহ নির্ধারণ করতে ফাইল ব্যবস্থাপক পছন্দসমূহ ডায়ালগ ব্যবহার করুন। পছন্দনীয় ডায়ালগ খুলতে মেনুবার থেকে সম্পাদন করুনপছন্দসমূহ... বাছাই করুন, অথবা Xfce সেটিং ব্যবস্থাপকে ফাইল ব্যবস্থাপক বোতামে ক্লিক করুন।

ফাইল ব্যবস্থাপক পছন্দসমূহ ডায়ালগ পৃথক পৃথক অপশন নিয়ে চার পৃষ্ঠায় বিন্যস্ত রয়েছে, যার প্রত্যেকটি নিচে আলাদা শ্রেনীতে বর্ণিত আছে। মূলত আপনি নিম্নলিখিত বিভাগে আপনার পছন্দসমুহ নির্ধারণ করে দিতে পারেন:

  • প্রদর্শনের জন্য পূর্বনির্ধারিত সেটিংস।

  • সাইড প্যানের জন্য পূর্বনির্ধারিত সেটিংস।

  • ফাইল ম্যানেজার উইন্ডোর আচরণ।

  • ফাইল ম্যানেজারের উচ্চ পর্যায়ের বৈশিষ্ট্যাবলী।

Thunar তথাকথিত বেশকিছু আড়ালকৃত অপশন কে সমর্থন করে, যা ফাইল ব্যবস্থাপকের উচ্চ পর্যায়ের বৈশিষ্টসমুহ নিয়ন্ত্রন করে, কিন্তু পছন্দসমূহের ডায়ালগকে সাধারণ রাখার উদ্দেশ্যে এগুলোকে পছন্দসমূহের মধ্যে রাখা হয়নি। Thunar বন্টনের সাথে সংযুক্ত README.thunarrc ফাইলটি বিদ্যমান অপশনসমূহের বিস্তারিত বর্ণনা দেয়।

প্রদর্শনের পছন্দসমূহ

আপনি ডিফল্ট দৃশ্যপট, ক্রম নির্বাচন এবং অপশন প্রদর্শন নির্দিষ্ট করে দিতে পারেন। যেসকল ফাইল থাম্বনেইল সমর্থন করে সেগুলোতে তা প্রদর্শিত হবে কিনা তা নির্দিষ্ট করে দিতে পারেন।

প্রদর্শনের পছন্দসমূহ
নতুন ফোল্ডার যা ব্যবহার করছে

ফোল্ডারের জন্য ডিফল্ট ভিউ নির্বাচন করুন। যখন নতুন উইন্ডো খুলবেন, আপনি যে ভিউটি নির্বাচন করেছেন তা প্রদর্শিত হবে। এটা আইকন ভিউ, সন্নিবিষ্ট তালিকা ভিউ অথবা বিস্তারিত তালিকা ভিউও হতে পারে। আপনি এখানে পূর্ববর্তী সক্রিয় ভিউয়ের জন্য ব্যবহৃত ভিউটি ব্যবহার করতে পূর্ববর্তী সক্রিয় ভিউ নির্বাচন করতে পারেন।

ফাইলের পূর্বে ফোল্ডার সাজিয়ে নিন

আপনি যখন ফোল্ডারকে ক্রমানুসারে সাজান তখন ফাইলের পূর্বে ফোল্ডারকে তালিকাভুক্ত করার জন্য এই অপশনটি নির্বাচন করুন।

থাম্বনেইলস প্রদর্শন করুন

ছবি ফাইল ও অন্যান্য সমর্থিত ফাইলের থাম্বনেইল প্রদর্শনের জন্য এই অপশনটি নির্বাচন করুন। ফাইল ব্যবস্থাপক প্রতিটি ফোল্ডারের জন্য ব্যবহারকারীর প্রধান ফোল্ডারে আড়াল করা .থাম্বনেইলস ডিরেক্টরীতে থাম্বনেইল ফাইল সংরক্ষন করে রাখে।

আপনি যদি অতিরিক্ত ফাইলের সমর্থন সহ Thunar থেকে প্রাপ্ত থাম্বনেইলের মূল কার্যবিধি বৃদ্ধি করতে চান, তাহলে অনুচ্ছেদ “থাম্বনেইলারস” দেখুন।

আইকনের পাশে পাঠ্য

আইকন ভিউতে আইটেমের ক্যাপশনটি আইকনের নীচে না দিয়ে পাশে দেয়ার জন্য এই অপশনটি নির্বাচন করুন।

সাইড প্যান পছন্দসমূহ

শর্টকাট প্যান ও তিনটি প্যানের জন্য প্রদর্শন অপশনটি নির্বাচন করতে পারেন।

সাইড প্যান পছন্দসমূহ

সাইড প্যানটি আপনার ফাইল সিস্টেমের ফোল্ডারের শর্টকাটের একটি তালিকা অথবা ফাইল সিস্টেমের একটি ট্রিভিউ প্রদর্শন করবে। এই পৃষ্ঠায় শর্টকাট এবং ট্রি প্যানের আইকনের আকার নির্ধারন করা যায়। এর কোনো প্রতীক প্রদর্শিত হবে কিনা তাও আপনি নির্দিষ্ট করে দিতে পারেন।

আইকনের আকার

সাইডে প্রদর্শিত আইকনের আকার খুব ছোট (১৬x১৬ পিক্সেলের কাছাকাছি) থেকে খুব বড় (১২৮x১২৮ পিক্সেলের কাছাকাছি) পর্যন্ত।

আইকন প্রতীক প্রদর্শন করুন

সাইড প্যানে ফোল্ডারের প্রতীক প্রদর্শনের জন্য এই অপশনটি নির্বাচন করুন। আপনি বৈশিষ্ট্যাবলী ডায়ালগে ফোল্ডারের জন্য প্রতীক নির্ধারন করে দিতে পারেন। মেইন এরিয়া থেকে একটি ফোল্ডার নির্বাচন করুন এবং মেইন মেনু থেকে ফাইলবৈশিষ্ট্যাবলী... বাছাই করুন অথবা ফোল্ডারে ডান-ক্লিক করুন এবং প্রাসঙ্গিক-মেনু থেকে বৈশিষ্ট্যাবলী... নির্বাচন করুন।

আচরণ পছন্দসমূহ

ফাইল ম্যানেজারের সাথে যোগাযোগের জন্য আরও পছন্দসই কিছু নির্বাচন করতে পারেন।

আচরণ পছন্দসমূহ
আইটেমগুলো সক্রিয় করতে ক্লিক করুন

কোনো আইটেমে ক্লিক করে এর ডিফল্ট অ্যাকশন কার্যকর করার জন্য এই অপশনটি নির্বাচন করুন। অপশনটি নির্বাচিত হয়ার পর, আপনি যখন একটি আইটেম নির্দেশ করেন তখন এর শিরোনাম নিম্নরেখাঙ্কিত হয় এবং কিছু সময় পরই আইটেমটি স্বয়ংক্রিয়ভাবেই নির্বাচিত হয়।

অপশনের নিচে এই বিলম্বটি কনফিগার করা যায়। আপনি নির্বাচককে সর্ববামে সরিয়ে দিয়ে আইটেমের স্বয়ংক্রিয় নির্বাচন নিস্ক্রিয় করে দিতে পারেন।

আইটেমগুলো সক্রিয় করতে ডাবল ক্লিক করুন

আপনি যখন কোনো আইটেমে ডাবল-ক্লিক করেন তখন সেখানে ডিফল্ট অ্যাকশন কাজ করানোর জন্য এই অপশনটি নির্বাচন করুন এবং একটি ক্লিক করে আইটেমটি নির্বাচন করুন।

উচ্চ পর্যায়ের পছন্দসমূহ

আপনি ফাইল ব্যবস্থাপকের উচ্চপর্যায়ের বৈশিষ্টগুলো নিয়ন্ত্রন করতে পারবেন।

উচ্চ পর্যায়ের পছন্দসমূহ
ফোল্ডারের অনুমোদনসমূহ

আপনি একটি অ্যাকশন বাছাই করুন যা বৈশিষ্ট্যাবলী ডায়ালগের ফোল্ডারের অনুমোদনসমুহ পরিবর্তন করার সময় কাজ করবে। আপনি এমনভাবে বাছাই করতে পারেন যাতে আপনি যতবার ফোল্ডারের অনুমোদনসমুহ পরিবর্তন করবেন Thunar ততবার জিজ্ঞাসা করবে, যাতে শুধু ফোল্ডারে নতুন অনুমোদনসমুহ ব্যবহার করা হয় তা ডিফল্ট করতে বলে দেয়া হবে অথবা ফোল্ডারের বিষয়বস্তুতেও ব্যবহার করা হবে।

ভলিউম ম্যানেজমেন্ট

যদি HAL সমর্থন দ্বারা Thunar ইন্সটল করা হয় এবং thunar-volman প্যাকেজও ইন্সটল করা থাকে তবে আপনি ইন্টিগ্রেটেড ভলিউম ব্যবস্থাপক সক্রিয় করতে পারবেন। এই ফিচার সম্পর্কে বিস্তারিত জানতে অনুচ্ছেদ “স্থানান্তরযোগ্য ড্রাইভ এবং মিডিয়া ব্যবস্থাপনা” দেখুন।

diff -Nru thunar-1.2.3/docs/manual/html/bn/support.html thunar-1.6.10/docs/manual/html/bn/support.html --- thunar-1.2.3/docs/manual/html/bn/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -সাপোর্ট

সাপোর্ট

বাগ রিপোর্ট করতে অথবা এই অ্যাপ্লিকেশন বা ম্যানুয়েল সম্পর্কে কোনো পরামর্শ দিতে,

  • পুনরুদ্ধারযোগ্য. ডেভেলপার যদি বাগটি নিজে দেখতে না পান তবে বাগটি সংশোধন করতে পারবেনা। প্রতিটি বিবরনের মাধ্যমে আপনি তাকে সাহায্য করতে পারেন।

  • সুনির্দিষ্ট. যত দ্রুত ডেভেলপার একটি নির্দিষ্ট এরিয়ার সমস্যা বের করতে পারবে, তত দ্রুত এটা সমাধান করা যাবে।

আপনি যদি নতুন কোনো বৈশিষ্ট্যের জন্য অনুরোধ করতে চান সেই ক্ষেত্রে, এই অ্যাপ্লিকেশনে সেটি যোগ করা কেন ভাল হবে তা উল্লেখ করুন। আপনি যখন কোনো বৈশিষ্ট্য যোগ করতে চান তখন তার পক্ষে উপযুক্ত যুক্তি উপস্থাপন করুন।অনুরোধকৃত বৈশিষ্ট্য বাস্তবায়ন করে এমন প্যাচ উল্লেখ করলে বৈশিষ্টটি যোগ করা বেশী সহজ হয়, কিন্ত উৎসকে হ্যাকিং আপ করার পূর্বে HACKING ফাইলটি বিশেষ করে কোডিং শৈলী অবশ্যই পড়ে নিন।

অন্যথায়, সফটওয়্যার ইন্সটল ও ব্যবহার করা নিয়ে কোনো সমস্যা হলে, অনুগ্রহ করে thunar-dev মেইল তালিকা এ জিজ্ঞাসা করুন অথবা আপনার IRC ক্লায়েন্টকে irc.freenode.net এ পয়েন্ট করুন, #thunar চ্যানেলে যুক্ত হন এবং সহায়তা চান।

diff -Nru thunar-1.2.3/docs/manual/html/bn/the-file-manager-window.html thunar-1.6.10/docs/manual/html/bn/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/bn/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ফাইল ব্যবস্থাপক উইন্ডো

ফাইল ব্যবস্থাপক উইন্ডো

ডিফল্ট হিসাবে ফাইল ব্যবস্থাপক উইন্ডোতে বামে একটি শর্টকাট প্যান, ডানে মেইন এরিয়া এবং মেইন এরিয়ার উপরে পাথবার থাকে।

ফাইল ম্যানেজার উইন্ডো

শর্টকাট প্যান আপনার সিস্টেমে বিভিন্ন শর্টকাট সরবরাহ করে। প্রথম শর্টকাট আপনাকে প্রধান ফোল্ডার এ নিয়ে যাবে, যেখানে আপনার সকল ব্যক্তিগত ডাটা এবং বর্তমান ব্যবহারকারীর নামও থাকবে। আপনি দ্বিতীয় শর্টকাট দিয়ে ট্যাশ বিনে যেতে পারেন যেখানে মুছে ফেলা ফাইল জমা থাকে এবং সেখান থেকে আবার পরে পুনরুদ্ধার করা যায়। তৃতীয় শর্টকাট থেকে ডেক্সটপ ফোল্ডার এ যেতে পারবেন যেখানে ডেক্সটপে প্রদর্শিত ফাইল ও ফোল্ডার থাকে। চতুর্থ শর্টকাটটি আপনাকে ফাইল সিস্টেমের মূলে নিয়ে যাবে - আপনি যদি লিনাক্স/উইনিক্স ব্যবহারে নতুন হয়ে থাকেন তবে এটি এক্সপ্লোর করতে কিছুটা সমস্যা হতে পারে। বিভিন্ন ফোল্ডারে শুধু ক্লিক করুন এবং ভেতরে কি আছে দেখুন।

ফাইল সিস্টেম শর্টকাট এর নীচে স্থানান্তরযোগ্য ড্রাইভ ও মিডিয়া প্রদর্শিত হবে। উপরের স্ক্রিনশটে, আপনি একটি ফ্লপি ড্রাইভ শর্টকাট দেখতে পাবেন। শর্টকাটে ক্লিক করে স্থানান্তরযোগ্য ড্রাইভ ও মিডিয়াতে যে ডাটা জমা আছে তাতে প্রবেশ করতে পারেন। আরও তথ্যের জন্য অনুচ্ছেদ “স্থানান্তরযোগ্য মিডিয়া ব্যবহার করা হচ্ছে” দেখুন।

বাকী শর্টকাটগুলো ব্যবহারকারী দ্বারা নির্ধারিত। যেকোনো ফোল্ডার টেনে এনে শর্টকাট প্যান এ রেখে নিজের মত করে শর্টকাট তৈরী করা যায়। এর সাহয্যে খুব দ্রুত গুরুত্বপূর্ন ফোল্ডারে প্রবেশ করতে পারবেন। পূর্বে যোগ করা কোনো শর্টকাট অপসারন করতে, শর্টকাটে ডান ক্লিক করুন এবং শর্টকাট অপসারণ করুন বাছাই করুন। পূর্বে যোগ করা কোনো শর্টকাট পুনরায় নামকরন করতে, শর্টকাটে ডান ক্লিক করুন এবং শর্টকাট পুনরায় নামকরণ করুন বাছাই করুন। মনে রাখবেন, এ পদ্ধতিগুলো কেবল শর্টকাটের জন্যই প্রযোজ্য, শর্টকাট থেকে রেফারেন্সপ্রাপ্ত ফোল্ডারের জন্য নয়।

মেইন এরিয়া সর্বদা বিদ্যমান ফোল্ডারের বিষয়বস্তু প্রদর্শন করে। ফোল্ডারে প্রবেশ করার জন্য ফোল্ডারে ডবল ক্লিক করুন, এবং ফাইল অথবা ফোল্ডারে ডান-ক্লিক করলে একটি প্রসঙ্গ-মেনু আসে যেখান থেকে আপনি কি করতে চান তা বাছাই করা যায়। মাউসের সাহায্যে একটি অায়তক্ষেত্র টেনে একসাথে কয়েকটি ফাইল নির্বাচন করা যায়। অন্যথায়, একটি ফাইল নির্বাচন করে Shift কী টি ধরে রেখে ও তীরচিহ্নিত কী ব্যবহার করে নির্বাচিত ফাইলের সংখ্যা বাড়ানো বা কমানো যায়।

পাথবার সর্বদা আপনি যে ফোল্ডারে আছেন সেখানে যাওয়ার পাথ প্রদর্শন করে। আপনি যেকোনো পাথবার বোতামে ক্লিক করে যে ফোল্ডার দ্বারা একে প্রকাশ করা হয় তা পরিবর্তন করতে পারেন। কিছু অপশনসহ প্রসঙ্গ-মেনু আনার জন্য পাথবার বোতামে ডান-ক্লিক করুন।

অবয়ব পছন্দসই করা হচ্ছে

ফাইল ব্যবস্থাপক উইন্ডো এর অবয়ব পছন্দনীয় করে তোলার আরও অনেক উপায় রয়েছে। আইকনগুলো আপনার পছন্দানুসারে প্রদর্শিত না থাকে তবে বর্তমান ফোল্ডারের বিষয়বস্তু তালিকা আকারে প্রকাশের জন্য প্রধান মেনু থেকে প্রদর্শনবিস্তারিত তালিকা আকারে প্রদর্শন করুন বাছাই করুন।

প্রধান মেনু থেকে প্রদর্শনস্থান নির্বাচকটুলবার শৈলী বাছাই করে ফাইল ম্যানেজার উইন্ডোতে পাথবারের এর পরিবর্তে অবস্থানবার রাখতে পারেন।

আপনি বাম প্যানে একটি ট্রিভিউ পছন্দ করার ক্ষেত্রে, প্রধান মেনু থেকে প্রদর্শনসাইড প্যানট্রি বাছাই করুন।

বিস্তারিত তালিকা ভিউতে দৃশ্যমান কলাম

আপনি যদি ফোল্ডারের বিষয়বস্তু তালিকা আকারে প্রদর্শন করতে পছন্দ করেন তাহলে, বিস্তারিত তালিকা প্রদর্শন ব্যবহার করে তালিকা প্রদর্শনীতে প্রদর্শিত কলামকে পছন্দীয় করে সাজাতে পারবেন। দৃশ্যমান কলামকে পছন্দনীয় করে সাজানোর জন্য প্রধান মেনু থেকে প্রদর্শনকলাম সাজান... বাছাই করুন।

দৃশ্যমান কলাম
দৃশ্যমান কলাম

বিদ্যমান কলামের তালিকা থেকে আপনি যে কলামটি প্রদর্শন করতে চান তা নির্বাচন করুন। কলামের বিন্যাস পরিবর্তন করার জন্য উপরে যান অথবা নিচে নামুন ক্লিক করুন। আবার পূর্ববর্তী অবস্থা ফিরে পেতে ডিফল্ট ব্যবহার করুন ক্লিক করুন।

কলামের আকার পরিবর্তন করা

আপনি যদি স্বয়ংক্রিয়ভাবে তালিকা প্রদর্শন কলাম প্রসারন করতে চান এবং টেক্সট সম্পূর্নরূপে দৃশ্যমান কিনা তা নিশ্চিত হতে চান তবে প্রয়োজনানুসারে স্বয়ংক্রিয়ভাবে কলাম প্রসারন অপশনটি নির্বাচন করুন।

diff -Nru thunar-1.2.3/docs/manual/html/bn/using-removable-media.html thunar-1.6.10/docs/manual/html/bn/using-removable-media.html --- thunar-1.2.3/docs/manual/html/bn/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -স্থানান্তরযোগ্য মিডিয়া ব্যবহার করা হচ্ছে

স্থানান্তরযোগ্য মিডিয়া ব্যবহার করা হচ্ছে

স্থানান্তরযোগ্য মিডিয়ায় কাজ করা হচ্ছে

যদি HAL কে সমর্থন করার মত করে তৈরি করা হয় অথবা আপনি FreeBSD ব্যবহার করছেন এমন হয় তবে Thunar স্থানান্তরযোগ্য মিডিয়াকে সমর্থন করে। উপরন্তু লক্ষ্য করুন যে FreeBSD 6.0 অথবা এর নতুনটায় Thunar এর স্থানীয় সমর্থন ব্যবহার না করে HAL ব্যবহারের জন্য পরামর্শ দেয়া আছে।

মিডিয়া মাউন্ট করতে

মাউন্ট মিডিয়ায় মাউন্ট করে মিডিয়ার ফাইল সিস্টেম চালানো যায়। আপনি যখন মিডিয়ায় মাউন্ট করেন, তখন আপনার ফাইল সিস্টেমের সাথে সাব-ডিরেক্টরি হিসাবে মিডিয়ার ফাইল সিস্টেম সংযুক্ত থাকে।

মিডিয়া চালানোর জন্য একে যথাযথ ডিভাইসে প্রবেশ করান বা নতুন ডিভাইসটিকে কম্পিউটারের সাথে সংযুক্ত করুন (যেমন, USB পোর্টে USB স্টিক সংযুক্ত করুন)। মিডিয়াকে প্রতিনিধিত্ব করে এমন একটি অবজেক্ট ফাইল ব্যবস্থাপকের সাইড প্যানে সংযুক্ত থাকে। যদি xfdesktop চালু থাকে এবং ফাইল/লঞ্চার আইকন প্রদর্শন করার জন্য কনফিগার করা থাকে তবে এই অবজেক্টটি আপনার ডেক্সটপে সংযুক্ত হয়ে যাবে।

মিডিয়া মাউন্ট করার জন্য যে অবজেক্টটি দ্বারা একে তার উপর ক্লিক করুন। যেমন, ফ্লপি ডিসকেট মাউন্ট করতে সাইড প্যানের ফ্লপি ড্রাইভ অবজেক্টিতে ক্লিক করুন। ফাইল ম্যানেজার মিডিয়ার ফাইল সিস্টেমকে আপনার ফাইল সিস্টেম স্তরায়নে যোগ করবে এবং মেইন এরিয়ায় ফ্লপি ডিসকেটের বিষয়বস্তু প্রদর্শন করবে।

মিডিয়া অপসারন করতে

মিডিয়ার ড্রাইভটি যদি মোটরাইজড্ ড্রাইভ হয় (যেমন, CD-ROM ড্রাইভ) তবে সাইড প্যান বা ডেক্সটপের মিডিয়া অবজেক্টের উপর ডান-ক্লিক করুন এবং ইজেক্ট ভলিউম বাছাই করুন। কয়েক সেকেন্ডের মধ্যেই মিডিয়াটি ড্রাইভ থেকে বের হয়ে আসে। মিডিয়ার ড্রাইভটি যদি মোটরাইজড্ না হয় (যেমন, ফ্লপি ড্রাইভ বা USB স্টিক) তবে মিডিয়া অবজেক্টের উপর ডান-ক্লিক করুন এবং আনমাউন্ট ভলিউম বাছাই করুন। অল্প কিছু সময় পরই একটি ঘোষনার সাহায্যে আপনাকে জানানো হবে যে এখন মিডিয়াটি অপসারন করা বা ড্রাইভটি কম্পিউটার থেকে বিচ্ছিন্ন করা নিরাপদ।

আনমাউন্ট ঘোষনা

উপরন্তু লিবনোটিফাই এর সমর্থন সক্রিয় থাকলে এবং প্রাক বিজ্ঞপ্তি ইন্সটল করা থাকলেই কেবল এই ঘোষনাটি প্রদর্শিত হবে। Xfce এর প্রাক বিজ্ঞপ্তি Xfce গুডিজ প্রজেক্ট এ পাওয়া যায়। যদি ঘোষনার সমর্থন পাওয়া না যায় তবে মিডিয়াটি অপসারণ বা ড্রাইভটি বিচ্ছিন্ন করার আগে প্রাসঙ্গিক-মেনু চলে যাওয়া পর্যন্ত অপেক্ষা করুন।

এক বা একাধিক অ্যাপ্লিকেশনে ব্যবহৃত হওয়ার সময় মিডিয়াটি বের করা বা আনমাউন্ট করা থেকে বিরত থাকুন। অতএব যদি ফাইল ব্যবস্থপক মিডিয়াটি বের করতে না চায় তবে যে সকল অ্যাপ্লিকেশন মিডিয়াতে চলছে সেগুলো বন্ধ কিনা তা নিশ্চিত হয়ে নিন এবং টার্মিনাল উইন্ডোজে কমান্ড লাইন অ্যািপ্লকেশন চলছে কিনা তা যাচাই করে নিন।

স্থানান্তরযোগ্য মিডিয়া বের করার আগে অবশ্যই আনমাউন্ট করে নিন। ফ্লপি ড্রাইভ থেকে ডিসকেটটি আনমাউন্ট না করে বের করবেন না। ফ্ল্যাশ ড্রাইভ থেকে USB স্টিক আনমাউন্ট না করে বের করবেন না। আপনি যদি প্রথমে মিডিয়াকে আনমাউন্ট করে না নেন তবে আপনি ডাটা হারাতে পারেন বা সিস্টেম ক্র্যাশও করতে পারে।

স্থানান্তরযোগ্য ড্রাইভ এবং মিডিয়া ব্যবস্থাপনা

যদি আপনার সিস্টেমে thunar-volman প্যাকেজটি ইন্সটল করা থাকে তবে Thunar স্বয়ংক্রিয়ভাবে স্থানান্তরযোগ্য মিডিয়াকে নিয়ন্ত্রন করতে পারে। উপরন্তু মনে রাখুন, এই বৈশিষ্ট্যের জন্য HAL সমর্থন প্রয়োজন।

এখন যদি HAL সমর্থন পাওয়া যায় এবং আপনার সিস্টেমে thunar-volman ইন্সটল করা থাকে তাহলে আপনি Thunar এর ভলিউম ম্যানেজমেন্ট বৈশিষ্টটি সক্রিয় করতে পারেন। অতএব, ফাইল ব্যবস্থাপক পছন্দসমুহ খুলুন, উচ্চ পর্যায়ের পৃষ্ঠায় যান এবং ভলিউম ব্যবস্থাপনা সক্রিয় করুন বোতাম পরীক্ষা করে নিন।

পরবর্তী ধাপ হল স্থানান্তরযোগ্য ড্রাইভ ও মিডিয়াকে আপনার প্রয়োজনানুসারে পছন্দনীয় করে তোলা। বোতামের ডানে নীচে, ভলিউম ব্যবস্থাপনা সেকশনের কনফিগার লিংকে ক্লিক করুন। স্থানান্তরযোগ্য ড্রাইভ এবং মিডিয়া কনফিগারেশন ডায়ালগ প্রদর্শিত হবে।

স্থানান্তরযোগ্য ড্রাইভ এবং মিডিয়া

আপনি যদি আগেই জিনোম-ভলিউম-ম্যানেজার ব্যবহার করে থাকেন তবে আপনার জন্য খুবই ভাল, কারণ একে জিনোম-ভলিউম-ম্যানেজার এর মত করেই তৈরি করা হয়েছে। সুনির্দিষ্ট ডিভাইসের অপশন কোথায় আছে তা বের করার সুবিধার্তে পছন্দসমুহ বিিভন্ন শ্রেনীর ডিভাইস অনুসারে বিভক্ত করা আছে।

স্টোরেজ পৃষ্ঠায় সবচেয়ে গুরুত্বপূর্ন অপশনসমূহ থাকে। নাম থেকে বোঝা যায় এই অপশনগুলো কেবল স্টোরেজ ডিভাইস যেমন বাহ্যিক হার্ডডিস্ক ড্রাইভ, USB স্টিক এবং CD-ROM এর জন্যই প্রযোজ্য। স্থানান্তরযোগ্য স্টোরেজ অপশনটি নিচে বর্ণনা করা আছে।

হট-প্লাগড্ হলে স্থানান্তরযোগ্য ড্রাইভ মাউন্ট করুন

যখন স্থানান্তরযোগ্য ড্রাইভ কম্পিউটারে প্লাগ করা থাকে তখন এই ধরনের ড্রাইভে (যেমন, বাহ্যিক হার্ডডিস্ক ড্রাইভ বা USB স্টিক) ফাইল সিস্টেমকে স্বয়ংক্রিয়ভাবে মাউন্ট করতে এই অপশনটি সক্রিয় করুন।

অন্যান্য ফিচারে স্থানান্তরযোগ্য ড্রাইভ দিয়ে কাজ করতে এই অপশনটি সক্রিয় করতে হবে। যেমন, আপনি যদি এই অপশনটি নিস্ক্রিয় করে দেন তবে কিছু পোর্টেবল মিউজিক প্লেয়ার আর খুঁজে বের করা যাবেনা এবং মাল্টিমিডিয়া পৃষ্ঠায় সংযুক্ত থাকা অবস্থায় মিউজিক ফইল চালান অপশন সক্রিয় করলেও আপনার মিউজিক প্লেয়ারকে হট-প্লাগ করে সুনির্দিষ্ট কমান্ড চালানো যাবে না।

প্রবেশ করানোর সময় স্থানান্তরযোগ্য মিডিয়াকে মাউন্ট করুন

আপনি যখন ড্রাইভে মিডিয়াটি প্রবেশ করাবেন তখন স্থানান্তরযোগ্য মিডিয়ায় (যেমন, CD-ROMs অথবা DVDs) ফাইল সিস্টেমকে স্বয়ংক্রিয়ভাবে মাউন্ট করতে এই অপশনটি সক্রিয় করুন।

অন্যান্য ফিচারের জন্য স্থানান্তরযোগ্য মিডিয়ার সাহায্যে কাজ করতে এই অপশনটি সক্রিয় করতে হবে। যেমন, আপনি যদি এই অপশনটি নিস্ক্রিয় করে দেন তবে স্থানান্তরযোগ্য মিডিয়ার অটো-রান ক্ষমতা আছে কিনা তা বের করা অসম্ভব হয়ে যায় এবং নতুন ড্রাইভ ও মিডিয়ায় অটো-রান প্রোগ্রাম অপশনটির স্থানান্তরযোগ্য মিডিয়ায় কোনো প্রভাব থাকে না।

প্রবেশ করানোর পর স্থানান্তরযোগ্য মিডিয়াটি ব্রাউজ করুন

ফাইল ব্যবস্থাপকে নতুনভাবে প্রবেশ করানো মিডিয়ার বিষয়বস্তু স্বয়ংক্রিয়ভাবে প্রদর্শন করতে এই অপশনটিকে সক্রিয় করুন। উপরন্তু মনে রাখুন, যদি অন্য কোনো অ্যাকশন ব্যবহৃত না হয় বা অন্য সব অ্যাকশনকে উপেক্ষা করা হয় তবেই কেবল বিষয়বস্ত প্রদর্শিত হবে। যেমন, আপনি যদি অটো-রান ক্ষমতা সম্পন্ন CD-ROM প্রবেশ করান এবং নতুন ড্রাইভ ও মিডিয়াতে অটো-রান প্রোগ্রাম অপশনটি সক্রিয় করেন তবে আপনি অটো-রানের অনুমোদন দিবেন না উপেক্ষা করবেন তা নির্বাচন করতে পারবেন। আপনি যদি অটোরান বাছাই না করেন তবে বিষয়বস্তু ফাইল ম্যানেজারে প্রদর্শিত হবে।

নতুন ড্রাইভ ও মিডিয়ায় অটো-রান প্রোগ্রাম

নির্দিষ্ট কিছু স্থানান্তরযোগ্য ড্রাইভ ও মিডিয়ার জন্য অটো-রান ক্ষমতা ব্যবহার করতে এই অপশনটি সক্রিয় করুন। অটো-রান পদ্ধতি সম্পর্কে আরও জানার জন্য ডেক্সটপ অ্যাপ্লিকেশন অটোস্টার্ট স্পেসিফিকেশন দেখুন। বাড়তি নিরাপত্তার জন্য আপনাকে সবসময় অটোরান নিশ্চিত করতে বলা হয়ে থাকে।

আপনার সিস্টেমে যদি উইন্ডোজ ইমিউলেটর WINE ইনস্টল করা থাকে, তবে অটো-রান পদ্ধতি WINE ব্যবহার করে autorun.exe ফাইল চালানোর চেষ্টা করবে।

নতুন ড্রাইভ ও মিডিয়ায় অটো-ওপেন ফাইল

নির্দিষ্ট স্থানান্তরযোগ্য ড্রাইভ ও মিডিয়ার অটো-ওপেন ক্ষমতা তৈরি করতে এই অপশনটি সক্রিয় করুন। অটো-ওপেন পদ্ধতি সম্পর্কে বিস্তারিত জানতে ডেক্সটপ অ্যাপ্লিকেশন অটোস্টার্ট স্পেসিফিকেশন দেখুন। নিরাপত্তা বৃদ্ধির জন্য, সর্বদা আপনাকে অটো-ওপেন অপশনটি নিশ্চিত করতে বলা হবে।

যখন ড্রাইভে নির্দিষ্ট মিডিয়া প্রবেশ করানো থাকে অথবা বাহ্যিক কোনো ডিভাইস সংযুক্ত থাকে তখন অবশিষ্ট অপশনসমূহ আপনাকে নির্দিষ্ট কমান্ড চালাতে অনুমতি দিবে। কমান্ড তিন ধরনের চালক ব্যবহার করতে পারে, কমান্ড যখন চালু হয় তখন এটি প্রতিস্থাপিত হয়:

%d

কমান্ডে %d এর প্রতিটি অবয়ব নতুন সংযুক্ত ডিভাইসের ডিভাইস ফাইল পাথ দ্বারা প্রতিস্থাপিত হবে। উদাহরণস্বরূপ, আপনি যদি USB স্টিক সংযুক্ত করেন, তবে ডিভাইস ফাইল পাথ /dev/da0s1 অথবা /dev/sda1 হবে।

যদি ডিভাইসের সাথে কোনো ডিভাইস ফাইল যুক্ত না থাকে অথবা কোনো কারণে ডিভাইস ফাইলটি পাওয়া না যায়, তবে %d চলকটি খালি স্ট্রিং দ্বারা প্রতিস্থাপিত হবে।

%h

কমান্ডে %h এর প্রতিটি অবয়ব নতুন সংযুক্ত ডিভাইসের HAL UDI দ্বারা প্রতিস্থাপিত হবে।

%m

যেখানে নতুনভাবে সংযুক্ত ডিভাইস মাউন্ট করা আছে সেখানে কমান্ডে %m এর প্রত্যেকটি অবয়ব মাউন্ট পয়েন্ট দ্বারা প্রতিস্থাপিত হবে। যদি ডিভাইসটি মাউন্ট করতে না পারেন (যেমন, মুদ্রনযন্ত্র বা কীবোর্ড) অথবা স্বয়ংক্রিয় মাউন্টিং যদি নিস্ক্রিয় করা থাকে তবে, %m খালি স্ট্রিং দ্বারা প্রতিস্থাপিত হবে।

ভলিউম ব্যবস্থাপকের কারিগরী সমস্যার সমাধান করা হচ্ছে

ভলিউম ব্যবস্থাপক প্রত্যাশিত কাজ না করে সেই ক্ষেত্রে সমস্যা সমাধানের জন্য কার্যকরী পরামর্শ।

  1. নিশ্চিত হয়ে নিন যে Thunar ডিমন হিসাবে চলছে। ভলিউম ব্যবস্থাপক এর উপর নির্ভর করে, কারণ এটি নিজে ডিমন হিসাবে নেই। ডিফল্ট হিসাবে প্রথমেই Xfce স্বয়ংক্রিভাবেই Thunarকে ডিমন হিসাবে ধারণ করে। এটি যদি কোনো কারণে ধ্বংস হয়ে যায় তবে প্রোগ্রাম চালান (কীবোর্ড শর্টকাট ব্যবহার করে Alt+F2 খুলুন অথবা ডেক্সটপে ডান ক্লিক করে ডেক্সটপ থেকে প্রোগ্রাম চালানো... বাছাই করুন, Thunar --ডিমন দিন এবং চালান এ ক্লিক করুন।

  2. ড্রাইভটি হট-প্লাগ করে বা মিডিয়া প্রবেশ করানোর পর টার্মিনাল উইন্ডো থেকে thunar-volman চালানোর চেষ্টা করুন। প্রথমে, আপনাকে lshal অথবা hal-device ব্যবহার করে নতুন ডিভাইসের HAL UDI খুঁজে বের করে নিতে হবে। আপনি একবার UDI সম্পর্কে জেনে যাবার পর টার্মিনাল উইন্ডোতে thunar-volman --সংযুক্ত ডিভাইস<আপনার ডিভাইসের udi> চালান এবং ভুল ও সতর্কবানীর আউটপুট দেখুন।

এরপরও যদি কাজ না করে তবে Xfce ফোরাম অথবা thunar-dev মেইল তালিকা এ সাহায্য চান।

diff -Nru thunar-1.2.3/docs/manual/html/bn/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/bn/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/bn/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/bn/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -ফাইল এবং ফোল্ডারে কাজ করা হচ্ছে

ফাইল এবং ফোল্ডারে কাজ করা হচ্ছে

ফাইল খোলা হচ্ছে

যখন আপনি একটি ফাইল খুলবেন, সেই ধরনের ফাইলের জন্য ফাইল ব্যবস্থাপকই পূর্বনির্ধারিত কাজগুলো করে দেয়। যেমন, কোনো টেক্সট ফাইল খোলা হলে তা ডিফল্ট টেক্সট সম্পাদকে প্রদর্শিত হবে, যখন ছবি ফাইল খোলা হবে ছবিটি ডিফল্ট ছবি প্রদর্শকের সাহায্যে ছবিটি প্রদর্শিত হবে।

ফাইল ব্যবস্থাপক ফাইলের ধরন বের করার জন্য ফাইলের বর্ধিতাংশ পরীক্ষা করে। ফাইলে যদি কোনো বর্ধিতাংশ না থাকে, তবে ফাইল ব্যবস্থাপক ফাইলের বিষয়বস্তু পরীক্ষা করে।

ডিফল্ট অ্যাকশন চালানো হচ্ছে

ফাইলের ডিফল্ট কার্যকর করতে, ফাইলটির উপর ডাবল ক্লিক করুন। যেমন, অডিও ফাইলের জন্য ডিফল্ট অ্যাকশন হল ডিফল্ট মিউজিক প্লেয়িং অ্যাপ্লিকেশনের সাহায্যে একে চালানো। এই ক্ষেত্রে, মিউজিক প্লেয়ারে ফাইলটি খোলার জন্য ফাইলের উপর ডাবল ক্লিক করুন।

Thunar পছন্দসমুহ নির্ধারন করলে কোনো ফাইলের উপর একবার ক্লিক করলেই ডিফল্ট অ্যাকশন কার্যকর হয়ে যাবে। তথ্যের জন্য অনুচ্ছেদ “আচরণ পছন্দসমূহ” দেখুন।

পূর্বনির্ধারিত না এমন কাজ চালানো হচ্ছে

ফাইলের জন্য ডিফল্ট অ্যাকশন ছাড়া অন্য কোনো অ্যাকশন কার্যকর করতে, আপনি যে ফাইলটি নিয়ে কাজ করতে চান তা নির্বাচন করুন। ফাইল মেনু বা অন্য অ্যাপ্লিকেশনে খুলুন সাবমেনুতে প্রাপ্য অন্য অ্যাপ্লিকেশনে খুলুন পছন্দসমূহ থেকে আপনার কাঙ্ক্ষিত অ্যাকশন বাছাই করুন।

অ্যাকশন যোগ করা হচ্ছে

ফাইলের ধরনের সাথে সংশ্লিষ্ট অ্যাকশন সংযুক্ত করতে নিম্নোক্ত ধাপগুলো অনুসরন করুন:

  1. আপনি যে ধরনের ফাইলে কোনো অ্যাকশন সংযুক্ত করতে চান মেইন এরিয়ায় তা নির্বাচন করুন।

  2. মেইন মেনু থেকে ফাইলঅন্য অ্যাপ্লিকেশনে খুলুন... বাছাই করুন।

  3. অন্য অ্যাপ্লিকেশনে খুলুন ডায়ালগে একটি অ্যাপ্লিকেশন বাছাই করুন অথবা একটি পছন্দনীয় কমান্ড ব্যবহার করুন নির্বাচন করুন এবং এটি যে প্রোগ্রামের সাহয্যে খুলতে চান তা ব্রাউজ করুন।

আপনি যে অ্যাকশনটি বাছাই করেছেন তা এখন আপনার নির্দিষ্ট ফাইল টাইপের অ্যাকশন তালিকায় সংযুক্ত হয়ে গিয়েছে। আপনি যদি এই ধরনের ফাইলের জন্য ডিফল্ট হিসেবে ব্যবহার করুন অপশনটি সক্রিয় করেন অথবা পূর্ববর্তী কোনো অ্যাকশন সংযুক্ত করা ছিল না এমন হয় তবে, নতুন যুক্ত অ্যাকশনটাই ডিফল্ট হিসাবে রয়ে যাবে।

আপনি ফাইলবৈশিষ্ট্যাবলী... এর আওতায় -অন্য অ্যাপ্লিকেশনে খুলুনবোতাম ব্যবহার করেও অ্যাকশনটি সংযুক্ত করতে পারেন।

অ্যাকশন পরিবর্তন করা হচ্ছে

ফাইল অথবা ফাইল টাইপের সাথে সংযুক্ত অ্যাকশন পরিবর্তন করার জন্য নিম্নোক্ত ধাপগুলো অনুসরন করুন:

  1. যে ফাইলে কোনো অ্যাকশন পরিবর্তন করতে চান তা মেইন এরিয়াতে নির্বাচন করুন।

  2. মেইন মেনু থেকে ফাইলবৈশিষ্ট্যাবলী... বাছাই করুন।

  3. অন্য অ্যাপ্লিকেশনে খুলুন বোতাম ব্যবহার করে নতুন ডিফল্ট অ্যাকশন নির্বাচন করুন অথবা ড্রপ ডাউন মেনু থেকে অন্য অ্যাপ্লিকেশনে খুলুন... বাছাই করেও নতুন অ্যাকশন সংযুক্ত করতে পারেন।

কোনো ফাইল টাইপের জন্য পূর্বে যোগ করা কোনো অ্যাকশন মুছে ফেলতে উপরের বর্ণনানুসারে অন্য অ্যাপ্লিকেশনে খুলুন ডায়ালগ গড়ে তুলুন, যে অ্যাকশনটি অপসারন করতে চান তার উপর ডান-ক্লিক করুন এবং লঞ্চার অপসারন বাছাই করুন।

ফাইলের বৈশিষ্ট্যাবলী

ফাইল প্রপাটিজ উইন্ডো ফাইল ম্যানেজারের যেকোনো ফাইল বা ফোল্ডাররের বেশি তথ্য প্রদর্শন করে। এই উইন্ডোর সাহায্যে আপনি নিম্নোক্ত কাজগুলোও করতে পারেন:

  • বিশেষ ফাইলের জন্য আইকন পরিবর্তন করুন, যেমন অ্যাপ্লিকেশন লঞ্চার এবং URL লিংক।

  • ফাইল বা ফোল্ডারের প্রতীক যোগ করুন অথবা মুছে ফেলুন।

  • ফাইল অথবা ফোল্ডােরর UNIX ফাইল অনুমোদন পরিবর্তন করুন।

  • একটি ফাইল এবং একই ধরনের অন্যান্য ফাইল খুলতে কোন অ্যাপ্লিকেশন ব্যবহার করা হয় তা বাছাই করুন।

ফাইলের বৈশিষ্ট্যাবলী

ফাইল প্রপাটিজ উইন্ডো খোলার জন্য নিম্নোক্ত ধাপগুলো অনুসরন করুন:

  1. আপনি যে ফাইল বা ফোল্ডারের বৈশিষ্ট্যাবলী পরীক্ষা বা পরিবর্তন করতে চান তা নির্বাচন করুন। একসাথে একাধিক আইটেম নির্বাচন করা যায় না এবং সব আইটেমেই বিদ্যমান আছে এমন বৈশিষ্ট্যাবলী প্রদর্শন করতে পারে না।

  2. নিম্নের একটি কাজ করুন:

    • মেইন মেনু থেকে ফাইলবৈশিষ্ট্যাবলী... বাছাই করুন।

    • নির্বাচিত আইটেমে ডান-ক্লিক করুন এবং প্রাসঙ্গিক-মেনু থেকে বৈশিষ্ট্যাবলী... বাছাই করুন।

    • Alt+রিটার্ন চাপুন।

diff -Nru thunar-1.2.3/docs/manual/html/C/advanced-topics.html thunar-1.6.10/docs/manual/html/C/advanced-topics.html --- thunar-1.2.3/docs/manual/html/C/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -Advanced Topics

Advanced Topics

To Bulk Rename Files

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

Bulk Rename Files

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • Remove characters.

  • Numbering files.

  • Insert Date or Time.

  • Insert or overwrite characters.

  • Search and replace characters.

  • Convert to uppercase, lowercase or camlcase.

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

The UNIX File System

- While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user - does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. - This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all - incarnations of UNIX, including Linux. -

Folders and Paths

- In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down - from a single top level folder, which is called the root directory (the term - directory is often used instead of folder) and displayed as - File System in Thunar. This means that you can get from any folder to any other by going - up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach - your target. -

- The position of any file or folder in the tree can be described by its path. The path is the - list of folders you would have to descend through to get to the target folder or file, starting from the top level - folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, - and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The - leading / in these paths represents the top level folder. -

- Every user has their own folder to hold their personal files and settings. This folder is called the home - directory and is displayed in Thunar as special icon with the users login name. The folder is similar to - the My Files folder known from Windows. The home directories of the various - users in a system are usually located below the /home folder. For example - /home/luke would be the home directory of the user with the login name - luke, while /home/jane would be - the home directory for the user with the login name jane. -

File Types

- You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems - today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is - one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other - operating systems had to introduce new concepts for every new technology. -

- These are the four most important types of files in the UNIX file system. -

Ordinary Files

- An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents - and video files. The term file is often used to refer to an ordinary file. -

Folder Files

- Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a - mapping of file names to file references for every file contained within this folder. -

Symbolic Link Files

- A Symbolic link (often called a symlink) is a special file that contains a path to - another file in the file system. Symbolic link files therefore do not contain any useful information - themselves, but just refer to other files. -

Device Files

- As mentioned earlier (most) devices are also accessed through the file system. These special device files are - usually located in the /dev folder. For example the special file - /dev/hda represents the first IDE disk on Linux. -

diff -Nru thunar-1.2.3/docs/manual/html/C/copyright.html thunar-1.6.10/docs/manual/html/C/copyright.html --- thunar-1.2.3/docs/manual/html/C/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -About Thunar

About Thunar

- Thunar was written by Benedikt Meurer (). Visit the - Thunar website for more information. -

- This documentation was written by Benedikt Meurer (). The latest - version of this document is always available from the Thunar website. -

- This software is distributed 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. -

- 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. -

diff -Nru thunar-1.2.3/docs/manual/html/C/customizing-thunar.html thunar-1.6.10/docs/manual/html/C/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/C/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -Customizing Thunar

Customizing Thunar

- This chapter describes how to customize certain parts of the file manager to your own needs. -

The "Send To" Menu

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

"Send To" Menu

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

The desired size of the generated thumbnail in pixels. This parameter is optional.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

- Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

- This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). -

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

- to terminate any running instance, and afterwards restart it from your launcher. -

Cleaning up Thumbnails

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

- which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. -

diff -Nru thunar-1.2.3/docs/manual/html/C/faq.html thunar-1.6.10/docs/manual/html/C/faq.html --- thunar-1.2.3/docs/manual/html/C/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -Frequently Asked Questions

Frequently Asked Questions

- The intent of this section is to collect the quite numerous frequently asked - questions that relate to working with Thunar. If you know of a question that - is missing from this page, please file - a request. -

Why doesn't Thunar execute files marked as executable?

- For security reasons Thunar only executes files of type application/x-desktop, - application/x-executable and application/x-shellscript. For - desktop files the execution feature will only be enabled if the desktop file is of type - Application and a valid Exec line is given or of type - Link and a valid URL is given. For the other types the feature - is available if the file is marked executable for the current user. -

- Also note that for application/x-executable and application/x-shellscript, - the types of the file don't really need to match these types exactly, but it is suffice if the detected - type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for - one of the above. -

Where does Thunar store the metadata associated with files?

- Thunar associates various settings with files/folders, which we call metadata. - This metadata for all files is stored in tdb database file, which is called - the metafile. The database file is stored in - $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined - using the tdbtool, which is part of the Thunar distribution - (located in the tdb/ subdirectory). -

Where does Thunar store its preferences?

- Thunar stores the user configurable preferences (and hidden settings) in - an .ini file, which is located at - $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined - using a text editor. See docs/README.thunarrc for an - overview of the various preferences. -

How to use mouse gestures in Thunar?

- Thunar currently features basic support for so called mouse gestures - in its icon view. You can use these mouse gestures by holding down - the middle mouse button (usually the mouse wheel) while the mouse pointer is on the - background area of the icon view component (any area that is not covered by - an icon or a text). Now you can move the cursor into four directions to - perform certain actions, which are described below. -

Left - opens the previous visited folder
Up - opens the parent folder
Right - opens the next visited folder
Down - reloads the current folder

How do I assign different keyboard shortcuts?

- If you want to rebind a shortcut, Thunar supports the standard GTK+ way - of changing shortcuts: simply hover over the menu option with the mouse - pointer and press the keyboard shortcut you want to rebind it to. -

- To delete a keyboard assignment, press the Backspace key - while you are on the menu entry. -

- If the shortcut doesn't change, then you need to enable the feature in - GTK+. This can be achieved in 3 ways: -

  • - If you are running Xfce 4.3 or above then you can enable Editable - menu accelerators in the User Interface Preferences - dialog. -

  • - If you are running GNOME then you can enable Editable menu - accelerators in the Menu and Toolbars control - center dialog. -

  • - Otherwise put the following in your ~/.gtkrc-2.0 file - (create the file if it doesn't exist):

    gtk-can-change-accels=1

    -

Where does Thunar store the keyboard shortcuts?

- The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a - file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting - with ; are comments. See the GTK+ documentation for details about the - file format. -

- If you are a packager or a system administrator and want to provide a system wide default - for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you - can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. - For example, if /etc/xdg is part of $XDG_CONFIG_DIRS - (the default for most Linux distributions), you can install system wide defaults to - /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup. -

diff -Nru thunar-1.2.3/docs/manual/html/C/index.html thunar-1.6.10/docs/manual/html/C/index.html --- thunar-1.2.3/docs/manual/html/C/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Thunar File Manager

Thunar File Manager

Benedikt Meurer

Software developer
os-cillation
System development


- This manual describes version 1.2.0git-cc468f4 of Thunar. -

- Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 or - any later version published by the Free Software Foundation; with no - Invariant Sections, with no Front-Cover Texts, and with no Back-Cover - Texts. The complete license text is available from the Free Software Foundation. -

November 2007


Introduction to Thunar

- Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to - be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless - options by default. Thunar is fast and responsive with a good start up time and folder load time. -

- The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the - file manager to do the following: -

  • Create folders and documents.

  • Display your files and folders.

  • Manage your files and folders.

  • Run and manage custom actions.

  • Access Removable Media.

diff -Nru thunar-1.2.3/docs/manual/html/C/preferences.html thunar-1.6.10/docs/manual/html/C/preferences.html --- thunar-1.2.3/docs/manual/html/C/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -File Management Preferences

File Management Preferences

- Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. -

- The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: -

  • The default settings for the views.

  • The default settings for the side pane.

  • The behavior of the file manager windows.

  • Advanced features of the file manager.

- Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. -

Views Preferences

- You can specify a default view, select sort options and display options. You can - also specify whether thumbnails should be displayed for file types that support - this. -

Views Preferences
View new folder using

- Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. -

Sort folders before files

- Select this option to list folders before files when you sort a folder. -

Show thumbnails

- Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. -

- See the section called “Thumbnailers” if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. -

Text beside icons

- Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. -

Side Pane Preferences

- You can select display options for the shortcuts pane and the tree pane. -

Side Pane Preferences

- The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. -

Icon Size

- The size of the icons displayed in the side, ranging from Very Small (around - 16x16 pixels) to Very Large (around 128x128 pixels). -

Show Icon Emblems

- Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. -

Behavior Preferences

- You can select the preferred behavior to interact with the file manager. -

Behavior Preferences
Single click to active items

- Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. -

- This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. -

Double click to activate items

- Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. -

Advanced Preferences

- You can control advanced features of the file manager. -

Advanced Preferences
Folder Permissions

- Choose the action that should be performed when you change the permissions of a folder in - the Properties dialog. You can choose to let Thunar - ask everytime when you change folder permissions, tell it to default to applying the new permissions - to the folder only or to apply them recursively to the folder contents as well. -

Volume Management

- If Thunar was installed with support for HAL and the thunar-volman - package is also installed, you can enable the integrated volume manager. See the section called “Management of Removable Drives and Media” - for details about this feature. -

diff -Nru thunar-1.2.3/docs/manual/html/C/support.html thunar-1.6.10/docs/manual/html/C/support.html --- thunar-1.2.3/docs/manual/html/C/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -Support

Support

- To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. - Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities: -

  • - Reproducible. If the developer cannot see the bug himself - to prove that it exists, he will most probably not be able to fix it at all. Every detail you - can provide helps. -

  • - Specific. The quicker the developer can isolate the problem - to a specific area, the more likely he will expediently fix it. -

- In case you want to request a new feature, please make clear why you consider it a worth - addition for the application. It is more likely that a new feature gets added if you provide - good arguments for the feature. It will increase the chance of addition even more if you - provide a patch that implements the requested feature, but make sure that you read the file - HACKING - - especially the section labeled Coding Style - before you start hacking - up the source. -

- Else, if you have questions about the use or installation of this software, please ask on the - thunar-dev mailing - list or point your IRC client to irc.freenode.net, - join the channel #thunar and ask for help. -

diff -Nru thunar-1.2.3/docs/manual/html/C/the-file-manager-window.html thunar-1.6.10/docs/manual/html/C/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/C/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -The File Manager Window

The File Manager Window

- By default the file manager window consists of a shortcut pane on the left side, the main area on the right - and a pathbar above the main area. -

File Manager Window

- The Shortcut Pane provides shortcuts to different folders on your system. The first - shortcut will lead to your Home Folder, the folder you store all your personal data, - and will therefore have the name of the current user. The second shortcut will take you to the trash bin, - which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop - Folder, which contains the files and folders that are displayed on the desktop. The fourth - shortcut will take you to the root of your file system - you may want to explore it a bit, even though - it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is - inside. -

- Below the File System shortcut, the removable drives and media will be displayed. In - the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts - to access the data stored on the removable drives and media. See the section called “Using Removable Media” - for further details. -

- The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the - Shortcuts Pane. This will allow you to access important folders instantly. To - remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. - To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. - Note that these actions affect only the shortcut, not the folder referenced by the shortcuts. -

- The main area will always display the contents of the current folder. Double click on - folders to enter them, and right-click on files or folders to get a context-menu offering some choices of - what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, - select one file, hold down the Shift key, and increase or decrease the selection using - the arrow keys. -

- The pathbar will always show the path you took to get to the folder you are currently - at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar - button to bring up a context-menu with some options. -

Customizing the Appearance

- There are many ways to customize the appearance of the file manager windows. In case you do not like the - way the icons are displayed, choose ViewView as Detailed List - from the main menu to have the contents of the current folder displayed as a list. -

- You can have the file manager windows display a location bar instead of the pathbar by choosing - ViewLocation SelectorToolbar Style - from the main menu. -

- In case you prefer a treeview in the left pane, choose - ViewSide PaneTree - from the main menu. -

Visible Columns in the Detailed List View

- If you prefer to display the contents of the folder as a list, using the Detailed List View, you can - customize the columns displayed in the list view. To customize the visible columns, choose - ViewConfigure Columns... from the main menu. -

Visible Columns
Visible Columns

- Select the columns you want to be displayed from the list of available columns. Click Move Up - or Move Down to change the order of the columns. Click Use Default to - revert your changes. -

Column Sizing

- Select the option Automatically expand columns as needed if you want the list view columns - to expand automatically if the needed to ensure the text is fully visible. -

diff -Nru thunar-1.2.3/docs/manual/html/C/using-removable-media.html thunar-1.6.10/docs/manual/html/C/using-removable-media.html --- thunar-1.2.3/docs/manual/html/C/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,133 +0,0 @@ -Using Removable Media

Using Removable Media

Accessing Removable Media

- Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. -

To Mount Media

- To mount media is to make the file system of the media available for access. When you mount media, the - file system of the media is attached as a subdirectory to your file system. -

- To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB - stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If - xfdesktop is running and configured to display File/launcher icons this - object will also be added to your desktop. -

- To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, - click on the Floppy Drive object in the side pane. The file manager will now add the file system - of the media to your file system hierarchy and display the contents of the floppy diskette in the main area. -

To Eject Media

- If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane - or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. - If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and - choose Unmount Volume. After a short period of time, a notification will appear to inform you - that it is now safe to remove the media or disconnect the drive from the computer. -

Unmount notification

- However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. -

- Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file - manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also - check command line applications running in Terminal windows. -

- Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount - the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you - might lose data or cause your system to crash. -

Management of Removable Drives and Media

- Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on - your system. Note however that this feature requires HAL support. -

- Now, if HAL support is available and thunar-volman is installed on your system, you - can choose to enable the Volume Management feature of Thunar. Therefore, open the file - manager preferences, go to the Advanced page and check the Enable Volume - Management button. -

- The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. -

Removable Drives and Media

- If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. -

- The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. -

Mount removable drives when hot-plugged

- Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. -

- This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. -

Mount removable media when inserted

- Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) - when you insert the media into the drive. -

- This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. -

Browse removable media when inserted

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

Auto-run programs on new drives and media

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

Auto-open files on new drives and media

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

- The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: -

%d

- Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. -

- If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. -

%h

- Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. -

%m

- Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. -

Troubleshooting the Volume Manager

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/C/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/C/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/C/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/C/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -Working with Files and Folders

Working with Files and Folders

Opening Files

- When you open a file, the file manager performs the default action for that file type. For example, opening a text file - will display it in the default text editor, while opening an image file will display the image in the default image - viewer. -

- The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the - file manager examines the contents of the file. -

Executing the Default Action

- To execute the default for a file, double-click on the file. For example, the default action for audio files is to - play the it with the default music playing application. In this case, you can double-click on the file to open the - file in the music player. -

- You can set Thunar preferences so that you click once on a file to execute the default - action. For information, see the section called “Behavior Preferences”. -

Executing Non-Default Actions

- To execute actions other than the default action for a file, select the file that you want to perform an action on. - Choose the desired action from the Open With choices available in File menu - or an Open With submenu. -

Adding Actions

- To add actions associated with a file type, perform the following steps: -

  1. - In the main area, select a file of the type to which you want to add an action. -

  2. - Choose FileOpen With Other Application... - from the main menu. -

  3. - Either choose an application in the Open With dialog or select Use a custom command - and browse to the program with which you wish to open this type. -

- The action you have chosen is now added to the list of actions for that particular file type. If you enabled the - Use as default for this kind of file option or there was no prior action associated with the - type, the newly added action is the default. -

- You may also add actions using the Open With button under - FileProperties.... -

Modifying Actions

- To modify the actions associated with a file or file type, perform the following steps: -

  1. - In the main area, select a file of the type for which you want to modify the action. -

  2. - Choose FileProperties... from the main menu. -

  3. - Select the new default action using the Open With button or add a new action by choosing - Open With Other Application... from the drop down menu. -

- To remove a previously added action for a file type, bring up the Open With dialog as described - above, right-click the action you want to remove and choose Remove Launcher. -

File Properties

- The file properties window shows more information about any file or folder in the file manager. With this window, you can also - do the following: -

  • - Change the icon for special files, such as application launchers and URL links. -

  • - Add or remove emblems for a file or folder. -

  • - Change the UNIX file permissions for a file or folder. -

  • - Choose which application is used to open a file and other files of the same type. -

File Properties

- To open the file properties window, perform the following steps: -

  1. - Select the file or folder whose properties you want to examine or change. You cannot - select multiple items at once and display the properties that are in common to all - items currently. -

  2. - Do one of the following: -

    • Choose FileProperties... from the main menu.

    • Right-click the selected item and choose Properties... from the context menu.

    • Press Alt+Return.

    -

diff -Nru thunar-1.2.3/docs/manual/html/ca/advanced-topics.html thunar-1.6.10/docs/manual/html/ca/advanced-topics.html --- thunar-1.2.3/docs/manual/html/ca/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Temes avanats

Temes avanats

Per canviar els noms de fitxers en bloc

Canviar de nom els fitxers vol dir canviar de nom diversos fitxers alhora emprant algun criteri que s'aplica a almenys un dels fitxers. Thunar inclou un canviador de nom en bloc, el qual es pot executar de forma separada mitjanant l'ordre Thunar -B o, des de Thunar, seleccionant dos o ms fitxers a l'rea principal i pitjant F2 o seleccionant menuchoice>EditaCanvia de nom…

Canvi de noms en bloc

El canvi de nom en bloc es pot aplicar tant als noms de fitxers, com als sufixos dels fitxers o a ambds. Thunar actualment permet els segents canvis de noms en bloc:

  • Supressi de carcters.

  • Numeraci de fitxers.

  • Inserci de data o hora.

  • Inserci o reemplaament de carcters.

  • Cerca i substituci de carcters.

  • Conversi a majscules, minscules o inicials em majscules.

Altres canvis de nom en bloc addicionals es poden instaŀlar com a connectors de Thunar. Comproveu a la pgina web de connectors de Thunar per les extensions disponibles. El wiki del projecte Thunar t ms detalls sobre aquesta funcionalitat. Podeu afegir ms informaci al wiki si voleu.

El sistema de fitxers d'UNIX

Mentre que el gestor de fitxers Thunar fa una bona feina abstraient els detalls del sistema de fitxers, i que aix l'usuari final no li calgui preocupar-se respecte a aquest, de vegades s til saber els conceptes bsics per entendre el el marc general. Aquesta secci intentar donar-vos una breu introducci als sistema de fitxers d'UNIX, el qual s emprat a dia d'avui per tot tipus d'UNIX, incloent Linux.

Carpetes i camins

Al sistema de fitxers d'UNIX totes les carpetes s'ordenen en un arbre invertit, simple, descendent i ramificat des de una nica carpeta inicial, la qual es coneix com a directori arrel (el terme directori s'empra sovint en lloc de carpeta) i que Thunar mostra com Sistema de fitxers. Aix vol dir que us podeu moure des de qualsevol carpeta a una altra movent-vos cap enrere en l'arbre fins que trobeu un punt com i, desprs, movent-vos cap endavant per les subcarpetes apropiades fins que arribeu a la carpeta desitjada.

La posici de qualsevol fitxer o carpeta en l'arbre de directoris es pot descriure com a cam. El cam s la llista de carpetes per les que us heu de moure per arribar a la carpeta o fitxer desitjat; aix entenent que iniciu el cam des de el directori arrel. Per exemple, /home/luke s la subcarpeta luke de la subcarpeta home del directori arrel, i /home/luke/myfile.txt s el fitxer myfile.txt d'aquella subcarpeta. El / en aquests camins representa el directori arrel.

Cada usuari t la seva carpeta per tenir-hi els seus fitxers personals aix com els seus ajustaments. Aquesta carpeta s'anomena directori de l'usuari i es mostra a Thunar amb una icona especial amb el nom d'entrada de l'usuari. Aquesta carpeta s similar a la coneguda com My Files en sistemes Windows. Els directoris d'usuaris dels diversos usuaris del sistema sovint els trobareu dins de la carpeta /home. Per exemple, /home/luke hauria de ser el directori de l'usuari que t luke com a nom d'entrada al sistema, mentre que /home/jane hauria de ser el directori de l'usuari que t jane com a nom d'entrada al sistema.

Tipus de fitxers

Pot ser que ja hageu sentit dir que tot s un fitxer en entorns UNIX. Aix s cert per la majoria d'objectes que es poden trobat en els sistemes UNIX actuals. De fet, incls els dispositius es representen com fitxers especials. Tot i que aix pot no tenir sentit d'entrada, s un dels punts forts d'UNIX i dels seus derivats, i s una gran ajuda alhora de mantenir un nucli simple al llarg dels anys i on altres sistemes operatius es veuen forats a afegir conceptes nous per cada nova tecnologia.

Aquests sn els quatre tipus de fitxers ms important en els sistemes de fitxers UNIX.

Fitxers ordinaris

Un fitxer ordinari pot tenir text, un programa o qualsevol tipus de dades. Aix inclou fitxers d'imatges, d'udio, documents d'aplicacions ofimtiques i fitxers de vdeo. El terme fitxer s'empra sovint per referir-se a fitxers ordinaris.

fitxers carpetes

Les carpetes tamb sn fitxers en els sistemes de fitxers UNIX. Per ser exacte una carpeta s un cas especial de fitxer, i que cont un mapa de referncies de noms de fitxers a fitxers per cada fitxer que hi ha a la carpeta.

Fitxers d'enlla simblic

Un enlla simblic —que sovint s'abrevia com a symlink pel seu origen angls Symbolic Link) s un fitxer especial que t un cam fins un altre fitxer del sistema de fitxers. Per tant, l'enlla simblic no t informaci valuosa per s mateix i tant sols referencia un altre fitxer.

Fitxers de dispositius

Com hem dit anteriorment a la majoria de dispositius es pot accedir via el sistema de fitxers. Aquest fitxers de dispositius especials els trobareu sovint en la carpeta /dev. Per exemple, el fitxer especial /dev/hda representa el primer disc IDE en sistemes Linux.

diff -Nru thunar-1.2.3/docs/manual/html/ca/copyright.html thunar-1.6.10/docs/manual/html/ca/copyright.html --- thunar-1.2.3/docs/manual/html/ca/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Quant a Thunar

Quant a Thunar

Thunar ha estat escrit per Benedikt Meurer (). Veieu la pgina web de Thunar per ms informaci.

Aquest document ha estat escrit per Benedikt Meurer (). La darrera versi d'aquest document est disponible a la pgina web de Thunar.

Aquest programa es distribueix amb els termes de la llicncia GNU General Public License tal i com la va publicar la Free Software Foundation; ja sigui la versi 2 de la llicncia o, si ho preferiu, qualsevol versi posterior.

Haureu d'haver rebut una cpia de la llicncia GNU General Public License juntament amb aquest programa; en cas contrari, escriviu a la Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111‐1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/ca/customizing-thunar.html thunar-1.6.10/docs/manual/html/ca/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/ca/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -Parametritzaci de Thunar

Parametritzaci de Thunar

Aquest captol mostra com ajustar certes parts del gestor de fitxers a les vostres necessitats.

El men Envia a

Thunar t un men Envia a i que is ofereix destinataris on es poden enviar fitxers i carpetes. Per accedir al men Envia a, seleccioneu al men principal FitxerEnvia a, o feu clic-dret sobre un fitxer o carpeta i seleccioneu Envia a.

Men Envia a

Per defecte, el men Envia a inclou una entrada anomenada Escriptori (crea enlla), per a tots els fitxers i carpetes, i que tant sols crea un enlla a l'escriptori per cada fitxer seleccionat. A ms a ms, si la subfinestra de dreceres est activa, el men tamb t una entrada anomenada Subfinestra lateral (afegeix drecera) per les carpetes, i que us permet afegir noves dreceres a la subfinestra lateral. A continuaci d'aquestes entrades, Thunar mostra els dispositius extractables connectats a l'ordinador. En la captura anterior, Disquetera representa un destinatari possible on enviar fitxers. Tingueu present que el dispositiu es munta automticament quan seleccioneu en el men Envia a, d'aquesta manera no caldr que ho feu manualment.

A ms a ms, Thunar tamb t el connector thunar-sendto-email, que afegeix l'entrada Destinatari de correu al men, i que obre el programa per escriure correus amb el fitxer seleccionat adjunt en el nou correu. Si la selecci cont almenys una carpeta, els elements seleccionats s'afegeixen comprimits en un arxiu (ZIP) abans d'adjuntar-los al correu. En la resta de casos, si la selecci cont ms d'un fitxer, o un per ms gran de 200Kib, se li preguntar a l'usuari si vol empaquetar-los en un arxiu (ZIP), i enviar l'arxiu.

Com moltes altres funcionalitats de Thunar, el men Envia a s fcilment configurable per l'usuari i desenvolupadors d'aplicacions amb nous destinataris, emprant l'estndard fitxers d'entrada d'escriptori. Aquests fitxers s'han d'instaŀlar dins d'alguna de les carpetes $XDG_DATA_DIRS/Thunar/sendto/ (veieu Especificaci de directoris base XDG per detalls sobre la variable $XDG_DATA_DIRS).

El MimeType del destinatari de .desktop indica el tipus de fitxer per al que aquesta acci estar disponible en el men Envia a. Per exemple, suposem que voleu afegir una entrada per la utilitat de pujada d'imatges Flickr, per tant aquesta entrada noms s'hauria de mostrar pels fitxers JPEG (altres formats de fitxers no funcionan a Flickr) i per tant haureu d'afegir la lnia MimeType=image/jpeg;. Si no especifiqueu cap MimeType l'entrada es mostrar per tots els tipus de fitxers.

A continuaci es mostra un exemple per postr:

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-Name[ca]=Flickr
-MimeType=image/jpeg;

Si instaŀleu aquest fitxer a ~/.local/share/Thunar/sendto/ (creeu la carpeta si aquesta no existeix), el men Envia a pels fitxers JPEG mostrar la nova entrada Flickr, que es pot emprar per pujar fotos a Flickr.

La wiki del projecte Thunar t ms exemples de destinataris pel men Envia a. No us reprimiu d'afegir ms exemples a la pgina de la wiki.

Miniaturitzadors

Thunar empra algunes petites utilitats per crear les miniatures d'alguns tipus de fitxer, aix com per mostrar la miniatura com una vista prvia del contingut del fitxer. Aquestes petites utilitats les anomenem miniaturitzadors. Thunar ve amb miniaturitzadors per imatges i fitxers de tipus de lletra, tamb empra els miniaturitzadors de GNOME de forma automtica si aquests s'han instaŀlat amb compatibilitat gconf. En qualsevol cas, es pot ampliar dinmicament aquesta funcionalitat per altres tipus de fitxer.

Si voleu escriure un miniaturitzador personalitzat, us caldr comenar amb un programa que permeti almenys dos parmetres de lnia d'ordres, el fitxer d'entrada, que s el tipus de fitxer al que voleu afegir aquesta funcionalitat i el fitxer de sortida, que s un fitxer PNG que compleix amb el format definit en aquest estndard de ges.A ms a ms, cal que el programe accepti la mida desitjada de la miniatura (s opcional per molt recomanable). Si la mida de la imatge s d'una mida diferent a la prevista, Thunar l'haur d'escalar a la mida correcta i, aix, por produir un resultat pitjor que si s'hagus general la miniatura amb la mida requerida.

Un com heu fet la vostra utilitat per crear miniatures, haureu de registrar el vostre miniaturitzador, perqu d'aquesta manera Thunar sigui capa d'emprar-la. A partir d'aqu l'nic que us cal fer s instaŀlar una descripci del fitxer al miniaturitzador (un fitxer .desktop) en algun dels directoris $XDG_DATA_DIRS/thumbnailers/. Per exemple, si voleu registrar el miniaturitzador noms per el vostre compte d'usuari, el podeu instaŀlar a la carpeta ~/.local/share/thumbnailers/. El fitxer .desktop per les miniatures t el segent format.

Format de fitxers de descripci de miniaturitzadors

El fitxer de descripci de miniaturitzador empra aquest format de registre d'escriptori amb un tipus Type especial amb el valor X-Thumbnailer i amb un altre camp especial amb els codis dels fitxers X-Thumbnailer-Exec. Bsicament, un fitxer de descripci de miniaturitzador t'e el segent format.

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-Name[ca]=El vostre miniaturitzador
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

Version i Encoding sn obligatoris segons l'especificaci del format de registre d'escriptori i, per tant, empreu els valors de l'exemple anterior. El camp Type ha de tenir el valor especial X-Thumbnailer i, en qualsevol altre cal, el vostre miniaturitzador no ser reconegut. El valor de Name descriu el vostre miniaturitzador.

El camp X-Thumbnailer-Exec t l'ordre que executar el miniaturitzador, i s compatible amb diversos codis que seran substituts quan s'executi el miniaturitzador. Els codis sn els segents:

%i

El cam local al fitxer d'entrada al que se li crear la miniatura. Pot ser tant un cam relatiu al directori en el que roman el miniaturitzador com un cam absolut.

%o

El cam local al fitxer de sortida on es desar la miniatura generada. El fitxer de sortida s'ha d'escriure en un fitxer PNG vlid i d'acord amb l'estndard de miniatures (veieu ms a dalt). Heu de tenir en compte que el cam no ha d'acabar amb .png, ja que aix pot ser important si llanceu algunes utilitats de terceres parts.

%s

La mida desitjada i en pxels de la miniatura que es generar. Aquest parmetre s opcional.

%u

Similar a %i, per amb la URI del fitxer en lloc del cam. Aix es va afegir per compatibilitat amb GNOME.

%%

Es substituir per un nic %.

Com mnim heu d'incloure %o i %i o %u, en cas contrari el vostre miniaturitzador no ser d'utilitat.

La llista de MimeType s el llistat de tipus MIME —separat per comes— pel qual els vostre miniaturitzador ser capa de crear vistes prvies.

Exemple de miniaturitzador EPS

Aquest exemple demostra com es pot escriure i instaŀlar un nou miniaturitzador per fitxers .eps i que empra l'ordre convert la qual forma par de ImageMagick. Primer, creem un script que crida a convert per generar una miniatura de la mida que ens cal.

-#!/bin/sh
-#
-# eps-thumbnailer - Exemple d'script de miniaturitzaci per fitxers EPS.
-#
-# s: esp-thumbnailer FITXER-EPS FITXER-PNG MIDA
-#
-
-# parmetres de la lnia d'ordres
-ifile=$1
-ofile=$2
-size=$3
-
-# crida a convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

Deseu aquest script com eps-thumbnailer, comproveu que sigui executable i instaŀleu-lo a /usr/local/bin.

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

El segent que us cal s crear el fitxer de descripci del miniaturitzador eps-thumbnailer.desktop, que ser com:

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-Name[ca]=Miniaturitzador EPS
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

Aquest fitxer s'ha d'instaŀlar a /usr/local/share/thumbnailers (creeu la carpeta si aquesta no existeix).

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

El fitxer eps-thumbnailer.desktop empra la clau especial TryExec, la qual, si s'especifica, anomena una ordre que haur d'estar present en el vostre sistema per a que el miniaturitzador funcioni. En aquest cas, un script no t cap utilitat si l'ordre convert no est en el sistema.

El darrer pas s generar la memria cau del miniaturitzador i, aix, Thunar mostrar les miniatures. La memria cau del miniaturitzador es troba a $XDG_CACHE_HOME/Thunar/thumbnailers.cache (a no ser que vost o l'administrador del sistema hageu sobreesrcit, $XDG_CACHE_HOME apunta a la carpeta ~/.cache/). La memria cau del miniaturitzador la genera peridicament Thunar, per podeu forar la seva regeneraci mitjanant l'ordre thunar-vfs-update-thumbnailers-cache-1 i que s part de Thunar. Aquesta utilitat generalment la trobareu a la sub-carpeta libexec del prefixe de la vostra instaŀlaci (sbin a Debian/Ubuntu). Per exemple, si Thunar s'ha instaŀlat a /usr, crideu-la de la segent manera:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

Per comproveu que l'executeu des de el vostre compte d'usuari i no des de el del super-usuari, ja que la memria cau dels miniaturitzadors es desen en la vostra carpeta i no en una del sistema.

Ara, si Thunar s'ha compilat amb compatibilitat per fer el seguiment de les alteracions de fitxers (ja sigui emprant els serveis de FAM o de Gamin), agafar de forma automtica la memria cau dels nous moniaturitzadors en uns pocs segons i, desprs, ser capa de generar miniatures emprant els vostres miniaturitzadors personalitzats. En cas contrari, caldr que reinicieu Thunar per aplicar els canvis emprant

$ Thunar -q

per finalitzar qualsevol instncia que s'estigui executat i, aix, reiniciar-lo des del llanador.

Neteja de miniatures

Les miniatures generades es desen a la carpeta ~/.thumbnails/ en compliment amb aquest estndard de gesti de miniatures. Quan es prova un miniaturitzador nou pot ser til netejar la memria cau de miniatures emprant

$ rm -rf ~/.thumbnails/

que us alliberar una mica d'espai lliure en la vostra carpeta d'usuari. Degut a que tota la informaci desada en aquesta carpeta es genera automticament a partir de fitxers del vostre sistema, no perdreu cap informaci important.

diff -Nru thunar-1.2.3/docs/manual/html/ca/faq.html thunar-1.6.10/docs/manual/html/ca/faq.html --- thunar-1.2.3/docs/manual/html/ca/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Preguntes freqents

Preguntes freqents

En aquesta secci s'intenta fer un llistat de les nombroses preguntes relacionades amb Thunar que se'ns han fet. Si sabeu d'alguna altra pregunta que no hi aparegui en aquesta pgina, si us plau, ompliu una soŀlicitud.

Perqu el Thunar no executa els fitxers amb la marca d'executables?

Per raons de seguretat Thunar noms executa els fitxers de tipus application/x-desktop, application/x-executable i application/x-shellscript. Els fitxers d'escriptori noms s'executen si el fitxer d'escriptori s de tipus Application i hi ha una lnia vlida Exec o els de tipus Link i hi ha una URL vlida. Per la resta de tipus noms est disponible si el fitxer est marcat com executable per l'usuari actual.

Tingueu en compte que per application/x-executable i application/x-shellscript, el tipus de fitxer no t per que ser exactament aquest, n'hi ha prou amb que el tipus detectat tingui un pare d'aquest tipus o que el tipus MIME sigui un lies d'algun d'ells.

On desa Tunar les metadates associades als fitxers?

El Thunar associa diversa informaci amb fitxers i carpetes, a aix s al que anomenem metadades. Aquestes metadades de tots els fitxers es desa en un fitxer de base de dades tdb, al qual anomenem el metafitxer. El fitxer es desa a $XDG_CACHE_HOME/Thunar/metafile.tdb i es pot examinat mitjanant l'ordre tdbtool i que es distribueix amb Thunar (es troba al subdirectori tdb/).

On desa Thunar les seves preferncies?

Thunar desa les preferncies d'usuari, aix com les opcions ocultes, en un fitxer .ini que es triba a $XDG_CONFIG_HOME/Thunar/thunarrc i que es pot examinar emprant qualsevol editor de text. Veieu docs/README.thunarrc per una informaci detallada de les diverses preferncies.

Com puc emprar gestos de ratol (mouse gestures) amb Thunar?

Actualment Thunar permet un s bsic a la vista d'icones dels anomenats gestos de ratol. Podeu emprar gestos de ratol mantenit pitjat el bot del mig del ratol (normalment la rodeta del ratol) mentre que el punter del ratol es troba sobre l'rea de fons del component de vista d'icones (qualsevol rea no coberta per un text o una icona). En aquest moment podeu moure el punter del ratol en qualsevol de les quatre direccions per realitzar algunes accions que us descrivim a continuaci.

Esquerra - obra la darrera carpeta que s'hagi visitat
Amunt - obra la carpeta pare
Dreta - obra la segent carpeta que s'ha visitat
Avall - torna a carregar la carpeta actual

Com puc assignar dreceres de teclat?

Si voleu tornar a fixar una drecera, Thunar admet la forma estndard de GTK+ per canviar dreceres: simplement passeu per sobre de l'opci de men amb el ratol i polseu la drecera de teclat que li voleu fixar.

Per esborrar una assignaci de tecles, polseu la tecla de retrocs quan sigueu sobre l'entrada de men.

Si la drecera no canvia caldr que habiliteu aquesta funcionalitat al GTK+. Aix es pot fer de tres maneres:

  • Si esteu executant Xfce 4.3 o superior, ho podeu habilitar-ho mitjanant dreceres de men editables en el dileg Preferncies de la interfcie d'usuari.

  • Si executeu GNOME podeu habilitar-ho mitjanant dreceres de men editables en Men i Eines del dileg del centre de control.

  • En qualsevol altre cas, poseu en el vostre fitxer ~/.gtkrc-2.0 (creeu-lo si no existeix):

    gtk-can-change-accels=1

On desa Thunar les dreceres de teclat?

Les dreceres de teclat personalitzades es desen amb l'estndard de mapa de dreceres de GTK+ en un fitxer a $XDG_CONFIG_HOME/Thunar/accels.scm. Les lnies d'aquest fitxer que comencen per ; sn comentaris. Veieu la documentaci de GTK+ per saber ms informaci respecte a aquest format de fitxer.

Si sou un empaquetador o un administrador de sistemes que voleu crear uns valors per defecte per les dreceres de teclat, lo que no s el mateix que les dreceres per defecte de Thunar, podeu creat un fitxer anomenat Thunar/accels.scm en algun dels directoris $XDG_CONFIG_DIRS. Per exemple, si /etc/xdg s part de $XDG_CONFIG_DIRS (el que acostuma a ser el valor per defecte a moltes distribucions Linux), podeu instaŀlar els vostres valors per defecte i que afectaran a tot el sistema i usuaris a /etc/xdg/Thunar/accels.scm. Thunar carregar els valors d'aquest fitxer a la seva propera engegada.

diff -Nru thunar-1.2.3/docs/manual/html/ca/index.html thunar-1.6.10/docs/manual/html/ca/index.html --- thunar-1.2.3/docs/manual/html/ca/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Gestor de fitxers Thunar

Gestor de fitxers Thunar

Meurer, Benedikt

Desenvolupador de programari
os-cillation
Desenvolupament de sistemes


Aquest manual descriu la versi 1.2.0git-cc468f4 de Thunar.

Teniu el dret de cpia, distribuci i/o modificaci d'aquest document segons els termes de la llicncia GNU Free Documentation, versi 1.1 o qualsevol posterior publicada per la Free Software Foundation; sense seccions invariables, sense textos de portada i sense textos de contraportada (with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts). El text complert de la llicncia est disponible a Free Software Foundation.

November 2007


Introducci a Thunar

Thunar s un nou gestor de fitxers per l'entorn d'escriptori de Xfce. Thunar s'ha dissenyat des de zero per ser rpid i fcil d'usar. La seva interfcie d'usuari s neta i intutiva, i no inclou per defecte cap opci confusa o de poca utilitat. Thunar s rpid i de resposta rpida amb un curt temps d'arrancada i de crrega de carpetes.

D'aquesta manera el gestor de finestres Thunar us proveeix amb un punt d'accs integrat als vostres fitxers i aplicacions. Podeu emprar el gestor de fitxers per fer el segent:

  • Crear carpetes i documents.

  • Mostrar-vos fitxers i carpetes.

  • Gestionar els vostres fitxers i carpetes.

  • Executar i gestionar accions personalitzades.

  • Accedir a mitjans extrables.

diff -Nru thunar-1.2.3/docs/manual/html/ca/preferences.html thunar-1.6.10/docs/manual/html/ca/preferences.html --- thunar-1.2.3/docs/manual/html/ca/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Preferncies del gestor de fitxers

Preferncies del gestor de fitxers

Empreu el dileg Preferncies del gestor de fitxers per fixar les preferncies del gestor de fitxers Thunar. Per obrir el dileg de preferncies, seleccioneu EditaPreferncies… a la barra de men, o feu clic al bot de Gestor de fitxers en el gestor d'ajustaments de Xfce.

El dileg de Preferncies del gestor de fitxers es divideix en quatre pgines, cadascuna de les quals te mostra diferents opcions que es descriuen en seccions separades ms endavant. Bsicament podeu fixar les preferncies de les segents categories:

  • Els parmetres per defecte de visualitzaci.

  • Els parmetres per defecte de la subfinestra lateral.

  • El comportament de les finestres del gestor de fitxers.

  • Els opcions avanades del gestor de fitxers.

Thunar tamb permet un bon grapat de les anomenades Opcions amagades, que controlen un bon nombre de funcionalitats avanades del gestor de fitxers, per que no s'han incls en les preferncies per mantenir aquest dileg simple. El fitxer README.thunarrc que es distribueix amb Thunar descriu totes aquestes opcions amagades en detall.

Preferncies de visualitzaci

Podeu especificar el tipus de vista per defecte, seleccionar opcions d'ordenaci i de visualitzaci. Tamb podeu especificar si es mostraran miniatures pels tipus de fitxers que ho permetin.

Preferncies de visualitzaci
Visualitzaci de directoris nous

Selecciona la visualitzaci per defecte de les carpetes. Quan obriu una finestra nova, el contingut es mostrar amb el tipus de visualitzaci que hageu seleccionat. Aquesta pot ser vista d'icones, la vista de llistat detallat o la vista de llistat compacte. Tamb podeu seleccionar Darrera vista activa per emprar el mateix tipus de visualitzaci que veu emprar en la darrera finestra activa.

Situar les carpetes abans que els fitxers

Seleccioneu aquesta opci per llistar les carpetes abans que els fitxers al ordenar una carpeta.

Mostrar miniatures

Seleccioneu aquesta opci per mostrar les miniatures dels fitxers d'imatges aix com els d'altres tipus que ho suportin. El gestor de fitxers desa la miniatura de cada fitxer en un directori ocult .thumbnails en la carpeta arrel de l'usuari.

Veieu “Miniaturitzadors” si voleu ampliar la funcionalitat bsica que dona Thunar per ms tipus de fitxers.

Text al costat de les icones

Seleccioneu aquesta opci si voleu que el text de la icona dels elements en la vista d'icones es vegi al costat de la icona en lloc de sota seu.

Subfinestra lateral

Podeu seleccionar les opcions de la subfinestra de dreceres i la de la subfinestra en arbre

Subfinestra lateral

La subfinestra lateral pot mostrar tant la llista de dreceres a les carpetes del vostre sistema de fitxers, l'opci per defecte, com una vista en arbre del vostre sistema de fitxers. Aquesta pgina us permet seleccionar la mida de les icones per les dreceres i l'arbre. Tamb podeu indicar si es mostraran els distintius.

Mida d'icones

La mida de les icones mostrades a la subfinestra, el rang va de Molt petita (al voltat de 16x16 pxels) fins a Molt gran (al voltat de 128x128 pxels).

Mostrar les icones de distintius

Seleccioneu aquesta opci per mostrar els distintius de les carpetes a la subfinestra lateral. Podeu assignar distintius en el dileg Propietats. Seleccioneu una carpeta a l'rea principal i seleccioneu al men principal FitxerPropietats…, o feu clic-dret a la carpeta i seleccioneu Propietats… al men contextual.

Preferncies de comportament

Podeu seleccionar el comportament del gestor de fitxers amb el que preferiu interactuar.

Preferncies de comportament
Noms un clic per activar els elements

Seleccioneu aquesta opci per executar l'acci per defecte d'un element quan es cliqui. Quan aquesta opci est seleccionada, i apunteu a un element, el ttol de l'element quedar subratllat i es seleccionar automticament desprs d'un curt perode de temps.

El retard es pot configurar a sota de l'opci. Tamb podeu deshabilitar la selecci automtica d'element si moveu el selector a la posici de ms a l'esquerra.

Doble-clic per activa elements

Seleccioneu aquesta opci per fer l'acci per defecte d'un element quan feu doble-clic en ell, i per seleccionar-lo fent noms un clic.

Preferncies avanades

Podeu controlar les opcions avanades del gestor de fitxers.

Preferncies avanades
Permisos de les carpetes

Seleccioneu l'acci que s'executar quan canvieu els permisos d'una carpeta en el dileg de Propietats. Podeu seleccionar que Thunar us ho pregunti cada cop que canvieu els permisos d'una carpeta, fixar els permisos per defecte noms a la carpeta o fixar-los a la carpeta i al seu contingut.

Gesti de volums

Si Thunar s'ha instaŀlat amb compatibilitat per HAL i el paquet thunar-volman est instaŀlat, podeu habilitar la gesti de volums integrada. Veieu “Gesti de dispositius i mitjans extrables” pels detalls sobre aquesta funcionalitat.

diff -Nru thunar-1.2.3/docs/manual/html/ca/support.html thunar-1.6.10/docs/manual/html/ca/support.html --- thunar-1.2.3/docs/manual/html/ca/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Suport

Suport

Per comunicar una errada o per fer un suggeriment referents a aquesta aplicaci o a aquest manual, empreu el sistema de notificacions d'errades http://bugzilla.xfce.org/. Recordeu que les notificacions d'errades tils sn aquelles que es solucionen i que per a que sigui til ha de complir aquestes dues qualitats:

  • Reproduble.. Si un desenvolupador no pot veure aquesta errada per comprovar que existeix, s molt probable que tampoc la pugui solucionar de cap manera. Qualssevol detall pot ser-li d'ajuda.

  • Specific. Entre ms rpid pugui el desenvolupador identificar el problema dins d'una rea ms possible ser que trobi la soluci oportuna.

Si voleu demanar alguna funcionalitat nova, indiqueu de forma clara perqu la considereu valuosa per l'aplicaci. s molt ms possible que s'afegeixi una nova funcionalitat si doneu bons arguments en favor d'aquesta funcionalitat. Encara incrementar ms les possibilitats de que s'afegeixi si afegiu un peda que implementi aquesta funcionalitat que voleu. Assegureu-vos que heu llegit el fitxer HACKING —especialment la secci titulada Coding Style— abans de que comenceu a tocar el codi.

En qualsevol cas, si teniu alguna pregunta sobre l's o instaŀlaci d'aquest programari, podeu preguntar-la a la llista de correu thunar-dev o mitjanant el vostre client d'IRC en irc.freenode.net, unint-vos al canal #thunar i demanant ajuda.

diff -Nru thunar-1.2.3/docs/manual/html/ca/the-file-manager-window.html thunar-1.6.10/docs/manual/html/ca/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/ca/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -La finestra del gestor de fitxers

La finestra del gestor de fitxers

Per defecte la finestra del gestor de fitxers consisteix en una subfinestra de dreceres al costat esquerre, de l'rea principal a la dreta, i d'una barra de camins sobre l'rea principal.

Finestra del gestor de fitxers

La Subfinestra de dreceres us mostra dreceres a vries carpetes del vostre sistema. La primera drecera us portar a lacarpeta d'usuari, on podeu emmagatzemar totes les vostres dades personals, i que per tant te el nom de l'usuari actual. La segona drecera us portar a la paperera, on es desen el fitxers esborrats i que es poden recuperar ms endavant. La tercera drecera us portar a la carpeta de l'escriptori, que cont els fitxers i carpetes que es mostren a l'escriptori. La quarta drecera us portar a la rel del vostre sistema —pot ser que la voleu explorar una mica tot i que si sou nouvinguts a sistemes Linux/Unix pot resultar una mica confusa—. Feu clic a les diferents carpetes per veure que hi ha a dins.

A sota la drecera Sistema de fitxers/emphasis>, es mostren els dispositius i mitjans extrables. En la captura segent, podeu veure una Disquetera. Feu clic en aquestes dreceres per accedir-hi a les dades dels dispositius i mitjans extrables. Veieu “s de mitjans extrables” per ms detalls.

La resta de dreceres sn les definides per l'usuari. Afegiu les vostres prpies dreceres simplement arrossegant a la Subfinestra de dreceres. Aix us permetr accedir a carpetes importants instantniament. Per treure una drecera prviament afegida, feu clic-dret sobre la drecera i seleccioneu Suprimeix la drecera. Per canviar de nom una drecera, feu clic-dret sobre la drecera i seleccioneu Canvia el nom a la drecera. Tingueu en compte que aquestes accions noms afecten a la drecera i no a la carpeta referenciada per la drecera.

L'rea principal us mostrar el contingut de la carpeta actual. Si feu doble-clic a les carpetes entrareu a veure el seu contingut, i si feu clic-dret en fitxers o carpetes s'us mostrar un men contextual que us oferir diverses accions que se'ls hi pot fer. Es pot seleccionar mltiples fitxers arrossegant un rectangle amb el ratol sobre ells. Alternativament, si seleccioneu un fitxer, pitgeu la tecla Shift i la manteniu pitjada mentre augmenteu o disminuu la selecci amb les tecles del cursor.

La barra de camins us mostrar el cam fins a la carpeta on hi sou actualment. Podeu fer clic a qualsevol bot de la barra de camins per canviar a la carpeta que representa. Un clic-dret en un bot de la barra de camins us mostrar un men contextual amb algunes opcions.

Personalitzaci de l'aparena

Hi han molts mitjans per personalitzar l'aparena de la finestra del gestor de fitxers. Si no us agrada la forma en que es mostren les icones trieu en el men principal VisualitzaVisualitza com un llistat detallat per veure con una llista detallada el contingut de la carpeta actual.

Podeu fer que la finestra del gestor de fitxers us mostri una barra de localitzaci en lloc de la barra de camins si seleccioneu en el men principal VisualitzaSeleccionador d'ubicaciEstil de barra d'eines.

Si preferiu una vista d'arbre a la subfinestra esquerra, seleccioneu en el men principal VisualitzaBarres lateralsArbre.

Columnes visibles a la vista de llistat detallat

Si preferiu veure el contingut de la carpeta en forma de llistat, emprant Visualitza com a llistat detallat, podeu personalitzar les columnes que es mostren a la vista de llistat. Per personalitzar les columnes visibles seleccioneu en el men principal VisualitzaConfigura columnes….

Columnes visibles
Columnes visibles

Seleccioneu les columnes que voleu veure entre el llistat de columnes disponibles. Feu clic a Puja or Baixa per canviar l'ordre de les columnes. Feu clic a Empra valors per defecte per anular els canvis.

Mida de les columnes

Seleccioneu l'opci Expandeix les columnes automticament si cal si voleu que la llista de columnes s'expandeixi automticament per garantir que tot els text sigui visible.

diff -Nru thunar-1.2.3/docs/manual/html/ca/using-removable-media.html thunar-1.6.10/docs/manual/html/ca/using-removable-media.html --- thunar-1.2.3/docs/manual/html/ca/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -s de mitjans extrables

s de mitjans extrables

Accs a mitjans extrables

Thunar s compatible amb els mitjans extrables si ha estat muntat amb compatibilitat amb HAL, o si empreu FreeBSD. Tingueu en compte en tot cas que, en FreeBSD 6.0 o superior, s recomanable emprar HAL abans que la compatibilitat nativa que proporciona Thunar.

Muntatge de mitjans

Per muntar mount mitjans s fer que el sistema de fitxers del mitj estigui disponible per accedir-hi. Quan munteu un mitj, el sistema de fitxers del mitj s'adjunta com un subdirectori del vostre sistema de fitxers.

Per accedir al mitj, inseriu-lo en el dispositiu corresponent o connecteu el nou dispositiu a l'ordinador (e.g. connectant un llapis USB al un dels vostres ports USB). Un objecta que representa el mitja s'afegir a la subfinestra lateral del gestor de fitxers. Si s'est executant xfdesktop i est configurat per mostrar Fitxer/icones llanadores, aquest objecte tamb es mostrar a l'escriptori.

Per muntar el mitj, feu clic a l'objecte que representa al mitj. Per exemple, per muntar un disquet feu clic en l'objecte Disquet de la subfinestra lateral. El gestor de fitxers afegir el sistema de fitxers del mitj a la vostra estructura de fitxers del sistema i mostrar el contingut del disquet a l'rea principal.

Extracci de mitjans

Si el dispositiu del mitj s un dispositiu motoritzat (e.g. un dispositiu CD-ROM), feu clic-dret en l'objecte del dispositiu a la subfinestra lateral o en l'escriptori i seleccioneu Extreu el volum. El mitj ser expulsat del dispositiu en pocs segons. Si el dispositiu del mitj no s motoritzat (e.g.: una disquetera o un llapis USB), feu clic-dret en l'objecte del mitj i seleccioneu Desmunta el volum. Desprs d'un curt perode de temps, es mostrar una notificaci informant-vos que ja s segur treure el mitj o desconnectar el dispositiu de l'ordinador.

Notificaci de desmuntat

En tot cas, aquesta notificaci noms es mostrar si la compatibilitat amb libnotify est habilitada i s'ha instaŀlat un dimoni de notificacions. Hi ha un dimoni de Xfce disponible a Projecte Goodies de Xfce. Si no est habilitat la compatibilitat de notificaci, espereu fins que el men contextual desaparegui abans d'extreure el mitj o desconnectar el dispositiu.

Aneu amb compte amb el fet de que no podeu extreure o desmuntar mitjans que encara els estigui emprant alguna aplicaci. Per tant, si el gestor de fitxers rebutja l'extracci del mitj, comproveu que tanqueu totes les aplicacions que estiguin accedint al mitj, i comproveu les ordres executant-se en una finestra de Terminal.

Assegureu-vos de desmuntar els mitjans extrables abans d'expulsar-los. No expulseu un disquet d'una unitat de disquets abans de desmuntar-lo. No traieu un llapis USB abans de desmuntar el dispositiu flaix. Si no desmunteu primer el mitj podeu perdre informaci o fer que el sistema faci fallida.

Gesti de dispositius i mitjans extrables

Thunar pot gestionar automticament els dispositius i mitjans extrables si el paquet thunar-volman est instaŀlat al sistema. Tingueu en compte que per aquesta funcionalitat necessitareu HAL.

Ara, si la compatibilitat amb HAL est disponible i thunar-volman est instaŀlat al sistema, podeu habilitar la funcionalitat de Thunar de Gesti de volums. Per fer-ho, obriu les preferncies del gestor de fitxers i aneu a la pgina Avanat i marqueu Habilita el gestor de volums.

El segent pas s configurar a les vostres necessitats la gesti dels dispositius i mitjans extrables. Feu clic a l'enlla Configureu de la secci Gesti de volums. Tot seguit es mostrar el dileg de configuraci Dispositius i mitjans extrables

Dispositius i mitjans extrables

Si heu emprat anteriorment el gnome-volume-manager us sentireu com a casa, ja que s'ha dissenyat per semblar-se i per comportar-se de forma similar al gnome-volume-manager. Les preferncies es divideixen per categories de dispositius per que sigui ms fcil trobar les opcions del vostres dispositius en concret.

La pgina Emmagatzematge te les opcions ms importants. Com el nom suggereix, aquestes opcions s'apliquen noms a dispositius d'emmagatzematge, com poden ser dispositius de disc dur, llapis USBs i CD-ROMs. Les opcions Emmagatzemament extrable es descriuen a continuaci.

Muntatge de dispositius extrables quan es connecten

Habiliteu aquesta opci per muntar automticament els sistemes de fitxers de dispositius extrables (e.g. discs durs externs o llapis USBs) quan aquests es connecten a l'ordinador.

Aquesta opci s'ha d'habilitar si es vol que algunes altres opcions funcionin amb els dispositius extrables. Per exemple, si deshabiliteu aquesta opci, alguns tipus de reproductors porttils de msica no es podran detectar ms, incls si habiliteu l'opci Reprodueix els fitxers de msica quan es connectin en la pgina Multimdia, l'ordre especfica no s'executar al connectar el reproductor porttil de msica.

Munta els mitjans extrables quan s'insereixin

Habiliteu aquesta opci per muntar automticament els sistemes de fitxers dels mitjans extrables (e.g. CD-ROMs o DVDs) quan els inseriu en el dispositiu.

Aquesta opci s'ha d'habilitar si es vol que algunes altres opcions funcionin amb els mitjans extrables. Per exemple, si deshabiliteu aquesta opci, quan s'insereix un mitj extrable no es podr detectar si aquest te capacitat d'execuci automtica i, per tant, l'opci Executa automticament programes en dispositius o mitjans nous no tindr cap efecte en mitjans extrables.

Navegaci en mitjans extrables quan s'insereixin

Habiliteu aquesta opci per mostrar automticament el contingut dels mitjans inserits en el gestor de fitxers. Tingueu en compte en tot cas que el contingut noms es mostraran si no hi ha cap altra acci possible o si heu triar ignorar el reste d'accions possibles. Per exemple, si inseriu un CD-ROM amb capacitat d'execuci automtica i l'opci Executa automticament programes en dispositius o mitjans nous est habilitada, s'us demanar si voleu permetre o no l'execuci automtica. Si trieu ignorar l'execuci automtica el contingut es mostrar en el gestor de fitxers.

Execuci automtica de programes en nous dispositius o mitjans

Habiliteu aquesta opci per assegurar-vos d'emprar les capacitats d'execuci automtica d'alguns dispositius i mitjans. Veieu Desktop Application Autostart Specification per ms detalls sobre el mecanisme d'execuci automtica. Per millorar la seguretat, sempre s'us demanar confirmaci abans d'executar automticament cap programa.

Si l'emulador de Windows WINE est instaŀlat al vostre sistema, el mecanisme d'execuci automtica tamb intentar executar els fitxers autorun.exe emprant WINE.

Obertura de fitxers en nous dispositius i mitjans

Habiliteu aquesta opci per emprar les capacitat d'obertura automtica de certs dispositius i mitjans. Veieu Desktop Application Autostart Specification per detalls referents al mecanisme d'obertura automtica. Per millorar la seguretat, sempre s'us demanar confirmaci abans d'obrir automticament cap fitxer.

La resta d'opcions us permeten fixar una ordre a executar-se quan certs tipus de mitjans s'insereixin en un dispositiu o certs tipus de dispositius externs es connectin. L'ordre pot emprar tres variables especials que es substituiran quan l'ordre s'executi:

%d

Cada aparici del literal %d en l'ordre es substituir amb el cam al fitxer de dispositiu afegit. Per exemple, si heu connectat un llapis USB, el cam al fitxer de dispositiu ser /dev/da0s1 o /dev/sda1.

Si no hi ha cap fitxer de dispositiu associat al dispositiu o no es pot trobar el fitxer de dispositiu, la variable %d es substituir per una cadena buida.

%h

Cada aparici del literal %h en l'ordre es substituir amb el UDI HAL del dispositiu afegit.

%m

Cada aparici del literal %m en l'ordre es substituir amb el punt de muntatge on s'ha muntat el dispositu afegit. Si no es pot muntar el dispositiu (e.g: impressores o teclats) o si el muntatge automtic no est habilitat, el %m es substituir per una cadena buida.

Problemes amb el gestor de volums

Consells tils per configurar el gestor de volums en cas de que no funcioni com espereu.

  1. Comproveu que Thunar s'estigui executant com a dimoni. El gestor de volums depn d'aix, ja que no s un dimoni en s mateix. Per defecte, Xfce al iniciar-se llana Thunar com a dimoni. Si s'ha mort per algun motiu, obriu Executa (emprant la drecera de teclat Alt+F2 o fent clic-dret a l'escriptori i seleccionant Executa… del men de l'escriptori), introduu Thunar --daemon i feu clic en Executa.

  2. Intenteu executar thunar-volman en una finestra de Terminal desprs d'haver connectat el dispositiu o d'haver inserit el mitj. Primer us caldr endevinar l'UDI HAL del nou dispositiu emprant lshal o hal-device. Un cop sabeu l'UDI, executeu thunar-volman --device-added <UDI-del-dispositiu> en una finestra de Terminal i veieu la sortida per trobar errors o advertncies.

Si encara no vol funcionar, podeu preguntar al Frum Xfce o a la llista de correu thunar-dev.

diff -Nru thunar-1.2.3/docs/manual/html/ca/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/ca/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/ca/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ca/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Fitxers i carpetes

Fitxers i carpetes

Obertura de fitxers

Quan obriu un fitxer, el gestor de fitxers fa l'acci per defecte segons el tipus de fitxer. Per exemple, si s'obre un fitxer de text es mostrar en l'editor de text per defecte, mentre que si s'obre una fitxer d'imatge aquesta es mostrar en el visor d'imatges per defecte.

El gestor de fitxers comprova l'extensi del fitxer per determinar de quin tipus de fitxer es tracta. Si el fitxer te una extensi desconeguda, el gestor de fitxers examinar el contingut del fitxer.

Execuci de l'acci per defecte

Per executar l'acci per defecte d'un fitxer feu doble-clic al fitxer. Per exemple, l'acci per defecte dels fitxers de so s reproduir-lo amb l'aplicaci per defecte de reproducci de msica. En aquest cas, podeu fer doble-clic en el fitxer per reproduir-lo en el reproductor de msica.

Podeu ajustar les preferncies de Thunar per a que un nic clic en un fitxer executi l'acci per defecte. Per ms informaci veieu “Preferncies de comportament”.

Execuci d'altres accions

Per executar accions diferents a la que hi hagi per defecte per un fitxer, seleccioneu el fitxer al que voleu executar l'acci. Seleccioneu l'acci desitjada les opcions Obre amb disponibles en el men Fitxer o en els sub-mens Obre amb.

Addici d'accions

Per afegir accions associades a un tipus de fitxer, seguiu els segents passos:

  1. A l'rea principal, seleccioneu un fitxer del tipus al que li voleu afegir l'acci.

  2. Seleccioneu al men principal FitxerObre amb una altra aplicaci….

  3. O be trieu una aplicaci en el dileg Obre amb o seleccioneu Usa una ordre personalitzada i navegueu fins el programa que voleu emprar per obrir aquest tipus de fitxer.

L'acci que heu triat s'afegeix a la llista d'accions per aquest tipus concret de fitxer. Si heu habilitat l'opci Utilitza per defecta per aquest tipus de fitxer o no hi ha cap acci prvia associada amb aquest tipus, l'acci afegida ser l'acci per defecte.

Tamb podeu afegir accions mitjanant la llista desplegable de Obre amb que hi ha a la finestra que s'obre via FitxerPropietats.

Modificaci d'accions

Per modificar accions associades a un tipus de fitxer, seguiu els segents passos:

  1. A l'rea principal, seleccioneu un fitxer del tipus al que li voleu modificar l'acci.

  2. Seleccioneu FitxerPropeietats al men principal.

  3. Seleccioneu la nova acci per defecte emprant la llista desplegable Obre amb o afegiu una nova acci seleccionant Altres aplicacions….

Per treure una acci afegida a un tipus de fitxer, aneu al dileg Open With con s'ha descrit anteriorment, clic-dret a l'acci que voleu treure i seleccioneu Suprimeix llanador.

Propietats de fitxer

La finestra de propietats de fitxer s on es mostra ms informaci respecte al fitxer o carpeta. En aquesta finestra podeu fer el segent:

  • Canviar la icona dels fitxers especial, com els llanadors d'aplicacions i els enllaos URL.

  • Afegir o Treure emblemes d'un fitxer o carpeta.

  • Canviar el permisos UNIX d'un fitxer o carpeta.

  • Seleccionar quina aplicaci s'emprar per obrir un fitxer o qualsevol altre del mateix tipus.

Propietats de fitxer

Per obrir la finestra de propietats de fitxer, seguiu els segents passos:

  1. Seleccioneu el fitxer o carpeta al que li voleu veure o canviar les propietats. No podeu seleccionar ms d'un element a la vegada per mostrar les propietats comunes a tots ells.

  2. Feu un dels segents:

    • Seleccioneu FitxerPropeietats al men principal.

    • Feu clic-dret a l'element seleccionat i trieu Propietats del men contextual.

    • Pitgeu Alt+Retorn.

diff -Nru thunar-1.2.3/docs/manual/html/da/advanced-topics.html thunar-1.6.10/docs/manual/html/da/advanced-topics.html --- thunar-1.2.3/docs/manual/html/da/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Avancerede emner

Avancerede emner

At masseomdbe filer

At masseomdbe filer, betyder at omdbe flere filer p samme tid ved at bruge et eller andet kriterie, der glder for mindst af en af filerne. Thunar indeholder en masseomdber, som kan kres separat ved at bruge Thunar -B eller indefra Thunar ved at vlge to eller flere filer i hovedomrdet og trykke p F2 eller ved at vlge RedigrOmdb... i hovedmenuen.

Masseomdb filer

Masseomdberne kan bruges til ndre navnet p filerne, endelsen p filerne, eller bde p navnet og filendelsen p filerne.

  • Fjern tegn.

  • Numerere filer.

  • Indst dato eller tidspunkt.

  • Indst eller overskriv tegn.

  • Sg og erstat tegn.

  • Konvertr til store bogstaver, sm bogstaver eller camelcase.

Yderligere masseomdbere kan vre installeret som udvidelsesmoduler til Thunar. Se hjemmesiden forThunar udvidelsesmoduler for at se mulige udvidelser. The Thunar Projektets Wiki indeholder flere detaljer om denne funktion. Du er velkommen til at tilfje yderligere information til wikien.

UNIX filsystemet

Selvom Thunar filhndtering gr det godt ved at skjule detaljerne om det underliggende filsystem, s brugeren ikke skal bekymre sig om dem, er det nogen gange en god id at forst de grundlggende begreber for at se hele billedet. Dette kapitel vil forsge at give dig en kort introduktion til begreberne p UNIX filsystemet , som idag bliver brugt i alle udgaver af UNIX, inklusiv Linux.

Mapper og stier

I et UNIX filsystem er alle mappe arrangeret i en simpel inverteret faldende trstruktur, der udvider sig fra en hovedmappe, som hedder rod-kataloget (udtrykket katalog er ofte brugt istedet for mappe) og vist som Filsystem i Thunar. Dette betyder at du kan komme fra en mappe til en anden, ved at g op i tret indtil du nr et flles punkt, og s ned i tret igen igennem de rette undermapper indtil du nr din destination.

Placeringen af enhver fil eller mappe i tret kan beskrives af dens sti. Stien er de mapper, du oppefra, skal g igennem for at n til mlets mappe eller fil. F.eks. er /home/luke undermappen af luke af undermappen home af hovedmappen, og /home/luke/myfile.txt er filnavnet i myfile.txt i den undermappe. Det frste / i disse stier reprsenterer hovedmappen.

Hver bruger har sin egen mappe til at opbevare personlige filer og indstillinger. Mappen hedder hjemmekataloget og er vist i Thunar som et srligt ikon med brugerens logindnavn. Mappen er ligesom Dokumenter fra Windows. De forskellige brugereres Hjemmekataloger i systemet er som regel lokaliseret under /home-mappen. F.eks. ville /home/luke vre hjemmekataloget for brugeren af brugeren med logindnavnet luke, mens /home/jane ville vre hjemmekataloget for brugeren med logindnavnet jane.

Filtyper

Du har mske allerde hrt at alting er en fil i UNIX. Dette er sandt for de fleste elementer i UNIX systemer idag. Faktisk er selv enheder reprsenteret som srlige filer. Selvom det mske ikke giver mening til at begynde med, er det en af fordelene i UNIX og dets efterflgere og har hjulpet med at opretholde en enkel kerne gennem rene, mens andre styresystemer er ndt til at indfre nye begreber for hver ny teknologi.

Dette er de fire vigtigste filtyper i UNIX-filsystemet.

Almindelige filer

En almindelig fil kan indeholde tekst, et program eller anden data. Dette inkluderer billedfiler, lydfiler, kontordokumenter og videofiler. Begrebet fil er ofte brugt som henvisning til en almindelig fil.

Mappefiler

Mapper er ogs filer i UNIX filsystemet. For at vre njagtig er mapper en srlig fil, der indeholder en kortlgning af filnavne til filreferencer for hver enkelt fil der er inden i denne mappe.

Symbolske henvisningsfiler

En symbolsk henvisning (ofte kaldt en symlink er en srlig fil der indeholder en sti til en anden fil i filsystemet. Symbolske henvisningsfiler indeholder derfor ikke nogen brugbar information i sig selv, men henviser bare til andre filer.

Enhedsfiler

Som nvnt tidligere tilgs enheder (de fleste) ogs gennem filsystemet. Disse srlige enhedsfiler er som regel lokaliseret i /dev mappen. F.eks. reprsenterer den specielle fil /dev/hda den frste IDE-disk p Linux.

diff -Nru thunar-1.2.3/docs/manual/html/da/copyright.html thunar-1.6.10/docs/manual/html/da/copyright.html --- thunar-1.2.3/docs/manual/html/da/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Om Thunar

Om Thunar

Thunar er skrevet af Benedikt Meurer (). Se Thunar hjemmesiden for mere information.

Denne dokumentation er skrevet af Benedikt Meurer(). Den seneste udgave af dette dokument er altid tilrdighed p Thunar's hjemmesiden.

Dette programmel er udgivet under de samme betingelser som GNU General Public License, udgivet af Free Software Foundation; enten version 2, eller (op til dig) enhver senere udgave af licensen.

Du burde have modtaget en kopi af GNU General Public License sammen med dette program; hvis ikke s skriv til Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/da/customizing-thunar.html thunar-1.6.10/docs/manual/html/da/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/da/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -Tilpasning af Thunar

Tilpasning af Thunar

Dette kapitel beskriver hvordan du ndrer bestemte dele af filhndteringen for tilpasse den til dit behov.

"Send til"-menuen

Thunar inkluderer en Send til-menu, der tilbyder mulige destinationer som filer og mapper kan sendes til. For at tilg Send til-menuen, skal du vlge FilSend til fra hovedmenuen, eller hjreklik p en fil eller mappe og vlg Send til.

"Send til"-menu

Som standard indeholder Send til-menuen, et punkt der hedder Skrivebord (opret henvisning) til alle filer og mapper, som simpelthen opretter en henvisning til den valgte fil p skrivebordet. Derudover hvis Genvejspanelet er aktivt, vil menuen ogs inkludere et punkt der hedder Sidepanel (opret henvisning) til mapper, der tillader brugere at tilfje nye genveje til sidepanelet. Efter disse punkter vil Thunar vise flytbare drev der for jeblikket, er tilsluttet computeren. I det ovenstende skrmbillede reprsenterer Floppydrevet en mulig destination for hvor filerne kan sendes til. Bemrk at enheden vil automatisk blive monteret nr frst det er valgt fra Send til-menuen, s du behver ikke manuelt at montere den.

Derudover bliver Thunar ogs leveret med thunar-sendto-email-udvidelsesmodulet, der tilfjer punktet E-postmodtager til menuen, som s bner e-postprogrammet med den valgte fil vedhftet meddelelsen. Hvis markeringen indeholder mindst en mappe, vil de valgte elementer blive pakket ned i en ZIP-fil fr de er vedhftet meddelelsen. Modsat, hvis markeringen indeholder flere filer, eller en enkelt fil som er strre end 200Kib, vil brugeren blive spurgt om filerne skal pakkes ned i og sendes som en ZIP-fil.

Ligesom de fleste funktioner i Thunar, kan Send til-menuen nemt udvides af brugere og programudviklere med nye destinationer, ved at bruge desktop entry files. Disse filer skal installeres i en af $XDG_DATA_DIRS/Thunar/sendto/ mapperne (see the XDG Base Directory Specification for detaljer om $XDG_DATA_DIRS variable).

Destinationens MIME-type> .desktop angiver hvilke type filer der skal vre til rdighed i Send til-menuen. F.eks. hvis du vil tilfje et punkt for et Flickr overfrselsvrktj, s vil dette punkt kun vises hvis markeringen indeholder JPEG-filer (andre filformater er ikke understttet af Flickr) og du ville s skulle tilfje en linie som MimeType=image/jpeg;. Hvis du ikke angiver nogen MimeType vil punktet blive vist for alle filtyper.

Et komplet eksempel ved brug af postr-progammet, er vist forneden:

-# postr.desktop - Integrr postr i
-#                  "Send til"-menuen.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

Hvis du installerer denne fil i ~/.local/share/Thunar/sendto/ (opret mappen hvis den endnu ikke findes) Send til-menuen for JPEG-filer vil vise det nye punkt, Flickr, som kan bruges til at overfre JPEG-billeder til Flickr.

Thunar projektets Wiki indeholder forskellige eksempler p brugbare destinationer til Send til-menuen. Du er velkommen til at udvide Wikisiden med nye eksempler.

Miniaturegenererer

Thunar bruger sm vrktjer til at oprette miniaturer af bestemte filtyper og viser miniaturerne som forhndsvisning af filindholdet. Disse sm vrktjer bliver kaldt miniaturegenererer. Thunar bliver leveret med miniaturegenererer for billed- og skrifttypefiler, og gr automatisk brug af de installerede miniaturegenererer fra GNOME, hvis den er installeret med understttelse af gconf. Brugere kan lbende udvide denne grundlggende funktionalitet med miniaturegenererer til andre filtyper.

Hvis du planlgger at skrive en brugerdefineret miniaturegenerer, skal du starte med et program der accepterer mindst to kommandolinjeparametre, inddatafilen, som er af den filtype du vil understtte og uddatafilen, som er en PNG-fil der oversttes med det format angivet af Standard for miniaturehndtering. Derudover m dit program ogs acceptere den nskede strrelse p miniaturen, som er valgfri men hjt anbefalet. Hvis du skriver uddatafilen til en vilkrlig billedstrrelse, vil Thunar derefter skalere det til den nskede strrelse, hvilket muligvis gr at der bliver produceret et mindre optimalt resultat end hvis miniaturen var oprettet med de anmodede ml.

Nr frst dit vrktj til at generere miniaturer er frdigt, skal du registrere din miniaturegenererer, s Thunar kan finde og bruge det. Derfor, alt du skal gre er at installere en beskrivelsesfil til miniaturegenereren (en .desktop fil) i en de $XDG_DATA_DIRS/thumbnailers/ stier. F.eks. hvis du kun vil registrere miniaturegenereren til din brugerkonto, kan du installere filen i denne mappe ~/.local/share/thumbnailers/. .desktop for miniaturegenererer har det flgende format.

Filformatbeskrivelse til miniaturegenererer

Miniaturegenerererbeskrivelsesfiler bruger Desktop Entry Formatet med en srlig type af X-miniaturegenererer og et srligt felt,X-Thumbnailer-Exec med nye feltkoder. Grundlggende har en miniaturegenerererbeskrivelsesfil, det flgende format.

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Din-miniaturegenererer
-MimeType=din-understttede/MIME-type;
-X-Thumbnailer-Exec=din-miniaturegenererer %i %o %s

Versionen og indkodning er foreskrevet af Desktop Entry specifikationen, brug blot de vrdier der er vist i det ovenstende eksempel. Typefeltet skal have den bestemte vrdi X-Thumbnailer, ellers vil din miniature ikke blive genkendt. Navnevrdien beskriver din miniature.

X-Thumbnailer-Exec feltet indeholder kommandoen til at kre din miniature, og understtter srlige feltkoder der bliver erstattet nr miniaturen kres. De genkendte feltkoder er flgende:

%i

Den lokale sti til inddatafilen til oprettelsen af miniaturevisning, kan entet vre en sti relativ til mappen hvor miniaturegenereren blev krt, eller en fuld sti.

%o

Den lokale sti til uddatafilen, hvor den oprettede miniature skal gemmes. Uddatafilen skal gemmes som en gyldig PNG-fil i overensstemmelse med miniaturestandarden. (se ovenstende). Bemrk at stien ikke m ende med .png, som har en betydning, hvis du krer srlige tredjepartsprogrammer.

%s

Den nskede strrelse p den generede miniature i pixels. Den parameter er valgfri.

%u

Ligesom %i, men erstattet med URI'en af filen, fremfor stien. Dette blev tilfjet for at gre det mere kompatibelt med GNOME.

%%

Vil blive erstattet med et enkelt %.

Du skal inkludere mindst %o og %i eller %u, ellers vil din miniaturegenererer vre ubrugelig.

MIME-Typen viser MIME-typerne - adskilt af et semikolon - for hvilke din miniaturegenerator er i stand til at vise forhndsvisninger.

EPS miniaturegenererer-eksempel

Dette eksempel demonsterer hvordan man skriver og installerer en ny miniaturegenererer til .eps-filer, som bruger convert-vrktjet der bliver leveret som en del af ImageMagick. Vi begynder frst med et simpelt skript der krer convert for at generere en miniature i den nskede strrelse.

-#!/bin/sh
-#
-# eps-thumbnailer - Eksempel p miniaturegenerererskript for EPS-filer.
-#
-# Anvendelse: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# kr convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

Gem det ovenstende skript til filen eps-thumbnailer, vr sikker p at den kan kres, og installr den i /usr/local/bin.

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thum

Derefter skal vi oprette miniaturegenerererbeskrivelsesfilen eps-thumbnailer.desktop, der ser sledes ud:

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

Denne fil skal installeres i /usr/local/share/thumbnailers (opret mappen hvis den ikke eksisterer).

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

Filen eps-thumbnailer.desktop bruger den srlige knap TryExec, som, hvis angivet, navngiver en kommando der skal vre tilstede p systemet for at miniaturegeneratoren er brugbar. I dette tilflde er vores skript ubrugeligt hvis programmet convert ikke er til stede.

Det sidste skridt er at regenere mellemlageret til miniaturegenereren s Thunar kan bruge din miniaturegenererer. Mellemlageret til miniaturegenererer er lokaliseret i $XDG_CACHE_HOME/Thunar/thumbnailers.cache (med mindre den er overskrevet af dig eller systemadministratoren, vil $XDG_CACHE_HOME pege p mappen ~/.cache/). Mellemlageret til miniaturegenereren er periodisk regenereret af Thunar, men du kan tvinge den til at regenerere det ved at kre thunar-vfs-update-thumbnailers-cache-1-vrktjet, der bliver leveret som en del af Thunar. Dette vrktj er som regel installeret i libexec i din installationssti (sbin p Debian/Ubuntu). S f.eks. hvis Thunar er installeret i /usr, skal du kre vrktjet sledes:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

Men vr sikker p at du krer programmet fra din brugerkonto, og ikke superbrugerkontoen, da mellemlageret til miniaturegenereren er gemt i din hjemmemappe, fremfor p selve systemet.

Hvis Thunar nu er oversat med understttelse for filndringsovervgning (ved at bruge FAM- eller Gamin tjenester, vil den automatisk bruge det nye miniaturemellemlager inden for f sekunder, og er derefter istand til at oprette miniaturevisninger ved at bruge dine egne miniaturegenererer. Ellers kan du vre ndt til at genstarte Thunar ved at bruge

$ Thunar -q

for at lukke alle krende udgaver, for derefter at starte den op igen fra din programstarter.

Oprydning af miniaturevisninger

De oprettede miniaturevisninger er gemt i mappen, ~/.thumbnails/ i overenstemmelse med Miniaturevisningsstandarden. Det kan vre hjlpsomt at rydde op i mellemlageret for miniaturevisninger hvis du tester en ny miniaturevisning, ved at bruge

$ rm -rf ~/.thumbnails/

hvilket ogs vil give dig noget ledigt plads i din hjemmemappe. Da alle informationer i denne mappe, automatisk blev genereret fra filerne i dit system, vil du ikke miste flsomme data.

diff -Nru thunar-1.2.3/docs/manual/html/da/faq.html thunar-1.6.10/docs/manual/html/da/faq.html --- thunar-1.2.3/docs/manual/html/da/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Ofte Stillede Sprgsml

Ofte Stillede Sprgsml

Meningen med dette kapitel er at samle de ret ofte stillede sprgsml i forbindelse med arbejdet i Thunar. Hvis du kender til et sprgsml der mangler fra denne side s indsend venligst en anmodning.

Hvorfor krer Thunar ikke filer der er markeret som krbare?

Af sikkerhedsrsager vil Thunar kun kre filer af typen application/x-desktop, application/x-executable og application/x-shellscript. For skrivebordsfiler glder det at krselsfunktionen kun virker hvis filen er af typen Application og en gyldig Exec linje er indtastet eller af typen Link og en gyldig URL er angivet. For andre typer, er funktionen til rdighed hvis filen er markeret som krbar, for den gldende bruger.

Bemrk ogs at for application/x-executable og application/x-shellscript glder det at filernes typer ikke behver at passe njagtigt med disse typer, men det er nok hvis typen har en oprindelse der passer med en af de to ovenstende. Eller hvis MIME-typen er et alias for en at de ovenstende.

Hvor gemmer Thunar filernes metadata?

Thunar tilknytter forskellige indstillinger med filer/mapper, som vi kalder metadata. Alle filers metadata er gemt i en tdb-databasefil, der ogs er kendt som metafilen. Databasefilen er gemt i $XDG_CACHE_HOME/Thunar/metafile.tdb og kan ses ved at bruge tdbtool, som er en del af Thunar (lokaliseret i tdb/ underkataloget).

Hvor bliver indstillingerne til Thunar gemt?

Thunar gemmer brugerjusterede indstillinger (samt skjulte indstillinger) i en .ini-fil, som er lokaliseret i $XDG_CONFIG_HOME/Thunar/thunarrc og kan ses ved brug af et tekstbehandlingsprogram. Se docs/README.thunarrc for en oversigt over diverse indstillinger.

Hvordan skal man bruge musebevgelser i Thunar?

Thunar understtter for jeblikket grundlggende understttelse af skaldte musebevgelser i ikonvisning. Du kan bruge disse musebevgelser ved at holde den midterste knap (som regel musehjulet) nede, mens musemarkren er i baggrundsomrdet af det element der er vist i ikonvisning (ethvert omrde der ikke er dkket af et ikon eller tekst). Nu kan du bevge markren i fire retninger for at udfre bestemte handlinger, som er beskrevet herunder.

Venstre - bner den sidste anvendte mappe
Op - bner den forrige mappe
Hjre - bner den nste anvendte mapppe
Ned - opdaterer den nuvrende mappe

Hvordan tildeler jeg forskellige tastaturgenveje?

Hvis du vil gentildele en genvej, understtter Thunar standard-GTK+ mden at ndre genveje p: simpelthen svv over menupunktet med musemarkren og tryk p den tastaturgenvej du vil gentildele den til.

For at slette en tastaturtildeling, tryk da p Backspace-knappen men du er p menupunktet.

Hvis genvejen ikke ndrer sig, skal du sl den funktion til i GTK+. Dette kan gres p 3 mder:

  • Hvis du krer Xfce 4.3 eller derover kan du sl Redigrbare menuacceleratorer til i Brugerfladeindstillinger-dialogen.

  • Hvis du krer GNOME kan du sl Redigrbare menuacceleratorer til i Menu og vrktjslinjer kontrolcenterdialogen.

  • Ellers, indst flgende i din ~/.gtkrc-2.0 fil (opret filen, hvis den ikke eksisterer):

    gtk-can-change-accels=1

Hvor gemmer Thunar dens tastaturgenveje?

De tilpassede tastaturgenveje er gemt i standard-GTK+ accel map formatet i en fil, lokaliseret, i $XDG_CONFIG_HOME/Thunar/accels.scm. Linjer der starter med ; er kommentarer. Se dokumentationen til GTK+ for detaljer om filformatet.

Hvis du er en pakker eller en systemadministrator og du vil anvende en standard for tastaturgenveje p hele systemet, der er anerledes end de standardgenje der er i Thunar, kan du oprette en fil Thunar/accels.scm i en af $XDG_CONFIG_DIRS. F.eks. hvis /etc/xdg er en del af $XDG_CONFIG_DIRS (standarden p de fleste Linux distributioner), kan du installere en standard der glder for hele systemet til /etc/xdg/Thunar/accels.scm. Thunar vil s indlse genveje fra denne fil ved den frste opstart.

diff -Nru thunar-1.2.3/docs/manual/html/da/index.html thunar-1.6.10/docs/manual/html/da/index.html --- thunar-1.2.3/docs/manual/html/da/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar filhndtering

Thunar filhndtering

Benedikt Meurer

Softwareudvikler
os-cillation
Systemudvikling


Denne manual beskriver version 1.2.0git-cc468f4 af Thunar.

Der gives hermed lov til kopiere, distribuere og/eller ndre dette dokument under betingelserne af GNU Free Documentation License, Version 1.1 eller enhver senere version udgivet af Free Software Foundation, med ingen ufravigelige dele; ingen forsidetekst, og ingen bagsidetekst. Hele licensteksten er til rdighed p Free Software Foundation.

November 2007


Introduktion til Thunar

Thunar er en ny moderne filhndtering til skrivebordsmiljet Xfce. Thunar er designet fra bunden af til at vre hurtig og nem at bruge. Dens brugerflade er stilrent og intuitivt, og inkluderer ikke nogen forvirrende eller ubrugelige indstillinger som standard. Thunar er hurtig og responsiv, med en hurtig opstartstid og indlsningstid af mapper.

Thunar filhndtering srger derved for et integreret tilgangspunkt til dine filer og programmer. Du kan bruge filhndteringen til flgende:

  • Oprette mapper og dokumenter.

  • Vise dine filer og mapper.

  • Hndtere dine filer og mapper.

  • Kre og hndtere brugertilpassede handlinger.

  • Tilg flytbare medier.

diff -Nru thunar-1.2.3/docs/manual/html/da/preferences.html thunar-1.6.10/docs/manual/html/da/preferences.html --- thunar-1.2.3/docs/manual/html/da/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Indstillinger til filhndtering

Indstillinger til filhndtering

Brug dialogen, Indstilling af filhndtering for at indstille dine Thunar-filhndteringsindstillinger. For at bne indstillingsdialogen, skal du vlge RedigrIndstillinger... fra menulinjen, eller klik p Filhndteringsknappen i indstillingshndteringen til Xfce.

Filhndteringsindstillingerne er delt i fire sider med forskellige indstillinger, der er beskrevet i hvert sit afsnit nedenunder. Grundlggende kan du indstille i flgende kategorier:

  • Standardindstillingen til visninger.

  • Standardindstillinger til sidepanelet.

  • Filhndteringenvinduets opfrsel.

  • Filhndteringens avancerede egenskaber.

Thunar understtter ogs en stak af de skaldte skjulte indstillinger, som styrer flere af de avancerede egenskaber i filhndteringen, men er ikke inkluderet indstillingerne for at holde indstillingsdialogen som simpel som mulig. Filen README.thunarrc der er leveret sammen med Thunar, beskriver alle indstillinger i detaljer.

Indstillinger til visning

Du kan angive en standardvisning samt vlge sorterings- og visningsindstillinger. Du kan ogs indstille om miniaturevisning skal anvendes for filtyper der understtter dette.

Indstillinger til visning
Vis ny mappe ved at bruge

Vlg standardvisningen for mapper. Nr du bner et nyt vindue, vil kompakt listevisning blive vist i den visning som du vlger. Dette kan enten vre ikonvisning, listevisning, eller detaljeret listevisning. Du kan ogs vlge Sidste aktive visning her for at vlge den visning der er anvendt p det sidste aktive vindue.

Sortr mapper fr filer

Vlg denne indstilling for at vise mapper fr filer, nr du sorterer en mappe.

Vis miniaturer

Vlg denne indstilling for at vise miniaturer af billedfiler og andre filer der er understttet. Filhndteringen gemmer miniaturebilleder for hver mappe i den skjulte .thumbnails mappe i brugerens hjemmemappe.

Se “Miniaturegenererer” hvis du vil udvide den grundlggende miniature funktionalitet, stillet til rdighed af Thunar med understttelse for yderligere filtyper.

Tekst ved siden af ikoner

Vlg denne indstilling, for at placere ikonteksten for elementer i ikonvisning, ved siden af ikonet i stedet for under det.

Indstillinger til sidepanelet

Du kan vlge visningsmulighder til genvejs- og trstrukturpanelet.

Indstillinger til sidepanelet

Sidepanelet kan enten vise en liste af genveje til mapper i dit filsystem, som er standardindstillingen, eller som en trvisning af dit filsystem. Denne side tillader dig at vlge strrelsen p ikoner til genvejs- og trpanelet. Du kan ogs angive hvilke emblemer der skal vises.

Ikonstrrelse

Strrelsen p ikonerne vist i siden, gr fra Meget sm (omkring 16x16 pixels) til Meget store (omkring 128x128 pixels).

Vis ikonemblemer

Vlg denne indstilling for at vise symboler for mapper i sidepanelet. Du kan tildele emblemer til mapper i Egenskaber-dialogvinduet. Vlg en mappe i hovedomrdet og vlg FilEgenskaber... fra hovedmenuen, eller hjreklik p mappen og vlg Egenskaber... fra kontekstmenuen.

Opfrselsindstillinger

Du kan vlge den foretrukne opfrsel til at pvirke filhndteringen.

Opfrselsindstillinger
Enkeltklik for at aktivere elementer

Vlge denne for at udfre standardhandlingen for et element nr du klikker p det. Nr denne indstilling er valgt, og du peger p et element, vil titlen p elementet blive understreget og automatisk blive valgt, efter en kort forsinkelse.

Forsinkelsen kan angives under indstillingen. Den automatiske markering af elementer kan du ogs sl fra ved at rykke markren til den yderste venstre position.

Dobbeltklik for at aktivere elementer

Vlg denne indstilling for at udfre standardhandlingen for et element nr du dobbeltklikker p det, og markr elementer med et enkelt klik.

Avanceret indstillinger

Du kan styre filhndteringens avancerede funktioner.

Avanceret indstillinger
Mappetilladelser

Vlg den handling der skal udfres nr du ndrer p en mappes tilladelser i Egenskaber-dialogen. Du kan vlge at lade Thunar sprge hver gang du ndrer mappetilladelser, f den til at bruge standarden for de nye tilladelser kun p mappen eller til ogs at bruge den rekursivt p mappens indhold.

Arkivhndtering

Hvis Thunar blev installeret med understtttelse af HAL og thunar-volman-pakken ogs er installeret, kan du sl den integrerede arkivhndtering til. Se “Hndtering af flytbare drev og medier” for detaljer om denne funktkion.

diff -Nru thunar-1.2.3/docs/manual/html/da/support.html thunar-1.6.10/docs/manual/html/da/support.html --- thunar-1.2.3/docs/manual/html/da/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Brugerhjlp

Brugerhjlp

For at indrapportere en fejl eller lave et forslag vedr. dette program eller denne manual, skal du bruge fejlrapporteringssytemet p http://bugzilla.xfce.org/. Husk p at brugbare fejlrapporter er dem der fr rettet fejl, en brugbar rapport har derfor to egenskaber:

  • Genskabbare. Hvis udvikleren ikke selv kan se fejlen, og derfor bevise at den eksisterer, vil han overhovedet ikke vre istand til at rette den. Hver eneste detalje du kan tilbyde hjlper.

  • Specific. Jo hurtigere udvikleren kan isolere problemet til et bestemt omrde, jo strre sandsynlighed er der for at han specifikt vil ordne det.

I det tilflde at du nsker at anmode om en ny funktion, s gr det venligst klart hvorfor du anser det som en forbedring af programmet. Det er mere sandsynligt at en ny funktion bliver tilfjet hvis du tilbyder nogle gode argumenter for den nye funktion. Chancerne for at den bliver tilfjet er endnu strre hvis du medsender en programrettelse med den anmodede funktion, integreret i programmet. Vr dog sikker p at du fr lst filen HACKING - fr du begynder at omskrive kildekoden.

Derudover hvis du har sprgsml om brugen eller installation af dette programmel, s sprg venligst p thunar-dev postliste eller indstil din IRC client til irc.freenode.net, tilslut dig kanalen #thunar og sprg efter hjlp.

diff -Nru thunar-1.2.3/docs/manual/html/da/the-file-manager-window.html thunar-1.6.10/docs/manual/html/da/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/da/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Filhndteringsvinduet

Filhndteringsvinduet

Som standard bestr filhndteringsvinduet af et genvejspanel til venstre, hovedomrdet til hjre og en stilinje over hovedomrdet.

Filhndteringsvindue

Genvejspanelet tilbyder genveje til forskellige mapper p dit system. Den frste genvej vil fre dig til din Hjemmemappe, mappen hvor du opbevarer alle dine personlige data, og vil derfor have det samme navn som den nuvrende bruger. Den anden genvej vil tage dig til papirkurven, som opbevarer alle slettede filer, der s kan genskabes senere. Den tredje genvej tager dig til din Skrivebordsmappe som indeholder de filer og mapper, der er vist p dit skrivebord. Den fjerde genvej vil tage dig til roden af dit filsystem - her vil du mske g lidt p opdagelse, selvom det kan vre lidt forvirrende, hvis du er ny til Linux/Unix. Klik bare rundt i de forskellige mapper og se, hvad der er inden i dem.

Under Filsystemgenvejen, vil de flytbare drev og medier vre vist. I det ovenstende skrmbillede kan du se en genvej til et floppydrev. Klik p disse genveje for at tilg de data der er opbevaret p de flytbare drev og medier. Se “Tilgang af flytbart medie” for flere detaljer.

De resterende genveje er brugertilpassede. Tilfj dine egne genveje ved simpelthen at trkke mapper hen til genvejspanelet. Dette vil gre dig i stand til at tilg dine vigtige mapper jeblikkeligt. For at fjerne en tilfjet genvej, hjreklikker du p genvejen og vlger Fjern genvej. For at omdbe en tidligere tilfjet genvej, hjreklikker du p genvejen og vlger Omdb genvej. Bemrk at disse handlinger kun pvirker genvejen og ikke mappen som genvejen henviser til.

Hovedomrdet vil altid vise indholdet af den nuvrende mappe. Dobbeltklik p mapper for at tilg dem, og hjreklik p filer eller mapper for at se en kontekstmenu, der tilbyder forskellige muligheder for anvendelse. Vlg flere filer ved at trkke en rektangel over dem med musen. Alternativt kan du vlge en fil, hold Skift knappen nede og forg eller formindsk det markerede ved at bruge piletasterne.

Stilinjen vil altid vise den sti du tog for at komme hen til den mappe du er i. Du kan klikke p enhver stilinjeknap for at skifte til den mappe den reprsenterer. Hjreklik p en stilinje for at f en kontekstmenu frem med nogle valgmuligheder.

Tilpasning af udseendet

Der er flere mder at tilpasse udseendet af filhndteringsvinduet p. Hvis du ikke kan lide den mde ikonerne er vist p, s vlg VisVis som liste fra hovedmenuen for at f indholdet af den nuvrende mappe vist som en detaljeret liste.

Du kan f filhndteringsvinduet til at vise en stedlinje istedet for en stilinje ved at vlge VisStedvlgerVrktjslinjestil fra hovedmenuen.

Hvis du foretrkker trvisning i det venstre panel, s vlg VisSidepanelTrstruktur fra hovedmenuen.

Synlige kolonner i detaljeret listevisning

Hvis du foretrkker at vise indholdet af en mappe som en liste ved brug af Detaljeret listevisning, kan du tilpasse de synlige kolonner i detaljeret listevisning. Vlg ViewIndstil kolonner fra hovedmenuen, for at tilpasse de synlige kolonner.

Synlige kolonner
Synlige kolonner

Vlg de kolonner du vil have vist, ud fra listen af kolonner der er til rdighed. Klik p Flyt op eller Flyt ned for at ndre rkkeflgen af kolonnerne. Klik p Brug standard for at vende tilbage til de oprindelige indstillinger.

Kolonnesjustering

Vlg punktet Udvid kolonner automatisk efter behov, hvis du vil have kolonnerne i listevisning til at udvide automatisk efter behov. S er du sikker p at teksten er helt synlig.

diff -Nru thunar-1.2.3/docs/manual/html/da/using-removable-media.html thunar-1.6.10/docs/manual/html/da/using-removable-media.html --- thunar-1.2.3/docs/manual/html/da/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Tilgang af flytbart medie

Tilgang af flytbart medie

Tilgr flytbart medie

Thunar understter flytbare medier, hvis den er bygget med understttelse af HAL, eller hvis du bruger FreeBSD. Bemrk dog at p FreeBSD 6.0 eller nyere, er det anbefalet at bruge HAL istedet for den standardunderstttelse som Thunar tilbyder.

Montering af medie

Montering af medie, er at gre filsystemet p mediet tilgngeligt. Nr du monterer medie, vil filsystemet p mediet, blive tilfjet som et underkatalog p dit filsystem.

For at tilg medie, indst da mediet i den korrekte enhed, eller forbind den nye enhed til din computer (forbind f.eks. en USB-stang til en af dine USB-porte). Et objekt der reprsenterer mediet, er tilfjet i sidepanelet af filhndteringen. Hvis xfdesktop krer og er indstillet til at vise Fil/starter ikoner, vil dette objekt ogs blive tilfjet p dit skrivebord.

Klik p det objekt der reprsenterer mediet, for rent faktisk at montere det. F.eks. for at montere en floppydiskette skal du klikke p floppy-drevobjektet i sidepanel. Filhndteringen vil s tilfje mediets filsystem til dit filsystems hierarki og vise indeholdet af floppydisketten i hovedomrdet.

Skubbe medie ud

Hvis mediets drev er et motoriseret drev (f.eks. et cd-romdrev), s hjreklik p medieobjektet i sidepanelet eller p skrivebordet og vlg Skub arkiv ud. Mediet er skubbet ud af drevet efter nogle f sekunder. Hvis mediets drev ikke er motoriseret (f.eks. et floppydrev eller en USB-stang), s hjreklik p medieobjektet og vlg Afmontr arkiv. Efter et kort stykke tid, vil en pmindelse fremkomme, der informerer dig om at det nu er sikkert at fjerne mediet, eller at afkoble drevet fra computeren.

Pmindelse om afmontering

Denne pmindelse vil dog kun kunne blive vist hvis understttelsen af libnotify er aktiveret, og du har installeret en pmindelsestjeneste. En pmindelsestjeneste til Xfce er tilrdighed fra Xfce Goodies Projektet. Hvis understttelse af pmindelser ikke er tilrdighed, s vent indtil kontekstmenuen forsvinder, fr du fjerner mediet eller afkobler drevet.

Vr opmrksom p at du ikke kan afmontere eller skubbe medier ud, der stadig er i brug af et eller flere programmer. Derfor, hvis filhndteringen ngter at skubbe medie ud, skal du vre sikker p at du lukker alle de programmer der har tilget mediet. Vr ogs sikker p at kommandolinjeprogramer der krer i Terminal vinduer, er lukket.

Vr sikker p at du afmonterer flytbare medier fr du skubber dem ud. Skub ikke en diskette ud fra floppydrevet fr du har afmonteret disketten. Fjern ikke en USB-stang fr du har afmonteret flashdrevet. Hvis du ikke afmonterer mediet frst, vil du mske miste nogle data, eller f dit system til at bryde ned.

Hndtering af flytbare drev og medier

Thunar er ogs istand til automatisk at hndtere flytbare drev og medier, hvis thunar-volman pakken er installeret p dit system. Bemrk dog at denne funktion krver HAL-understttelse.

Hvis nu HAL-understttelse er tilrdighed og thunar-volman er installeret p dit system, kan du vlge at aktivere Arkivhndtering funktionen i Thunar. Dette gres ved at bne filhndteringsegenskaber, g til Avanceret-siden og markr Aktivr arkivhndterings-knappen.

Det nste skridt er at tilpasse hndteringen af flytbare drev og medier til dine behov. Klik p Indstil-henvisningen i sektionen Arkivhndtering , lige under knappen. Flytbare drev og medier indstillingsdialogen vil nu blive vist.

Flytbare drev og medier

Hvis du fr har brugt gnome-volume-manager, vil du fle dig helt hjemme, da den var designet til at se ud som og opfre sig som gnome-volume-manager. Egenskaberne er delt op i enhedskategorier, for at gre det nemt at finde indstillingen til din specifikke enhed.

Siden til Opbevaring indeholder de mest vigtige valgmuligheder. Som navnet antyder, glder disse indstillinger kun for opbevaringsenheder ssom eksterne harddiskdrev, USB-stang og cd-rom'er.

Montr flytbare medier der bliver tilsluttet

Anvend denne valgmulighed for, automatisk at montere filsystemer p flybare drev (f.eks. eksterne harddiskdrev eller USB-stnger), nr sdanne bliver tilsluttet computeren.

Denne indstilling skal sls til for at bestemte andre funktioner virker med flytbare drev. Hvis du f.eks. slr denne indstilling fra, vil bestemte brbare musikafspillere ikke lngere blive fundet, selvom du har slet Spil musikfiler ved tilslutning indstillingen til p Multimedie -siden, vil den specifikke kommando ikke blive krt nr du tilslutter din brbare musikafspiller.

Montr flytbare medie der tilsluttes

Brug denne indstilling for, automatisk at montere filsystemer p flytbare medier (f.eks. cd-rom'er eller dvd'er),nr du indstter mediet i drevet.

Denne indstilling skal sls til for at bestemte andre funktioner virker med flytbare drev. Hvis du f.eks. slr denne valgmulighed fra, vil det blive umuligt at finde ud af om det flytbare medie har auto-kr egenskaber, og derfor vil indstillingen auto-kr programmer p nye drev og medier ikke have nogen effekt p flytbare medier.

Gennemse flytbare medier der bliver tilsluttet

Brug denne indstilling for, automatisk at vise indholdet af det nyligt indsatte medie i filhndteringen. Bemrk dog, at indholdet vil kun blive vist hvis ingen anden handling var mulig eller du valgte at ignorere de andre mulige handlinger. Hvis du f.eks. indstter en cd-rom med auto-kr egenskaber og auto-krprogrammer p nye drev og medier indstillingen er slet til, vil du blive spurgt om du vil tillade, eller ignorere auto-kr-funktionen. Hvis du vlger at ignorere auto-kr-funktionen, vil indholdet blive vist i filhndteringen.

Auto-kr programmer p nye drev og medier

Brug denne funktion for at gre bruge af auto-kr muligheden p bestemte flytbare drev og medier. Se Desktop Application Autostart Specification for deltajer om auto-kr mekanismen. For at forbedre sikkerheden, vil du altid blive spurgt om at bekrfte auto-kr funktionen.

Hvis Windows emulatoren WINE er installeret p dit system, vil auto-kr-mekanismen ogs forsge at kre autorun.exe filer ved brug af WINE.

Auto-bning af filer p nye drev og medier

Brug denne funktion for at gre bruge af auto-bn-muligheden p bestemte flytbare drev og medier. Se Desktop Application Autostart Specification for deltajer om auto-bn mekanismen. For at forbedre sikkerheden, vil du altid blive spurgt om at bekrfte auto-bn-funktionen.

De tilbagevrende indstillinger vil tillade dig af specificere en kommando, der skal kres nr en bestemt type medie er indsat i drevet, eller nr en bestemt type ekstern enhed er tilsluttet. Kommandoen kan bruge tre srlige variabler, der vil blive erstattet nr kommandoen er udfrt:

%d

Hver forekomst af %d i kommandoen vil blive erstattet af enhedens filsti p nylige tilfjede enheder. F.eks. hvis du har forbundet en USB-stang, vil enhedens filsti vre /dev/da0s1 eller /dev/sda1.

Hvis ingen enhedsfil er tilknyttet enheden eller enhedsfilen, af en eller anden grund ikke kan findes, vil variablen %d blive erstattet med den tomme streng.

%h

Hver forekomst af %h i kommandoen vil blive erstattet med HAL-UDI'en p den nyligt tilfjetde enhed.

%m

Hver forekomst af %m i kommandoen vil blive erstattet af det monteringspunkt, hvor den nyligt tilfjede enhed blev monteret. Hvis enheden ikke kan monteres (f.eks. printere eller tastaturer) eller hvis automatisk montering er slet fra, vil %m blive erstattet med den tomme streng.

Fejlfinding til arkivhndteringen

Nyttige rd til fejlfinding til arkivhndteringen, i det tilflde at den ikke virker som forventet.

  1. Vr sikker p at Thunar krer som en tjeneste. Arkivhndteringen afhnger af dette, da den ikke er en tjeneste i sig selv. Som standard, vil Xfce automatisk starte Thunar op som en tjeneste under opstart. Hvis den blev drbt af en eller anden grund, s bn Kr program (ved brug af tastaturgenvejen Alt+F2 eller hjreklik p skrivebordet og vlg Kr program... fra skrivebordsmenuen), indtast Thunar --daemon og klik p Kr.

  2. Prv at kre thunar-volman fra et Terminal-vindue efter at have tilsluttet drevet eller indsat mediet. Frst skal du finde ud af, hvad den nye enheds HAL-UDI er, ved at bruge lshal eller hal-device. Nr du frst kender enhedens UDI, skal du kre thunar-volman --device-added<din-enheds-udi> i et Terminal-vindue og efterse uddataen for fejl eller advarsler.

Hvis det stadigvk ikke vil virke, s sprg p Xfce Forum eller thunar-dev mailliste for hjlp.

diff -Nru thunar-1.2.3/docs/manual/html/da/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/da/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/da/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/da/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Arbejde med filer og mapper

Arbejde med filer og mapper

bner filer

Nr du bner en fil, vil filhndteringen udfre standardhandlingen for den filtype. F.eks. ved bning af en tekstfil vil den vise den i det tekstbehandlingsprogram der er sat som standard, mens bning af en billedfil vil vise den i den billedfremviser der er sat som standard.

Filhndteringen undersger filendelsen p en fil for at fastsl hvilken type fil det er. Hvis filen ingen endelse har, vil filhndteringen undersge indholdet af filen.

Udfrer standardhandlingen

For at udfre standardhandlingen for en fil, s dobbeltklik p den. F.eks. er standardhandlingen for lydfiler, at afspille dem i den musikafspiller der er sat som standard. I dette tilflde kan du dobbeltklikke p filen for at bne den i musikafspilleren.

Du kan indstille Thunar sledes at du kan njes med at klikke en enkelt gang p en fil for at udfre standardhandlingen, se “Opfrselsindstillinger”.

Udfrer ikke-standardhandlinger

For at udfre handlinger, udover standardhandlingen for en fil, s vlg den fil du vil udfre en handling med. Vlg den nskede handling frabn med valgmulighederne i Fil menuen eller med bn med undermenuen.

Tilfjer handlinger

Gr flgende for at tilfje handlinger til en bestemt filtype:

  1. Vlg en fil i hovedomrdet af den filtype du vil tilfje en handling til.

  2. Vlg Filbn med andet program... fra hovedomrdet.

  3. Enten vlg et program i bn med-dialogvinduet eller vlg Brug tilpasset kommando og vlg stien til det program, du nsker at bne denne filtype med.

Den handling du har valgt er nu tilfjet til listen over tidligere tilknyttede handlinger for lige den filtype. Hvis du har aktiveret Brug som standard for denne type filer eller der ikke er nogen tidligere handlinger med denne filtype, er den nylig tilfjede handling nu standard.

Du kan ogs tilfje handlinger ved brug af bn med knappen under FilEgenskaber....

ndrer handlinger

Gr flgende for at ndre de tilknyttede handlinger til en fil eller filtype:

  1. Vlg en fil i hovedomrdet af den filtype du vil ndre en handling for.

  2. Vlg FilEgenskaber... fra hovedmenuen.

  3. Vlg den nye standardhandling ved brug af bn med-knappen eller tilfj en ny handling ved at vlge bn med andet program... fra rullegardinmenuen.

For at fjerne en tidligere tilfjet handling for en filtype, skal du bne bn med-dialogen som beskrevet ovenfor, hjreklik p den handling du vil fjerne og vlg Fjern starter.

Filegenskaber

Filegenskabsvinduet viser mere information om enhver fil eller mappe i filhndteringen. Med dette vindue, kan du ogs gre flgende:

  • ndre ikonet for srlige filer, som f.eks. programstartere og URL-henvisninger.

  • Tilfje eller fjerne emblemer for en fil eller mappe.

  • ndre UNIX-filtilladelser for en fil eller mappe.

  • Vlge hvilket program der skal bruges til at bne en fil og andre filer af den samme type.

Filegenskaber

For at bne filegenskabsvinduet, skal du udfre flgende trin:

  1. Vlg en fil eller mappe, hvis egenskaber du vil undersge eller ndre. Du kan ikke vlge flere elementer ad gangen og f vist de egenskaber, de har tilsammen i jeblikket.

  2. Udfr en af flgende handlinger:

    • Vlg FilEgenskaber... fra hovedmenuen.

    • Hjreklik p det markerede element og vlg Egenskaber... fra genvejsmenuen.

    • Tryk p Alt+Retur.

diff -Nru thunar-1.2.3/docs/manual/html/el/advanced-topics.html thunar-1.6.10/docs/manual/html/el/advanced-topics.html --- thunar-1.2.3/docs/manual/html/el/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -Advanced Topics

Advanced Topics

To Bulk Rename Files

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

Bulk Rename Files

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • Remove characters.

  • Numbering files.

  • Insert Date or Time.

  • Insert or overwrite characters.

  • Search and replace characters.

  • Convert to uppercase, lowercase or camlcase.

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

The UNIX File System

- While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user - does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. - This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all - incarnations of UNIX, including Linux. -

Folders and Paths

- In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down - from a single top level folder, which is called the root directory (the term - directory is often used instead of folder) and displayed as - File System in Thunar. This means that you can get from any folder to any other by going - up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach - your target. -

- The position of any file or folder in the tree can be described by its path. The path is the - list of folders you would have to descend through to get to the target folder or file, starting from the top level - folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, - and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The - leading / in these paths represents the top level folder. -

- Every user has their own folder to hold their personal files and settings. This folder is called the home - directory and is displayed in Thunar as special icon with the users login name. The folder is similar to - the My Files folder known from Windows. The home directories of the various - users in a system are usually located below the /home folder. For example - /home/luke would be the home directory of the user with the login name - luke, while /home/jane would be - the home directory for the user with the login name jane. -

File Types

- You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems - today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is - one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other - operating systems had to introduce new concepts for every new technology. -

- These are the four most important types of files in the UNIX file system. -

Ordinary Files

- An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents - and video files. The term file is often used to refer to an ordinary file. -

Folder Files

- Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a - mapping of file names to file references for every file contained within this folder. -

Symbolic Link Files

- A Symbolic link (often called a symlink) is a special file that contains a path to - another file in the file system. Symbolic link files therefore do not contain any useful information - themselves, but just refer to other files. -

Device Files

- As mentioned earlier (most) devices are also accessed through the file system. These special device files are - usually located in the /dev folder. For example the special file - /dev/hda represents the first IDE disk on Linux. -

diff -Nru thunar-1.2.3/docs/manual/html/el/copyright.html thunar-1.6.10/docs/manual/html/el/copyright.html --- thunar-1.2.3/docs/manual/html/el/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -About Thunar

About Thunar

- Thunar was written by Benedikt Meurer (). Visit the - Thunar website for more information. -

- This documentation was written by Benedikt Meurer (). The latest - version of this document is always available from the Thunar website. -

- This software is distributed 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. -

- 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. -

diff -Nru thunar-1.2.3/docs/manual/html/el/customizing-thunar.html thunar-1.6.10/docs/manual/html/el/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/el/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -Customizing Thunar

Customizing Thunar

- This chapter describes how to customize certain parts of the file manager to your own needs. -

The "Send To" Menu

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

"Send To" Menu

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

The desired size of the generated thumbnail in pixels. This parameter is optional.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

- Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

- This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). -

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

- to terminate any running instance, and afterwards restart it from your launcher. -

Cleaning up Thumbnails

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

- which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. -

diff -Nru thunar-1.2.3/docs/manual/html/el/faq.html thunar-1.6.10/docs/manual/html/el/faq.html --- thunar-1.2.3/docs/manual/html/el/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -Frequently Asked Questions

Frequently Asked Questions

- The intent of this section is to collect the quite numerous frequently asked - questions that relate to working with Thunar. If you know of a question that - is missing from this page, please file - a request. -

Why doesn't Thunar execute files marked as executable?

- For security reasons Thunar only executes files of type application/x-desktop, - application/x-executable and application/x-shellscript. For - desktop files the execution feature will only be enabled if the desktop file is of type - Application and a valid Exec line is given or of type - Link and a valid URL is given. For the other types the feature - is available if the file is marked executable for the current user. -

- Also note that for application/x-executable and application/x-shellscript, - the types of the file don't really need to match these types exactly, but it is suffice if the detected - type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for - one of the above. -

Where does Thunar store the metadata associated with files?

- Thunar associates various settings with files/folders, which we call metadata. - This metadata for all files is stored in tdb database file, which is called - the metafile. The database file is stored in - $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined - using the tdbtool, which is part of the Thunar distribution - (located in the tdb/ subdirectory). -

Where does Thunar store its preferences?

- Thunar stores the user configurable preferences (and hidden settings) in - an .ini file, which is located at - $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined - using a text editor. See docs/README.thunarrc for an - overview of the various preferences. -

How to use mouse gestures in Thunar?

- Thunar currently features basic support for so called mouse gestures - in its icon view. You can use these mouse gestures by holding down - the middle mouse button (usually the mouse wheel) while the mouse pointer is on the - background area of the icon view component (any area that is not covered by - an icon or a text). Now you can move the cursor into four directions to - perform certain actions, which are described below. -

Left - opens the previous visited folder
Up - opens the parent folder
Right - opens the next visited folder
Down - reloads the current folder

How do I assign different keyboard shortcuts?

- If you want to rebind a shortcut, Thunar supports the standard GTK+ way - of changing shortcuts: simply hover over the menu option with the mouse - pointer and press the keyboard shortcut you want to rebind it to. -

- To delete a keyboard assignment, press the Backspace key - while you are on the menu entry. -

- If the shortcut doesn't change, then you need to enable the feature in - GTK+. This can be achieved in 3 ways: -

  • - If you are running Xfce 4.3 or above then you can enable Editable - menu accelerators in the User Interface Preferences - dialog. -

  • - If you are running GNOME then you can enable Editable menu - accelerators in the Menu and Toolbars control - center dialog. -

  • - Otherwise put the following in your ~/.gtkrc-2.0 file - (create the file if it doesn't exist):

    gtk-can-change-accels=1

    -

Where does Thunar store the keyboard shortcuts?

- The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a - file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting - with ; are comments. See the GTK+ documentation for details about the - file format. -

- If you are a packager or a system administrator and want to provide a system wide default - for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you - can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. - For example, if /etc/xdg is part of $XDG_CONFIG_DIRS - (the default for most Linux distributions), you can install system wide defaults to - /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup. -

diff -Nru thunar-1.2.3/docs/manual/html/el/index.html thunar-1.6.10/docs/manual/html/el/index.html --- thunar-1.2.3/docs/manual/html/el/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Thunar File Manager

Thunar File Manager

Benedikt Meurer

Software developer
os-cillation
System development


- This manual describes version 1.2.0git-cc468f4 of Thunar. -

- Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 or - any later version published by the Free Software Foundation; with no - Invariant Sections, with no Front-Cover Texts, and with no Back-Cover - Texts. The complete license text is available from the Free Software Foundation. -

November 2007


Introduction to Thunar

- Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to - be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless - options by default. Thunar is fast and responsive with a good start up time and folder load time. -

- The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the - file manager to do the following: -

  • Create folders and documents.

  • Display your files and folders.

  • Manage your files and folders.

  • Run and manage custom actions.

  • Access Removable Media.

diff -Nru thunar-1.2.3/docs/manual/html/el/preferences.html thunar-1.6.10/docs/manual/html/el/preferences.html --- thunar-1.2.3/docs/manual/html/el/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -File Management Preferences

File Management Preferences

- Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. -

- The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: -

  • The default settings for the views.

  • The default settings for the side pane.

  • The behavior of the file manager windows.

  • Advanced features of the file manager.

- Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. -

Views Preferences

- You can specify a default view, select sort options and display options. You can - also specify whether thumbnails should be displayed for file types that support - this. -

Views Preferences
View new folder using

- Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. -

Sort folders before files

- Select this option to list folders before files when you sort a folder. -

Show thumbnails

- Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. -

- See &#x201C;Thumbnailers&#x201D; if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. -

Text beside icons

- Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. -

Side Pane Preferences

- You can select display options for the shortcuts pane and the tree pane. -

Side Pane Preferences

- The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. -

Icon Size

- The size of the icons displayed in the side, ranging from Very Small (around - 16x16 pixels) to Very Large (around 128x128 pixels). -

Show Icon Emblems

- Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. -

Behavior Preferences

- You can select the preferred behavior to interact with the file manager. -

Behavior Preferences
Single click to active items

- Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. -

- This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. -

Double click to activate items

- Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. -

Advanced Preferences

- You can control advanced features of the file manager. -

Advanced Preferences
Folder Permissions

- Choose the action that should be performed when you change the permissions of a folder in - the Properties dialog. You can choose to let Thunar - ask everytime when you change folder permissions, tell it to default to applying the new permissions - to the folder only or to apply them recursively to the folder contents as well. -

Volume Management

- If Thunar was installed with support for HAL and the thunar-volman - package is also installed, you can enable the integrated volume manager. See &#x201C;Management of Removable Drives and Media&#x201D; - for details about this feature. -

diff -Nru thunar-1.2.3/docs/manual/html/el/support.html thunar-1.6.10/docs/manual/html/el/support.html --- thunar-1.2.3/docs/manual/html/el/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -Support

Support

- To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. - Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities: -

  • - Reproducible. If the developer cannot see the bug himself - to prove that it exists, he will most probably not be able to fix it at all. Every detail you - can provide helps. -

  • - Specific. The quicker the developer can isolate the problem - to a specific area, the more likely he will expediently fix it. -

- In case you want to request a new feature, please make clear why you consider it a worth - addition for the application. It is more likely that a new feature gets added if you provide - good arguments for the feature. It will increase the chance of addition even more if you - provide a patch that implements the requested feature, but make sure that you read the file - HACKING - - especially the section labeled Coding Style - before you start hacking - up the source. -

- Else, if you have questions about the use or installation of this software, please ask on the - thunar-dev mailing - list or point your IRC client to irc.freenode.net, - join the channel #thunar and ask for help. -

diff -Nru thunar-1.2.3/docs/manual/html/el/the-file-manager-window.html thunar-1.6.10/docs/manual/html/el/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/el/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -The File Manager Window

The File Manager Window

- By default the file manager window consists of a shortcut pane on the left side, the main area on the right - and a pathbar above the main area. -

File Manager Window

- The Shortcut Pane provides shortcuts to different folders on your system. The first - shortcut will lead to your Home Folder, the folder you store all your personal data, - and will therefore have the name of the current user. The second shortcut will take you to the trash bin, - which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop - Folder, which contains the files and folders that are displayed on the desktop. The fourth - shortcut will take you to the root of your file system - you may want to explore it a bit, even though - it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is - inside. -

- Below the File System shortcut, the removable drives and media will be displayed. In - the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts - to access the data stored on the removable drives and media. See &#x201C;Using Removable Media&#x201D; - for further details. -

- The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the - Shortcuts Pane. This will allow you to access important folders instantly. To - remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. - To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. - Note that these actions affect only the shortcut, not the folder referenced by the shortcuts. -

- The main area will always display the contents of the current folder. Double click on - folders to enter them, and right-click on files or folders to get a context-menu offering some choices of - what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, - select one file, hold down the Shift key, and increase or decrease the selection using - the arrow keys. -

- The pathbar will always show the path you took to get to the folder you are currently - at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar - button to bring up a context-menu with some options. -

Customizing the Appearance

- There are many ways to customize the appearance of the file manager windows. In case you do not like the - way the icons are displayed, choose ViewView as Detailed List - from the main menu to have the contents of the current folder displayed as a list. -

- You can have the file manager windows display a location bar instead of the pathbar by choosing - ViewLocation SelectorToolbar Style - from the main menu. -

- In case you prefer a treeview in the left pane, choose - ViewSide PaneTree - from the main menu. -

Visible Columns in the Detailed List View

- If you prefer to display the contents of the folder as a list, using the Detailed List View, you can - customize the columns displayed in the list view. To customize the visible columns, choose - ViewConfigure Columns... from the main menu. -

Visible Columns
Visible Columns

- Select the columns you want to be displayed from the list of available columns. Click Move Up - or Move Down to change the order of the columns. Click Use Default to - revert your changes. -

Column Sizing

- Select the option Automatically expand columns as needed if you want the list view columns - to expand automatically if the needed to ensure the text is fully visible. -

diff -Nru thunar-1.2.3/docs/manual/html/el/using-removable-media.html thunar-1.6.10/docs/manual/html/el/using-removable-media.html --- thunar-1.2.3/docs/manual/html/el/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,133 +0,0 @@ -Using Removable Media

Using Removable Media

Accessing Removable Media

- Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. -

To Mount Media

- To mount media is to make the file system of the media available for access. When you mount media, the - file system of the media is attached as a subdirectory to your file system. -

- To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB - stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If - xfdesktop is running and configured to display File/launcher icons this - object will also be added to your desktop. -

- To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, - click on the Floppy Drive object in the side pane. The file manager will now add the file system - of the media to your file system hierarchy and display the contents of the floppy diskette in the main area. -

To Eject Media

- If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane - or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. - If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and - choose Unmount Volume. After a short period of time, a notification will appear to inform you - that it is now safe to remove the media or disconnect the drive from the computer. -

Unmount notification

- However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. -

- Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file - manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also - check command line applications running in Terminal windows. -

- Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount - the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you - might lose data or cause your system to crash. -

Management of Removable Drives and Media

- Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on - your system. Note however that this feature requires HAL support. -

- Now, if HAL support is available and thunar-volman is installed on your system, you - can choose to enable the Volume Management feature of Thunar. Therefore, open the file - manager preferences, go to the Advanced page and check the Enable Volume - Management button. -

- The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. -

Removable Drives and Media

- If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. -

- The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. -

Mount removable drives when hot-plugged

- Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. -

- This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. -

Mount removable media when inserted

- Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) - when you insert the media into the drive. -

- This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. -

Browse removable media when inserted

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

Auto-run programs on new drives and media

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

Auto-open files on new drives and media

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

- The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: -

%d

- Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. -

- If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. -

%h

- Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. -

%m

- Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. -

Troubleshooting the Volume Manager

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/el/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/el/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/el/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/el/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -Working with Files and Folders

Working with Files and Folders

Opening Files

- When you open a file, the file manager performs the default action for that file type. For example, opening a text file - will display it in the default text editor, while opening an image file will display the image in the default image - viewer. -

- The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the - file manager examines the contents of the file. -

Executing the Default Action

- To execute the default for a file, double-click on the file. For example, the default action for audio files is to - play the it with the default music playing application. In this case, you can double-click on the file to open the - file in the music player. -

- You can set Thunar preferences so that you click once on a file to execute the default - action. For information, see &#x201C;Behavior Preferences&#x201D;. -

Executing Non-Default Actions

- To execute actions other than the default action for a file, select the file that you want to perform an action on. - Choose the desired action from the Open With choices available in File menu - or an Open With submenu. -

Adding Actions

- To add actions associated with a file type, perform the following steps: -

  1. - In the main area, select a file of the type to which you want to add an action. -

  2. - Choose FileOpen With Other Application... - from the main menu. -

  3. - Either choose an application in the Open With dialog or select Use a custom command - and browse to the program with which you wish to open this type. -

- The action you have chosen is now added to the list of actions for that particular file type. If you enabled the - Use as default for this kind of file option or there was no prior action associated with the - type, the newly added action is the default. -

- You may also add actions using the Open With button under - FileProperties.... -

Modifying Actions

- To modify the actions associated with a file or file type, perform the following steps: -

  1. - In the main area, select a file of the type for which you want to modify the action. -

  2. - Choose FileProperties... from the main menu. -

  3. - Select the new default action using the Open With button or add a new action by choosing - Open With Other Application... from the drop down menu. -

- To remove a previously added action for a file type, bring up the Open With dialog as described - above, right-click the action you want to remove and choose Remove Launcher. -

File Properties

- The file properties window shows more information about any file or folder in the file manager. With this window, you can also - do the following: -

  • - Change the icon for special files, such as application launchers and URL links. -

  • - Add or remove emblems for a file or folder. -

  • - Change the UNIX file permissions for a file or folder. -

  • - Choose which application is used to open a file and other files of the same type. -

File Properties

- To open the file properties window, perform the following steps: -

  1. - Select the file or folder whose properties you want to examine or change. You cannot - select multiple items at once and display the properties that are in common to all - items currently. -

  2. - Do one of the following: -

    • Choose FileProperties... from the main menu.

    • Right-click the selected item and choose Properties... from the context menu.

    • Press Alt+Return.

    -

diff -Nru thunar-1.2.3/docs/manual/html/es/advanced-topics.html thunar-1.6.10/docs/manual/html/es/advanced-topics.html --- thunar-1.2.3/docs/manual/html/es/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Acciones avanzadas.

Acciones avanzadas.

Renombrar masivamente archivos

El renombrado masivo de archivos significa renombrar varios archivos a la vez usando algn criterio, que se aplica al menos a uno de estos archivos. Thunar incluye un renombrador masivo, que puede funcionar independientemente usando el comandoThunar -B o dentro de Thunar seleccionando dos o ms archivos en el area principal y presionando F2 o seleccionando EditarRenombrar... desde el menu principal.

Renombrar masivamente archivos

The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:

  • Borrar carcteres.

  • Numerando archivos.

  • Insertar fecha o hora.

  • Insertar o sobreescribir carcteres.

  • Buscar y reemplazar carcteres.

  • Convert to uppercase, lowercase or camlcase.

Optimizadores del sistema adicionales pueden ser instalados como complementos para Thunar. Comprueba la pgina Thunar Plugins para ver las extensiones disponibles actualmente. El Thunar Project Wiki contiene ms detalles sobre esta caracterstica. Sientete libre para aadir ms informacin al Wiki.

El Sistema de Archivos UNIX

Aunque que el gestor de archivos Thunar hace un buen trabajo en la abstraccin de los detalles del sistema de archivos subyacentes, de modo que el susuario no tiene que preocuparse de ellos, es, a veces til entender los conceptos bsicos para entender el cuadro completo. Esta seccin intenta dar una introduccin a los conceptos del sistema de archivos UNIX, el cual es usado hoy en da por todas las encarnaciones de UNIX, incluyendo Linux.

Directorios y rutas

En un sistema de archivos UNIX todos los directorios se ordenan en una estructura de rbol invertido que se ramifica hacia abajo desde un direcotrio nico superior, llamado directorio raz (root) (el trmino directorio es usuado a menudo en ligar de carpeta) y mostrado como Sistema de Archivos en Thunar. Esto significa que puede llegar desde un directorio a otro cualquiera recorriendo el rbol hacia arriba hasta encontrar un punto comm, y despus bajar por el rbol a travs de los apropiados subdirectorios hasta alcanzar su objetivo.

La posicin de cualquier archivo o arpeta en el rbol puede ser descrit por su path o ruta. El path es la lista de las carpetas que tendras que recorrer descendiendo desde el directorio raz para llegar al archivo o carpeta de destino. Por ejemplo, /home/luke es la subcarpeta luke de la subcarpeta home del directorio raz, y /home/luke/myfile.txt es el archivo myfile.txt en esa subcarpeta. The leading / en estas rutas representa la carpeta raz.

Cada usuario tiene su propia carpeta para guardar su configuracin y archivos personales. Esta carpeta se llama carpeta personal y es mostrada en Thunar como un icono especian con el nombre de conexin de los usuarios. Esta carpeta es simila a la conocida Mis Documentos en Windows. Las carpeta personal de los usuarios en un sistema estn usualmente localizadas en el directorio /home. Por ejemplo, /home/luke sera la carpeta personal del usuario de nombre de conexin luke, mientras que /home/jane sera la carpeta personal del usuarion con nombre de conexin jane.

Tipos de archivo

Puede que haya odo que todo es un archivo en UNIX. Esto es verdadero para la mayora de los objetos presentes un sistema de archivos UNIX de hoy en da. De hecho, incluso los dispositivos de hardware estn representados como archivis especiales. Aunque puede que esto no tenga sentido a primera vista, es uno de los putos fuertes de UNIX y sus derivados, y ha ayudado a mantener un simple motor a lo largo de los aos donde otros sistemas operativos han tenido que introducir nuevos conceptos para cada nueva tecnologa.

Estas son los cuatro tipos de archivos ms importantes en un sistema de archivos UNIX.

Arvhicos corrientes

Un archivo corriente puede contener texto, un programa, u otros datos, esto incluye imgenes, archivos de audio, documentos de oficina y archivos de vdeo. El trmino archivo es a menudo usado para referirse a un archivo ordinario.

Archivos de directorio

Las carpetas son tambin archivos en un sitema de archivos UNIX. Para ser exactos, una carpeta es un archivo especial, que contiene un mapa con el nombre y una referencia de cada archivo contenido dentro de esta carpeta.

Enlaces simblicos

Un enlace simblico (a menudo llamado symlink) es un archivi especial que contiene una ruta a otro archivo en el sistema de archivos. Por lo tanto, los enlaces simblicos no contienen informacin til, slo apuntan a otro archivo.

Archivos de Dispositivos

Como mencionamos anteriormente, a la mayora de los disposistivos de hardware, tambin se accede a travs del sistema de archivos. Estos archivos especiales de disposistivos estn usualmente localizados en el directorio /devename>. Por ejemplo, el archivo especial /dev/hda representa el primer disco IDE disk en Linux.

diff -Nru thunar-1.2.3/docs/manual/html/es/copyright.html thunar-1.6.10/docs/manual/html/es/copyright.html --- thunar-1.2.3/docs/manual/html/es/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Acerca de Thunar

Acerca de Thunar

Thunar ha sido escrito por Benedikt Meurer (). Visite el sitio web de thunar para ms informacin.

Esta documentacin fue escrita por Benedikt Meurer (). La ltima versin de este documento est siempre disponible desde el sitio web de Thunar.

Este software est distribuido bajo los trminos de la GNU General Public License (Licencia Pblica General de GNU) segn lo publicado por la Free Software Foundation; en la versin 2 de la licencia o cualquiera posterior.

Usted debera haber recibido una copia de la GNU General Public License (Licencia Pblica General de GNU) con este programa; si no la ha recibido, escriba a la Free Sofware Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 022111-1307, USA

diff -Nru thunar-1.2.3/docs/manual/html/es/customizing-thunar.html thunar-1.6.10/docs/manual/html/es/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/es/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,150 +0,0 @@ -Personalizar Thunar

Personalizar Thunar

Este captulo explica cmo personalizar ciertas partes del administrador de archivos a sus propias necesidades.

El men "Enviar a"

Thunar incluye un men Enviar a, que proporciona posibes destinos donde los archivos y carpetas pueden ser enviados. Para acceder al men Enviar a, seleccione ArchivoEnviar a en el men principal, o haga clic derecho en un fichero o carpeta y seleccione Enviar a.

El men "Enviar a"

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

The desired size of the generated thumbnail in pixels. This parameter is optional.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

- Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

- This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). -

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

- to terminate any running instance, and afterwards restart it from your launcher. -

Limpiar miniaturas

Las miniaturas generadas estan guardadas en el directorio ~/.thumbnails/ cumpliendo con el Thumbnail Management Standard. Cuando se testea un nuevo gestor de miniaturas, puede ayudar limpiar la cach usada

$ rm -rf ~/.thumbnails/

lo que adems te dar algo de espacio libre en tu directorio home. Como toda la informacin guardada en este directorio es generada automaticamente con archivos de tu sistema, no perders ningn dato importante.

diff -Nru thunar-1.2.3/docs/manual/html/es/faq.html thunar-1.6.10/docs/manual/html/es/faq.html --- thunar-1.2.3/docs/manual/html/es/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Preguntas frecuentes

Preguntas frecuentes

Esta seccin intenta reunir las numerasosas preguntas frecuentes que tienen que ver con el trabajo con Thunar. Si conoce alguna pregunta que no est en esta pgina, por favor archive una peticin.

Por qu Thunar no ejecuta los archivos marcado como ejecutables?

Por razones de seguridad, Thunar solo ejecuta archivos del tipo application/x-desktop, application/x-executable y application/x-shellscript. Para archivos del escritorio, su ejecucin ser solo permitida si el archivo es del tipo Application y una lnea Exec vlida es dada, o de tipo Link una una lnea URL vlida es dada. Para otros tipos esta caracterstica est disponible si el archivo est marcado como ejecutable para el usuario actual.

Fjese en que para para application/x-executable y application/x-shellscript, lo tipos de los archivos no necesitan coincidir realmente con estos tipos exactamente, pero es suficiente si el tipo detectado tiene un padre coincide con uno de los dos tipos listados arriba, o si su MIME-type es un alias de uno de los de arriba

Dnde almacena Thunar los metadatos asociados con los archivos?

Thunar asocia varios parmetros con archivos/carpetas, a las cuales llamamamos metadatos. Estos metadatos para todos los archivos se alamacenan en archivo de base de datos, que es llamado el metaarchivo. La base de datos est almacenada en $XDG_CACHE_HOME/Thunar/metafile.tdb y puede examinarse usando tdbtool, que es parte de la distribucin de Thunar (localizada en tdb/).

Dnde almacena Thunar ls preferencias?

Thunar almacena las preferencias configurables de usuario (y los parmetros ocultos) en un archivo .ini, que est localizado en $XDG_CONFIG_HOME/Thunar/thunarrc, y que puede ser examinado usando un editor de texto. Vea docs/README.thunarrc para una descripcin de varias preferencias.

Cmo usar los gestos de ratn en Thunar?

Thunar ofrece un soporte bsico para los gestos de ratn en su vista de iconos. Puede usar estos gestos de ratn pulsando el botn del medio (generalmente el de la rueda scroll) mietras que el puntero est en el rea del fondo de la vista de iconos (cualquier rea que no est cubierta por un icono o texto). Ahora puede mover el cursor en cuatro direcciones para realizar algunas acciones descritas abajo.

Izquierda - abre la carpeta visitada anteriormente
Arriba - abre la carpeta padre
Derecha - abre la siguiente carpeta visitada
Abajo - recarga la carpeta actual

Cmo asgino diferentes combinaciones de teclas

Si quiere reasignar una combinacin, Thunar soporta la forma estndar de GTK+ de cambiar las combinaciones de teclas: Simplemente colquese en la opcin del men con el putero del ratn y pulse la combinacin de teclas que usted quiera asignarle a esa opcin del men.

Para borrar una combinacin asignada, pulse la tecla Backspace mientras que est en la entrada del men.

Si la combinacin de teclas no cambia, entonces debe habilitar la caracterstica en GTK+. Puede hacerlo de tres formas:

  • Si est usando Xfce 4.3 o superior puede activar Editable menu accelerators en el dilogo Configuracin de la interfaz de usuario

  • Si est usando GNOME puede activar Editable menu accelerators el el dilogo Menu and Toolbars del centro de control.

  • Otra forma es poner lo siguiente en su archivo ~/.gtkrc-2.0 (cree el archivo si no existe):

    gtk-can-change-accels=1

    .

Dnde almacena Thunar las combinaciones teclas

Las combinaciones de teclas personalizadas estn almacenadas en un formato estndar de combinaciones de teclas de GRK+ en un archivo localizado en $XDG_CONFIG_HOME/Thunar/accels.scm. Las lneas que empiezan con ; son comentarios. Vea la documentacin de GTK+ para detalles acerca de este formato.

Si usted es un administrador de paquetes o del sistema y quiere ofrecer una combinacin de teclas para todo el sistema, es diferente que las combinaciones predeterminadas en Thunar, puede crear un archivo Thunar/accels.scm en uno de los in one of the $XDG_CONFIG_DIRS. Por ejemplo, si /etc/xdg es parte de $XDG_CONFIG_DIRS (el predeterminado en la mayora de distribuciones Linux), puede instalar combinaciones para todo el sistema en /etc/xdg/Thunar/accels.scm. Thunar cargar estas combinaciones de este archivo en su primera ejecucin.

diff -Nru thunar-1.2.3/docs/manual/html/es/index.html thunar-1.6.10/docs/manual/html/es/index.html --- thunar-1.2.3/docs/manual/html/es/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Administrador de archivos Thunar

Administrador de archivos Thunar

Benedikt Meurer

Desarrollador del software
os-cillation
Desarrollo del sistema


Este manual describe la versin 1.2.0git-cc468f4 de Thunar

La copia, distribucin y/o modificacin de este documento est permitida bajos los trminos de la GNU Free Documentation License, Versin 1.1 o posterior publicada por la Free Software Foundation; sin Secciones Invariantes, sin textos de la cubierda delantera y sin textos de la cubierta trasera. La licencia completa est disponible en la Free Software Foundation.

November 2007


Introducin a Thunar

Thunar es un nuevo y moderno administrador de archivos para el entorno de escritorio Xfce. Thunar ha sido diseado para ser rpido y fcil de usar. Su interfaz de usuario es clara e intuitiva, y no incluye ninguna opcin confusa o intil de forma predeterminada. Thunar es rpido y fiable, con una buena velocidad de inicio y de carga de directorio.

El gestor de archivos Thunar proporciona un punto de acceso integrado a tus archivos y aplicaciones. Puede usar el gestor de archivos para lo siguiente:

  • Crear directorios y documentos.

  • Mostrar sus archivos y directorios.

  • Manipular sus archivos y directorios

  • Ejecutar y manejar actiones personalizadas.

  • Acceder a medios extrables.

diff -Nru thunar-1.2.3/docs/manual/html/es/preferences.html thunar-1.6.10/docs/manual/html/es/preferences.html --- thunar-1.2.3/docs/manual/html/es/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Preferencias del administrador de archivos

Preferencias del administrador de archivos

Use el dilogo de Preferencias del administrador de archivos para configurar las preferencias del administrador de archivos Thunar.

El dilogo Preferencias del administrador de archivos se divide en cuatro pginas con diferentes opciones, cada una se describe abajo en secciones separadas. Bsicamente puede configurar las preferencias en las siguientes categoras:

  • La configuracin predeterminada para las vistas.

  • La configuracin por defecto para el panel lateral.

  • El comportamiento de las ventanas del administrador de archivos.

  • Caractersticas avanzandas del administrador de archivos.

Thunar tambin soporta un grupo de autodenominadas Hidden Options, que controlan varias caractersitcas avanzadas del administrador de archivos pero no son includas para mantener el dilogo de preferencias simple. El archivo README.thunarrc que viene includo en Thunar describe todas las opciones con detalle.

Preferencias de vista

Puede especificar una vista por defecto, seleccionar opciones de ordenacin y de visualizacin. Tambin puede espeficiar donde se mostrarn las miniaturas para los tipos que estn soportados.

Preferencias de vista
Ver las nuevas carpetas usando

Seleccione la vista predeterminada para las carpetas. Cuando abra un nuevo directorio ser mostrado con la vista que haya elegido. Esta puede ser vista de icono, en lista compacta o en lista detallada. Tambin puede seleccionar ltima vista activa aqu para usar la vista que configur en la ltima ventana activa.

Ordenar las carpetas antes que los archivos

Seleccione esta opcin para listar las carpetas antes que los archivos cuando ordene un directorio.

Mostrar miniaturas

Selecione esta opcin para mostrar miniaturas de las imgenes y otros archivos soportados. El gestor de archivos guarda los archivos miniatura de cada directorio en el directorio oculto .thumbnails en la carpeta Home del usuario.

Consulte “Thumbnailers” si quiere extender el funcionamiento bsico proporciando por Thunar con soporte para tipos de fichero adicionales.

Texto al lado de los iconos

Seleccione esta opcin para colocar el texto de los iconos a su lado en lugar de bajo ellos.

Preferiencias del panel lateral

Usted puede seleccionar opciones de visualizacin para los accesos directos del panel y el panel en rbol.

Preferiencias del panel lateral

El panel lateral puede tanto mostrar una lista de enlaces directos en su sistema de ficheros, que es lo preterminado, como mostrar una vista de rbol de su sistema. Esta pgina le permite seleccionar el tamao de los iconos para los enlaces y el rbol. Tambin puede especificar que emblemas deben ser mostrados.

Tamao de icono

El tamao de los iconos mostrados en el lateral, variando desde Muy pequeo (unos 16x16 pxeles) hasta Muy grande (unos 128x128 pxeles).

Mostrar emblemas de los iconos

Seleccione esta opcin para mostrar emblemas de las carpetas en el panel lateral. Puede assignar emblemas a las carpetas en el dilogo Propiedades. Seleccione una carpeta en el rea principal y elija ArchivoPropiedades... en el men principal, o haga clic derecho en la carpeta y seleccione Propiedades... en el men contextual.

Preferencias de comportamiento

Puede seleccionar el comportamiento preferido para interactuar con el administrador de archivos.

Preferencias de comportamiento
Haga clic para activar elementos

Seleccione esta opcin para realizar la accin por defecto en un objeto cuando haga clic en l. Cuando esta opcin est activada y usted apunte a un objeto, el ttulo del objeto se subraya y es seleccionado automticamente despus de una corta espera.

Esta espera puede ser configurada con la opcin de abajo. Tambin puede desactivar la seleccin automtica de objetos moviendo el selector al extremo izquierdo.

Haga doble clic para activar elementos

Seleccione esta opcin para realizar la accin por defecto cuando realize doble clic en un objeto y seleccionar los objetos con un simple clic.

Preferencias avanzadas.

Puede controlar las caractersticas avanzadas del administrador de archivos.

Preferencias avanzadas.
Permisos de la carpeta

Seleccione la accin que debera ser ejecutada cuando cambie los permisos de una carpeta en el dilogo de Propiedades. Puede permitir a Thunar preguntar cada vez que cambie los permisos de una carpeta, decirle que aplique los nuevos permisos slo a la carpeta seleccionada o aplicarlos tambin de forma recursiva a todos los contenidos .

Gestor de volmenes

Si Thunar fue instalado con soporte para HAL y el paquete thunar-volman tambin est instalado, puede activar el administrador de volmenes integrado. Consulte “Administracin de unidades y soportes extrables” para ms detalles sobre esta caracterstica.

diff -Nru thunar-1.2.3/docs/manual/html/es/support.html thunar-1.6.10/docs/manual/html/es/support.html --- thunar-1.2.3/docs/manual/html/es/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Soporte

Soporte

To comunicar un fallo o una sugerencia para esta aplicacin o para su manual, use el sitema de seguimiento de fallos en http://bugzilla.xfce.org/. Recuerde que los comunicados tiles consiguen que se arreglen tales fallos, as que un comunicado til de un fallo tiene dos caractersticas:

  • Reproductivo. Si el desarrollador no puede ver el fallo por s mismo para comprobar que existe, lo ms probable es que no pueda arreglarlo. Cualquier detalle que de puede ser de ayuda.

  • Especfico. Cuanto ms rpido pueda asociar el problema a un rea, ms probable es que lo arregle convenientemente.

En el caso de que quiera solicitar una caracterstica, por favor deje claro por qu considera usted que merece la pena esa caracterstica para la aplicacin. Es ms probable que una nueva caracterstica sea aadida si ofrece buenos argumentos. Las posibilidades de que se aanda una caracterstica son an ms si proporciona un parche que implemente esa caracterstica, pero asegrese de leer el archivo HACKING - especialmente la seccin Coding Style - antes de que empiece a modificar el cdigo.

Si tiene preguntas acerca del uso o la instalacin de este software, por favor, pregunte en la lista de correo thunar-dev o conecte su cliente IRC a irc.freenode.net, nase al canal #thunar y pida ayuda.

diff -Nru thunar-1.2.3/docs/manual/html/es/the-file-manager-window.html thunar-1.6.10/docs/manual/html/es/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/es/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Administrador de archivos Thunar

Administrador de archivos Thunar

Por defecto, la ventana del administrador de archivo consiste en un panel de atajos en el lado izquierdo, el rea principal a la derecha y una barra de lugares encima del rea principal.

Administrador de archivos Thunar

El panel de atajos proporciona atajos a diferentes carpetas de su sistema. El primer atajo le llevar a su carpeta personal, la carpeta en la que almacena toda su informacin personal, y que por lo tanto tendr el nombre del usuario actual. El segundo atajo le llevar a la papelera, la cual almacena archivos borrados que pueden ser recuperados posteriormente. El tercer atajo le lleva a la carpeta de escritorio, que contiene los archivos y carpetas que aparecen en el escritorio. El cuarto atajo le llevar al directorio raz de sus sistema de archivos: quiz desee examinarlo un poco, aunque puede resultarle confuso si es nuevo en Linux/UNIX. Slo tiene que hacer clic en las diferentes carpetas para ver qu hay dentro.

Debajo del atajo para el sistema de archivos, se mostrarn los dispositivos y soportes extrables. En la imagen de arriba, puede ver un atajo a la unidad de disquete. Haga clic en estos atajos para acceder a los datos almacenados en dispositivos y soportes extrables. Consulte “Usar soportes extrables.” para ms detalles.

Los restantes enlaces directos son definidos por el usuario. Aada sus propios enlaces simplemente arrastrando directorios al Panel de atajos. Ellos permiten acceder instantneamente a directorios importanes. Para borrar un enlace previamente aadido, haga clic derecho en el atajo y seleccione Eliminar acceso directo. Para renombrar un enlace previamente aadido, haga clic derecho en el enlace y elija Renombrar enlace directo. Tenga en cuenta que esta accin solo afecta al enlace, no a los directorios referenciados por ellos.

El area principal siempre mostrar los contenidos del directorio actual. Haga doble clic en directorios para entrar en ellos y clic derecho en archivos o directorios para ver un men contextual que ofrece algunas opciones para hacer con ellos. Seleccione varios archivos dibujando un rectngulo sobre ellos con el ratn. Alternativamente, seleccione un archivo, mantenga pulsada la tecla Shift, e incremente o decremente la seleccin usando las teclas de flecha.

La barra de direcciones siempre mostrar la ruta del directorio en que actualmente se encuentre. Usted puede hacer clic en cualquier boton de la barra para cambiar al directorio que represente. Un clic derecho sobre un boton mostrar un men contextual con algunas opciones.

Personalizar el aspecto

Hay varias formas para personalizar la apariencia de las ventanas del gestor de ficheros. En caso de que no le gusten el modo en que se muestran los iconos, elija VerVer como lista detallada desde el men principal para ver los contenidos del directorio actual como una lista.

Usted puede poner una barra de herramientas en lugar de una de direcciones seleccionando VerSelector de lugarEstilo de la barra de herramientas en el men principal.

En el caso de que prefiera una vista de rbol en el panel izquierdo, seleccione VerPanel lateralrbol en el men principal.

Columnas visibles en vista detallada

Si prefiere ver los contenidos del directorio como una lista, usando Ver como lista detallada, usted puede personalizar las columnas visibles en este modo. Para personalizar las columnas visibles, seleccione VerConfigurar columnas... en el men principal.

Columnas Visibles
Columnas Visibles

Seleccione las columnas que quiera ver de la lista de columnas disponibles. Haga clic Subir o Bajar para cambiar el orden de las columnas. Haga clic para Usar predeterminado deshacer los cambios.

Tamao de columna

Seleccione la opcin Expandir automticamente las columnas segn se necesite si quiere que las columnas se expandan automticamente si es encesario para que el texto se visualize completamente.

diff -Nru thunar-1.2.3/docs/manual/html/es/using-removable-media.html thunar-1.6.10/docs/manual/html/es/using-removable-media.html --- thunar-1.2.3/docs/manual/html/es/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -Usar soportes extrables.

Usar soportes extrables.

Acceder a soportes extrables.

Thunar soporta soportes extrables si fue compilado con soporte para HAL, o usted utiliza FreeBSD. Sin embargo en FreeBSD 6.0 o ms recientes, es recomendable usar HAL antes que el soporte nativo proporcionado por Thunar.

Montar dispositivo

Montar soportes extraibles es hacer el sistema de ficheros de ste accesible. Cuando se monta un soporte, el sistema de ficheros de est es asociado a un subdirectorio de su sistema de ficheros.

Para acceder al soporte, insertelo en el dispositivo apropiado o conctelo a su ordenador (por ejemplo, conecte un pendrive USB en uno de sus puertos USB). Un objeto que representa al dispositivo se aadir al panel lateral del administrador de archivos. Si xfdesktop est ejecutndose y configurado para mostrar Iconos de archivo/lanzador este objeto se aadir tambin a su escritorio.

Para montar el soporte, haga clic en el objeto que lo representa. Por ejemplo, para montar un disquete, haga clic en el objeto Unidad de disquete en el panel lateral. El gestor de archivos aadir ahora el sistema de ficheros del soporte a la jerarqua de su sistema y mostrar los contenidos del disquete en el area principal.

Para expulsar soportes

Si el dispositivo del soporte es motoroziado (por ejemplo, una unidad de CD-ROM), haga clic derecho en el objeto del soporte en el panel lateral o en el escritorio y seleccione Expulsar volumen. El soporte ser expulsado del dispositivo en pocos segundos. Si el dispositivo no es motorizado (por ejemplo, un disquete o una unidad USB), haga clic derecho en el objeto del soporte y elija Desmontar volumen. Despus de un corto periodo de tiempo, una notificacin aparecer para informarle de que puede retirar de forma segura el soporte o desconectar el dispositivo de la computadora.

Notificacin de desmontado

Sin embargo esta notificacin solo aparecer si el soporte para libnotify est activado, y usted tiene instalado un servicio de notificaciones. Un servicio de notificaciones para Xfce est disponible desde Xfce Goodies Project. Si el soporte para notificaciones no est disponible, espere hasta que el men contextual desaparezca antes de retirar el soporte o desconectar el dispositivo.

Tenga en cuenta que no puede expulsar o desmontar soportes que estn en uso por una o ms aplicaciones. Por tanto, si el gestor de archivos rehsa expulsar el soporte, asegrese de que cierra todas las aplicaciones que estn accediendo al soporte, y tambin de las aplicaciones que se ejecuten en ventanas de terminal.

Asegrese de desmontar los soportes removibles antes de expulsarlos. No extraiga un un disquete de la disquetera antes de haberlo desmontado. No desconecte una memoria USB antes de desmontarla. Si extrae cualquier soporte antes de desmontarlo puede ocasionar prdida de informacin o destruir el sistema de ficheros.

Administracin de unidades y soportes extrables

Thunar tambin es capaz de controlar automticamente dispositivos removibles y soportes si el paquete thunar-volman est instalado en su sistema. Esta funcionalidad requiere soporte para HAL.

Ahora, si el soporte para HAL est disponible y thunar-volman est instalado en su sistema, usted puede activar el Gestor de volmenes de Thunar. Para ello, abra las preferencias del gestor de archivos, vaya a la pgina Avanzado y seleccione el botn Activar gestin de volmenes .

El siguiente paso es personalizar la administracin de los soportes y los dispositivos removibles a sus necesidades. Haga clic en el enlace Configurar en la seccin de Gestor de volmenes, debajo del botn. El dilogo de configuracin del Removable Drives and Media ser mostrado.

Unidades y soportes extrables.

Si usted ha usado gnome-volume-manager previamente, debera sentirse cmodo, porque ha sido diseada para parecerse y comportarse de forma similar a gnome-volume-manager. Las preferencias se dividen por categoras de dispositivos para facilitar la localizacin de la opcin para su dispositivo especfico.

La pgina Almacenamiento contiene las opciones ms importantes. Como su nombre sugiere, estas opciones aplican solo a dispositivos de almacenamiento como discos externos, lpices USB y CD-ROMs. Las opciones de Almacenamiento extrable se describen en detalle ms abajo.

Montar dispositivos extrables al conectar en caliente

Active esta opcin para montar automticamente sistemas de archivos en dispositivos extrables (por ejemplo, discos duros o lpices USB) cuando dichos dispositivos se conectan al ordenador.

Esta opcin debe ser activada para determinadas funciones necesarias para trabajar con dispositivos extrables. Por ejemplo, si desactiva esta opcin, algunos tipos de reproductores de msica porttiles podran dejar de ser detectados y por tanto, aunque active la opcin Reproducir archivos de msica al conectar en la pgina Multimedia, el comando especificado no se ejecutar cuando conecte su reproductor de msica porttil.

Montar soportes extrables al insertar

Active esta opcin para montar automticamente sistemas de archivos en soportes extrables (por ejemplo, CD-ROMs o DVDs) cuando los inserte en la unidad.

Esta opcin se debe activar para determinadas funciones necesarias para operar con soportes extrables. Por ejemplo, si desactiva esta opcin, ser imposible detectar si el soporte extrable tiene capacidades de auto-ejecucin, y por tanto la opcin Auto-ejecutar programas en nuevas unidades y soportes no tiene efecto para soportes extrables.

Examinar soporte extrable al ser insertado

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

Arrancar automticamente programas en nuevos discos y dispositivos.

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

Auto-open files on new drives and media

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

Las siguientes opciones permiten especificar un comando para ejecutar cuando cierto tipo de soporte es insertado o se conecta algn dispositivo externo. El comando puede utilizar tres variables especiales que se sustituirn cuando el comando se ejecute:

%d

Cada aparicin de %d en el comando se sustituir con la ruta del dispositivo nuevo aadido. Por ejemplo, si inserta una memoria USB, la ruta del archivo del dispositivo ser /dev/da0s1 o /dev/sda1.

Si ningn archivo de dispositivo es asociado con el dispositivo o el dispositivo no se puede encontrar por alguna razn, la variable %d se sustituir con una cadena vaca.

%h

Cada aparicin del %h en el comando se sustituir con la HAL UDI del nuevo dispositivo aadido.

%m

Cada aparicin de %m en el comando se sustituir con el punto de montaje donde el nuevo disposistivo ha sido montado. Si el dispositivo no puede ser montado (por ejemplo impresoras o teclados) o el montaje automtico est deshabilitado, %m se sustituir con la cadena vaca.

Troubleshooting the Volume Manager

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/es/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/es/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/es/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/es/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Trabajar con archivos y directorios

Trabajar con archivos y directorios

Abriendo archivos

Cuando abre un fichero, el gestor de ficheros realiza la accin predeterminada para ese tipo de fichero. Por ejemplo, abriendo un fichero de texto mostrar ste con el editor de texto predeterminado, mientras que abriendo una imagen la mostrar abriendo el visor de imgenes predeterminado.

El gestor de ficheros comprueba la extensin del archivo para determinar su tipo. Si un archivo no tiene una extensin conocida, el gestor examina su contenido.

Ejecutar la accin por defecto

Para ejecutar la accin por defecto en un archivo, haga doble clic en l. Por ejemplo, la accin predeterminada en los archivos de audio es reproducirlos con el reproductor predeterminado. En este caso, usted puede hacer doble clic en el archivo para abrir el reproductor.

Usted puede configurar Thunar para que ejecute la accin predeterminada con un solo clic. Para informacin, consulte “Preferencias de comportamiento”.

Ejecutando acciones no predeterminadas

Para ejecutar otras acciones en lugar de las predeterminadas en un archivo, seleccione el archivo en el que desee realizar la accin. Seleccione la accin que desee de las disponibles en Abrir con en el men Archivo o en el submen.

Aadiendo acciones

Para aadir acciones asociadas a un tipo de fichero, realize los siguientes pasos:

  1. En el area principal, seleccione el fichero del tipo que desee aadir una accin.

  2. Seleccione ArchivoAbrir con otra aplicacin... desde el men principal.

  3. Elija una aplicacin en el cuadro de dilogo Abrir con o seleccione Usar un comando personalizado y busque el programa con que quiere abrir este tipo de archivos.

La accin que ha elegido est ahora aadida a la lista de acciones para ese tipo particular. Si activa la opcin Usar como predeterminado para este tipo de archivo o no haba ninguna accin anteriormente asociada para este tipo, la recin aadida es ahora la predeterminada.

Tambin puede aadir acciones usando el botn Abrir con bajo ArchivoPropiedades....

Modificanado acciones

Para modificar acciones asociadas con un archivo un tipo de archivo, realize los siguientes pasos:

  1. En el area principal, seleccione el archivo del tipo que desee modificar la accin.

  2. Elija ArchivoPropiedades... desde el men principal.

  3. Seleccione la nueva accin por defecto utilizando el botn Abrir con o aada una nueva accin seleccionando Otra aplicacin... del men.

Para eliminar una accin aadida anteriormente para un tipo de archivo, vaya hasta el cuadro de diaĺogo Abrir con descrito anteriormente, haga clic derecho en la accin que desee remover y elija Eliminar lanzador.

Propiedades de archivo

La ventana de propiedades de archivo muestra ms informacin sobre cualquier archivo o directorio en el gestor de archivos. Con esta ventana, usted puede realizar lo siguiente:

  • Cambiar el icono para archivos especiales, como lanzadores de aplicaciones o direcciones URL.

  • Aadir o eliminar emblemas para un archivo o directorio.

  • Cambiar los permisos UNIX de un archivo o directorio.

  • Selecciona que aplicacin usar para abrir un fichero y otros del mismo tipo.

Propiedades de archivo

Para abrir la ventana de propiedades, realiza los siguientes pasos:

  1. Selecciona el archivo o directorio cuyas propiedades quieres examinar o cambiar. Actualmente no se puede seleccionar varios objetos a la vez y ver las propiedades que tienen en comn.

  2. Realize una de las siguientes:

    • Elija ArchivoPropiedades... desde el men principal.

    • Click-derecho en el objeto elegido y selecciona Propiedades... del men contextual.

    • Presione Alt+Return.

diff -Nru thunar-1.2.3/docs/manual/html/eu/advanced-topics.html thunar-1.6.10/docs/manual/html/eu/advanced-topics.html --- thunar-1.2.3/docs/manual/html/eu/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Gomendio Aurreratuak

Gomendio Aurreratuak

To Bulk Rename Files

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

Bulk Rename Files

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • Remove characters.

  • Numbering files.

  • Insert Date or Time.

  • Insert or overwrite characters.

  • Search and replace characters.

  • Convert to uppercase, lowercase or camlcase.

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

UNIX Fitxategi Sistema

Naiz Thunar fitxategi kudeatzaileak lan on bat egiten duenez fitxategi sistemaren xehetasunak abstraitzen, horrela erabiltzailea ez da hauetaz arduratu behar, batzuetan erabilgarri da oinarrizko kontzeptu ulertzea. Atal honek UNIX fitxategi sistemaren kontzeptuetara sarrera labur bat da, hau gaur egungo UNIX antzeko guztiek erabiltzen dutena LINUX barne.

Karpetak eta Bideak

UNIX fitxategi sistema batetan karpeta guztiak erro direktorioa hasten den alderantzizko zuhaitz estruktura batetan kokatzen dira (sarritan directorio terminoa karpeta-ren ordez erabiltzen da) eta thunar-en Fitxategi Sistema bezala bistaratzen dira. Honek karpeta batetik bestera mugitzeko batzen dituen puntu arte zuhaitzean gora igoaz eta gero helburu duzun karpetara sartuaz lor dezakezula.

Zuhaitzean edozein karpeta edo fitxategiren kokalekua bere bidearen bidez azaldu daiteke. Bidea fitxategi edo karpeta horretara ailatzeko erro direktoriotik jaitsi behar diren karpeten izenek sortzen dute. Adibidez /home/luke home lehen mailako karpetaren lukeazpidirektorioa da, eta /home/luke/myfile.txt karpeta honetako filename>myfile.txt

Erabiltzaile bakoitzak bere karpeta pertsonala du bere fitxategi eta ezarpen pertsonalak mantentzeko. Karpeta honi etxe direktorioa eta Thunar-en erabiltzaile izena et ikono berezi batez bistaratzen da. Karpeta hau Windows-eko Nire Dokumentuak karpetaren antzerakoa da.Erabiltzaile ezberdinen etxe direktorioak /home karpetaren barnean kokatzen dira. Adibidez /home/luke karpeta luke erabiltzailearen etxe direktorioa izan beharko litzateke eta /home/jane karpeta jane erabiltzailearen etxe direktorioa izan beharko litzateke.

Fitxategi Motak

Ziurrenik dagoeneko entzuna duzu UNIX sistemetan dena fitxategi bat dela. Hau UNIX sistematan dauden elementu gehienentzat egoa da. Praktikan gailuak ere fitxategi berezien bidez errepresentatzen dira. Nahiz honek hasiera batetan zentzurik ez duela iruditu UNIX eta aldagaien puntu indartsuenetako bat da eta beste sistema eragileek teknologia berri bakoitzagatik kontzeptu berriak sartu behar dituzten bitartean honek urteen zehar muin sinple bat mantentzen lagundu du.

Hauek dira UNIX fitxategi sistemako 4 fitxategi mota garrantzitsuenak.

Fitxategiak Arruntak

Fitxategi arrunt batek testua, programa bat edo beste datu batzuek izan ditzake, irudi fitxategiak, audio fitxategiak, ofizina dokumentuak eta bideo fitxategiak barne.Fitxategia terminoa fitxategi arruntez aritzeko erabiltzen da.

Karpeta Fitxategiak

Karpetak ere fitxategiak dira UNIX sistemetan. Zehazki karpetak fitxategi bereziak dira zeinek karpeta horretako edozein fitxategiren fitxategi erreferentzien fitxategi izenen mapatze bat duen.

Lotura Sinboliko Fitxategiak

Lotura sinbolikoa (baita symlink deiturikoak) fitxategi sistemako beste fitxategi batera bidea duen fitxategi berezi bat da. Lotura sinboliko fitxategiek beraz ez dute bere buruaren informazio erabilgarririk baina beste fitxategi batzuei egiten diote erreferentzia.

Gailu Fitxategiak

Lehen esan dugunez gailuak (gehienak) ere fitxategi sistemaren bidez eskuratzen dira. Fitxategi berezi hauek normalean /dev karpetan gordetzen dira. Adibidez /dev/hda fitxategi bereziak Linux-en lehenengo IDE diskoa adierazten du.

diff -Nru thunar-1.2.3/docs/manual/html/eu/copyright.html thunar-1.6.10/docs/manual/html/eu/copyright.html --- thunar-1.2.3/docs/manual/html/eu/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar -ri buruz

Thunar -ri buruz

Thunar Benedikt Meurer-ek () idatzia izan da. Thunar webgunea begiratu argibide gehiagorako.

Dokumentazio hau Benedikt Meurer-ek () idatzia da. Dokumentu honen azken bertsioa betiThunar webgunean dago eskuragarri.

Software hau Free Software Foundation-ek kaleratutako GNU Lizentzia Publiko Orokorraren baldintzetan zabaltzen da bai Lizentziaren 2 bertsioan, edo (zure aukeran) berriago den edozeinetan.

Programa honekin batera GNU Lizentzia Publiko Orokorraren kopia bat jasoko zenuen; hala ez bada, idatzi hona: Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/eu/customizing-thunar.html thunar-1.6.10/docs/manual/html/eu/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/eu/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -Customizing Thunar

Customizing Thunar

- This chapter describes how to customize certain parts of the file manager to your own needs. -

The "Send To" Menu

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

"Send To" Menu

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

The desired size of the generated thumbnail in pixels. This parameter is optional.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

- Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

- This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). -

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

- to terminate any running instance, and afterwards restart it from your launcher. -

Cleaning up Thumbnails

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

- which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. -

diff -Nru thunar-1.2.3/docs/manual/html/eu/faq.html thunar-1.6.10/docs/manual/html/eu/faq.html --- thunar-1.2.3/docs/manual/html/eu/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Sarri Egindako Galderak

Sarri Egindako Galderak

Atal honen helburua Thunar erabiltzaileen arten gehien egiten diren galderen bilduma egitea da. Hemen egon beharko zen eta ez dagoen galdera baten bat ezagutuaz gero , mesedez eskaera bat bete.

Zergaitik Thunar-ek ez ditu abiarazgarri diren fitxategiak abiarazten?

Segurtasun arrazoiak medio Thunar-ek bakarrik application/x-desktop, application/x-executable eta application/x-shellscript motatako fitxategiak abiarazten ditu. Idazmahai fitxategien kasuan abiarazteko gaitasuna bakarrik Application motakoa eta baliozko Exec lerro bat duena edo Loturamotakoa eta baliozko URL bat ematean egongo da aktibaturik. Beste fitxategi motentzat gaitasun hau erabiltzaileak fitxategia abiarazgarri egin badu bakarrik aktibatuko da.

Kontutan izan ere application/x-executable eta application/x-shellscript motentzat, fitxategi mota ez dela zehazki mota hauetako izan behar, baina aski da atzemandako motak goian zerrendaturiko bi motako baten azpi mota bat bada, edo MIME-mota bi horien ezizen bat bada.

Non gordetzen ditu Thunar-ek fitxategiekin loturiko metadatak?

Thunar-ek fitxategi/karpetekin zenbait ezarpen batzen ditu, honi metadata deitzen diogu. Fitxategi guztien metadata hau metafile izeneko tbd datubase batetan gordetzen dira. Datubase hau $XDG_CACHE_HOME/Thunar/metafile.tdb-en gordetzen da eta Thunar banaketaren zati den (tdb/ azpidirektorioan kokatzen da)tdbtool erabiliaz ikusi daiteke.

Non gordetzen ditu Thunar-ek bere hobespenak?

Thunar-ek erabiltzaileak konfiguratu ditzaken ezarpenak (eta ezkutatze ezarpenak) $XDG_CONFIG_HOME/Thunar/thunarrc karpetako .ini fitxategi batetan gordetzen ditu eta testu editore bat erabiliaz ikusi daitezke. Irakurri docs/README.thunarrc hobespen ezberdinen ikuspegi bat eskuratzeko.

Nola erabili sagu keinuak Thunar-en?

Thunar-en oinarrizko ezaugarriek sagu keinuak deitzen ditugunak onartzen ditu ikono ikuspegian. Sagu keinu hauek erabiltzeko saguaren markadorean ikono ikuspegiaren atzealdean (testu edo ikono bat ez dagoen edozein eremu) saguaren erdiko botoia (arruntean errubera) sakatua mantendu. Orain sagua mugitu dezakezu lau norabideetan behean zehazten diren zenbait ekintza egiteko.

Ezker aurretik ikusitako karpeta irekitzen du
Gora -guraso karpeta irekitzen du
Eskuinera - hurrengo ikusitako karpeta ireki
Behera - uneko karpeta freskatu

Nola ezarri ditzaket lastertekla ezberdinak?

Lastertekla bat berrezarri nahiaz gero, Thunar-ek lasterteklak aldatzeko GTK+ modu estandarra onartzen du: sinpleki menu aukeraren gainean ipini sagu markatzailea eta sakatu berrezarri nahi duzun lastertekla.

Teklatu ezarpen bat ezabatu nahiaz gero, sakatu atzera-tekla menu sarreran zaudenean.

Lastertekla ez balitz aldatuko, ezaugarri hau gaitu beharko duzu GTK+ -en. Hau hiru modu ezberdinetan egin daiteke:

  • Xfce 4.3 edo berriago bat erabiltzen ari bazara Erabiltzaile Interfaze Hobespenetan Menu azeleradore editagarriak gaitu behar dituzu.

  • Baldin eta GNOME erabiltzen baduzu Menu eta tersnabarra kontrol gune elkarrizketan Menu azeleradore editagarriak gaitu ditzakezu.

  • Bestela ipini hurrengo hau zure ~/.gtkrc-2.0 fitxategian (sortu ez balego):

    gtk-can-change-accels=1

Non gordetzen ditu Thunar-ek teklatu laster-markak?

Laster tekla pertsonalizatuak GTK+ azelearadore mapa formatu estandarrean $XDG_CONFIG_HOME/Thunar/accels.scm fitxategian gordetzen dira. ;-ez hasten diren lerroak iruzkinak dira. Ikusi GTK+ dokumentazioa fitxategi formatuari buruzko xehetasunentzat.

Pakete sortzailea edo sistema kudeatzailea izan eta Thunar-en lehenetsiriko laster teklak ez diren beste batzuk erabili nahi izanez gero, Thunar/accels.scm fitxategia sortu dezakezu $XDG_CONFIG_DIRS-etako batetan. Adibidez, /etc/xdg direktorioa $XDG_CONFIG_DIRS zati bat da (lehenetsia banaketa gehienetan, sistema guztirako laster teklak /etc/xdg/Thunar/accels.scm fitxategian ezarri ditzakezu. Thunar-ek abiaraztean laster teklak fitxategi horretatik irakurriko ditu.

diff -Nru thunar-1.2.3/docs/manual/html/eu/index.html thunar-1.6.10/docs/manual/html/eu/index.html --- thunar-1.2.3/docs/manual/html/eu/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar Fitxategi Kudeatzailea

Thunar Fitxategi Kudeatzailea

Benedikt Meurer

Software garatzailea
os-cillation
Sistema garapena


Manual honek Thunar -ren 1.2.0git-cc468f4 bertsioa azaltzen du.

Baimena ematen da dokumentu gau Free Software Foundation-en argitaratutako GNU Dokumentazio Libre Lizentziaren 1.1 bertsioak edo berriagoek ezarritako terminoetan kopiatu, zabaldu eta/edo eraldatzeko.Lizentzi testu osoa eskuragarri dago Free Software Foundation webgunean.

November 2007


Thunar -ra sarrera

Thunar Xfce Idazmahai Ingurunearen fitxategi kudeatzaile berria da. Thunar behe mailatik azkarra eta erabilerraza izateko diseinatua izan da. Bere erabiltzaile interfazea garbia eta intuitiboa da, eta ez du lehenespen bezala nahasi dezaketen edo erabilera urriko aukerarik. Thunar azkarra da eta erantzun bizkorra du bai abiaraztean bai karpetak kargatzeko denboran.

Thunar fitxategi kudeatzaileak zure fitxategi eta aplikazioetara sarrera integratu bat ematen du. Fitxategi kudeatzailea hurrengoa egiteko erabil dezakezu:

  • Karpeta eta dokumentuak sortu.

  • Zure fitxategi eta karpetak bistarazi.

  • Zure fitxategi eta karpetak kudeatu.

  • Ekintza pertsonalizatuak abiarazi eta kudeatu.

  • Sarrera Gailu Aldagarria.

diff -Nru thunar-1.2.3/docs/manual/html/eu/preferences.html thunar-1.6.10/docs/manual/html/eu/preferences.html --- thunar-1.2.3/docs/manual/html/eu/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -File Management Preferences

File Management Preferences

- Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. -

- The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: -

  • The default settings for the views.

  • The default settings for the side pane.

  • The behavior of the file manager windows.

  • Advanced features of the file manager.

- Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. -

Views Preferences

- You can specify a default view, select sort options and display options. You can - also specify whether thumbnails should be displayed for file types that support - this. -

Views Preferences
View new folder using

- Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. -

Sort folders before files

- Select this option to list folders before files when you sort a folder. -

Show thumbnails

- Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. -

- See honela deritzon atala “Thumbnailers” if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. -

Text beside icons

- Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. -

Side Pane Preferences

- You can select display options for the shortcuts pane and the tree pane. -

Side Pane Preferences

- The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. -

Icon Size

- The size of the icons displayed in the side, ranging from Very Small (around - 16x16 pixels) to Very Large (around 128x128 pixels). -

Show Icon Emblems

- Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. -

Behavior Preferences

- You can select the preferred behavior to interact with the file manager. -

Behavior Preferences
Single click to active items

- Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. -

- This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. -

Double click to activate items

- Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. -

Advanced Preferences

- You can control advanced features of the file manager. -

Advanced Preferences
Folder Permissions

- Choose the action that should be performed when you change the permissions of a folder in - the Properties dialog. You can choose to let Thunar - ask everytime when you change folder permissions, tell it to default to applying the new permissions - to the folder only or to apply them recursively to the folder contents as well. -

Volume Management

- If Thunar was installed with support for HAL and the thunar-volman - package is also installed, you can enable the integrated volume manager. See honela deritzon atala “Management of Removable Drives and Media” - for details about this feature. -

diff -Nru thunar-1.2.3/docs/manual/html/eu/support.html thunar-1.6.10/docs/manual/html/eu/support.html --- thunar-1.2.3/docs/manual/html/eu/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Lagundu

Lagundu

Aplikazio hau edo manual honi buruzko arazo baten berri eman edo gomendio bat egiteko http://bugzilla.xfce.org/ arazo kudeaketa sistema erabili. Gogoratu arazo erreporte on bat konponbidea duena dela, beraz arazo erreporte on batek bi kualitate ditu:

  • Errepikagarria. Garatzaileak ezin badu arazoa benetan dagoela ikusteko berau bere sisteman errepikatu, ziurrenik ez da arazo hori konpontzeko gai izango. Eman dezakezun edozein xehetasun erabilgarria izan daiteke.

  • Zehatza. Garatzaileak arazoa eremu jakin batetan kokatzea errazteko, horrela ziurrenik konpontzeko gai izango da.

Ezaugarri berri bat eskatu nahi izanez gero, mesedez argi utzi zergatik zure ustez aplikaziora gehitu behar den. Gehitzeko eskatzean argumentu onak erabiliaz gero errazagoa izango da aurrerantzean ezaugarri hori gehitzea. Errazagoa izango da ere eskatutako ezaugarria gehitzen duen adabakia bidaltzen baduzu, baina ziurtatu zaitez HACKING dokumentua irakurri duzula bereiziki Kodeketa Estiloa atala - kodea hobetzen hasi aurretik.

Bestela, software hau instalatzeko edo erabiltzeko zalantzak izanez gero mesedez galde itzazu thunar-devposta zerrendan edo joan IRC bezeroan bitarteaz irc.freenode.net sareko #thunar gelara eta laguntza eskatu.

diff -Nru thunar-1.2.3/docs/manual/html/eu/the-file-manager-window.html thunar-1.6.10/docs/manual/html/eu/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/eu/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -Fitxategi kudeatzaile leihoa

Fitxategi kudeatzaile leihoa

- By default the file manager window consists of a shortcut pane on the left side, the main area on the right - and a pathbar above the main area. -

File Manager Window

- The Shortcut Pane provides shortcuts to different folders on your system. The first - shortcut will lead to your Home Folder, the folder you store all your personal data, - and will therefore have the name of the current user. The second shortcut will take you to the trash bin, - which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop - Folder, which contains the files and folders that are displayed on the desktop. The fourth - shortcut will take you to the root of your file system - you may want to explore it a bit, even though - it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is - inside. -

- Below the File System shortcut, the removable drives and media will be displayed. In - the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts - to access the data stored on the removable drives and media. See honela deritzon atala “Using Removable Media” - for further details. -

- The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the - Shortcuts Pane. This will allow you to access important folders instantly. To - remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. - To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. - Note that these actions affect only the shortcut, not the folder referenced by the shortcuts. -

- The main area will always display the contents of the current folder. Double click on - folders to enter them, and right-click on files or folders to get a context-menu offering some choices of - what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, - select one file, hold down the Shift key, and increase or decrease the selection using - the arrow keys. -

- The pathbar will always show the path you took to get to the folder you are currently - at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar - button to bring up a context-menu with some options. -

Customizing the Appearance

- There are many ways to customize the appearance of the file manager windows. In case you do not like the - way the icons are displayed, choose ViewView as Detailed List - from the main menu to have the contents of the current folder displayed as a list. -

- You can have the file manager windows display a location bar instead of the pathbar by choosing - ViewLocation SelectorToolbar Style - from the main menu. -

- In case you prefer a treeview in the left pane, choose - ViewSide PaneTree - from the main menu. -

Visible Columns in the Detailed List View

- If you prefer to display the contents of the folder as a list, using the Detailed List View, you can - customize the columns displayed in the list view. To customize the visible columns, choose - ViewConfigure Columns... from the main menu. -

Visible Columns
Visible Columns

- Select the columns you want to be displayed from the list of available columns. Click Move Up - or Move Down to change the order of the columns. Click Use Default to - revert your changes. -

Column Sizing

- Select the option Automatically expand columns as needed if you want the list view columns - to expand automatically if the needed to ensure the text is fully visible. -

diff -Nru thunar-1.2.3/docs/manual/html/eu/using-removable-media.html thunar-1.6.10/docs/manual/html/eu/using-removable-media.html --- thunar-1.2.3/docs/manual/html/eu/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,133 +0,0 @@ -Using Removable Media

Using Removable Media

Accessing Removable Media

- Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. -

To Mount Media

- To mount media is to make the file system of the media available for access. When you mount media, the - file system of the media is attached as a subdirectory to your file system. -

- To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB - stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If - xfdesktop is running and configured to display File/launcher icons this - object will also be added to your desktop. -

- To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, - click on the Floppy Drive object in the side pane. The file manager will now add the file system - of the media to your file system hierarchy and display the contents of the floppy diskette in the main area. -

To Eject Media

- If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane - or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. - If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and - choose Unmount Volume. After a short period of time, a notification will appear to inform you - that it is now safe to remove the media or disconnect the drive from the computer. -

Unmount notification

- However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. -

- Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file - manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also - check command line applications running in Terminal windows. -

- Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount - the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you - might lose data or cause your system to crash. -

Management of Removable Drives and Media

- Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on - your system. Note however that this feature requires HAL support. -

- Now, if HAL support is available and thunar-volman is installed on your system, you - can choose to enable the Volume Management feature of Thunar. Therefore, open the file - manager preferences, go to the Advanced page and check the Enable Volume - Management button. -

- The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. -

Removable Drives and Media

- If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. -

- The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. -

Mount removable drives when hot-plugged

- Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. -

- This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. -

Mount removable media when inserted

- Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) - when you insert the media into the drive. -

- This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. -

Browse removable media when inserted

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

Auto-run programs on new drives and media

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

Auto-open files on new drives and media

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

- The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: -

%d

- Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. -

- If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. -

%h

- Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. -

%m

- Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. -

Troubleshooting the Volume Manager

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/eu/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/eu/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/eu/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/eu/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -Working with Files and Folders

Working with Files and Folders

Opening Files

- When you open a file, the file manager performs the default action for that file type. For example, opening a text file - will display it in the default text editor, while opening an image file will display the image in the default image - viewer. -

- The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the - file manager examines the contents of the file. -

Executing the Default Action

- To execute the default for a file, double-click on the file. For example, the default action for audio files is to - play the it with the default music playing application. In this case, you can double-click on the file to open the - file in the music player. -

- You can set Thunar preferences so that you click once on a file to execute the default - action. For information, see honela deritzon atala “Behavior Preferences”. -

Executing Non-Default Actions

- To execute actions other than the default action for a file, select the file that you want to perform an action on. - Choose the desired action from the Open With choices available in File menu - or an Open With submenu. -

Adding Actions

- To add actions associated with a file type, perform the following steps: -

  1. - In the main area, select a file of the type to which you want to add an action. -

  2. - Choose FileOpen With Other Application... - from the main menu. -

  3. - Either choose an application in the Open With dialog or select Use a custom command - and browse to the program with which you wish to open this type. -

- The action you have chosen is now added to the list of actions for that particular file type. If you enabled the - Use as default for this kind of file option or there was no prior action associated with the - type, the newly added action is the default. -

- You may also add actions using the Open With button under - FileProperties.... -

Modifying Actions

- To modify the actions associated with a file or file type, perform the following steps: -

  1. - In the main area, select a file of the type for which you want to modify the action. -

  2. - Choose FileProperties... from the main menu. -

  3. - Select the new default action using the Open With button or add a new action by choosing - Open With Other Application... from the drop down menu. -

- To remove a previously added action for a file type, bring up the Open With dialog as described - above, right-click the action you want to remove and choose Remove Launcher. -

File Properties

- The file properties window shows more information about any file or folder in the file manager. With this window, you can also - do the following: -

  • - Change the icon for special files, such as application launchers and URL links. -

  • - Add or remove emblems for a file or folder. -

  • - Change the UNIX file permissions for a file or folder. -

  • - Choose which application is used to open a file and other files of the same type. -

File Properties

- To open the file properties window, perform the following steps: -

  1. - Select the file or folder whose properties you want to examine or change. You cannot - select multiple items at once and display the properties that are in common to all - items currently. -

  2. - Do one of the following: -

    • Choose FileProperties... from the main menu.

    • Right-click the selected item and choose Properties... from the context menu.

    • Press Alt+Return.

    -

diff -Nru thunar-1.2.3/docs/manual/html/fr/advanced-topics.html thunar-1.6.10/docs/manual/html/fr/advanced-topics.html --- thunar-1.2.3/docs/manual/html/fr/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Sujets avancs

Sujets avancs

Pour renommer plusieurs fichiers la fois

L'action de renommer en masse des fichiers utilise certains critres qui s'appliquent au moins un des fichiers. Thunar inclut la fonctionnalit de renommer en masse en slectionnant deux ou plusieurs fichiers et en choisissant ditionRenommer... ou en appuyant sur la touche F2. Cette action peut aussi tre excute sparment avec la commande Thunar -B.

Renommer plusieurs fichiers

Renommer plusieurs fichiers change le nom du fichier mais peut aussi changer son extension. ou tous les deux. Thunar supporte les possibilits suivantes pour renommer les fichiers :

  • Supprimer des caractres.

  • Numroter les fichiers.

  • Insrer la date ou l'heure

  • Insrer ou craser des caractres.

  • Chercher et remplacer des caractres.

  • Convertir en majuscule, minuscule ou 1re LettreEnMajuscule (CamelCase)

D'autres options pour renommer plusieurs fichiers peuvent tre installs comme greffons pour Thunar. Visitez le site Web Thunar Plugins pour prendre connaissance des extensions disponibles. Le Thunar Project Wiki contient de plus amples renseignements ce sujet. Vous pouvez aussi ajouter des informations ce site.

Le systme de fichiers UNIX

Bien que le gestionnaire de fichiers Thunar s'occupe de faire abstraction, pour l'utilisateur, du systme de fichiers sous-jacent, il est prfrable, dans bien des cas, d'en connatre les bases. Cette section du manuel est une brve introduction au systme de fichiers UNIX utilis de nos jours par toutes ses versions drives, dont Linux fait partie.

Dossiers et chemins d'accs

Dans le systme de fichiers UNIX, tous les dossiers sont arrangs dans une simple structure d'arborescence inverse o l'on nomme la base le rpertoire racine (le terme rpertoire est souvent utilis la place de dossier) et Thunar s'occupe d'afficher cela comme Systme de fichiers. Cette arborescence inverse signifie que l'on peut aller d'un dossier un autre en remontant l'arbre jusqu' un point commun reliant les deux dossiers, pour redescendre l'arbre travers les sous-dossiers jusqu' la destination voulue.

La position de chaque dossier ou fichier peut tre dfinie par son chemin d'accs. Le chemin d'accs est la liste des dossiers traverser pour accder au dossier de destination, en partant depuis la racine. Par exemple, /home/martin est le sous-dossier martin du sous-dossier home du dossier racine et /home/martin/monfichier.txt est le fichier monfichier.txt dans ce sous-dossier. La barre oblique / dans ces chemins d'accs, reprsente le dossier racine.

Chaque utilisateur a son propre dossier contenant ses fichiers personnels et ses configurations. Ce dossier est appel rpertoire personnel et s'affiche dans Thunar avec une icne spciale et le nom de l'utilisateur. Ce dossier pourrait tre assimil au dossier Mes Fichiers de Windows. Les rpertoires personnels des diffrents utilisateurs du systme sont, la plupart du temps, situs dans le dossier /home. Par exemple, le dossier personnel /home/martin serait le dossier personnel de l'utilisateur martin, alors que le dossier personnel pour l'utilisatrice marie serait /home/marie.

Types de fichiers

Vous avez probablement dj entendu que tout est un fichier sous UNIX. Ceci est vrai pour la plupart des objets prsents dans les systmes UNIX de nos jours. Mme les priphriques sont reprsents comme des fichiers spciaux. Cela peut paratre bizarre mais c'est cette particularit qui a permis UNIX et ses drivs de garder un noyau simple travers les annes, l o d'autres systmes d'oprations ont d introduire de nouveaux concepts pour chaque nouvelle technologie.

Il existe quatre types de fichiers importants dans le systme de fichier UNIX.

Les fichiers ordinaires

Un fichier ordinaire peut contenir du texte, un programme ou d'autres donnes. Ceci inclut les fichiers image, fichiers son, documents ou fichiers vido. Le terme fichier est souvent utilis pour faire rfrence un fichier ordinaire.

Fichiers de dossier

Les dossiers sont aussi des fichiers dans le systme de fichiers UNIX. Pour tre exact, un dossier est un fichier spcial, contenant une liste de noms de fichiers faisant rfrence aux fichiers contenu dans le dossier.

Fichiers de lien symbolique

Un lien symbolique (frquemment appel symlink) est aussi un fichier spcial contenant un chemin d'accs vers un autre fichier dans le systme de fichiers. De ce fait, les liens symboliques ne contiennent pas d'informations outre celle de la rfrence d'autres fichiers.

Fichiers de priphrique

Comme nous l'avons vu auparavant, la plupart des priphriques sont aussi accds travers du systme de fichiers. Ces fichiers spciaux de priphriques se trouvent la plupart du temps dans le dossier /dev. Par exemple, le fichier spcial /dev/hda reprsente le premier disque dur IDE dans les systmes Linux.

diff -Nru thunar-1.2.3/docs/manual/html/fr/copyright.html thunar-1.6.10/docs/manual/html/fr/copyright.html --- thunar-1.2.3/docs/manual/html/fr/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ - propos de Thunar

propos de Thunar

Thunar a t crit par Benedikt Meurer (). Visitez le site Thunar pour plus d'informations.

Ce document a t crit par Benedikt Meurer (). La toute dernire version de ce document est toujours disponible sur le site Thunar

This software is distributed 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.

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.

diff -Nru thunar-1.2.3/docs/manual/html/fr/customizing-thunar.html thunar-1.6.10/docs/manual/html/fr/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/fr/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -Personnaliser Thunar

Personnaliser Thunar

Cette section dcrit comment vous pouvez personnaliser certaines parties du gestionnaire de fichiers.

Le menu "Envoyer vers"

Thunar inclut un menu Envoyer vers qui permet d'envoyer certains fichiers ou dossiers vers une destination prdfinie. Pour accder au menu Envoyer vers, choisissez FichierEnvoyer vers dans le menu principal ou cliquez-droit sur un fichier ou dossier et choisissez Envoyer vers.

Menu "Envoyer vers"

Par dfaut le menu Envoyer vers contient un lment Bureau (Crer lien) pour tous les fichiers et dossiers. Cet lment cre un lien sur le bureau vers le fichier ou dossier slectionn. Si le Panneau des raccourcis est actif, vous trouverez aussi dans le menu un lment Panneau latral (Crer raccourci) pour les dossiers, ce qui vous permets de crer de nouveaux raccourcis dans le panneau latral. la suite de ces lments du menu Envoyer vers, Thunar vient ajouter la liste les disques amovibles actuellement branchs l'ordinateur. Dans la capture d'cran ci-dessus, le Lecteur de disquettes reprsente une destination possible pour l'envoi de fichiers. Le disque est "mont" (mount) automatiquement la slection dans le menu Envoyer vers pour que vous n'ayez pas besoin de le faire vous-mme.

Thunar contient d'office un greffon thunar-sendto-email qui ajoute l'lment Destinataire courriel au menu. Ce dernier permet d'envoyer les fichiers ou dossiers slectionns, avec le programme de messagerie par dfaut. Si la slection contient au moins un dossier, le tout est ajout dans une archive ZIP avant d'tre attach au courriel. Le gestionnaire de fichiers demandera l'utilisateur s'il faut compresser les fichiers avant de les envoyer, dans le cas de fichiers multiples ou dpassant 200Ko.

Comme la plupart des particularits de Thunar, le menu Envoyer vers peut aisment tre personnalis avec de nouveaux lments par l'utilisateur ou les dveloppeurs d'applications en utilisant des fichiers standards desktop entry files. Ces fichiers doivent tres installs dans un des dossiers $XDG_DATA_DIRS/Thunar/sendto/ (suivez le lien XDG Base Directory Specification pour plus de dtails propos de la variable $XDG_DATA_DIRS).

Le MimeType de la destination .desktop spcifie le type de fichiers pour lesquels cette action doit apparatre dans le menu Envoyer vers. Par exemple, imaginons un instant que vous vouliez ajouter un lment permettant de tlcharger (upload) vers le site Flickr, cet lment ne devrait s'afficher que pour les images au format JPEG (d'autres formats ne sont pas supports par flickr). Vous devriez donc ajouter la ligne MimeType=image/jpeg; dans les types de votre lment. Si vous ne spcifiez pas de MimeType, votre lment s'affichera pour tous les fichiers.

Ci-dessous se trouve un exemple complet utilisant l'application postr :

-# postr.desktop - Intgrer postr dans
-#                 le menu "Envoyer vers".
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

Si vous installez ce fichier dans ~/.local/share/Thunar/sendto/ (crez le dossier s'il n'existe pas encore), le menu Envoyer vers comprendra le nouvel lment Flickr pour tous les fichiers JPEG et pourra tre utilis pour envoyer des images sur le site Flickr.

Le site Thunar Project Wiki contient d'autres exemples d'lments utiles pour le menu Envoyer vers. N'hsitez pas complter le wiki avec vos suggestions.

Thumbnailers (Crateurs de miniatures)

Thunar utilise de petits utilitaires pour crer les miniatures de certains types de fichiers et affiche ces miniatures comme pr-visualisation du contenu dudit fichier. Ces petits utilitaires sont appels des "thumbnailers". Thunar vient d'office avec plusieurs crateurs de miniatures installs et fait usage des facilits de crations de miniatures offertes par GNOME s'il a t install avec le support gconf. L'utilisateur peut nanmoins ajouter ces fonctions de base, tout crateur de miniatures additionnel pour diffrents types de fichiers.

Si vous envisagez d'crire un crateur de miniatures personnalis, vous devez vous assurer que votre programme supporte au moins deux lignes de commande, le fichier d'entre, qui serait votre type de fichier ajouter et le fichier de sortie, qui doit tre au format PNG et conforme aux spcifications du Thumbnail Management Standard. En plus, votre programme pourrait accepter les tailles dfinies de miniatures, ce qui est optionnel mais fortement recommand. Si vous optez pour ne pas suivre la taille dfinie de miniature, Thunar viendrait redimensionner l'image pour lui donner la taille standard et le rsultat pourrait tre infrieur en qualit qu'un dimensionnement juste ds le dpart.

Une fois votre utilitaire termin, vous devrez l'enregistrer auprs de Thunar pour qu'il puisse en faire usage. Pour cela il vous suffit d'installer un fichier de description pour votre crateur de miniatures (un fichier .desktop) dans un des dossiers $XDG_DATA_DIRS/thumbnailers/. Par exemple, si vous voulez utiliser le crateur de miniatures uniquement pour votre utilisateur, vous installerez le fichier de description dans le dossier ~/.local/share/thumbnailers/. Le fichier .desktop pour le crations de miniatures a le format suivant.

Fichier de description de cration de miniatures

Les fichiers de description de crateurs de miniatures utilisent le format Desktop Entry Format avec un Type spcial X-Thumbnailer et de nouveaux codes dans le champ X-Thumbnailer-Exec. D'une certaine manire, un fichier de description d'un crateur de miniatures a le format suivant :

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=votre-crateur-de-miniatures %i %o %s

Les champs Version et Encoding sont ordonns par le "Desktop Entry Specification", utilisez les valeurs utilises dans l'exemple ci-dessus. Le champ Type doit imprativement contenir la valeur X-Thumbnailer faute de quoi le crateur de miniatures ne serait pas reconnu. Le champ Name dcrit votre crateur de miniatures.

Le champ X-Thumbnailer-Exec contient la commande excuter pour le crateur de miniatures et supporte certains codes qui se substitueront l'excution. Les codes reconnus sont les suivants :

%i

Le chemin d'accs jusqu'au fichier pour lequel il faut crer une miniature. Peut tre un chemin d'accs partant du dossier d'o est excut le crateur de miniatures ou un chemin d'accs complet.

%o

Le chemin d'accs vers le fichier de sortie o est gnre la miniature. Le fichier de sortie doit tre de type PNG valide tel que dfini par le standard de miniature (voir plus haut). Le chemin vers le fichier ne se termine pas obligatoirement avec .png, ce qui est prendre en considration avec certaines applications tierces.

%s

La taille voulue de la miniature en pixels. Ce paramtre est optionnel.

%u

Similaire %i mais substitu par l'URI du fichier plutt qu' son chemin d'accs. Ceci a t ajout pour la compatibilit avec GNOME.

%%

Sera substitu par un unique caractre %.

Vous devez au moins inclure %o et %i ou %u, sinon votre crateur de miniatures sera inutile.

Le champ MimeType liste les types MIME - spars par un point-virgule - pour lesquels votre crateur de miniatures est capable de crer des miniatures.

Exemple d'un crateur de miniatures pour EPS

Cet exemple dmontre comment crire et installer un nouveau crateur de miniatures pour les fichiers de type .eps qui utilise la commande convert de la suite ImageMagick. Nous commenons par invoquer la commande convert pour gnrer une miniature la taille voulue.

-#!/bin/sh
-#
-# eps-thumbnailer - Exemple de script pour la cration de miniatures pour les fichiers EPS.
-#
-# Utilisation: esp-thumbnailer fichier-eps fichier-png taille
-#
-
-# paramtres de la ligne de commande
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

Enregistrez le script ci-dessus dans un fichier eps-thumbnailer, assurez-vous qu'il soit bien excutable et installez le dans /usr/local/bin.

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

Ensuite nous allons crer le fichier de description eps-thumbnailer.desktop qui ressemble cela :

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

Ce fichier doit tre install dans le dossier /usr/local/share/thumbnailers (crez le s'il n'existe pas).

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

Le fichier du crateur de miniatures eps-thumbnailer.desktop utilise la commande spciale TryExec, qui, si elle est spcifie, nomme une commande qui doit tre prsente dans le systme pour que le crateur de miniatures soit utile. Le script serait inutile si la commande convert n'tait pas disponible.

La dernire tape est celle de rgnrer le cache de crateurs de miniatures pour que Thunar soit au courant que nous lui en avons ajout un. Le cache se situe dans $XDG_CACHE_HOME/Thunar/thumbnailers.cache ( moins que vous ou votre administrateur systme n'ayez chang l'emplacement, $XDG_CACHE_HOME devrait se trouver dans ~/.cache/). Le cache des crateurs de miniatures est automatiquement rgnr priodiquement par Thunar mais vous pouvez forcer ce rafrachissement en invoquant la commande thunar-vfs-update-thumbnailers-cache-1. Cet utilitaire est install, la plupart du temps, dans le sous-dossier libexec de votre prfixe d'installation (sbin dans Debian/Ubuntu). Donc, par exemple, si Thunar est install dans /usr, la commande serait la suivante :

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

Mais soyez certain de bien excuter la commande depuis votre compte d'utilisateur et non celui du super-utilisateur (root), car votre cache de miniatures se trouve dans votre dossier personnel et non dans un emplacement pour tout le systme.

Maintenant, si Thunar a t compil avec le support un moniteur de modifications tel que FAM ou GAMIN, il va automatiquement prendre en compte le nouveau crateur de miniatures dans les secondes qui suivent et sera capable de crer des miniatures grce lui. Sinon il faudra redmarrer Thunar pour appliquer les changements en utilisant la commande :

$ Thunar -q

pour arrter toute instance de Thunar et le relancer par la suite depuis son lanceur.

Purger les miniatures

Les miniatures crs sont stocks dans le dossier ~/.thumbnails/ en concordance avec la norme Thumbnail Management Standard. Lorsque vous testez un nouveau crateur de miniatures, il peut tre prfrable de d'abord purger les miniatures avec la commande suivante :

$ rm -rf ~/.thumbnails/

ce qui vous librera aussi un peu d'espace dans votre dossier personnel. Les miniatures tant cres partir de fichiers de votre systme, vous ne perdrez pas de donnes en le vidant.

diff -Nru thunar-1.2.3/docs/manual/html/fr/faq.html thunar-1.6.10/docs/manual/html/fr/faq.html --- thunar-1.2.3/docs/manual/html/fr/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Questions Frquemment poses

Questions Frquemment poses

Le but de cette section du manuel est de rassembler les questions en rapport avec Thunar les plus frquemment poses. Si vous trouvez qu'une question manque l'appel, n'hsitez pas nous le faire savoir en remplissant une requte de bogue.

Pourquoi est-ce-que Thunar n'excute pas les fichiers marqus comme excutables ?

Pour des raisons de scurit, Thunar n'excute que les fichiers de type application/x-desktop, application/x-executable et application/x-shellscript. L'excution de fichiers du bureau n'est possible que si le fichier en question est de type Application et possde un champ Exec valide ou alors de type Link avec un champ URL valide. Pour les autres types de fichiers, seuls fonctionnent ceux marqus excutables par l'utilisateur.

Notez bien que pour application/x-executable et application/x-shellscript, il n'est pas ncessaire que le type de fichier corresponde exactement ces types. Il suffit que le type dtect ait un type parent qui correspond un des deux types mentionns plus-haut ou que le type MIME ait un alias vers l'un d'eux.

O Thunar stocke-t'il les metadatas associs aux fichiers ?

Thunar associe divers paramtres avec des fichiers/dossiers, nous les appelons les metadatas. Ces metadatas pour les fichiers sont stocks dans une base de donnes tdb que l'on nomme metafile. La base de donne est stocke dans $XDG_CACHE_HOME/Thunar/metafile.tdb et peut tre examine en utilisant la commande tdbtool. Ce dernier fait partie de la distribution Thunar et se trouve dans le dossier tdb/.

O Thunar stocke-t'il ses paramtres ?

Thunar stocke ses paramtres, ainsi que les paramtres cachs, dans un fichier .ini situ dans le dossier $XDG_CONFIG_HOME/Thunar/thunarrc et peut tre lu par tout diteur de texte. Lisez la section docs/README.thunarrc pour une vue d'ensemble des diffrents paramtres.

Comment utiliser les "mouse gestures" dans Thunar ?

Thunar a un support de base pour les "mouse gestures" (gestes de la souris) dans la vue d'icne. Pour utiliser les mouse gestures, il suffit de se placer sur une partie sans icne de la fentre principale de Thunar et maintenir le bouton du milieu de la souris (souvent la molette de la souris) enfonc en faisant un mouvement dans la direction voulue. Les directions ont les fonctions suivantes :

Gauche - ouvre le dossier prcdemment ouvert
Haut - Ouvre le dossier parent
Droite - ouvre le dossier visit suivant
Bas - Rafrachit le dossier actuel

Comment assigner diffrents raccourcis clavier ?

Si vous voulez assigner un nouveau raccourci ou changer un existant dans Thunar, le mode GTK+ de changement de raccourcis est support : simplement placer le pointeur de la souris sur l'option du menu que vous voulez changer et appuyer le raccourci clavier dsir pour l'assigner.

Pour effacer un raccourci, placez le pointeur de la souris sur l'option du menu et pressez la touche Effacer.

Au cas o cela ne fonctionnerait pas, vous devez activer l'option dans GTK+ et vous avez trois moyens pour le faire :

  • Si vous utilisez Xfce 4.3 ou suprieur, vous pouvez activer l'option Raccourcis clavier ditables dans les Prfrences de l'interface utilisateur.

  • Si vous utilisez GNOME, vous pouvez activer les Raccourcis clavier ditables dans la section Menu et barre d'outils du centre de contrle.

  • Vous pouvez aussi ajouter les lignes suivantes dans votre fichier ~/.gtkrc-2.0 (crez le fichier s'il n'existe pas) :

    gtk-can-change-accels=1

O Thunar stocke-t'il ses raccourcis clavier ?

Les raccourcis clavier personnaliss sont stocks dans un format de liste standard de GTK+ situ dans $XDG_CONFIG_HOME/Thunar/accels.scm. Les lignes commenant par ; sont des commentaires. Veuillez consulter la documentation de GTK+ propos de ce format de fichier.

Si vous tes un packager ou administrateur systme et vous voulez fournir des raccourcis clavier par dfaut pour tout le systme, diffrents des raccourcis par dfaut de Thunar, vous pouvez crer un fichier Thunar/accels.scm dans un des dossier de $XDG_CONFIG_DIRS. Par exemple, si /etc/xdg fait partie de $XDG_CONFIG_DIRS (par dfaut dans la plupart des distributions Linux), vous pouvez installer des paramtres par dfaut pour tout le systme dans /etc/xdg/Thunar/accels.scm. Thunar lira se fichier de configuration son premier dmarrage.

diff -Nru thunar-1.2.3/docs/manual/html/fr/index.html thunar-1.6.10/docs/manual/html/fr/index.html --- thunar-1.2.3/docs/manual/html/fr/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Gestionnaire de fichiers Thunar

Gestionnaire de fichiers Thunar

Benedikt Meurer

Dveloppeur logiciel
os-cillation
Dveloppement systme


Ce manuel dcrit la version 1.2.0git-cc468f4 de Thunar.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation.

November 2007


Introduction Thunar

Thunar est un nouveau gestionnaire de fichiers moderne pour l'environnement de bureau Xfce. Thunar a t conu ds le dpart pour tre rapide et simple d'utilisation. Son interface, claire et intuitive, ne contient pas d'lments superflus ou pouvant prter confusion. Thunar a un temps de chargement des dossiers trs court et son propre temps de chargement l'est tout autant.

Le gestionnaire de fichiers Thunar fournit un point d'accs centralis pour vos fichiers et applications. Voici quelques exemples d'utilisation du gestionnaire de fichiers :

  • Crer des dossiers et documents.

  • Afficher vos fichiers et dossiers.

  • Grer vos fichiers et dossiers.

  • Excuter et grer des actions personnalises.

  • Accder vos priphriques amovibles.

diff -Nru thunar-1.2.3/docs/manual/html/fr/preferences.html thunar-1.6.10/docs/manual/html/fr/preferences.html --- thunar-1.2.3/docs/manual/html/fr/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Prfrences du gestionnaire de fichiers

Prfrences du gestionnaire de fichiers

Pour ajuster les prfrences de Thunar, utilisez le menu diterPrfrences... de la barre de menu ou cliquez sur le bouton Gestionnaire de fichiers du Gestionnaire de prfrences Xfce.

La fentre des Prfrences du gestionnaire de fichiers est divise en quatres sections contenant diffrentes options dcrites plus bas. Elles se rsument ainsi :

  • Prfrences par dfaut pour les vues.

  • Prfrences par dfaut pour le panneau latral.

  • Le comportement de la partie principale du gestionnaire de fichiers.

  • Les fonctions avances du gestionnaire de fichiers.

Thunar supporte aussi une poigne d'Options caches qui contrlent plusieurs fonctionnalits avances de thunar mais qui n'ont pas trouv leur place dans le menu des prfrences pour garder ce dernier simple et efficace. Le fichier README.thunarrc distribu avec Thunar dcrit ces options plus en dtail.

Prfrences des vues

Vous pouvez spcifier une vue par dfaut, slectionner le mode de tri des fichiers et dfinir des options d'affichage. Vous pouvez aussi dfinir si des miniatures de certains fichiers qui le supportent doivent tre affichs.

Prfrences des vues
Voir un nouveau dossier en utilisant

Slectionnez la vue par dfaut pour les dossiers. Lorsque vous ouvrez un nouveau dossier, il est affich avec la vue que vous avez choisi. Cette vue peut tre soit la vue d'icnes, liste dtaille ou liste compacte. Il est aussi possible d'utiliser la Dernire vue active pour utiliser la vue de la dernire fentre active de Thunar.

Trier les dossiers avant les fichiers

Slectionnez cette option pour faire apparatre les dossiers avant les fichiers dans la fentre principale.

Afficher les miniatures

Slectionnez cette option pour afficher les miniatures des fichiers qui supportent cette option. Le gestionnaire de fichiers stocke les miniatures dans le dossier cach .thumbnails l'intrieur du dossier personnel de l'utilisateur.

Suivez le lien la section intitule Thumbnailers (Crateurs de miniatures) si vous voulez tendre les fonctionnalits basiques de miniatures de Thunar avec d'autres types de fichiers.

Texte ct des icnes

Slectionnez cette option pour placer le texte des icnes ct de ces derniers plutt que dessous.

Prfrences du panneau latral

Vous pouvez dfinir des vues diffrentes pour le panneau latral et d'arborescence.

Prfrences du panneau latral

Le panneau latral peut soit afficher des raccourcis vers certains dossier de votre systme de fichiers, ce qui est son comportement par dfaut, ou afficher une vue en arborescence. Cette page permet de dfinir la taille des icnes pour le panneau latral et principal. Vous pouvez aussi choisir d'afficher ou non les emblmes de dossier.

Taille d'icne

La taille d'icne affiche dans le panneau latral ou principal allant de Trs petit (autour des 16x16 pixels) Trs grand (autour des 128x128 pixels).

Afficher les emblmes

Slectionnez cette option pour afficher des emblmes pour les dossiers. Pour assigner un emblme un dossier il faut le slectionner et choisir FichierProprits... dans le menu principal ou cliquer dessus l'aide du bouton droit de la souris et choisir Proprits... dans le menu contextuel.

Prfrences de comportement

Vous pouvez choisir le comportement prfr lors de l'interaction avec le gestionnaire de fichiers.

Prfrences de comportement
Simple clic pour activer les lments

Slectionnez cette option pour accomplir l'action par dfaut sur cet lment lors d'un simple clic. Lorsque cette option est slectionne et vous pointez la souris sur un lment, le titre de ce dernier se verra soulign et il sera slectionn automatiquement aprs un court dlai.

Ce dlai peut tre dfini sous l'option en question. Vous pouvez aussi dsactiver la slection automatique en glissant le curseur vers la position gauche absolue.

Double clic pour activer les lments

Slectionnez cette option pour accomplir l'action par dfaut sur cet lment lors d'un double clic et l'activer lors d'un simple clic.

Prfrences avances

Vous pouvez contrler les prfrences avances du gestionnaire de fichiers.

Prfrences avances
Permissions de dossiers

Choisissez l'action accomplir lorsque vous changez les permissions d'un dossier dans ses Proprits. Vous avez le choix entre laisser Thunar vous poser la question chaque fois que vous changerez les permissions d'un dossier, le laisser appliquer les changements au dossier ou au dossier et son contenu.

Gestionnaire de volume

Si Thunar a t install avec le support HAL et le paquet thunar-volman est aussi install, vous pouvez activer le gestionnaire de volume intgr. Voir la section intitule Gestion de disques amovibles et de mdias pour plus de dtails propos de cette particularit.

diff -Nru thunar-1.2.3/docs/manual/html/fr/support.html thunar-1.6.10/docs/manual/html/fr/support.html --- thunar-1.2.3/docs/manual/html/fr/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Assistance

Assistance

Pour signaler un bogue ou si vous avez une suggestion propos de cette application ou manuel, utilisez notre systme pour traquer les bogue en suivant ce lien http://bugzilla.xfce.org/. Souvenez-vous que les rapports de bogues utiles sont ceux qui aident les corriger. Un rapport de bogue utile a donc les deux qualits suivantes :

  • Reproductible. Si le dveloppeur ne peut pas reproduire le bogue, il ne sera probablement pas en mesure de le corriger. Chaque dtail que vous pouvez fournir est utile et peut aider.

  • Spcifique. Plus le dveloppeur pourra isoler le bogue une partie spcifique rapidement, plus il sera mme de le fixer dans les plus brefs dlais.

Au cas o vous aimeriez voir une fonctionnalit ajoute l'application, expliquez clairement pourquoi vous la considrez comme un plus l'application. Vous aurez plus de chances de voir cette fonctionnalit ajoute si vous donnez de bons arguments. Vous aurez encore plus de chance de la voir ajoute si vous fournissez directement un patch qui implmente cette fonctionnalit mais avant de commencer modifier le code source, assurez-vous de lire le fichier HACKING avant de soumettre votre patch, surtout la section intitule Coding Style.

Par ailleurs, si vous avez des questions propos de l'installation de ce logiciel, posez les sur la liste de distribution thunar-dev ou rejoignez le canal IRC #thunar sur le serveur irc.freenode.net et demandez de l'aide.

diff -Nru thunar-1.2.3/docs/manual/html/fr/the-file-manager-window.html thunar-1.6.10/docs/manual/html/fr/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/fr/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -La fentre du gestionnaire de fichiers

La fentre du gestionnaire de fichiers

Par dfaut le gestionnaire de fichiers contient un panneau de raccourcis sur la gauche et une fentre principale sur la droite avec une barre de chemin au dessus.

Fentre du gestionnaire de fichiers

Le Panneau de raccourcis fournit des raccourcis vers diffrent dossiers de votre systme. Le premier raccourci mne au Dossier personnel, il contient toutes vos donnes personnelles et prend de ce fait le nom de votre utilisateur actuel. Le second raccourci mne la corbeille contenant les lments effacs pouvant tre rcuprs si ncessaire. Le troisime raccourci est un lien vers le Bureau contenant tous les lments visibles dessus et le quatrime raccourci vous mne la base de votre systme de fichiers - n'hsitez pas l'explorer un peu, mme s'il vous parat confus si vous tes nouveau dans le monde Linux/Unix. Cliquez sur les diffrents dossiers et regardez ce qui s'y trouve.

Sous le raccourci Systme de fichiers, viendront s'afficher les disques amovibles et autres mdias. Sur la capture d'cran ci-dessus, on peut voir le raccourci d'un Lecteur de disquettes. Cliquez sur ces raccourcis pour accder aux disques amovibles et autres mdias. Lire la section intitule Utiliser des priphriques amovibles pour plus de dtails.

Le reste des raccourcis peuvent tre crs par vous-mme. Il suffit pour cela de faire glisser un dossier dans le Panneau des raccourcis. Ces raccourcis permettent d'accder des dossiers important en un clin d'oeil. Pour supprimer ou renommer un raccourci cr par vous-mme, cliquez avec le bouton droit de la souris et choisissez respectivement Supprimer le raccourci ou Renommer le raccourci. Notez bien que seul le nom du raccourci change et pas celui du dossier en question.

La partie principale affiche toujours le contenu du dossier actuel. Double-cliquez sur les dossiers pour entrer dedans et cliquez-droit sur les fichiers ou dossiers pour afficher un menu contextuel avec plusieurs actions possibles. Slectionnez plusieurs fichiers la fois en maintenant le bouton de la souris enfonc et en dessinant un rectangle par dessus. Vous pouvez aussi slectionner un fichier, maintenir la touche shift enfonce et agrandir ou diminuer le champ de slection avec les touches directionnelles.

La Barre de chemin affiche toujours le chemin jusqu'au dossier actuel. Vous pouvez cliquer sur l'un des boutons de la barre de chemin pour accder au dossier qu'il reprsente. Un clic-droit sur un bouton affiche un menu contextuel avec des options.

Configurer l'apparence

Il existe plusieurs moyen de configurer l'apparence de la fentre du gestionnaire de fichiers. Si vous n'aimez pas la manire dont sont affichs les icnes, choisissez VueVue en liste dtaille dans le menu principal pour afficher le contenu du dossier actuel sous forme de liste dtaille.

Le gestionnaire de fichiers peut afficher une barre d'outils avec chemin d'accs au lieu de la barre de chemin, avec ses boutons correspondants aux dossiers, en choisissant VueSlecteur de cheminBarre d'outils dans le menu principal.

Au cas o vous prfreriez une vue en arborescence dans le panneau latral, choisissez VuePanneau latralArborescence dans le menu principal.

Colonnes visibles de la vue en liste dtaille

Si vous prfrez afficher le contenu des dossiers en liste dtaille, slectionnez VueVue en liste dtaille. Les colonnes de cette vue peuvent tre configure dans le menu VueConfigurer les colonnes... du menu principal.

Colonnes visibles
Colonnes visibles

Dans la liste des colonnes disponibles, slectionnez celles que vous voulez afficher. La disposition des colonnes peut tre change avec les boutons Monter et Descendre. Appuyez sur le bouton Valeurs par dfaut pour remettre la disposition par dfaut.

Dimensionnement de colonne

Cochez la case largir automatiquement la taille des colonnes si vous voulez que les colonnes s'ajustent au nom des fichiers.

diff -Nru thunar-1.2.3/docs/manual/html/fr/using-removable-media.html thunar-1.6.10/docs/manual/html/fr/using-removable-media.html --- thunar-1.2.3/docs/manual/html/fr/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Utiliser des priphriques amovibles

Utiliser des priphriques amovibles

Accder aux priphriques amovibles

Thunar permet d'accder aux priphriques amovibles s'il est compil avec le support pour HAL ou si vous utilisez le systme FreeBSD. Notez bien que si vous utilisez FreeBSD 6.0 ou suprieur, il est conseill d'utiliser HAL en lieu et place du support interne de Thunar.

Pour monter des mdias

Monter des mdias avec la commande mount signifie rendre accessible le systme de fichiers du mdia. Lorsque vous montez un mdia, son systme de fichiers vient s'ajouter en tant que sous-dossier dans votre systme de fichier.

Pour accder aux mdias, insrez le mdia dans le priphrique prvu cet effet ou connectez le priphrique votre ordinateur (e.g. connecter une clef USB un des port USB). Un objet reprsentant le mdia s'ajoute au panneau de raccourcis. Si xfdesktop est utilis et configur pour afficher les Fichier/icnes lanceurs, le priphrique sera aussi ajout sur le bureau.

Pour monter (mount) le mdia, cliquez sur l'objet le reprsentant. Par exemple, pour monter un lecteur de disquettes, cliquez sur l'objet reprsentant le Lecteur de disquettes dans le panneau latral. Le gestionnaire de fichier s'occupe d'ajouter le systme de fichier du lecteur de disquettes au votre et affiche son contenu dans sa partie principale.

Pour jecter un mdia

Si le lecteur de mdias est motoris (e.g. un lecteur de CD-ROM), cliquez-droit sur le mdia dans le panneau latral ou sur le bureau et choisissez jecter le priphrique. Le disque est ject aprs quelques secondes. Au cas o le lecteur ne serait pas motoris (e.g. un lecteur de disquettes ou une clef USB), cliquez-droit sur le mdia en question et choisissez jecter le priphrique. Un message de notification s'affiche pour confirmer que le mdia peut tre retir en toute scurit.

Notification de dmontage

Cette notification n'apparatra que si vous avez activ le support pour libnotify et qu'un dmon de notification a t install. Il existe un dmon de notification pour Xfce dont voici le lien Xfce Goodies Project. Si le support opur la notification n'est pas disponible, patientez jusqu' la disparition du menu contextuel avant de retirer le mdia ou de dconnecter le disque.

Notez toutefois qu'il n'est pas possible d'jecter ou dmonter des mdias utiliss par une ou plusieurs applications. Si le gestionnaire de fichiers refuse d'jecter un mdia, fermez toutes les applications ayant accd au mdia et assurez-vous qu'aucune ligne de commande d'un mulateur de Terminal ne pointe dessus.

Assurez-vous de dmonter (unmount) vos priphriques amovibles et mdias avant de les jecter. Ne sortez pas une disquette avant de l'avoir dmonte. Ne dconnectez pas une clef USB avant de l'avoir dmonte. Si vous ne dmontez pas votre mdia avant de le dconnecter, vous risquez de perdre des donnes ou rendre votre systme instable.

Gestion de disques amovibles et de mdias

Thunar est aussi capable de grer automatiquement les disques amovibles et les mdias pour autant que le paquet thunar-volman soit install sur votre systme. Remarquez que cette fonction requiert le support pour HAL.

Du moment que le support HAL est disponible et que thunar-volman est install sur votre systme, vous pouvez choisir d'activer l'option Gestionnaire de volume dans Thunar. Pour cela, ouvrez la fentre des prfrences de Thunar, cliquez sur l'onglet Avanc et cochez la case Activer le gestionnaire de volume.

L'tape suivante consiste personnaliser la gestion des disques et mdias amovibles. Cliquez sur le lien Configurer de la section Gestionnaire de volume juste en dessous de la case cocher, pour afficher la fentre Disques amovibles et mdias.

Disques amovibles et mdias

Vous ne devriez pas vous sentir dpays si vous avez utilis gnome-volume-manager auparavant, car le Gestionnaire de volume a t conu pour ragir de mme et lui ressembler. Les prfrences sont divises par catgorie de priphrique pour simplifier la recherche d'options pour votre priphrique spcifique.

La page Stockage contient les options les plus importantes. Comme son nom l'indique, ces options ne s'appliquent qu'aux priphriques de stockage comme les disques dur externes, clefs USB et CD-ROMs. Les options de la page Stockage amovible sont dcrites plus bas.

Monter les disques amovibles la connexion

Activer cette option pour monter les systmes de fichiers des disques amovibles (e.g. Disques dur externes ou clefs USB) lorsque ce genre de priphriques sont connects l'ordinateur.

Cette option doit tre active pour permettre d'autres options de fonctionner avec des disques amovibles. Par exemple, en dsactivant cette option certains lecteurs de musique portables ne pourraient plus tre dtects et l'action d'couter la musique la connexion de la page multimdia ne fonctionnerait pas une fois le priphrique connect.

Monter les mdias amovibles l'insertion

Activez cette option pout monter (mount) les systmes de fichiers de mdias amovibles (e.g. CD-ROMs ou DVDs) automatiquement l'insertion.

Cette option doit tre active pour permettre d'autres options de fonctionner avec des mdias amovibles. Par exemple, en dsactivant cette option il n'est plus possible de dterminer si le mdia a la fonction d'auto-excution, ce qui annule l'option Auto-excution d'applications pour les nouveaux disques et mdias.

Parcourir les mdias amovibles l'insertion

Activez cette option pour afficher le contenu, l'insertion de nouveaux mdias, dans le gestionnaire de fichiers. Notez bien que le contenu ne sera affich que si aucune autre action n'est possible ou que vous choisissiez d'ignorer cette action. Par exemple, si vous insrez un CD-ROM avec fonction d'auto-dmarrage et l'option d'Auto-excution d'applications pour les nouveaux disques et mdias est active, il vous sera demand si vous voulez permettre ou ignorer l'auto-excution. Si vous dcidez d'ignorer l'auto-excution, le contenu du disque ou mdia sera affich dans le gestionnaire de fichiers.

Auto-excution d'applications pour les nouveaux disques et mdias

Activez cette option pour faire usage de la capacit d'auto-excution de certains lecteurs amovibles et mdias. Suivez ce lien Desktop Application Autostart Specification pour de plus amples dtails propos du mcanisme d'auto-excution. Pour des raisons de scurit, il vous sera toujours demand de confirmer l'auto-excution.

Si l'mulateur Windows WINE est install sur votre systme, le mcanisme d'auto-excution essaiera aussi d'excuter les fichier autorun.exe en utilisant WINE.

Auto-ouverture de fichiers pour les nouveaux disques et mdias

Activez cette option pour faire l'usage de la capacit d'auto-ouverture de certains disques amovibles et mdias. Suivez ce lien Desktop Application Autostart Specification pour de plus amples dtails sur le mcanisme d'auto-ouverture. Pour des raisons de scurit, il vous sera toujours demand de confirmer l'auto-ouverture.

Le reste des options permet de spcifier une commande excuter lors de l'insertion de certains mdias dans un lecteur ou la connexion de certains types de lecteurs amovibles. L'on peut substituer trois variables spciales la commande excuter :

%d

Chaque apparition de %d dans la commande se substitue avec le chemin d'accs jusqu'au fichier reprsentant le nouveau priphrique ajout. Par exemple, si vous connectez une clef USB, le chemin d'accs jusqu'au fichier reprsentant le priphrique sera /dev/sda0 ou /dev/sda1.

Si aucun fichier n'est associ au priphrique ou s'il n'a pas t trouv pour quelconque raison, la variable %d est substitue par un vide.

%h

Chaque apparition de %h dans la commande est substitu par l'UDI HAL du priphrique nouvellement ajout.

%m

Chaque apparition de %m dans la commande se substitue par le point de montage o le nouveau priphrique a t mont. Au cas o le priphrique ne peut tre mont (e.g. imprimantes ou claviers) ou si le montage automatique est dsactiv, la variable %m est substitue par un vide.

Dpanner le Gestionnaire de volumes

Quelques conseils pour dpanner le gestionnaire de volumes au cas o il ne fonctionnerait pas comme prvu.

  1. Assurez-vous que Thunar est en cours d'excution en mode dmon. Le gestionnaire dpend de cela n'tant pas un dmon lui-mme. Thunar est automatiquement excut en mode dmon au dmarrage Xfce. Si pour une raison ou une autre le dmon venait tre stopp, ouvrez

  2. Essayez d'excuter thunar-volman partir d'une fentre Terminal aprs la connexion du lecteur ou l'insertion du mdia. Tout d'abord vous devez connatre l'UDI HAL du nouveau priphrique en utilisant les commandes lshal ou hal-device. Une fois que vous connaissez son UDI, excutez thunar-volman --device-added <udi-de-votre-priphrique> dans une fentre Terminal et vrifiez les messages d'erreurs ou d'avertissements.

Au cas o cela ne fonctionnerait toujours pas, demandez de l'aide sur le forum Xfce ou sur la liste de distribution thunar-dev.

diff -Nru thunar-1.2.3/docs/manual/html/fr/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/fr/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/fr/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/fr/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Grer vos fichiers et dossiers

Grer vos fichiers et dossiers

Ouvrir des fichiers

Lorsque vous ouvrez un fichier, le gestionnaire de fichiers excute l'application par dfaut lie ce type de fichier. Par exemple, l'ouverture d'un fichier texte se fera dans l'diteur de texte alors que l'ouverture d'une image se fera dans un visionneur d'images.

Le gestionnaire de fichiers vrifie l'extension du fichier pour dterminer quel type de fichier il a affaire. Au cas o le fichier n'aurait pas d'extension, il examinera le contenu du fichier.

Excuter une action par dfaut

Pour excuter une action par dfaut sur un fichier, il suffit de double-cliquer sur le fichier. Par exemple, l'action par dfaut pour les fichiers musicaux est de les couter dans un lecteur de musique. Il suffit donc de double-cliquer dessus pour l'couter.

Vous pouvez configurer Thunar pour ouvrir les fichiers d'un simple clic. Reportez-vous la section la section intitule Prfrences de comportement pour de plus amples informations.

Excuter des actions spciales

Pour excuter des actions autres que celles par dfaut pour un certain fichier, slectionnez le fichier et choisissez l'option FichierOuvrir avec ou Ouvrir avecdans le menu contextuel d'un clique droit sur le fichier.

Ajouter des actions

Pour ajouter des actions un certain type de fichiers, suivez ces instructions :

  1. Dans la partie principale, choisissez un fichier dont vous voulez ajouter une action.

  2. Choisissez FichierOuvrir avec une autre application... dans le menu principal.

  3. Choisissez une application dans la liste propose ou cliquez sur Utiliser une commande personnalise pour chercher l'application avec laquelle vous aimeriez ouvrir ce type de fichiers.

L'action choisie est maintenant ajoute la liste d'applications pour ce type de fichier. Si vous avez par la mme occasion coch la case Utiliser cette action par dfaut pour ce type de fichiers, l'action sera utilise par dfaut pour ce type de fichiers.

Vous pouvez aussi dfinir une action avec le bouton Ouvrir avec du menu FichierProprits....

Modifier des actions

Pour modifier des actions associes un certain type de fichier, suivez ces instructions :

  1. Dans la partie principale, choisissez un fichier dont vous voulez modifier l'action.

  2. Choisissez FichierPropits... dans le menu principal.

  3. Slectionnez la nouvelle action par dfaut avec le bouton Ouvrir avec ou ajoutez une nouvelle action dans le menu droulant Ouvrir avec une autre application....

Pour supprimer une action dfinie au pralable, cliquez sur Ouvrir avec comme dcrit plus haut, cliquez-droit sur l'action en question et choisissez Supprimer le lanceur.

Proprits des fichiers

La fentre proprits affiche plus d'information propos du fichier slectionn. Vous pouvez aussi effectuer les actions suivantes :

  • Changer l'icne pour certains fichiers spciaux comme des lanceurs d'applications et des liens URL.

  • Ajouter ou supprimer des emblmes pour un fichier ou dossier.

  • Changer les droits UNIX sur les fichiers ou dossiers.

  • Choisir une application pour ouvrir des fichiers d'un certain type.

Proprits des fichiers

Pour ouvrir la fentre des proprits d'un fichier, suivez ces instructions :

  1. Slectionnez le fichier ou dossier dont vous voulez consulter les proprits. Dans l'tat actuel de Thunar il n'est pas possible de consulter les proprits communes plusieurs fichiers slectionns en mme temps.

  2. Faites une des actions suivantes :

    • Choisissez FichierPropits... dans le menu principal.

    • Cliquez-droit sur le fichier slectionn et choisissez Proprits... dans le menu contextuel.

    • Appuyez sur Alt+Entre.

diff -Nru thunar-1.2.3/docs/manual/html/gl/advanced-topics.html thunar-1.6.10/docs/manual/html/gl/advanced-topics.html --- thunar-1.2.3/docs/manual/html/gl/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Temas avanzados

Temas avanzados

Renomear ficheiros de xeito masivo

Renomear de xeito masivo os ficheiros significa renomear varios ficheiros dunha soa vez usando algn criterio, que se aplica a polo menos un dos ficheiros. Thunar incle un renomeador masivo, o cal se pode executar indepentemente usando a orde Thunar -B ou tamn dende Thunar seleccionando dous ou mis ficheiros na zona principal e premendo F2 ou seleccionando EditarRenomear... no men principal.

Renomear ficheiros de xeito masivo

Os Renomeadores masivos poden usarse para alterar o nomes dos ficheiros, o sufixo dos ficheiros ou tanto o nome como o sufixo dos ficheiros. Na actualidade Thunar soporta os seguintes Renomeadores masivos:

  • Eliminar caracteres.

  • Numerar os ficheiros.

  • Inserir data ou hora.

  • Inserir caracteres ou sobrescribir caracteres.

  • Buscar e substitur caracteres.

  • Convert to uppercase, lowercase or camlcase.

Pdense instalar Renomeadores masivos adicionais como engadidos de Thunar. Visite o sitio web de Engadidos de Thunar para consultar as extensins dispoibles. A Wiki do proxecto Thunar contn detalles adicionais sobre esta funcionalidade. Sntase libre de engadir mis informacin wiki.

O sistema de ficheiros de UNIX

Anda que o xestor de ficheiros Thunar realiza ben o traballo de abstraer os detalles do sistema de ficheiros subxacente, de xeito que o usuario non precisa preocuparse del, a veces til comprender os conceptos bsicos para ter unha comprensin total. Esta seccin intenta dar unha pequena introducin aos conceptos do sistema de ficheiros de UNIX, que usan hoxe en da todas as encarnacins de UNIX, inclundo Linux.

Cartafoles e rutas

Nun sistema de ficheiros UNIX todos os cartafoles estn dispostos nunha sinxela estrutura de rbore invertida que descende e se bifurca dende un nico cartafol superior, que se chama directorio raz (o termo directorio sase a mido en vez de cartafol) e se mostra como Sistema de ficheiros en Thunar. Isto significa que pode chegar dende calquera cartafol a calquera outro subindo pola rbore ata chegar a unha raz comn, e despois baixar pola rbore polos subcartafoles apropiados ata chegar ao destino.

A posicin de calquera ficheiro ou cartafol na rbore pode describirse ca sa ruta. A ruta a lista de cartafoles polos que ten que descender ata chegar ao cartafol ou ficheiro destino, comezando dende o cartafol superior. Por exemplo /home/xiana o subcartafol xiana do subcartafol home do cartafol superior, e /home/xiana/omeuficheiro.txt o ficheiro omeuficheiro.txt que est nese cartafol. A / inicial desas rutas representa ao cartafol superior (cartafol raz).

Cada usuario ten o seu propio cartafol para gardar os seus ficheiros e configuracins persoais. Este cartafol chmase directorio persoal e mstrase en Thunar como unha icona especial co nome de usuario do usuario. O cartafol similar ao cartafol Os meus ficheiros de Windows. Os directorios persoais de varios usuarios do mesmo sistema normalmente estn situados no cartafol /home. Por exemplo /home/xiana ser o directorio persoal da usuaria que tea o nome de usuario xiana, mentres que /home/brais ser o directorio do usuario co nome de usuario brais.

Tipos de ficheiros

Pode que escoitara algunha vez que todo un ficheiro en UNIX. Isto certo para a maiora dos obxectos presentes nos sistemas UNIX hoxe en da. De feito incluso os dispositivos se representan como ficheiros especiais. Anda que isto pode non ter sentido ao principio, unha das grandes vantaxes de UNIX e os seus derivados, e contribuiu a manter un ncleo simple co paso dos anos mentres outros sistemas operativos tiveron que introducir novos conceptos para cada nova tecnoloxa.

Estes son os catro tipos de ficheiros mis importantes no sistema de ficheiros de UNIX.

Ficheiros normais

Un ficheiro normal pode conter texto, un programa ou outros datos. Isto incle ficheiros de imaxe, ficheiros de son, documentos de oficina e ficheiros de vdeo. O termo ficheiro sase a mido para refirirse a un ficheiro normal.

Ficheiros de cartafol

Os cartafoles tamn son ficheiros no sistema de ficheiros de UNIX. Para ser exactos un ficheiro especial, que contn unha relacin de nomes de ficheiros e referencias de ficheiros por cada ficheiro contido nese cartafol.

Ficheiros de ligazn simblica

Unha Ligazn simblica (a mido chamada symlink) un ficheiro especial que contn a ruta doutro ficheiro do sistema de ficheiros. As ligazns simblicas non conteen polo tanto ningunha informacin til, simplemente apuntan a outros ficheiros.

Ficheiros de dispositivo

Como se mencionou antes (maiora dos) dispositivos accdese a travs do sistema de ficheiros. Estes ficheiros de dispositivo especiais normalmente estn situados no cartafol /dev. Por exemplo o ficheiro especial /dev/hda representa ao primeiro disco IDE en Linux.

diff -Nru thunar-1.2.3/docs/manual/html/gl/copyright.html thunar-1.6.10/docs/manual/html/gl/copyright.html --- thunar-1.2.3/docs/manual/html/gl/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Acerca de Thunar

Acerca de Thunar

Thunar foi escrito por Benedikt Meurer (). Visite o Sitio web de Thunar para obter mis informacin.

Esta documentacin foi escrita por Benedikt Meurer (). A ltima versin deste documento sempre est dispoible no Sitio web de Thunar.

Este software distribese baixo os termos da Licenza Pblica Xeral de GNU tal como a publica a Free Software Foundation; xa sexa a versin 2 da Licenza, ou (se o desexa) calquera versin posterior.

Debeu recibir unha copia da Licenza pblica xeral GNU xunto con este programa; en caso contrario, escriba Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/gl/customizing-thunar.html thunar-1.6.10/docs/manual/html/gl/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/gl/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -Personalizar Thunar

Personalizar Thunar

Este captulo describe como adaptar s sas necesidades certas partes do xestor de ficheiros.

O men "Enviar a"

Thunar incle un men Enviar a, o cal proporciona destinos posibles a onde poder enviar os ficheiros e os cartafoles. Para acceder ao men Enviar a, seleccione FicheiroEnviar a no men principal, ou prema co botn dereito nun ficheiro ou cartafol e seleccione Enviar a.

Men "Enviar a"

Por defecto o men Enviar a incle unha entrada chamada Escritorio (Crear ligazn) para todos os ficheiros e cartafoles, que simplemente crea unha ligazn no escritorio por cada ficheiro seleccionado. Ademais se o Panel de atallos est activado, o men tamn incle unha entrada chamada Panel lateral (Crear atallo) para os cartafoles, o cal lle permite aos usuarios engadir novos atallos ao panel lateral. Despois destas entradas, Thunar lista as unidades extrables conectadas ao ordenador. Na captura de pantalla de enriba, a Disqueteira representa un destino posible a onde se poden enviar os ficheiros. Tea en conta que o dispositivo se monta automaticamente unha vez que se selecciona no men Enviar a de forma que non ten que montala a man.

Ademais Thunar tamn proporciona o engadido thunar-sendto-email, o cal engade a entrada Enviar correo ao men, a cal abre o cliente de correo electrnico cos ficheiros anexos a unha nova mensaxe. Se a seleccin contn polo menos un cartafol, os elementos seleccionados engdense a un arquivo ZIP antes de anexalo mensaxe. Noutro caso, se a seleccin contn varios ficheiros, ou un s ficheiro, de tamao maior a 200 Kib, preguntaraselle ao usuario se desexa empaquetar os ficheiros nun arquivo ZIP e enviar o ficheiro ZIP.

Como con moitas outras funcionalidades de Thunar, os usuarios e dos desenvolvedores de aplicativos pode estender facilmente o men Enviar a con novos destinos, usando o estndar de Ficheiros de entradas desktop. Estes ficheiros deben estar instalados nun dos cartafoles $XDG_DATA_DIRS/Thunar/sendto/ (consulte a XDG Base Directory Specification para obter detalles sobre a variable $XDG_DATA_DIRS).

O Tipo MIME do .desktop destino especifica os tipos de ficheiros para os cales debe estar dispoible esta accin no men Enviar a. Por exemplo, digamos que desexa engadir unha entrada para unha ferramenta de suba de ficheiros de Flickr, as que esta entrada s debe mostrarse se a seleccin contn ficheiros JPEG (Flickr non soporta outros formatos de ficheiro) e polo tanto debe engadir unha lia MimeType=image/jpeg;. Se non especifica ningn Tipo MIME a entrada mostrarase para todos os tipos de ficheiro.

Debaixo mstrase un exemplo completo usando o aplicativo postr:

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

Se instala este ficheiro en ~/.local/share/Thunar/sendto/ (cree o cartafol se anda non existe), o men Enviar a dos ficheiros JPEG mostrar a nova entrada Flickr, a cal se pode usar para subir imaxes JPEG a Flickr.

A Wiki do proxecto Thunar contn exemplos adicionais de destinos tiles para o men Enviar a. Vostede libre de extender a pxina da Wiki con novos exemplos.

Miniaturizadores

Thunar usa pequenas utilidades para crear miniaturas de certos tipos de ficheiros e mostra as miniaturas como vista previa do contido do ficheiro. Estas pequenas ferramentas chmanse miniaturizadores. Thunar publcase con miniaturizadores para imaxes e ficheiros de tipo de letra, e usa automaticamente os miniaturizadores instalados por GNOME se se instalou con soporte para gconf. Anda as os usuarios poden estender de xeito dinmico esta funcionalidade bsica con miniaturizadores para tipos de ficheiros adicionais.

Se pensa escribir un miniaturizador propio, ten que comezar cun programa que acepte polo menos dous parmetros de lia de ordes, o ficheiro de entrada, que do tipo de ficheiro que pensa soportar e mailo ficheiro de sada, que un ficheiro PNG que cumpre o formato especificado no Thumbnail Management Standard. Ademais o seu programa tamn podera aceptar o tamao desexado da miniatura, que opcional pero moi recomendable. Se escribe un ficheiro de sada cun tamao de imaxe arbitrario, Thunar escalarao posteriormente ao tamao desexado, o que podera producir un resultado menos ptimo do que se obtera xerando unha miniatura das dimensins solicitadas.

Unha vez que a sa utilidade para xerar miniaturas estea rematada, ter que rexistrar o seu miniaturizador para que Thunar sexa capaz de atopalo e usalo. Polo tanto todo o que ten que facer instalar un ficheiro de descricin do miniaturizador (un ficheiro .desktop) nunha das rutas $XDG_DATA_DIRS/thumbnailers/. Por exemplo se desexa rexistrar o miniaturizador s para a sa conta de usuario, pode instalar o ficheiro no cartafol ~/.local/share/thumbnailers/. O .desktop dos miniaturizadores ten o seguinte formato.

Formato do ficheiro de descricin do miniaturizador

Os ficheiros de descricin de miniaturizadores utilizan o Desktop Entry Format cun Tipo especial X-Thumbnailer o campo especial X-Thumbnailer-Exec con novos cdigos de campo. Basicamente un ficheiro de descricin de miniaturizador ten o seguinte formato.

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=O seu miniaturizador
-MimeType=tipo-mime-soportado/polo-miniaturizador;
-X-Thumbnailer-Exec=o-seu-miniaturizador %i %o %s

Version e Encoding son obrigatorios debido Desktop Entry Specification, as que use os valores que se mostran no exemplo de enriba. O campo Type debe ter o valor especial X-Thumbnailer, ou senn non se recoecer o seu miniaturizador. O valor Name describe o seu miniaturizador.

O campo X-Thumbnailer-Exec contn a orde para executar o seu miniaturizador, e admite certos cdigos de campo que se substituirn cando se execute o miniaturizador. Os cdigos de campo recoecidos son os seguintes:

%i

A ruta local do ficheiro de entrada co que se vai crear unha miniatura. Pode ser unha ruta relativa ao directorio dende o que se chamou ao miniaturizador ou unha ruta absoluta.

%o

A ruta local ao ficheiro de sada onde se vai almacenar a miniatura xerada. O ficheiro de sada debe escribirse como un ficheiro PNG vlido que cumpra o estndar de miniaturas (consulte enriba). Tea en conta que a ruta podera non rematar con .png, que importante se invoca certas ferramentas de terceiros.

%s

O tamao desexado en pxels da miniatura xerada. Este parmetro opcional.

%u

Semellante a %i, pero substitese polo URI do ficheiro, en vez de pola sa ruta. Isto engadiuse para ter compatibilidade con GNOME.

%%

Substituirase cun simple %.

Ten que inclur polo menos %o e %i ou %u, noutro caso o seu miniaturizador ser intil.

MimeType lista os tipos MIME - separados por punto e coma - para os cales o seu miniaturizador capaz de crear previsualizacins.

Exemplo de miniaturizador EPS

Este exemplo demostra como escribir e instalar un novo miniaturizador para os ficheiros .eps, o cal usa a utilidade convert que forma parte de ImageMagick. Primeiro comezamos cun simple script que invoca convert para xerar unha miniatura do tamao solicitado.

-#!/bin/sh
-#
-# eps-thumbnailer - Miniaturizador de exemplo para ficheiros EPS.
-#
-# Modo de uso: esp-thumbnailer ficheiro-eps ficheiro-png tamao
-#
-
-# parmetros de lia de ordes
-ifile=$1
-ofile=$2
-size=$3
-
-# invocar convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

Garde o script de enriba nun ficheiro eps-thumbnailer, asegrese de que o ficheiro executable e instleo en /usr/local/bin.

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

A continuacin haber que crear o ficheiro de descricin da miniatura eps-thumbnailer.desktop, que as:

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

Este ficheiro debe instalarse en /usr/local/share/thumbnailers (cree o cartafol se non existe).

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

O ficheiro eps-thumbnailer.desktop usa a clave especial TryExec, a cal se se especifica menciona unha orde que debe estar presente no sistema para que o miniaturizador sexa til. No noso exemplo o script intil se a utilidade convert non est presente.

O ltimo paso xerar de novo a cach do miniaturizador, de forma que Thunar detecte ao miniaturizador. A cach do miniaturizador est situada en $XDG_CACHE_HOME/Thunar/thumbnailers.cache (a menos que o administrador do sistema o cambie, $XDG_CACHE_HOME apunta ao cartafol ~/.cache/). Thunar xera de novo a cach dos miniaturizadores periodicamente, pero pode forzar que se xere de novo invocando a utilidade thunar-vfs-update-thumbnailers-cache-1, que se publica como parte de Thunar. Normalmente a utilidade est instalada no subcartafol libexec en do directorio de instalacin (sbin en Debian/Ubuntu). As que se por exemplo Thunar est instalado en /usr, invoque a utilidade do seguinte xeito:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

Pero asegrese de que executa o programa ca sa conta de usuario, e non ca conta do superusuario, xa que a cach dos miniaturizadores se almacena no seu cartafol persoal, en vez de nun lugar comn para todo o sistema.

Agora se Thunar se compilou con soporte para a monitorizacin de alteracins nos ficheiros (mediante os servizos FAM ou Gamin), en poucos segundos coller automaticamente a nova cach dos miniaturizadores e despois ser capaz de xerar miniaturas usando os miniaturizadores personalizados. Noutro caso podera necesitar reiniciar totalmente Thunar para aplicar os cambios, usando

$ Thunar -q

para terminar calquera instancia en execucin, e posteriormente reiniciala dende o seu iniciador.

Limpar as miniaturas

As miniaturas xeradas almacnanse no cartafol ~/.thumbnails/ de acordo co Thumbnail Management Standard. Ao probar un novo miniaturizador, podera ser til limpar a cach de miniaturas usando

$ rm -rf ~/.thumbnails/

que tamn lle dar algn espazo libre no seu cartafol persoal. Xa que toda a informacin almacenada neste cartafol se xera automaticamente a partir dos ficheiros do sistema de ficheiros, non perder ningn dato importante.

diff -Nru thunar-1.2.3/docs/manual/html/gl/faq.html thunar-1.6.10/docs/manual/html/gl/faq.html --- thunar-1.2.3/docs/manual/html/gl/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -Preguntas mis frecuentes (FAQ)

Preguntas mis frecuentes (FAQ)

A intencin desta seccin recoller as preguntas frecuentes bastante numerosas que se relacionan co uso de Thunar. Se sabe dalgunha pregunta que falta nesta pxina, por favor enve unha solicitude.

Por que Thunar non executa os ficheiros marcados como executables?

Por razns de seguridade Thunar s executa ficheiros de tipo application/x-desktop, application/x-executable e application/x-shellscript. Nos ficheiros desktop a funcionalidade de execucin s se activar se o ficheiro desktop de tipo Application e se proporciona unha lia Exec vlida ou se de tipo Link e se proporciona un URL vlido. Para os outros tipos a funcionalidade est dispoible se o ficheiro est marcado como executable para o usuario actual.

Tea en conta tamn que para application/x-executable e application/x-shellscript, os tipos do ficheiro realmente non teen que coincidir exactamente con estes tipos, pero abonda se o tipo detectado ten un pai que coincide con algn destes dous tipos mencionados enriba, ou se o tipo MIME un alias dalgn dos de enriba.

Onde garda Thunar os metadatos asociados cos ficheiros?

Thunar asocia varias opcins cos ficheiros/cartafoles, que chamamos metadatos. Estes metadatos dos ficheiros almacnanse nun ficheiro de base de datos tdb, que se chama metaficheiro. O ficheiro da base de datos almacnase en $XDG_CACHE_HOME/Thunar/metafile.tdb e pode examinarse usando tdbtool, que parte da distribucin de Thunar (situado no subdirectorio tdb/).

Onde garda Thunar a sa configuracin?

Thunar almacena as preferencias configurables do usuario (e as opcins ocultas) nun ficheiro .ini, que est situado en $XDG_CONFIG_HOME/Thunar/thunarrc e que se pode examinar usando un editor de texto. Consulte docs/README.thunarrc para obter un resumo das diferentes preferencias.

How to use mouse gestures in Thunar?

- Thunar currently features basic support for so called mouse gestures - in its icon view. You can use these mouse gestures by holding down - the middle mouse button (usually the mouse wheel) while the mouse pointer is on the - background area of the icon view component (any area that is not covered by - an icon or a text). Now you can move the cursor into four directions to - perform certain actions, which are described below. -

Esquerda - abre o anterior cartafol visitado
Arriba - abre o cartafol pai
Dereita - abre o seguinte cartafol visitado
Abaixo - recarga o cartafol actual

Como podo asignar diferentes atallos de teclado?

Se quere reasignar un atallo, Thunar soporta o xeito estndar de GTK+ para cambiar os atallos: simplemente poa o punteiro do rato enriba da opcin de men e prema o novo atallo de teclado que lle desexa asignar.

Para eliminar unha asignacin de teclado, prema a tecla Retroceso mentres est na entrada do men.

Se o atallo non cambia entn ter que activar a funcionalidade en GTK+. Isto pode conseguirse de 3 formas:

  • Se est executando Xfce 4.3 ou posterior entn pode activar os Aceleradores de men editables no dilogo Preferencias de interface de usuario.

  • Se est executando GNOME pode activar os Aceleradores de men editables no dilogo Mens e barras de ferramentas do centro de control.

  • Noutro caso poa o seguinte no ficheiro ~/.gtkrc-2.0 (cree o ficheiro se non existe):

    gtk-can-change-accels=1

Onde garda Thunar os atallos de teclado?

Os atallos de teclado personalizados almacnanse co formato estndar de asignacin de aceleradores de GTK+ nun ficheiro situado en $XDG_CONFIG_HOME/Thunar/accels.scm. As lias que comezan por ; son comentarios. Consulte a documentacin de GTK+ para obter detalles sobre o formato do ficheiro.

Se un empaquetador ou un administrador de sistemas e desexa proporcionar unha predefinicin dos atallos de teclado comn para todo o sistema, diferente dos atallos de teclado predeterminados de Thunar, pode crear un ficheiro Thunar/accels.scm nun de $XDG_CONFIG_DIRS. Por exemplo, se /etc/xdg parte de $XDG_CONFIG_DIRS (o predeterminado na maiora das distribucins de Linux), pode instalar as predefinicins comns a todo o sistema en /etc/xdg/Thunar/accels.scm. Thunar cargar entn os atallos dende este ficheiro ao iniciar por primeira vez.

diff -Nru thunar-1.2.3/docs/manual/html/gl/index.html thunar-1.6.10/docs/manual/html/gl/index.html --- thunar-1.2.3/docs/manual/html/gl/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Xestor de ficheiros Thunar

Xestor de ficheiros Thunar

Benedikt Meurer

Desenvolvedor de software
os-cillation
Desenvolvemento do sistema


Este manual describe a versin 1.2.0git-cc468f4 de Thunar.

Concdese permiso para copiar, distribur e/ou modificar este documento baixo os termos da GNU Free Documentation License, Versin 1.3 ou calquera versin posterior publicada pola Free Software Foundation; sen as seccins invariantes, sen os textos da portada, e sen os textos da portada posterior. O texto completo da licenza est dispoible na Free Software Foundation.

November 2007


Introduccin a Thunar

Thunar o novo e moderno navegador de ficheiros do Ambiente de escritorio Xfce. Thunar deseouse dende cero para ser rpido e fcil de usar. A sa interface de usuario limpa e intuitiva, e de xeito predeterminado non incle ningunha opcin intil ou confusa. Thunar rpido e fiable e ten uns tempos curtos de inicio e carga de cartafoles.

O navegador de ficheiros Thunar proporciona un punto de acceso integrado aos seus ficheiros e aplicativos. Pode usar o navegador de ficheiros para realizar as seguintes accins:

  • Crear cartafoles e documentos.

  • Mostrar os ficheiros e os cartafoles.

  • Xestionar os ficheiros e os cartafoles.

  • Executar e xestionar accins personalizadas.

  • Acceder a soportes extrables.

diff -Nru thunar-1.2.3/docs/manual/html/gl/preferences.html thunar-1.6.10/docs/manual/html/gl/preferences.html --- thunar-1.2.3/docs/manual/html/gl/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Preferencias da xestin de ficheiros

Preferencias da xestin de ficheiros

Use o dilogo de Preferencias do xestor de ficheiros para definir as preferencias do xestor de ficheiros Thunar. Para abrir o dilogo de preferencias seleccione na barra de mens EditarPreferencias..., ou prema no botn Xestor de ficheiros no Xestor de configuracin de Xfce.

O dilogo Preferencias do xestor de ficheiros divdese en catro pxinas con diferentes opcins, cada unha descrita debaixo nunha seccin diferente. Basicamente pode definir preferencias nas seguintes categoras:

  • Configuracin predeterminada para as vistas.

  • Configuracin predeterminada do panel lateral.

  • Comportamento das xanelas do xestor de ficheiros.

  • Funcionalidades avanzadas do xestor de ficheiros.

Thunar tamn soporta un grupo das chamadas Opcins ocultas, as cales controlan varias funcionalidades avanzadas do xestor de ficheiros, pero que non estn includas nas preferencias para que o dilogo de preferencias siga sendo simple. No ficheiro README.thunarrc que se incle na distribucin de Thunar descrbense con detalle todas as opcins dispoibles.

Preferencias das vistas

Pode especificar unha vista predeterminada, seleccionar as opcins de ordenacin e de visualizacin. Tamn pode especificar se se mostran ou non miniaturas para os tipos de ficheiros que o soporten.

Preferencias das vistas
Ver os novos directorios usando

Seleccione a vista predeterminada para os cartafoles. Cando abre unha nova xanela, mostrarase ca vista seleccionada. Pode ser a vista de iconas, a vista de lista compacta ou a vista de lista detallada. Tamn pode seleccionar aqu a ltima vista activa para usar a vista que se usou na ltima fiestra activa.

Poer os directorios antes ca os ficheiros

Seleccione esta opcin para listar os cartafoles antes dos ficheiros ao ordenar un cartafol.

Mostrar as miniaturas

Seleccione esta opcin para mostrar miniaturas de ficheiros de imaxe e de outros ficheiros soportados. O xestor de ficheiros almacena os ficheiros das miniaturas de cada cartafol no directorio oculto .thumbnails do directorio persoal do usuario.

Consulte Miniaturizadores se desexa estender a funcionalidade de miniaturas bsica proporcionada por Thunar con soporte para tipos de ficheiros adicionais.

Texto a carn das iconas

Seleccione esta opcin para situar os textos das iconas dos elementos a carn das iconas en vez debaixo delas.

Preferencias do panel lateral

Pode seleccionar as opcins de visualizacin do panel de atallos e o panel de rbore.

Preferencias do panel lateral

O panel lateral pode mostrar unha lista de atallos de cartafoles do sistema de ficheiros, que o comportamento predeterminado, ou unha vista de rbore do sistema de ficheiros. Esta pxina permtelle seleccionar o tamao das iconas dos atallos e do panel de rbore. Tamn pode especificar se se mostran ou non os emblemas.

Tamao das iconas

O tamao das iconas que se mostra neste lado vai dende Moi pequeno (16x16 pxels) a Moi grande (128x128 pxels).

Mostrar os emblemas das iconas

Seleccione esta opcin para mostrar os emblemas dos cartafoles no panel lateral. Pode asignarlle emblemas aos cartafoles co dilogo Propiedades. Seleccione un cartafol na zona principal e escolla FicheiroPropiedades... no men principal, ou prema co botn dereito e seleccione Propiedades... no men contextual.

Preferencias de comportamento

Pode seleccionar o comportamento preferido para interactuar co xestor de ficheiros.

Preferencias de comportamento
Un s clic para activar os elementos

Seleccione esta opcin para realizar a accin predeterminada dun elemento cando prema no elemento. Cando se selecciona esta opcin, e sinala un elemento, o ttulo do elemento aparece subraiado e este seleccionarase automaticamente despois dun breve tempo de espera.

Este tempo de espera pode configurarse debaixo da opcin. Tamn pode desactivar a seleccin automtica de elementos movendo o selector posicin da esquerda de todo.

Dobre clic para activar os elementos

Seleccione esta opcin para realizar a accin predeterminada dun elemento cando se faga dobre clic nel, e selecionar o elemento cun nico clic.

Preferencias avanzadas

Pode controlar as funcionalidades avanzadas do navegador de ficheiros.

Preferencias avanzadas
Permisos do directorio

Escolla a accin que se debe realizar cando cambia os permisos dun cartafol no dilogo Propiedades. Pode decidir deixarlle preguntar a Thunar cada vez que cambie os permisos dun cartafol, deixarlle aplicar por defecto os novos permisos s ao cartafol ou que tamn llos aplique de xeito recursivo a todo o contido do cartafol.

Xestin de volumes

Se Thunar se instalou con soporte para HAl e tamn se instalou o paquete thunar-volman, poder activar o xestor de volumes integrado. Consulte Xestin de unidades e soportes extrables para obter mis detalles sobre esta funcionalidade.

diff -Nru thunar-1.2.3/docs/manual/html/gl/support.html thunar-1.6.10/docs/manual/html/gl/support.html --- thunar-1.2.3/docs/manual/html/gl/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Soporte

Soporte

Para comunicar un erro ou para facer unha suxestin referente a este aplicativo ou a este manual, use o sistema de seguemento de erros en http://bugzilla.xfce.org/. Lembre que os informes de erro tiles son aqueles que conseguen resolver os erros, as que un informe de erro ten das cualidades:

  • Reproducible. Se o desenvolvedor non pode ver el mesmo o erro para probar que existe, probablemente non sexa capaz de resolvelo. Cada detalle que poida proporcionar axudaralle.

  • Especfico. Canto antes poida o desenvolvedor illar o problema nunha zona especfica, mis probable que o resolva axeitadamente.

En caso de que desexe solicitar unha nova funcionalidade, por favor explique claramente por que considera que vale a pena engadila ao aplicativo. mis probable que unha nova funcionalidade se engada se proporciona bos argumentos en favor da funcionalidade. Incrementar as posibilidades de adicin anda mis se proporciona un parche que implemente a funcionalidade solicitada, pero asegrese de ler o ficheiro HACKING - especialmente a seccin titulada Coding Style - antes de comezar a modificar o cdigo.

Noutro caso se ten algunha pregunta sobre o uso ou a instalacin deste software pregunte na rolda de correo thunar-dev ou conecte o seu cliente de IRC a irc.freenode.net, nase canle #thunar e solicite axuda (en ingls).

diff -Nru thunar-1.2.3/docs/manual/html/gl/the-file-manager-window.html thunar-1.6.10/docs/manual/html/gl/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/gl/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -A xanela do xestor de ficheiros

A xanela do xestor de ficheiros

Por defecto a xanela do navegador de ficheiros consiste nun panel de atallos no lado esquerdo, a zona principal dereita e unha barra de enderezos enriba da zona principal.

Xanela do xestor de ficheiros

O Panel de atallos proporciona atallos aos diferentes cartafoles do sistema. O primeiro atallo lvao ao seu Cartafol persoal, o cartafol onde se almacenan os seus datos persoais, e que polo tanto ter o nome do usuario actual. O segundo atallo levarao ao colector do lixto, onde se almacenan os ficheiros eliminados que se poden recuperar posteriormente. O terceiro atallo lvao ao Cartafol do escritorio, o cal contn os ficheiros e os cartafoles que se mostran no escritorio. O cuarto atallo levarao raz do sistema de ficheiros - pode que queira exploralo un pouco, anda que lle resulte un pouco confuso se acaba de descubrir Linux/Unix. Simplemente prema nos diferentes cartafoles para ver que o que hai dentro deles.

Debaixo do atallo Sistema de ficheiros mstranse as unidades e soportes extrables. Na captura de pantalla superior pode ver un atallo Disqueteira. Prema nestes atallos para acceder aos datos almacenados nas unidades e soportes extrables. Consulte Usar soportes extrables para obter mis detalles.

O resto dos atallos son definidos polo usuario. Engada os seus propios atallos simplemente arrastrando cartafoles ao Panel de atallos. Isto permitiralle acceder aos cartafoles importantes de xeito instantneo. Para eliminar un atallo xa engadido, prema co botn dereito no atallo e seleccione Eliminar o atallo. Para renomear un atallo xa engadido, prema co botn dereito no atallo e seleccione Renomear o atallo. Tea en conta que estas accins s lle afectan ao atallo, e non ao cartafol ao que o atallo fai referencia.

A zona principal sempre mostrar o contido do cartafol actual. Faga dobre clic nos cartafoles para entrar neles, e prema co botn dereito nos ficheiros ou cartafoles para obter un men contextual que lle ofrecer algunhas opcins sobre que facer con eles. Seleccione varios ficheiros arrastrando un rectngulo sobre eles co rato. Tamn pode seleccionar un s ficheiro, mantendo premida a tecla Mais e aumentando ou diminundo a seleccin usando as teclas das frechas.

A barra de ruta sempre mostrar a ruta que leva ao cartafol no que est. Pode premer en calquera botn da barra de ruta para ir ao cartafol que representa. Prema co botn dereito nun botn da barra de ruta para mostrar un men contextual con algunhas opcins.

Personalizar a aparencia

Hai moitos xeitos de personalizar a aparencia das xanelas do xestor de ficheiros. En caso de que non lle guste a forma na que se mostran as iconas, seleccione VerVer como lista detallada no men principal para que se mostre o contido do cartafol actual como unha lista.

Pode facer que se mostre unha barra de enderezos nas xanelas do xestor de ficheiros en vez da barra de ruta seleccionando VerSelector de localizacinEstilo da barra de ferramentas no men principal.

En caso de que prefira unha vista de rbore no panel esquerdo, escolla VerPanel lateralrbore no men principal.

Columnas visibles na vista de lista detallada

Se prefire mostrar o contido do cartafol como unha lista, usando a Vista de lista detallada, pode personalizar as columnas que se mostrar na vista de lista. Para personalizar as columnas visibles, seleccione VerConfigurar as columnas... no men principal.

Columnas visibles
Columnas visibles

Seleccione na lista das columnas dispoibles as columnas que desexa mostrar. Prema en Subir ou Baixar para cambiar a orde das columnas. Prema en Usar predefinido para reverter os cambios.

Redimensionamento das columnas

Seleccione a opcin Expandir automaticamente as columnas cando sexa necesario se desexa que as columnas da vista de lista se expandan automaticamente se necesario para asegurar que se ve todo o texto.

diff -Nru thunar-1.2.3/docs/manual/html/gl/using-removable-media.html thunar-1.6.10/docs/manual/html/gl/using-removable-media.html --- thunar-1.2.3/docs/manual/html/gl/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -Usar soportes extrables

Usar soportes extrables

Acceder a soportes extrables

Thunar soporta os soportes extrables se se compilou con soporte para HAL, ou se est usando FreeBSD. Anda as tea en conta que en FreeBSD 6.0 ou posterior se suxire usar HAL en vez do soporte nativo proporcionado por Thunar.

Montar soportes

Montar un soporte facer que o sistema de ficheiros do soporte estea dispoible para acceder a el. Cando monta un soporte, o sistema de ficheiros do soporte nese como un subdirectorio ao sistema de ficheiros do sistema.

Para acceder a un soporte, insira o soporte no dispositivo axeitado, ou conecte o novo dispositivo ao seu ordenador (p.ex. conecte unha memoria USB a un dos portos USB). Engdese no panel lateral do xestor de ficheiros un obxecto que representa ao soporte. Se se est executando xfdesktop e est configurado para mostrar Iconas de ficheiros/iniciador este obxecto tamn se engadir ao escritorio.

Para montar os soportes, prema no obxecto que representa aos soportes. Por exemplo, para montar un disquete, prema no obxecto da Disqueteira no panel lateral. O xestor de ficheiros engadir o sistema de ficheiros do soporte xerarqua do sistema e mostrar o contido do disquete na zona principal.

Expulsar soportes

Se a unidade do soporte unha unidade con motor (p.ex. unha unidade de CD-ROM), prema co botn dereito no obxecto do soporte no panel lateral ou no escritorio e seleccione Expulsar o volume. O soporte expulsarase da unidade uns poucos segundos despois. Se a unidade do soporte non ten motor (p.ex. unha disqueteira ou unha memoria USB), prema co botn dereito no obxecto do soporte e seleccione Desmontar o volume. Despois dun curto periodo de tempo, aparecer unha notificacin para informarlle de que xa seguro extraer o soporte ou desconectar a unidade do ordenador.

Notificacin de desmontaxe

Anda as esta notificacin s se mostrar se se activou o soporte de libnotify, e se ten instalado un daemon de notificacin. Hai un daemon de notificacin para Xfce dispoible no Proxecto de extras (goodies) de Xfce. Se non est dispoible o soporte de notificacin, agarde ata que desapareza o men contextual antes de extraer o soporte ou a unidade.

Tea en conta que non pode expulsar ou desmontar soportes que anda estn en uso por un ou mis aplicativos. Polo tanto se o xestor de ficheiros rexeita expulsar os soportes, asegrese de que pechou todos os aplicativos que estaban accedendo aos soportes, e asegrese de comprobar tamn os aplicativos de lia de ordes que se executen nas xanelas de Terminal.

Asegrese de desmontar os soportes extrables antes de expulsalos. Non expulse un disquete da disqueteira antes de desmontar o disquete. Non extraia unha memoria USB antes de desmontala. Se non desmonta os soportes podera perder datos ou facer que o sistema se colgue.

Xestin de unidades e soportes extrables

Thunar tamn capaz de xestionar automaticamente as unidades e soportes extrables se est instalado no seu sistema o paquete thunar-volman. Anda as tea en conta que esta funcionalidade require soporte de HAL.

Agora, se est dispoible o soporte de HAL e se thunar-volman est instalado no sistema, pode escoller activar a funcionalidade de Xestin de volumes de Thunar. Noutro caso abra as preferencias do xestor de ficheiros, vaia lapela Avanzado e marque o botn Activar a xestin de volumes.

O seguinte paso personalizar a xestin das unidades e soportes extrables s sas necesidades. Prema na ligazn Configurar da seccin Xestin de volumes, xusto debaixo do botn. Mostrarase o dilogo de configuracin de Unidades e soportes extrables.

Unidades e soportes extrables

Se usou antes gnome-volume-manager, sentirase como na casa, porque foi deseado para comportarse de xeito semellante a gnome-volume-manager. As preferencias divdense en categoras de dispositivo para facilitar a localizacin da opcin do seu dispositivo especfico.

A pxina Almacenamento contn as opcins mis importantes. Como o nome suxire estas opcins s se aplican aos dispositivos de almacenamento como unidades de disco externo, memorias USB e CD-ROMs. Debaixo descrbense con detalle as opcins de Almacenamento extrable.

Montar unidades extrables ao conectalas en quente

Active esta opcin para montar automaticamente os sistemas de ficheiros das unidades extrables (p.ex. unidades de disco externo ou memorias USB) cando ditas unidades se conectan ao ordenador.

Esta opcin debe estar activada para que algunha outra funcionalidade funcione cas unidades extrables. Por exemplo, se desactiva esta opcin, certos tipos de reprodutores de msica porttiles non se detectarn, anda que active a opcin Reproducir os ficheiros de msica ao conectar da pxina Multimedia, a orde especificada non se executar cando conecte o reprodutor de msica porttil.

Montar os soportes extrables ao inserilos

Active esta opcin para montar automaticamente os sistemas de ficheiros dos soportes extrables (p.ex. CD-ROMs ou DVDs) cando insira o soporte na unidade.

Esta opcin debe estar activada para que outras funcionalidades funcionen cos soportes extrables. Por exemplo, se desactiva esta opcin, ser imposible detectar se os soportes extrables teen a capacidade de execucin automtica, e polo tanto a opcin Executar automaticamente os programas das novas unidades e soportes non ten efecto cos soportes extrables.

Examinar os soportes extrables ao inserilos

Active esta opcin para mostrar automaticamente no xestor de ficheiros o contido dos novos soportes inseridos. Anda as tea en conta que o contido s se mostrar se non hai outra accin posible ou se selecciona ignorar as outras accins posibles. Por exemplo, se insire un CD-ROM ca capacidade de execucin automtica e estando activada a opcin Executar automaticamente os programas das novas unidades e soportes, preguntaraselle se desexa permitir ou ignorar a execucin automtica. Se escolle ignorar a execucin automtica mostrarase o contido no xestor de ficheiros.

Executar automaticamente os programas dos soportes e unidades novas

Active esta opcin para usar as capacidades de execucin automtica de certas unidades e soportes extrables. Consulte Desktop Application Autostart Specification para obter detalles sobre o mecanismo de execucin automtica. Para mellorar a seguridade, sempre se lle pedir confirmacin antes de executar automaticamente.

Se o emulador de Windows WINE est instalado no seu sistema, o mecanismo de autoexecucin tamn intentar executar os ficheiros autorun.exe usando WINE.

Abrir automaticamente os ficheiros dos soportes e unidades novas

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

As opcins restantes permtenlle especificar unha orde para executar cando certo tipo de soporte se insire nunha unidade ou cando se conecta certo tipo de dispositivo externo. A orde pode usar tres variables especiais, que se substituirn cando se execute a orde:

%d

Cada aparicin de %d na orde substituirase ca ruta do ficheiro do dispositivo do dispositivo recn engadido. Por exemplo, se conectou unha memoria USB, a ruta do ficheiro de dispositivo ser /dev/da0s1 ou /dev/sda1.

Se non se asocia ningn ficheiro de dispositivo co dispositivo ou se non se pode atopar por algunha razn o ficheiro do dispositivo, a variable %d substituirase cunha cadea baleira.

%h

Cada aparicin de %h na orde substituirase polo UDI de HAL do novo dispositivo engadido.

%m

Cada aparicin de %m na orde substituirase polo punto de montaxe onde se montou o novo dispositivo engadido. Se non se pode montar o dispositivo (por exemplo as impresoras ou os teclados) ou se se desactivou a montaxe automtica, %m substituirase por unha cadea baleira.

Solucin de erros do xestor de volumes

Consellos tiles para resolver os problemas co xestor de volumes en caso de que non funcione como se agardaba.

  1. Asegrese de que Thunar se est executando como un daemon. O xestor de volumes depende disto, xa que non un daemon. Por defecto, Xfce ao arrincar inicia automaticamente Thunar como un daemon. Se se matou por algunha razn, abra Executar programa (usando o atallo de teclado Alt+F2 ou premendo co botn dereito no escritorio e seleccionando Executar programa... no men do escritorio), introduza Thunar --daemon e prema en Executar.

  2. Intente executar thunar-volman dende unha xanela de Terminal despois de conectar en quente a unidade ou de inserir o soporte. Primeiro ten que descubrir o UDI de HAL do novo dispositivo usando lshal ou hal-device. Unha vez que coeza o UDI execute thunar-volman --device-added <udi-do-dispositivo> nunha xanela de Terminal e mire se hai erros ou advertencias na sada.

Se anda as non funciona, pida axuda no Foro de Xfce ou na rolda de correo thunar-dev.

diff -Nru thunar-1.2.3/docs/manual/html/gl/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/gl/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/gl/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/gl/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Traballar con ficheiros e directorios

Traballar con ficheiros e directorios

Abrir ficheiros

Cando abre un ficheiro o navegador de ficheiros realiza a accin predeterminada para ese tipo de ficheiro. Por exemplo, ao abrir un ficheiro de texto este mostrarase co editor de texto predeterminado, mentres que ao abrir un ficheiro de imaxe se mostrar a imaxe co visor de imaxes predeterminado.

O navegador de ficheiros comproba a extensin dun ficheiro para determinar o tipo do ficheiro. Se o ficheiro non ten ningunha extensin coecida, o xestor de ficheiros examina o contido do ficheiro.

Executar a accin predeterminada

Para executar a accin predeterminada para un ficheiro, faga dobre clic no ficheiro. Por exemplo, a accin predeterminada dos ficheiros de son reproducilos co aplicativo de reproducin de msica predeterminado. Neste caso pode facer dobre clic no ficheiro para abrir o ficheiro no reprodutor de msica.

Pode configurar as preferencias de Thunar de xeito que ao premer unha soa vez nun ficheiro se execute a accin predeterminada. Para obter mis informacin consulte Preferencias de comportamento.

Executar accins non predeterminadas

Para executar accins diferentes accin predeterminada dun ficheiro, seleccione o ficheiro no que desexa realizar a accin. Seleccione a accin desexada entre as opcins de Abrir con que se pode atopar no men Ficheiro ou no submen Abrir con.

Engadir accins

Para engadir accins asociadas cun tipo de ficheiro siga os seguintes pasos:

  1. Vaia zona principal e seleccione un ficheiro do tipo ao que desexa engadirlle unha accin.

  2. Seleccione FicheiroAbrir con outro aplicativo... no men principal.

  3. Pode escoller un aplicativo no dilogo Abrir con ou seleccionar Usar unha orde personalizada e buscar o programa co que desexa abrir este tipo de ficheiro.

A accin que seleccionou engadiuse lista de accins para ese tipo de ficheiro. Se activou a opcin Usar como accin predeterminada para este tipo de ficheiro ou se non habia ningunha opcin asociada co tipo de ficheiro, a nova accin engadida ser a predeterminada.

Tamn pode engadir accins usando o botn Abrir con en FicheiroPropiedades....

Modificar as accins

Para modificar as accins asociadas cun ficheiro ou tipo de ficheiro, siga os seguintes pasos:

  1. Seleccione na zona principal un ficheiro do tipo para o cal desexa modificar a accin.

  2. Seleccione FicheiroPropiedades... no men principal.

  3. Seleccione a nova accin predeterminada usando o botn Abrir con ou engada unha nova accin seleccionando Abrir con outro aplicativo... no men despregable.

Para eliminar unha accin engadida anteriormente para un tipo de ficheiro, acceda ao dilogo Abrir con como se describe enriba, prema co botn dereito na accin que desexa eliminar e escolla Eliminar o iniciador.

Propiedades do ficheiro

A xanela de propiedades de ficheiro mostra mis informacin sobre calquera ficheiro ou cartafol do navegador de ficheiros. Nesta xanela tamn se poden realizar as seguintes accins:

  • Cambiar a icona de ficheiros especiais, como iniciadores de aplicativos ou ligazns URL.

  • Engadir ou eliminar emblemas a un ficheiro ou cartafol.

  • Cambiar os permisos UNIX dun ficheiro ou dun cartafol.

  • Seleccione que aplicativo se vai usar para abrir un ficheiro e outros ficheiros do mesmo tipo.

Propiedades do ficheiro

Para abrir a xanela de propiedades de ficheiro, siga os seguintes pasos:

  1. Seleccione o ficheiro ou cartafol cuxas propiedades desexa examinar ou cambiar. Anda non se pode seleccionar varios elementos vez e mostrar as propiedades comns a tdolos elementos.

  2. Realice unha das seguintes accins:

    • Seleccione FicheiroPropiedades... no men principal.

    • Prema co botn dereito no elemento seleccionado e seleccione Propiedades... no men contextual.

    • Prema Alt+Intro.

diff -Nru thunar-1.2.3/docs/manual/html/id/advanced-topics.html thunar-1.6.10/docs/manual/html/id/advanced-topics.html --- thunar-1.2.3/docs/manual/html/id/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -Advanced Topics

Advanced Topics

To Bulk Rename Files

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

Bulk Rename Files

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • Remove characters.

  • Numbering files.

  • Insert Date or Time.

  • Insert or overwrite characters.

  • Search and replace characters.

  • Convert to uppercase, lowercase or camlcase.

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

The UNIX File System

- While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user - does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. - This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all - incarnations of UNIX, including Linux. -

Folders and Paths

- In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down - from a single top level folder, which is called the root directory (the term - directory is often used instead of folder) and displayed as - File System in Thunar. This means that you can get from any folder to any other by going - up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach - your target. -

- The position of any file or folder in the tree can be described by its path. The path is the - list of folders you would have to descend through to get to the target folder or file, starting from the top level - folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, - and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The - leading / in these paths represents the top level folder. -

- Every user has their own folder to hold their personal files and settings. This folder is called the home - directory and is displayed in Thunar as special icon with the users login name. The folder is similar to - the My Files folder known from Windows. The home directories of the various - users in a system are usually located below the /home folder. For example - /home/luke would be the home directory of the user with the login name - luke, while /home/jane would be - the home directory for the user with the login name jane. -

File Types

- You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems - today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is - one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other - operating systems had to introduce new concepts for every new technology. -

- These are the four most important types of files in the UNIX file system. -

Ordinary Files

- An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents - and video files. The term file is often used to refer to an ordinary file. -

Folder Files

- Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a - mapping of file names to file references for every file contained within this folder. -

Symbolic Link Files

- A Symbolic link (often called a symlink) is a special file that contains a path to - another file in the file system. Symbolic link files therefore do not contain any useful information - themselves, but just refer to other files. -

Device Files

- As mentioned earlier (most) devices are also accessed through the file system. These special device files are - usually located in the /dev folder. For example the special file - /dev/hda represents the first IDE disk on Linux. -

diff -Nru thunar-1.2.3/docs/manual/html/id/copyright.html thunar-1.6.10/docs/manual/html/id/copyright.html --- thunar-1.2.3/docs/manual/html/id/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -About Thunar

About Thunar

- Thunar was written by Benedikt Meurer (). Visit the - Thunar website for more information. -

- This documentation was written by Benedikt Meurer (). The latest - version of this document is always available from the Thunar website. -

- This software is distributed 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. -

Anda seharusnya menerima salinan dari Lisensi Publik Umum GNU bersama dengan program ini; jika tidak, kirim surat ke Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/id/customizing-thunar.html thunar-1.6.10/docs/manual/html/id/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/id/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -Customizing Thunar

Customizing Thunar

- This chapter describes how to customize certain parts of the file manager to your own needs. -

The "Send To" Menu

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

"Send To" Menu

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

The desired size of the generated thumbnail in pixels. This parameter is optional.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

- Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

- This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). -

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

- to terminate any running instance, and afterwards restart it from your launcher. -

Cleaning up Thumbnails

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

- which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. -

diff -Nru thunar-1.2.3/docs/manual/html/id/faq.html thunar-1.6.10/docs/manual/html/id/faq.html --- thunar-1.2.3/docs/manual/html/id/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -Frequently Asked Questions

Frequently Asked Questions

- The intent of this section is to collect the quite numerous frequently asked - questions that relate to working with Thunar. If you know of a question that - is missing from this page, please file - a request. -

Why doesn't Thunar execute files marked as executable?

- For security reasons Thunar only executes files of type application/x-desktop, - application/x-executable and application/x-shellscript. For - desktop files the execution feature will only be enabled if the desktop file is of type - Application and a valid Exec line is given or of type - Link and a valid URL is given. For the other types the feature - is available if the file is marked executable for the current user. -

- Also note that for application/x-executable and application/x-shellscript, - the types of the file don't really need to match these types exactly, but it is suffice if the detected - type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for - one of the above. -

Where does Thunar store the metadata associated with files?

- Thunar associates various settings with files/folders, which we call metadata. - This metadata for all files is stored in tdb database file, which is called - the metafile. The database file is stored in - $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined - using the tdbtool, which is part of the Thunar distribution - (located in the tdb/ subdirectory). -

Where does Thunar store its preferences?

- Thunar stores the user configurable preferences (and hidden settings) in - an .ini file, which is located at - $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined - using a text editor. See docs/README.thunarrc for an - overview of the various preferences. -

How to use mouse gestures in Thunar?

- Thunar currently features basic support for so called mouse gestures - in its icon view. You can use these mouse gestures by holding down - the middle mouse button (usually the mouse wheel) while the mouse pointer is on the - background area of the icon view component (any area that is not covered by - an icon or a text). Now you can move the cursor into four directions to - perform certain actions, which are described below. -

Left - opens the previous visited folder
Up - opens the parent folder
Right - opens the next visited folder
Down - reloads the current folder

How do I assign different keyboard shortcuts?

- If you want to rebind a shortcut, Thunar supports the standard GTK+ way - of changing shortcuts: simply hover over the menu option with the mouse - pointer and press the keyboard shortcut you want to rebind it to. -

- To delete a keyboard assignment, press the Backspace key - while you are on the menu entry. -

- If the shortcut doesn't change, then you need to enable the feature in - GTK+. This can be achieved in 3 ways: -

  • - If you are running Xfce 4.3 or above then you can enable Editable - menu accelerators in the User Interface Preferences - dialog. -

  • - If you are running GNOME then you can enable Editable menu - accelerators in the Menu and Toolbars control - center dialog. -

  • - Otherwise put the following in your ~/.gtkrc-2.0 file - (create the file if it doesn't exist):

    gtk-can-change-accels=1

    -

Where does Thunar store the keyboard shortcuts?

- The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a - file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting - with ; are comments. See the GTK+ documentation for details about the - file format. -

- If you are a packager or a system administrator and want to provide a system wide default - for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you - can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. - For example, if /etc/xdg is part of $XDG_CONFIG_DIRS - (the default for most Linux distributions), you can install system wide defaults to - /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup. -

diff -Nru thunar-1.2.3/docs/manual/html/id/index.html thunar-1.6.10/docs/manual/html/id/index.html --- thunar-1.2.3/docs/manual/html/id/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -Manajer Berkas Thunar

Manajer Berkas Thunar

Benedikt Meurer

Pengembang peranti lunak
os-cillation
Penegembangan sistem


Manual ini menjelaskan versi 1.2.0git-cc468f4 dari Thunar.

- Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 or - any later version published by the Free Software Foundation; with no - Invariant Sections, with no Front-Cover Texts, and with no Back-Cover - Texts. The complete license text is available from the Free Software Foundation. -

November 2007


Pengantar untuk Thunar

Thunar adalah manajer berkas modern baru untuk Lingkungan Desktop Xfce. Thunar telah didesain dari awal agar cepat dan mudah digunakan. Antarmuka penggunanya bersih dan intuitif, dan tidak menyertakan opsi apapun yang membingungkan atau tidak berguna sebagai standar. Thunar cepat dan responsif dengan waktu hidupkan dan waktu memuat folder yang baik.

Maka manajer berkas Thunar menyediakan titik akses yang terintegrasi ke berkas dan aplikasi anda. Anda dapat menggunakan manajer berkas untuk melakukan hal-hal berikut:

  • Membuat folder dan dokumen.

  • Menampilkan berkas dan folder anda.

  • Mengatur berkas dan folder anda.

  • Menjalankan dan mengatur aksi suai.

  • Mengakses Media Dapat Dilepas.

diff -Nru thunar-1.2.3/docs/manual/html/id/preferences.html thunar-1.6.10/docs/manual/html/id/preferences.html --- thunar-1.2.3/docs/manual/html/id/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -File Management Preferences

File Management Preferences

- Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. -

- The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: -

  • The default settings for the views.

  • The default settings for the side pane.

  • The behavior of the file manager windows.

  • Advanced features of the file manager.

- Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. -

Views Preferences

- You can specify a default view, select sort options and display options. You can - also specify whether thumbnails should be displayed for file types that support - this. -

Views Preferences
View new folder using

- Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. -

Sort folders before files

- Select this option to list folders before files when you sort a folder. -

Show thumbnails

- Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. -

- See bagian bernama “Thumbnailers” if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. -

Text beside icons

- Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. -

Side Pane Preferences

- You can select display options for the shortcuts pane and the tree pane. -

Side Pane Preferences

- The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. -

Icon Size

- The size of the icons displayed in the side, ranging from Very Small (around - 16x16 pixels) to Very Large (around 128x128 pixels). -

Show Icon Emblems

- Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. -

Behavior Preferences

- You can select the preferred behavior to interact with the file manager. -

Behavior Preferences
Single click to active items

- Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. -

- This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. -

Double click to activate items

- Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. -

Advanced Preferences

- You can control advanced features of the file manager. -

Advanced Preferences
Folder Permissions

- Choose the action that should be performed when you change the permissions of a folder in - the Properties dialog. You can choose to let Thunar - ask everytime when you change folder permissions, tell it to default to applying the new permissions - to the folder only or to apply them recursively to the folder contents as well. -

Volume Management

- If Thunar was installed with support for HAL and the thunar-volman - package is also installed, you can enable the integrated volume manager. See bagian bernama “Manajemen Peranti dan Media Dapat Dilepas” - for details about this feature. -

diff -Nru thunar-1.2.3/docs/manual/html/id/support.html thunar-1.6.10/docs/manual/html/id/support.html --- thunar-1.2.3/docs/manual/html/id/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -Support

Support

- To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. - Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities: -

  • - Reproducible. If the developer cannot see the bug himself - to prove that it exists, he will most probably not be able to fix it at all. Every detail you - can provide helps. -

  • - Specific. The quicker the developer can isolate the problem - to a specific area, the more likely he will expediently fix it. -

- In case you want to request a new feature, please make clear why you consider it a worth - addition for the application. It is more likely that a new feature gets added if you provide - good arguments for the feature. It will increase the chance of addition even more if you - provide a patch that implements the requested feature, but make sure that you read the file - HACKING - - especially the section labeled Coding Style - before you start hacking - up the source. -

- Else, if you have questions about the use or installation of this software, please ask on the - thunar-dev mailing - list or point your IRC client to irc.freenode.net, - join the channel #thunar and ask for help. -

diff -Nru thunar-1.2.3/docs/manual/html/id/the-file-manager-window.html thunar-1.6.10/docs/manual/html/id/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/id/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Jendela Manajer Berkas

Jendela Manajer Berkas

Sebagai standar jendela manajer berkas berisi panel jalan pintas di sisi kiri, area utama di sebelah kanan dan batang alamat di atas area utama.

Jendela Manajer Berkas

Panel Jalan Pintas menyediakan jalan pintas ke folder yang berbeda di sistem anda. Jalan pintas pertama akan membawa ke Folder Rumah, folder tempat menyimpan semua data personal anda, sehingga mempunyai nama pengguna saat ini. Jalan pintas kedua akan membawa anda ke kotak sampah, tempat menyimpan berkas terhapus yang dapat dikembalikan nanti. Jalan pintas ketiga membawa anda ke Folder Desktop, yang berisi berkas dan folder yang ditampilkan di desktop. Jalan pintas keempat akan membawa anda ke root sistem berkas anda - anda mungkin ingin sedikit mengeksplorasinya, meskipun dapat memusingkan anda jika anda baru mengenal Linux/Unix. Silakan klik pada folder yang berbeda dan lihat ada apa di dalamnya.

Di bawah jalan pintas Sistem Berkas, penggerak dan media dapat dilepas akan ditampilkan. Dalam cuplikan layar di atas, anda dapat melihat jalan pintas ke Disket. Klik pada jalan pintas tersebut untuk mengakses data yang tersimpan di penggerak dan media dapat dilepas. Lihat bagian bernama “Menggunakan Media Dapat Dilepas” untuk informasi lebih lanjut.

Jalan pintas yang tersisa ditentukan oleh pengguna. Tambah jalan pintas anda sendiri dengan cara menarik folder ke Panel Jalan Pintas. Ini akan memungkinkan anda untuk mengakses folder penting dengan cepat. Untuk menghapus jalan pintas yang sebelumnya ditambahkan, klik kanan pada jalan pintas lalu pilih Hapus Jalan Pintas. Perlu dicatat bahwa aksi ini hanya mempengaruhi jalan pintas, bukan folder yang yang diwakili oleh jalan pintas.

Area utama akan selalu menampilkan isi dari folder saat ini. Klik ganda pada folder untuk masuk ke dalamnya, dan klik kanan pada berkas atau folder untuk mendapatkan menu konteks yang menawarkan beberapa pilihan tentang apa yang harus dilakukan dengannya. Pilih banyak berkas dengan menarik segi empat di atas berkas dengan tetikus. Sebagai alternatif, pilih satu berkas, tahan tombol Shift, dan tambahkan atau kurangi pemilihan dengan menggunakan tombol panah.

Batang alamat akan selalu menampilkan alamat yang anda tuju dari folder tempat anda berada saat ini. Anda dapat klik di tombol untuk berpindah ke folder tujuan. Klik kanan pada tombol batang alamat untuk menampilkan menu konteks dengan beberapa opsi.

Menyesuaikan Tampilan

Ada beragam cara untuk menyesuaikan tampilan jendela manajer jendela. Dalam hal anda tidak menyukai cara ikon ditampilkan, pilih TampilanTampilkan Sebagai Senarai Detail dari menu utama untuk menampilkan isi dari folder saat ini sebagai senarai.

Anda dapat memilih agar jendela manajer berkas menampilkan batang lokasi ketimbang batang alamat dengan memilih TampilanPemilih LokasirGaya Batang Alat dari menu utama.

Jika anda memilih tampilan pohon di sisi kiri, pilih TampilanPanel SisiPohon dari menu utama.

Kolom Tampak di Tampilan Senarai Detail

Jika anda memilih untuk menampilkan isi dari folder sebagai senarai, menggunakan Tampilan Senarai Detail, anda dapat menyesuaikan kolom yang ditampilkan di tampilan senarai. Untuk menyesuaikan kolom yang tampak, pilih TampilanAtur Kolom... dari menu utama.

Kolom Tampak
Kolom Tampak

Pilih kolom yang ingin anda tampilkan dari senarai kolom yang tersedia. Klik

Pengukuran Kolom

Pilih opsi Secara otomatis mengembangkan kolom sesuai kebutuhan jika anda ingin agar senarai menampilkan kolom yang mengembang secara otomatis jika diperlukan untuk memastikan teks penuh terlihat.

diff -Nru thunar-1.2.3/docs/manual/html/id/using-removable-media.html thunar-1.6.10/docs/manual/html/id/using-removable-media.html --- thunar-1.2.3/docs/manual/html/id/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -Menggunakan Media Dapat Dilepas

Menggunakan Media Dapat Dilepas

Mengakses Media Dapat Dilepas

Thunar mendukung media dapat dilepas jika dibangun dengan dukungan untuk HAL, atau jika anda menggunakan FreeBSD. Perlu dicatat bahwa pada FreeBSD 6.0 atau yang lebih baru, disarankan untuk menggunakan HAL ketimbang dukungan asli yang disediakan oleh Thunar.

Untuk Mengaitkan Media

Untuk mengaitkan media adalah untuk membuat sistem berkas media tersedia untuk diakses. Jika anda mengaitkan media, sistem berkas media dilampirkan sebagai subdirektori pada sistem berkas anda.

Untuk mengakses media, masukkan media di divais yang sesuai, atau sambung divais baru ke komputer anda (misalnya menyambung flash disk ke salah satu pangkalan USB anda). Sebuah objek yang mewakili media akan ditambahkan ke panel sisi dari manajer berkas. Jika xfdesktop berjalan dan diatur untuk menampilkan Ikon berkas/peluncur objek ini juga akan ditambahkan ke desktop anda.

Untuk sebenarnya mengaitkan media, klik objek yang mewakili media. Misalnya, untuk mengaitkan disket, klik pada objek Disket di panel sisi. Manajer berkas sekarang akan menambah sistem berkas media ke hirarki sistem berkas anda dan menampilkan isi dari disket di area utama.

Untuk Melepas Media

Jika penggerak untuk media adalah peranti bermotor (misalnya peranti CD-ROM), klik kanan objek media di panel sisi atau di desktop lalu pilih Keluarkan Volume Media dikeluarkan dari penggerak setelah beberapa detik. Jika penggerak untuk media tidak bermotor (misalnya disket atau flash disk), klik kanan di objek media lalu pilih Lepas Kaitan Volume. Setelah beberapa saat, notifikasi akan muncul yang menginformasikan kepada anda bahwa telah aman untuk melepas media atau mencabut penggerak dari komputer.

Notifikasi kepas kaitan

Akan tetapi notifikasi ini hanya akan ditampilkan jika dukungan untuk libnotify diaktifkan, dan anda telah menginstal jurik notifikasi. Jurik notifikasi untuk Xfce tersedia dari Proyek Goodies Xfce. Jika dukungan notifikasi tidak tersedia, tunggu hingga menu konteks hilang sebelum anda melepas media atau mencabut penggerak.

Hati-hati bahwa anda tidak dapat mengeluarkan atau melepas kaitan media yang masih digunakan oleh satu atau lebih aplikasi. Maka jika manajer berkas menolak untuk mengeluarkan media, pastikan anda telah menutup semua aplikasi yang sedang mengakses media, dan pastikan juga untuk memeriksa aplikasi baris perintah yang berjalan di jendela Terminal.

Pastikan untuk melepas kaitan media dapat dilepas sebelum mengeluarkannya. Jangan keluarkan disket dari penggerak disket sebelum melepas kaitan disket. Jangan melepas flash disk sebelum anda melepas kaitan penggerak USB. Jika anda tidak melepas kaitan media terlebih dahulu maka kemungkinan data anda akan hilang atau menyebabkan sistem anda macet.

Manajemen Peranti dan Media Dapat Dilepas

Thunar juga dapat secara otomatis mengatur penggerak dan media dapat dilepas jika paket thunar-volman terinstal di sistem anda. Perlu dicatat bahwa fitur ini memerlukan dukungan HAL.

Sekarang, jika dukungan HAL tersedia dan thunar-volman terinstal di sistem anda, anda dapat memilih untuk mengaktifkan fitur Manajemen Volume Thunar. Selanjutnya, buka pengaturan manajer berkas, pergi ke halaman Tingkat Lanjut dan centang tombol Aktifkan Manajemen Volume.

Langkah berikutnya adalah untuk menyesuaikan manajemen penggerak dan media dapat dilepas sesuai dengan kebutuhan anda. Klik pada tautan Atur di bagian Manajemen Volume, tepat di bawah tombol. Dialog konfigurasi Peranti dan Media Dapat Dilepas akan ditampilkan.

Peranti dan Media Dapat Dilepas

Jika anda telah menggunakan gnome-volume-manager sebelumnya, anda akan merasa di rumah sendiri, karena ini didesain untuk terlihat dan berperilaku seperti gnome-volume-manager. Pengaturan dibagi berdasarkan kategori divais untuk membuat mudah untuk mencari opsi untuk divais tertentu anda.

Halaman Penyimpanan berisi opsi paling penting. Seperti namanya opsi ini hanya dapat diterapkan terhadap divais penyimpanan seperti penggerak hardisk eksternal, flash disk dan CD-ROM. Opsi Penyimpanan Dapat Dilepas dijelaskan secara detail di bawah.

Kaitkan penggerak dapat dilepas ketika ditancapkan

Aktifkan opsi ini untuk secara otomatis mengaitkan sistem berkas pada penggerak dapat dilepas (misalnya penggerak hardisk eksternal atau flash disk) jika penggerak tersebut ditancapkan ke dalam komputer.

Opsi ini harus diaktifkan untuk fitur tertentu lainnya agar bekerja dengan penggerak dapat dilepas. Misalnya, jika anda menonaktifkan opsi ini, tipe tertentu dari pemutar musik portabel tak dapat dideteksi lagi sehingga bila anda mengaktifkan opsi Putar berkas musik jika tersambung di halaman Multimedia, perintah yang ditentukan tidak akan dijalankan ketika anda menancapkan pemutar musik portabel.

Kaitkan media dapat dilepas ketika dimasukkan

Aktifkan opsi ini untuk secara otomatis mengaitkan sistem berkas di media dapat dilepas (misalnya CD-ROM atau DVD) ketika anda memasukkan media ke dalam penggerak.

Opsi ini harus diaktifkan untuk fitur tertentu lainnya untuk bekerja dengan media dapat dilepas. Misalnya, jika anda menonaktifkan opsi ini, maka tidak mungkin untuk mendeteksi apakah media dapat dilepas mempunyai kapabilitas otomatis berjalan, sehingga opsi Jalankan otomatis program di penggerak dan media baru tidak mempunyai efek untuk media dapat dilepas.

Ramban media dapat dilepas ketika dimasukkan

Aktifkan opsi ini untuk secara otomatis menampilkan isi dari media yang baru dimasukkan dalam manajer berkas. Namun perlu dicatat, bahwa isi hanya akan ditampilkan jika tidak ada aksi lain yang memungkinkan atau anda memilih untuk mengabaikan aksi yang mungkin lainnya. Misalnya, jika anda memasukkan CD-ROM dengan kapabilitas otomatis berjalan diaktifkan, anda akan ditanyakan apakah ingin mengizinkan atau mengabaikan otomatis berjalan. Jika anda memilih untuk mengabaikan otomatis berjalan maka isi akan ditampilkan di manajer berkas.

Program otomatis berjalan di penggerak dan media baru

Aktifkan opsi ini untuk memastikan penggunaan kapabilitas peranti dan media dapat dilepas tertentu. Lihat Spesifikasi Start Otomatis Aplikasi Desktop untuk detail tentang mekanisme menjalankan otomatis. Untuk meningkatkan keamanan, anda akan selalu ditanyakan untuk mengonfirmasi menjalankan otomatis.

Jika emulator Windows WINE terinstal di sistem anda, mekanisme menjalankan otomatis akan mencoba menjalankan berkas autorun.exe menggunakan WINE.

Buka otomatis berkas di peranti dan media baru

Aktifkan opsi ini untuk membuat kapabilitas buka otomatis dari peranti dan media dapat dilepas tertentu. Lihat Spesifikasi Start Otomatis Aplikasi Desktop untuk detail tentang mekanisme membuka otomatis. Untuk meningkatkan keamanan, anda akan selalu ditanyakan untuk mengonfirmasi membuka otomatis.

Opsi yang tersisa memungkinkan anda untuk menentukan sebuah perintah untuk dijalankan ketika media jenis tertentu dimasukkan ke dalam peranti atau divais eksternal jenis tertentu tersambung. Perintah dapat menggunakan tiga variabel khusus, yang akan digantikan ketika perintah dijalankan:

%d

Tiap tampilan %d dalam perintah akan digantikan dengan alamat berkas divais dari divais yang baru ditambahkan. Misalnya, jika anda menancapkan sebuah Flash Disk, alamat berkas divais akan berupa /dev/da0s1 atau /dev/sda1.

Jika tidak ada berkas divais yang diasosiasikan dengan divais atau berkas divais tidak dapat ditemukan karena beberapa alasan, variabel %d akan digantikan dengan benang kosong.

%h

Tiap tampilan %h di perintah akan digantikan dengan UDI HAl dari divais yang baru ditambahkan.

%m

Tiap tampilan %m di perintah akan digantikan dengan titik kait tempat divais yang baru ditambahkan dikaitkan. Jika divais tak dapat dikatikan (misalnya pencetak atau papan ketik) atau jika pengaitan otomatis dinonaktifkan, %m akan digantikan dengan benang kosong.

Troubleshooting the Volume Manager

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/id/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/id/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/id/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/id/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Bekerja dengan Berkas dan Folder

Bekerja dengan Berkas dan Folder

Membuka Berkas

Ketika anda membuka sebuah berkas, manajer berkas melakukan aksi standar untuk tipe berkas tersebut. Misalnya, membuka berkas teks akan menampilkannya di dalam penyunting teks standar, sedangkan membuka berkas gambar akan menampilkan gambar di dalam penampil gambar standar.

Manajer berkas memeriksa ekstensi berkas untuk menentukan tipe berkas. Jika berkas tidak mempunyai ekstensi yang dikenal, manajer berkas memeriksa isi berkas.

Mengeksekusi Aksi Standar

Untuk mengeksekusi standar untuk sebuah berkas, klik ganda pada berkas. Misalnya aksi standar untuk berkas audio adalah memutarnya dengan aplikasi pemutar musik standar. Dalam hal ini, anda dapat klik ganda pada berkas untuk membuka berkas di pemutar musik.

Anda dapat mengatur pengaturan Thunar sehingga anda dapat klik sekali pada berkas untuk mengeksekusi aksi standar. Untuk informasi, lihat

Mengeksekusi Aksi Non-Standar

Untuk mengeksekusi aksi selain aksi standar untuk sebuah berkas, klik berkas tempat anda ingin melakukan aksi. Pilih aksi yang diinginkan dari pilihan Buka Dengan yang tersedia di menu Berkas atau submenu Buka Dengan.

Menambah Aksi

Untuk menambah aksi yang diasosiasikan dengan tipe berkas, lakukan langkah berikut:

  1. Di area utama, pilih berkas dari tipe yang ingin anda tambahkan sebuah aksi.

  2. Pilih BerkasBuka Dengan Aplikasi Lain... dari menu utama.

  3. Baik masukkan sebuah aplikasi di dialog Buka Dengan atau pilih Gunakan perintah suai dan ramban ke program yang ingin anda gunakan untuk membuka tipe ini.

Aksi yang anda pilih saat ini ditambahkan ke senarai aksi untuk tipe berkas tertentu tersebut. Jika anda mengaktifkan opsi Buka sebagai standar untuk berkas jenis ini atau jika tidak ada aksi tambahan yang diasosiasikan dengan tipe, maka aksi yang baru ditambahkan menjadi standar.

Anda mungkin juga menambah aksi menggunakan tombol Buka dengan di bawah BerkasProperti....

Memodifikasi Aksi

Untuk memodifikasi aksi yang diasosiasikan dengan berkas atau tipe berkas, lakukan langkah berikut:

  1. Di area utama, pilih berkas atau tipe yang ingin anda modifikasi aksinya.

  2. Pilih BerkasProperti... dari menu utama.

  3. Pilih aksi standar baru menggunakan tombol Buka Dengan atau tambah aksi baru dengan memilih Buka Dengan Aplikasi Lain... dari menu taruh bawah.

Untuk menghapus aksi yang sebelumnya ditambahkan untuk tipe berkas, munculkan dialog Buka Dengan seperti dijelaskan di atas, klik kanan aksi yang anda ingin hapus lalu pilih Hapus Peluncur.

Properti Berkas

Jendela properti berkas menampilkan lebih banyak informasi tentang berkas atau folder apapun di manajer berkas. Dengan jendela ini, anda dapat juga melakukan hal-hal berikut:

  • Mengganti ikon untuk berkas khusus, seperti peluncur aplikasi dan tautan URL.

  • Menambah atau menghapus emblem untuk berkas atau folder.

  • Mengganti hak akses berkas UNIX untuk berkas atau folder.

  • Pilih aplikasi mana yang digunakan untuk membuka berkas dan berkas lainnya dengan tipe yang sama.

Properti Berkas

Untuk membuka jendela properti berkas, lakukan langkah berikut:

  1. Pilih berkas atau folder yang ingin anda periksa atau ubah propertinya. Anda tak dapat memilih banyak item sekaligus dan menampilkan properti yang sama untuk semua item saat ini.

  2. Lakukan salah satu hal berikut:

    • Pilih BerkasProperti... dari menu utama.

    • Klik kanan item terpilih lalu pilih Properti... dari menu konteks.

    • Tekan Alt+Enter.

diff -Nru thunar-1.2.3/docs/manual/html/it/advanced-topics.html thunar-1.6.10/docs/manual/html/it/advanced-topics.html --- thunar-1.2.3/docs/manual/html/it/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Argomenti avanzati

Argomenti avanzati

Bulk Rename dei file

Con il termine inglese bulk rename, si intende l'operazione di rinominazione simultanea di pi file utilizzando uno stesso criterio che si applica ad almeno uno dei file. Thunar include la funzionalit di bulk rename; questa pu essere eseguita separatamente utilizzando il comando Thunar -B oppure direttamente da Thunar selezionando due o pi file nell'area principale e premendo la combinazione di tasti F2 oppure selezionando ModificaRinomina... dal menu principale.

Bulk Rename dei file

Il Bulk Renamers pu avvenire sui nomi dei file, sul suffisso dei file o su entrambi. La funzione di Bulk Rename attualmente presente in Thunar permette di:

  • rimuovere dei caratteri;

  • numerare i file;

  • inserire data e ora;

  • inserire o sovrascrivere dei caratteri;

  • cercare e sostituire dei caratteri;

  • convertire maiuscole in minuscole a cammello.

Ulteriori programmi di Bulk Rename possono essere installati sotto forma di plugin per Thunar. Visitare il sito web dei plugin di Thunar per una lista delle estensioni disponibili. La Wiki del progetto Thunar contiene ulteriori informazioni sull'argomento; ognuno libero di aggiungere nuove informazioni alla Wiki.

Il file system UNIX

Anche se il gestore di file Thunar esegue un ottimo lavoro nell'astrarre i dettagli del file system di base (in modo che l'utente non debba occuparsene), pu comunque essere utile capire i concetti di base per avere il quadro completo della situazione. Questa sezione si prefigge di fornire una breve introduzione ai concetti del file system UNIX, che a tutt'oggi utilizzato da tutte le incarnazioni di UNIX, incluso Linux.

Cartelle e percorsi

In un file system di tipo UNIX tutte le cartelle sono disposte con un semplice schema ad albero rovesciato discendente le cui ramificazioni si sviluppano a partire da un'unica cartella di livello principale denominata directory radice (il termine directory viene spesso utilizzato in luogo di cartella) e visualizzata come File System in Thunar. Ci significa che

La posizione di un qualsiasi file o cartella nella struttura pu essere descritta dal suo percorso. Il percorso rappresenta l'elenco di cartelle che necessario attraversare per giungere alla destinazione (il file o la cartella) partendo dalla cartella di livello principale. Per esempio /casa/luca la sotto cartella luca della sotto cartella casa della cartella di livello principale, e /home/luca/miofile.txt il file miofile.txt in quella sotto cartella. Il simbolo iniziale / nei percorsi rappresenta la cartella di livello principale.

Ad ogni utente associata una cartella in cui vengono archiviati i file e le impostazioni personali. Questa cartella denominata directory casa ed visualizzata in Thunar come un'icona speciale con il nome di login dell'utente. La cartella simile a quella My Files presente nei sistemi Windows. Le directory casa dei vari utenti di un sistema, sono generalmente posizionate nella cartella /home. Per esempio /home/luca sar la directory casa dell'utente con nome di login luca, mentre /home/giovanna sar la directory casa per l'utente con il nome di login giovanna.

Tipi di file

Sar gi capitato di sentir dire che tutto un file in UNIX. Questo vero per la maggior parte degli oggetti presenti nei sistemi UNIX odierni; infatti, anche i dispositivi sono rappresentati come file speciali. Anche se questo pu sembrare insensato, rappresenta uno dei punti di forza di UNIX e dei suoi derivati, e ha permesso di mantenere negli anni un semplice nocciolo centrale mentre altri sistemi operativi hanno dovuto introdurre dei nuovi concetti per ogni nuova tecnologia.

Questi sono i quattro tipi di file pi importanti per i sistemi UNIX

File ordinari

Un file ordinario pu contenere del testo, un programma o altri dati. Appartengono a questa categoria le immagini, i file audio, i documenti e i video. Il termine file spesso utilizzato per riferirsi a un file ordinario.

Cartelle

Le cartelle sono considerate come file nei sistemi UNIX. Per essere esatti una cartella un particolare tipo di file che contiene una lista dei nomi dei file con i riferimenti ai file contenuti nella cartella stessa.

Collegamenti simbolici

Un collegamento simbolico (spesso chiamato symlink) un particolare tipo di file che contiene un percorso a un altro file. I file dei collegamenti simbolici non contengono di per s nessuna informazione utile, ma costituisco esclusivamente un riferimento ad altri file.

Dispositivi e supporti

Come gi detto in precedenza, la maggior parte dei dispositivi (o supporti) sono considerati dal sistema come file. Spesso vengono posizionati nella cartella /dev. Per esempio, il file /dev/hda rappresenta il primo disco IDE su Linux.

diff -Nru thunar-1.2.3/docs/manual/html/it/copyright.html thunar-1.6.10/docs/manual/html/it/copyright.html --- thunar-1.2.3/docs/manual/html/it/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Informazioni su Thunar

Informazioni su Thunar

Thunar stato programmato da Benedikt Meurer (). Visitare il sito ufficiale di Thunarper maggiori informazioni.

Questa documentazione stat scritta da Benedikt Meurer (). L'ultima versione di questo documento disponibile sul sito ufficiale di Thunar.

Questo programma distribuito nel rispetto dei termini della licenza GNU GPL (General Public License) come pubblicata dalla Free Software Foundation, sia questa la versione 2 o (a propria scelta) una qualsiasi versione successiva

Con il programma dovrebbe essere stata anche fornita una copia della GNU General Public License; se cos non fosse, scrivere alla: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/it/customizing-thunar.html thunar-1.6.10/docs/manual/html/it/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/it/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -Personalizzare Thunar

Personalizzare Thunar

Questo capitolo illustra come sia possibile personalizzare alcune parti del gestore di file a seconda delle proprie necessit.

Il menu Invia a

Thunar include un menu Invia a che fornisce delle possibili destinazioni in cui i file e le cartelle possono essere inviati. Per accedere al menu Invia a, selezionare FileInvia a dal menu principale, o fare clic con il tasto del mouse sul file o sulla cartella e selezionare Invia a.

Menu Invia a

Di norma, il menu Invia a include una voce denominata Scrivania (crea collegamento) per tutti i file e le cartelle, che crea semplicemente un collegamento sulla scrivania per ogni file selezionato. In pi, se il pannello delle scorciatoie attivo, il menu presenta anche una ulteriore voce per le cartelle denominata Pannello laterale (crea scorciatoia), che permette all'utente di inserire una nuova scorciatoia al pannello laterale. Dopo queste voci, Thunar elenca le periferiche rimovibili attualmente collegate al computer. Nell'immagine in alto, il Floppy Drive rappresenta una possibile destinazione a cui possono essere inviati i file. Si noti che il dispositivo montato automaticamente una volta che selezionato dal menu Invia a, quindi non necessario montarlo manualmente.

In aggiunta, Thunar distribuito con il plugin Invia a, che aggiunge la voce email al menu, il quale apre una nuova mail con allegato il file selezionato. Se la selezione contiene almeno una cartella, gli elementi selezionati vengono aggiunti a un archivio in formato ZIP prima di essere allegati alla email. Altrimenti, se la selezione contiene pi file, o uno singolo, con una dimensione superiore a 200Kib, verr richiesto all'utente se intende comprimere i file in un archivio ZIP, e inviare quest'ultimo.

Come molte altre caratteristiche di Thunar, il menu Invia a pu essere facilmente esteso, inserendo nuove destinazioni, dagli utenti e dagli sviluppatori di applicazioni avvalendosi dello standard per i file di elementi desktop. Questi file devono essere installati in una delle cartelle $XDG_DATA_DIRS/Thunar/sendto/ (consultare le XDG Base Directory Specification per maggiori dettagli sulla variabile $XDG_DATA_DIRS).

Il MimeType della destinazione .desktop specifica il tipo di file per i quali questa azione disponibile nel menu Send To. Per esempio, si supponga di voler aggiungere una voce per uno strumento di caricamento di un'immagine su Flickr e che questa voce debba essere visualizzata solamente se la selezione contiene dei file in formato JPEG (gli altri formati non sono supportati da Flickr) e quindi si dovrebbe aggiungere una riga MimeType=image/jpeg;. Se non si specifica alcun MimeType la voce verr visualizzata per qualsiasi tipo di file.

Qui sotto mostrato un esempio completo utilizzando l'applicazione postr:

-# postr.desktop - Integrazione di postr nel
-#                 menu "Invia a".
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

Se si installa questo in ~/.local/share/Thunar/sendto/ (la cartella va creata se non esiste), il menu Invia a per i file JPEG visualizzer la nuova voce Flickr, che pu essere utilizzata per inviare le proprie immagini JPEG al sito Flickr.

La Wiki del progetto Thunar contiene ulteriori esempi di destinazioni utili per il menu Invia a. Chiunque pu aggiungere alla Wiki dei nuovi esempi.

Creatori di miniature

Thunar si avvale di piccoli programmi per creare le miniature di alcuni tipi di file che saranno poi utilizzate per visualizzare l'anteprima del contenuto del file stesso. Questi piccoli strumenti vengono chiamati "thumbnailer". Thunar distribuito con dei visualizzatori di miniature per le immagini e per i file degli stili di testo, e si avvale automaticamente dei thumbnailer installati per GNOME se stato installato con il supporto per gconf. L'utente pu comunque estendere dinamicamente le funzionalit di base con dei visualizzatori di miniature per dei tipi di file aggiuntivi.

Se si intende programmare un thumbnailer, sar necessario iniziare con un programma che accetta almeno due parametri da linea di comando: il file di ingresso, che il tipo di file che si desidera supportare, e il file di output, che un file PNG in linea con le specifiche del formato dettate dallo standard di gestione delle miniature. In aggiunta il programma dovrebbe anche accettare la dimensione desiderata della miniatura, caratteristica opzionale ma caldamente consigliata. Se si scrive il file di output con una dimensione arbitraria dell'immagine, Thunar la scaler successivamente alla dimensione desiderata, il che pu produrre risultati peggiori rispetto alla generazione diretta della miniatura alla dimensione desiderata.

Una volta terminata la realizzazione del generatore di miniature, necessario registrarlo in modo che Thunar possa localizzarlo e utilizzarlo. Tutto ci che necessario fare installare un file di descrizione per il thumbnailer (un file .desktop) in uno dei percorsi $XDG_DATA_DIRS/thumbnailers/. Per esempio, se si desidera registrare un thumbnailer solo per il proprio account utente, possibile installare il file nella cartella ~/.local/share/thumbnailers/. Il file .desktop per i creatori di miniature ha il seguente formato.

Formato del file di descrizione del creatore di miniature

I file di descrizione dei thumbnailer utilizzano il formato per gli elementi desktop con uno speciale Tipo di X-Thumbnailer e un particolare campo X-Thumbnailer-Exec con nuovi codici di campo. Fondamentalmente, un file di descrizione per un thumbnailer ha il seguente formato.

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Il proprio thumbnailer
-MimeType=i-propri-/mime-type-supportati;
-X-Thumbnailer-Exec=il-proprio-thumbnailer %i %o %s

I campi Version e Encoding sono imposti dalle Desktop Entry Specification; utilizzare i valori mostrati nell'esempio precedente. Il campo Type deve contenere il valore speciale X-Thumbnailer, altrimenti il thumbnailer non verr riconosciuto. Il valore Name descrive il proprio thumbnailer.

Il campo X-Thumbnailer-Exec contiene il comando per eseguire il proprio thumbnailer e supporta certi codici di campo che verranno sostituiti all'esecuzione del creatore di miniature. I codici di campo riconosciuti sono i seguenti:

%i

Il percorso locale al file di cui creare una miniatura. Pu essere un percorso relativo alla directory da cui il creatore di miniature stato invocato o un percorso assoluto.

%o

Il percorso locale al file in cui archiviare le miniature generate. Il file deve essere scritto in formato PNG valido in accordo allo standard sulle miniature (vedere pi sopra). Il percorso non deve terminare con .png, che assume importanza se si invocano alcuni strumenti esterni.

%s

La dimensione desiderata in pixel delle anteprime. Questo parametro facoltativo.

%u

Simile a %i, ma sostituito con l'URI del file, in luogo del percorso. Questa opzione stata aggiunta per aumentare la compatibilit con l'ambiente GNOME.

%%

Verr sostituito con un singolo %.

necessario includere almeno %o e %i oppure %u, altrimenti il proprio creatore di miniature risulter inutilizzabile.

Il MimeType elenca i tipi MIME, separati da punti e virgola, per i quali il proprio creatore di miniature in grado di generare delle anteprime.

Esempio di creatore di miniature per file EPS

Questo esempio mostra come scrivere e installare un nuovo creatore di miniature, per i file in formato .eps, che utilizza il comando convert fornito da pacchetto ImageMagick. Si inizier con un semplice script che invoca il comando convert per generare una miniatura della dimensione richiesta..

-#!/bin/sh
-#
-# eps-thumbnailer - Esempio di script per la creazione di miniature di file in formato EPS.
-#
-# Utilizzo: esp-thumbnailer eps-file png-dimensione file
-#
-
-# parametri della linea di comando
-ifile=$1
-ofile=$2
-size=$3
-
-# utilizzo del comando convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

Salvare questo script in un file eps-thumbnailer, assicurarsi che sia eseguibile e installarlo in /usr/local/bin.

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

In seguito, necessario creare il file di descrizione del thumbnailer eps-thumbnailer.desktop con questo contenuto:

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

Questo file devo essere installato in /usr/local/share/thumbnailers (creare la cartella se non esiste).

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

Il file eps-thumbnailer.desktop utilizza la chiave speciale TryExec che, se specificata, richiama un comando che deve essere presente nel sistema per permettere l'utilizzo del creatore di miniature. Nell'esempio proposto, lo script inutilizzabile se l'utilit convert non presente.

L'ultimo passo consiste nella rigenerazione dela cache del creatore di miniature, in modo che Thunar possa utilizzarlo. La cache del creatore di miniature si trova in $XDG_CACHE_HOME/Thunar/thumbnailers.cache (a meno che non sia stata impostata diversamente dall'utente o dall'amministratore del sistema, la variabile $XDG_CACHE_HOME punta la cartella ~/.cache/). La cache del creatore di miniature rigenerata periodicamente da Thunar, ma possibbile forzare questa operazione invocando l'utilit thunar-vfs-update-thumbnailers-cache-1 fornita con Thunar. Questa generalmente installata nella sotto cartella libexec del proprio prefisso d'installazione (sbin nei sistemi Debian/Ubuntu). Quindi, per esempio, se Thunar installato in /usr, invocare l'utilit nel modo seguente:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

Assicurarsi per di eseguire il programma dal proprio account utente, non da quello del super utente, dato che la cache del thumbnailer risiede nella propria cartella casa, invece che in una posizione accessibile da tutto il sistema.

A questo punto, se Thunar compilato con il supporto per la monitorizzazione dell'alterazione dei file (utilizzando i servizi FAM o Gamin), riconoscer automaticamente la cache del nuovo creatore di miniature e sar in grado di generare le miniature utilizzando il creatore personalizzato. Diversamente, sar necessario riavviare completamente Thunar per rendere effettivi i cambiamenti, utilizzando:

$ Thunar -q

per terminare ogni istanza in esecuzione, e in seguito riavviarlo tramite il proprio avviatore.

Eliminare delle miniature

Le miniature create vengono salvate nella cartella ~/.thumbnails/ nel rispetto dello standard di gestione delle miniature. Se si intende provare un nuovo thumbnailer, pu essere utile cancellare tutte le miniature utilizzando il comando

$ rm -rf ~/.thumbnails/

che permette inoltre di liberare un po' di spazio nella propria cartella casa. Dato che tutte le informazioni salvate all'interno di questa cartella sono state automaticamente generate da dei file presenti nel proprio file system, non si corre il rischio di perdere dei dati sensibili.

diff -Nru thunar-1.2.3/docs/manual/html/it/faq.html thunar-1.6.10/docs/manual/html/it/faq.html --- thunar-1.2.3/docs/manual/html/it/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Domande poste frequentemente (FAQ)

Domande poste frequentemente (FAQ)

L'intento di questa sezione di raccogliere le numerose domande poste frequentemente in relazione all'utilizzo di Thunar. Se una domanda mancasse da queste pagine, si prega di farlo presente con una richiesta.

Perch Thunar non esegue i file con l'attributo eseguibile?

Per ragioni di sicurezza Thunar esegue solamente i file del tipo applicazione/x-desktop, applicazione/x-eseguibile e applicazione/x-shellscript. Per i file della scrivania la caratteristica di eseguibile verr abilitata solamente se il file di tipo applicazione ed fornita una linea valida Exec o di tipo Link ed fornito un URL valido. Per gli altri tipi la caratteristica disponibile se il file ha l'attributo di eseguibile per l'utente corrente.

Si noti anche che per application/x-executable e application/x-shellscript, i tipi di file non devono corrispondere esattamente a questi tipi, ma sufficiente se il tipo identificato ha un padre che corrisponde a uno dei due tipi elencati precedentemente, o se il tipo MIME un alias per uno di essi.

Dove vengono salvati da Thunar i metadati associati ai file?

Thunar associa diverse impostazioni ai file e alle cartelle, che vengono chiamate metadati. Questi metadati sono salvati per tutti i file nel file di database tdb, chiamato anche metafile. Il file di database salvato in $XDG_CACHE_HOME/Thunar/metafile.tdb e pu essere esaminato utilizzando tdbtool, che parte della distribuzione di Thunar (posizionato nella sotto cartella tdb/.

Dove vengono salvate le preferenze di Thunar?

Thunar salva le preferenze configurabili dall'utente (e le impostazioni nascoste) in un file di estensione .ini, posizionato in $XDG_CONFIG_HOME/Thunar/thunarrc, che pu essere esaminato utilizzando un editor di testo. Consultare il file docs/README.thunarrc per una panoramica delle varie preferenze.

Come utilizzare le "mouse gesture" in Thunar?

Attualmente Thunar fornisce un supporto di base per le cosiddette mouse gesture nella visualizzazione a icone. possibile utilizzare le mouse gesture tenendo premuto il tasto centrale del mouse (generalmente la rotella del mouse) mentre il puntatore nell'area di sfondo del componente nella vista a icone (qualsiasi area non occupata da testo o icona). A questo punto possibile spostare il cursore nelle quattro direzioni per eseguire determinate azioni descritte nel seguito.

Sinistra - apre la cartella visitata precedentemente
Su - apre la cartella genitore
Destra - apre la cartella visitata successivamente
Gi - aggiorna la cartella corrente

Come si possono assegnare scorciatoie da tastiera diverse?

Se si desidera riassegnare una scorciatoia, Thunar fornisce il supporto allo standard GTK+:

Per eliminare l'assegnazione di una scorciatoia, premere il tasto Backspace mentre si posizionati sulla voce del menu.

Se la scorciatoia non cambia, necessario abilitare la funzione in GTK+. Questo pu essere fatto in tre modi:

  • Se si utilizza Xfce 4.3 o successivi, possibile abilitare l'opzione acceleratori dei menu modificabili nella finestra delle Preferenze dell'interfaccia utente.

  • Se si utilizza GNOME, possibile abilitare l'opzione acceleratori dei menu modificabili nella sezione Menu e barre strumenti della finestra del centro di controllo.

  • Altrimenti, inserire la riga seguente nel file ~/.gtkrc-2.0:

    gtk-can-change-accels=1

Dove vengono immagazzinate le scorciatoie da tastiera di Thunar?

La mappa delle scorciatoie da tastiera personalizzate sono salvate con il formato standard GTK+ accel map in un file posizionato in $XDG_CONFIG_HOME/Thunar/accels.scm. Le linee che iniziano con ; sono commenti, Consultare la documentazione di GTK+ per maggiori informazioni sul formato del file.

Se si un pacchettizzatore o un amministratore di sistema e si intende fornire un'impostazione predefinita, per l'intero sistema, delle scorciatoie da tastiera, diversa da quella predefinita di Thunar, si pu creare un file Thunar/accels.scm in una delle $XDG_CONFIG_DIRS. Per esempio, se /etc/xdg parte di $XDG_CONFIG_DIRS (come il caso per la maggior parte delle distribuzioni Linux), possibile installare le impostazioni predefinite per tutto il sistema in /etc/xdg/Thunar/accels.scm. Thunar caricher le scorciatoie da questo file al primo avvio.

diff -Nru thunar-1.2.3/docs/manual/html/it/index.html thunar-1.6.10/docs/manual/html/it/index.html --- thunar-1.2.3/docs/manual/html/it/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Gestore di file Thunar

Gestore di file Thunar

Benedikt Meurer

Sviluppatore di software
os-cillation
Sviluppatore di sistemi


Questo manuale descrive la versione 1.2.0git-cc468f4 di Thunar.

garantito il permesso di copiare, distribuire e/o modificare questo documento nel rispetto dei termini della GNU Free Documentation License versione 1.1 o qualsiasi versione successiva pubblicata dalla Free Software Foundation; senza sezioni invarianti, senza testo di copertina all'inizio e alla fine. Il testo completo della licenza disponibile sul sito della Free Software Foundation.

November 2007


Introduzione a Thunar

Thunar un moderno gestore di file per l'ambiente Xfce. Thunar stato progettato fin dall'inizio per essere veloce e di facile utilizzo. La sua interfaccia utente semplice e intuitiva, e non presenta di default nessuna opzione inutile o che pu creare confusione. Thunar veloce e reagisce con prontezza dato che presenta un breve tempo di avvio e di caricamento delle cartelle.

Il gestore di file Thunar fornisce quindi un punto di accesso integrato ai propri file e applicazioni. Thunar pu essere utilizzato per:

  • creare cartelle e documenti;

  • visualizzare i propri file e cartelle;

  • gestire i propri file e cartelle;

  • eseguire e gestire le azioni personalizzate;

  • accedere ai supporti rimovibili.

diff -Nru thunar-1.2.3/docs/manual/html/it/preferences.html thunar-1.6.10/docs/manual/html/it/preferences.html --- thunar-1.2.3/docs/manual/html/it/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Preferenze di gestione dei file

Preferenze di gestione dei file

Utilizzare la finestra delle Preferenze del gestore di file per impostare le preferenze del gestore di file Thunar. Per aprire questa finestra, selezionare ModificaPreferenze... dalla barra del menu, oppure fare clic sul pulsante Gestore di file nel gestore della configurazione di Xfce.

La finestra delle Preferenze del gestore di file divisa in quattro pagine con diverse opzioni, ognuna delle quali descritta in una sezione apposita riportata nel seguito. Fondamentalmente possibile impostare le preferenze relative alle seguenti categorie:

  • le impostazioni predefinite per la visualizzazione;

  • le impostazioni predefinite per il pannello laterale;

  • il comportamento delle finestre del gestore di file;

  • funzioni avanzate del gestore di file.

Thunar supporta inoltre una serie di cosiddette opzioni nascoste, che controllano diverse funzioni avanzate del gestore di file, ma che non sono incluse nelle preferenze al fine di mantenere la finestra delle preferenze il pi semplice possibile. Il file README.thunarrc, incluso nella distribuzione di Thunar, descrive in dettaglio tutte le opzioni disponibili.

Preferenze di visualizzazione

possibile specificare una visualizzazione predefinita, selezionare le impostazioni di ordinamento e di visualizzazione. anche possibile impostare se per un certo tipo di file supportato devono essere visualizzate le miniature.

Preferenze di visualizzazione
Visualizza nuove cartelle usando

Selezionare la visualizzazione predefinita per le cartelle. All'apertura di una nuova finestra, questa verr visualizzata con lo stile selezionato. Pu trattarsi di visualizzazione a icone, a lista compatta o dettagliata. inoltre possibile selezionare l'opzione Ultima visualizzazione attiva per utilizzare lo stile di visualizzazione adottato nell'ultima finestra attiva.

Mostra le cartelle prima dei file

Selezionare questa opzione per visualizzare le cartelle prima dei file quando si ordina una cartella.

Mostra miniature

Selezionare questa opzione per mostrare le miniature dei file di immagine e di altri file supportati. Il gestore di file salva i file delle miniature per ogni directory nella cartella nascosta .thumbnails nella directory home dell'utente.

Consultare la sezione chiamata Creatori di miniature se si desidera estendere le funzionalit di base del thumbaniler di Thunar aggiungendo il supporto ad altri formati di file.

Testo accanto alle icone

Selezionare questa opzione per inserire l'intestazione dell'icona a fianco, anzich sotto, dell'icona stessa nella visualizzazione a icone

Preferenze del pannello laterale

possibile impostare le opzioni di visualizzazione per il pannello delle scorciatoie e per il pannello della visualizzazione ad albero.

Preferenze del pannello laterale

Il pannello laterale pu visualizzare sia una lista di scorciatoie per le cartelle presenti nel proprio file system (modalit predefinita), sia una struttura ad albero delle stesse cartelle. Questa pagina permette di selezionare la dimensione delle icone visualizzate nel pannello delle scorciatoie o della struttura ad albero. inoltre possibile indicare quali emblemi debbano essere visualizzati.

Dimensione dell'icona

La dimensione delle icone visualizzate nel pannello laterale, le scelte possibili variano da Molto piccola (circa 16x16 pixel) a Molto grande (circa 128x128 pixel).

Visualizza gli emblemi delle icone

Selezionare questa opzione per visualizzare gli emblemi delle cartelle nel pannello laterale. possibile assegnare gli emblemi alle directory dalla finestra delle Propriet. Selezionare una cartella nell'area principale e scegliere FilePropriet... dal menu principale, oppure fare clic con il tasto destro del mouse sulla directory e selezionare Propriet... dal menu contestuale.

Preferenze di comportamento

possibile selezionare il comportamento preferito per interagire con il gestore di file.

Preferenze di comportamento
Clic singolo per attivare gli elementi

Selezionare questa opzione per eseguire l'azione predefinita per un elemento quando si clicca su di esso. Quando questa opzione selezionata, e si posiziona il puntatore su un elemento, il titolo di questo sottolineato e verr selezionato automaticamente dopo un breve intervallo.

Questo intervallo di tempo pu essere configurato sotto all'opzione. anche possibile disattivare la selezione automatica degli elementi muovendo il puntatore all'estrema sinistra.

Doppio clic per attivare gli elementi

Selezionare questa opzione per eseguire l'azione predefinita su un elemento quando si esegue su di esso un oppio clic del mouse, e per selezionarlo con un singolo clic.

Preferenze avanzate

possibile impostare le caratteristiche avanzate del gestore di file.

Preferenze avanzate
Permessi della cartella

Selezionare l'azione che deve essere eseguita nel momento in cui vengono cambiati i permessi a una cartella nella finestra delle Propriet. possibile scegliere di lasciare che Thunar visualizzi una notifica ogni volta che si cambiano i permessi di una cartella, di applicare di default i permessi solo alla cartella o di di applicarli ricorsivamente alla cartella e al suo contenuto.

Gestione dei volumi

Se Thunar stato installato con il supporto per HAL ed anche installato il pacchetto thunar-volman, possibile abilitare il gestore di volumi integrato. Consultare la sezione chiamata Gestione dei supporti rimovibili per maggiori dettagli su questa caratteristica.

diff -Nru thunar-1.2.3/docs/manual/html/it/support.html thunar-1.6.10/docs/manual/html/it/support.html --- thunar-1.2.3/docs/manual/html/it/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Supporto

Supporto

Per segnalare un bug o per avanzare una proposta relativa a questo programma o al manuale, utilizzare il sistema di tracciamento dei bug all'indirizzo ulink url="http://bugzilla.xfce.org/enter_bug.cgi?product=Thunar&format=guided">http://bugzilla.xfce.org/

  • Riproducibilit - se lo sviluppatore non in grado di vedere personalmente il problema, molto probabilmente non sar in grado di correggerlo. Ogni dettaglio che si grado di fornire pu essere utile.

  • Specificit - pi rapidamente lo sviluppatore in grado di isolare il problema in un'area specifica, maggiore sar la possibilit di correggerlo.

Se si desidera richiedere una nuova caratteristica, occorre specificare il motivo per cui si ritiene necessaria. pi probabile che una nuova caratteristica venga implementata se si forniscono delle argomentazioni convincenti. Ancora meglio se si fornisce una patch che implementa una determinata caratteristica, ma ci si assicuri di aver letto il file HACKING (in particolar modo la sezione titolata Coding Style) prima di iniziare a modificare il codice sorgente.

Altrimenti, se si hanno delle domande relative all'utilizzo o all'installazione di questo programma, chiedere aiuto nella thunar-dev mailing list o sull'indirizzo IRC irc.freenode.net al canale #thunar.

diff -Nru thunar-1.2.3/docs/manual/html/it/the-file-manager-window.html thunar-1.6.10/docs/manual/html/it/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/it/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -La finestra del gestore di file

La finestra del gestore di file

Di norma, la finestra del gestore di file consiste di un riquadro delle scorciatoie, dell'area principale sulla destra e, al di sopra di essa, di una barra degli indirizzi.

Finestra del gestore di file

Il pannello laterale delle scorciatoie riporta le scorciatoie alle diverse cartelle presenti nel proprio sistema. La prima scorciatoia riporta la cartella casa, la cartella in cui vengono salvati i propri dati personali, e quindi prende il nome dell'utente corrente. La seconda scorciatoia conduce al cestino, dove vengono immagazzinati i file cancellati che possono ancora essere recuperati. La terza scorciatoia la cartella scrivania, che contiene i file e le cartelle visualizzate sulla scrivania. La quarta scorciatoia conduce alla radice dei propri file di sistema: si pu voler esplorarla all'inizio, ma pu confondere se si alle prime armi con i sistemi Linux/Unix. Selezionare le diverse cartelle per vedere cosa contengono.

Al di sotto della scorciatoia del File System, sono visualizzati i supporti e i dispositivi rimovibili. Nell'immagine sopra, visualizzato una scorciatoia per il Floppy Drive. Premendo su di essa si avr accesso ai dati salvati sul dispositivo rimovibile. Consultare la sezione la sezione chiamata Utilizzare i supporti rimovibili per maggiori dettagli.

Le altre scorciatoie sono definite dall'utente. Per aggiungere una scorciatoia sufficiente trascinare la cartella nel pannello laterale delle scorciatoie. In questo modo sar possibile accedere alle cartelle importanti istantaneamente. Per rimuovere una scorciatoia, fare clic con il tasto destro del mouse su di essa e selezionare l'opzione Rimuovi scorciatoia. Invece, per rinominarla, cliccare con il tasto destro del mouse su di essa e selezionare l'opzione Rinomina scorciatoia. Queste operazioni influenzano esclusivamente la scorciatoia e non la cartella a cui essa si riferisce.

Nell'area principale verr sempre visualizzato il contenuto della cartella selezionata. Con un doppio clic si apre una cartella mentre con un clic del tasto destro su file o cartelle si apre un menu contestuale che permette di eseguire alcune operazioni. possibile selezionare pi file creando una seleziona rettangolare che li contiene. In alternativa possibile selezionare un file e poi, tenendo premuto il tasto Shift, aumentare o diminuire la selezione utilizzando i tasti freccia.

La barra degli indirizzi visualizza il percorso intrapreso per raggiungere la cartella in cui ci si trova attualmente. Premendo su un pulsante qualsiasi della barra degli indirizzi, possibile spostarsi nella relativa cartella. Con un clic del tasto destro del mouse su un pulsante della barra degli indirizzi, verr visualizzato un menu contestuale con alcune opzioni.

Personalizzare l'aspetto

Esistono diversi modi per personalizzare l'aspetto delle finestre del gestore di file. Nel caso non si fosse soddisfatti del modo in cui vengono visualizzate le icone, selezionare VisualizzaVisualizza come lista dettagliata dal menu principale perch il contenuto della cartella corrente venga visualizzato sotto forma di elenco.

possibile impostare il gestore di file per visualizzare la barra dei percorsi in luogo di quella degli indirizzi, selezionando VisualizzazioneSelettore di percorsiIn stile barra degli strumenti dal menu principale.

Nel caso si preferisca una visualizzazione ad albero per il pannello di sinistra, selezionare VisualizzazionePannello lateraleAlbero dal menu principale.

Colonne visibili nella visualizzazione a lista dettagliata

Nel caso si preferisca visualizzare il contenuto delle cartella sotto forma di lista, utilizzando la Visualizzazione a lista dettagliata, possibile personalizzare le colonne da visualizzare. Per modificarle, selezionare VisualizzazioneConfigura colonne... dal menu principale.

Colonne visualizzate
Colonne visualizzate

Selezionare le colonne che si desidera vengano visualizzate dalla lista di quelle disponibili. Premere Sposta su o Sposta giper cambiare l'ordine delle colonne. Premere Predefinitoper tornare alle impostazioni di default.

Dimensionamento delle colonne

Selezionare l'opzione Espandi automaticamente le colonne quando necessario se si desidera che le colonne della visualizzazione a lista si espandano automaticamente per fare in modo che il testo sia completamente visibile.

diff -Nru thunar-1.2.3/docs/manual/html/it/using-removable-media.html thunar-1.6.10/docs/manual/html/it/using-removable-media.html --- thunar-1.2.3/docs/manual/html/it/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Utilizzare i supporti rimovibili

Utilizzare i supporti rimovibili

Accedere ai supporti rimovibili

Thunar supporta i dispositivi rimovibili se stato compilato con il supporto per HAL, o se si sta utilizzando FreeBSD. Comunque, nelle versioni di FreeBSD 6.0 o successive, si suggerisce di utilizzare HAL in luogo del supporto nativo fornito da Thunar.

Montare i supporti

Montare i supporti significa renderne accessibile il file system. Quando si monta un supporto, il relativo file system collegato come sotto directory del proprio file system.

Per avere accesso a un supporto, inserirlo nell'apposito dispositivo o collegarlo fisicamente al proprio computer (per esempio collegando un dispositivo USB a una delle porte USB presenti sul proprio computer). Nel pannello laterale del gestore di file verr aggiunto un oggetto che rappresenta il dispositivo collegato. Se in esecuzione xfdesktop ed correttamente configurato per visualizzare le icone dei file e degli avviatori, l'oggetto verr anche aggiunto alla propria scrivania.

Per montare effettivamente il dispositivo, fare clic sull'oggetto che lo rappresenta. Per esempio, per montare un dischetto floppy, fare clic sull'oggetto Floppy Drive nel pannello laterale. Il gestore di file aggiunger cos il file system del dispositivo alla struttura del proprio file system e ne visualizzer il contenuto nell'area principale.

Espellere i supporti

Se il dispositivo per il supporto motorizzato (per esempio un'unit CD-ROM), fare clic con il tasto destro del mouse sull'oggetto corrispondente nel pannello laterale o sulla scrivania e scegliere Espelli volume. Il supporto verr espulso dal dispositivo dopo pochi secondi. Se invece il dispositivo non motorizzato (per esempio un dischetto floppy o una chiavetta USB), fare clic con il tasto destro del mouse sull'oggetto corrispondente e selezionare Smonta volume. Dopo qualche istante verr visualizzato un messaggio per avvisare che possibile rimuovere il dispositivo dal computer in sicurezza.

Messaggio di smontaggio

Il messaggio verr visualizzato solamente se abilitato il supporto per libnotify, e se stato installato il demone di notifica. Un demone di notifica per l'ambiente Xfce disponibile dal sito del Xfce Goodies Project. Se il supporto alla notificazione non disponibile, occorre attendere la scomparsa del menu contestuale prima di rimuovere il supporto o scollegare l'unit.

Si ricorda che non possibile espellere o smontare un supporto o un dispositivo che ancora in uso da una o pi applicazioni. Quindi, se il gestore di file si rifiuta di espellere un dispositivo, sar necessario controllare di aver chiuso tutte le applicazioni che avevano accesso al dispositivo stesso e verificare anche le applicazioni da linea di comando eseguite nella finestra del Terminale.

Assicurarsi di aver smontato il supporto rimovibile prima di espellerlo. Non espellere un disco floppy dal drive prima di averlo smontato. Non rimuovere una chiavetta USB prima di aver smontato il dispositivo. Se non si smonta prima il dispositivo, si potrebbero perdere dei dati o mandare in blocco il sistema.

Gestione dei supporti rimovibili

Thunar inoltre in grado di gestire automaticamente i supporti e i dispositivi rimovibili se il pacchetto thunar-volman installato nel sistema. Si noti comunque che questa caratteristica richiede il supporto di HAL.

Se il supporto ad HAL disponibile e thunar-volman installato nel proprio sistema, possibile scegliere di abilitare la funzione di gestione dei volumi fornita da Thunar. Quindi, aprire le preferenze del gestore di file, dirigersi alla pagina Avanzate e abilitare l'opzione Abilita la gestione dei volumi.

Il passo successivo consiste nel personalizzare, a seconda dei propri bisogni, la gestione dei supporti e dei dispositivi rimovibili. Premere il collegamento Configura nella sezione Gestione dei volumi, subito sotto al pulsante; verr visualizzata la finestra di configurazione dei dispositivi e dei supporti rimovibili.

Dispositivi e supporti rimovibili

Se si ha confidenza con il gnome-volume-manager, ci si dovrebbe trovare a proprio agio, in quanto stato progettato per assomigliare nell'aspetto e nel comportamento al gnome-volume-manager. Le preferenze sono suddivise per ogni categoria di dispositivo in modo da agevolare la ricerca dell'opzione relativa a uno specifico dispositivo.

La pagina sui dispositivi di immagazzinamento contiene le opzioni pi importanti. Come suggerisce il nome, queste opzioni si applicano solamente ai dispositivi di immagazzinamento quali hard disk esterni, chiavette USB e CD-ROM. Le opzioni relative ai dispositivi di immagazzinamento sono descritte in dettaglio nel seguito

Monta i supporti rimovibili quando collegati

Abilitare questa opzione per eseguire il montaggio automatico dei file system presenti sui dispositivi rimovibili (per esempio un hard disk esterno o una chiavetta USB) nel momento in cui vengono collegati al computer.

Questa opzione deve essere abilitata per permettere il funzionamento di alcune caratteristiche relative ai dispositivi rimovibili. Per esempio, disabilitando questa opzione, certi tipi di lettori musicali portatili non sono pi riconosciuti, e quindi, anche se abilitata l'opzione Esegui i file musicali quando connessi nella pagina Multimedia, il comando non sar eseguito automaticamente al momento dell'inserimento del lettore musicale nella relativa porta.

Monta i supporti rimovibili quando inseriti

Abilitare questa opzione per eseguire il montaggio automatico dei file system dei supporti rimovibili (per esempio CD-ROM o DVD) al momento dell'inserimento del supporto nell'unit.

Questa opzione deve essere abilitata per permettere il funzionamento di alcune caratteristiche relative ai supporti rimovibili. Per esempio, disabilitando questa opzione, risulta impossibile riconoscere se il supporto in grado di avviarsi autonomamente (autorun) e quindi l'opzione Avvia automaticamente i nuovi dispositivi e i supporti non ha effetto sui supporti rimovibili.

Sfoglia i supporti rimovibili quando inseriti

Abilitare questa opzione per visualizzare automaticamente nel gestore di file il contenuto dei supporti appena inseriti. Il contenuto, verr visualizzato solamente se non possibile alcun altra azione o se stato scelto di ignorare le altre possibili azioni. Per esempio, se si inserisce un CD-ROM in grado di avviarsi automaticamente ed abilitata l'opzione Avvia automaticamente i nuovi dispositivi e i supporti, verr richiesto se avviare o ignorare l'avvio automatico. Se si sceglie di ignorare l'esecuzione automatica, il contenuto del supporto verr visualizzato nel gestore di file.

Esegui automaticamente i programmi per i nuovi dispositivi o supporti

Abilitare questa opzione per avvalersi delle capacit di auto avviamento di alcuni supporti e dispositivi rimovibili. Consultare le specifiche di auto avviamento delle applicazioni desktop per maggiori dettagli sul meccanismo di esecuzione automatica. Per aumentare la sicurezza, verr sempre richiesta la conferma dell'avvio automatico.

Se l'emulatore di sistemi Windows WINE installato sul proprio sistema, il meccanismo di avvio automatico tenter di eseguire il file autorun.exe utilizzando WINE.

Apertura automatica dei file all'inserimento di un supporto

Abilitare questa opzione per avvalersi della capacit di apertura automatica di alcuni dispositivi e supporti rimovibili. Consultare le specifiche di avvio automatico per le applicazioni desktop per maggiori dettagli sul meccanismo di apertura automatica. Per aumentare la sicurezza, verr sempre richiesta la conferma dell'apertura automatica.

Le restanti opzioni permettono di specificare un comando da eseguire all'inserimento in una unit di un certo tipo di supporto o alla connessione di un dispositivo esterno. Il comando pu utilizzare tre variabili speciali che verranno sostituite all'esecuzione del comando stesso:

%d

Ogni volta che la stringa %d compare nel comando, verr sostituita con il percorso del file del dispositivo appena inserito. Per esempio, se si connessa una chiavetta USB, il percorso del file del dispositivo sar /dev/da0s1 o /dev/sda1.

Se al dispositivo non associato alcun file del dispositivo o se quest'ultimo non rintracciabile, la variabile %d verr sostituita con una stringa vuota.

%h

Ogni volta che la stringa %h compare nel comando, verr sostituita con il codice UDI di HAL del nuovo dispositivo.

%m

Ogni volta che la stringa %m compare nel comando, verr sostituita con il punto di montaggio del nuovo dispositivo aggiunto. Se il dispositivo non pu essere montato (per esempio una stampante o una tastiera) o se il montaggio automatico disabilitato, %m verr sostituita con una stringa vuota.

Soluzione dei problemi relativi al gestore di volumi

Suggerimenti utili per risolvere i problemi relativi al gestore di volumi in caso non dovesse funzionare secondo le attese.

  1. Assicurarsi che Thunar sia in esecuzione come demone. Il gestore di volumi dipende da questo, dato che non un demone. Di norma, Xfce esegue Thunar come demone all'avvio. Se per qualche ragione venisse terminato, aprire la finestra di Esegui programma (utilizzando la scorciatoia da tastiera Alt+F2 o facendo clic sulla scrivania con il tasto destro e scegliendo Esegui programma... dal menu della scrivania), digitare Esegui programma... e fare clic su Esegui.

  2. Provare a eseguire thunar-volman da una finestra del terminaledopo avere collegato l'unit o inserito il supporto. Prima di tutto necessario identificare l'UDI di HAL del dispositivo utilizzando lshal o hal-device. Una volta noto l'UDI, eseguire thunar-volman --device-added <udi-del-proprio-dispositivo> in una finestra del terminale e controllare l'eventuale comparsa di messaggi di avviso o di errore.

Se non dovesse ancora funzionare, richiedere aiuto sul forum di Xfce o nella lista di discussione degli sviluppatori di thunar.

diff -Nru thunar-1.2.3/docs/manual/html/it/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/it/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/it/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/it/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Lavorare con file e cartelle

Lavorare con file e cartelle

Aprire i file

Quando si apre un file, il gestore di file esegue l'azione predefinita per quel tipo di file. Per esempio, se si apre un file di testo, questo verr visualizzato utilizzando l'editor di testo predefinito mentre, aprendo un file di immagine, verr avviato il visualizzatore di immagini predefinito.

Il gestore di file controlla l'estensione di un file per determinarne il tipo. Se il file non presenta un'estensione conosciuta, il gestore di file ne esamina il contenuto.

Eseguire le operazioni predefinite

Per eseguire l'azione predefinita su un certo file, sufficiente fare clic due volte su di esso. Per esempio, l'azione predefinita per i file audio prevede di eseguirli con l'applicazione predefinita per la musica. In questo caso, si pu cliccare due volte sul file per aprirlo nel programma per la musica.

possibile impostare le preferenze di Thunar in modo che basti un unico clic sul file per eseguire l'azione predefinita a esso associata. Per maggiori informazioni consultare la sezione la sezione chiamata Preferenze di comportamento.

Eseguire le operazioni non predefinite

Per eseguire un'azione diversa da quella predefinita per un file, selezionare il file per cui si desidera cambiare l'azione. Scegliere l'azione desiderata dalle opzioni Apri con disponibili nel menu File o nel sotto menu Apri con.

Aggiungere delle azioni

Per aggiungere delle azioni associate a un determinato tipo di file, si seguano i passi successivi:

  1. nell'area principale, selezionare un file del tipo a cui si vuole associare un'azione;

  2. selezionare FileApri con altra applicazione... dal menu principale;

  3. scegliere un'applicazione nella finestra Apri con o selezionare Usa un comando personalizzato e navigare fino a selezionare il programma che si desidera utilizzare per aprire questo tipo di file.

L'azione scelta stata ora aggiunta alla lista di azioni per quel particolare tipo di file. Se stata abilitata l'opzione Usa come predefinita per questo tipo di file o non era stata associata un'altra azione in precedenza, la nuova azione quella predefinita.

anche possibile aggiungere delle azioni utilizzando il pulsante Apri con raggiungibile da FilePropriet....

Modificare le azioni

Per modificare le azioni associate a un file o a un certo tipo di file, seguire questa procedura:

  1. nell'area principale selezionare un file del tipo per cui si vuole modificare l'azione;

  2. selezionare FilePropriet... dal menu principale;

  3. selezionare la nuova azione predefinita utilizzando il pulsante Apri con oppure aggiungere una nuova azione selezionando Apri con altra applicazione... dal menu a discesa.

Per rimuovere un'azione definita in precedenza per un certo tipo di file, aprire il dialogo Apri con come descritto in precedenza, premere con il tasto destro del mouse sull'azione che si desidera rimuovere e selezionare Rimuovi avviatore.

Propriet del file

La finestra delle propriet del file mostra ulteriori informazioni su qualsiasi file o cartella nel gestore di file. In questa finestra anche possibile eseguire le seguenti operazioni:

  • cambiare l'icona di file speciali, quali gli avviatori di applicazioni e i collegamenti URL;

  • aggiungere o rimuovere gli emblemi di un file o di una cartella;

  • cambiare i permessi UNIX a un file o a una cartella;

  • scegliere l'applicazione da utilizzare per aprire un file e tutti gli altri file dello stesso tipo.

Propriet del file

Per aprire la finestra delle propriet del file, seguire questa procedura:

  1. selezionare il file o la cartella di cui si vogliono esaminare o modificare le propriet. Non possibile selezionare pi di un elemento alla volta e visualizzare le propriet che hanno in comune;

  2. Eseguire una delle seguenti operazioni:

    • selezionare FilePropriet... dal menu principale;

    • Fare clic con il tasto destro del mouse sull'elemento selezionato e scegliere Propriet... dal menu contestuale;

    • premere la combinazione di tasti Alt+Invio.

diff -Nru thunar-1.2.3/docs/manual/html/ja/advanced-topics.html thunar-1.6.10/docs/manual/html/ja/advanced-topics.html --- thunar-1.2.3/docs/manual/html/ja/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -高度な話題

高度な話題

複数ファイル名の一括変更

バルクリネーム ではいくつかの基準を使用して複数のファイルの名前を一度に変更できます。Thunar にはバルクリネームが同梱されており、コマンド Thunar -B を入力するか、または Thunar のメインエリア上で複数のファイルを選択し F2 キーを押すか、メインメニューから 「編集」「名前の変更...」 を選択すると起動されます。

複数ファイル名の一括変更

バルクリネーム はファイル名、ファイルの拡張子、またはその両方を変更できます。Thunar は現在以下の 一括変更 をサポートしています:

  • 文字の除去

  • ファイルの番号付け

  • 日付または時刻の挿入

  • 文字の挿入または上書き

  • 文字の検索と置き換え

  • 大文字、小文字、または先頭のみ大文字への変換

Thunar プラグインには、バルクリネーム の機能を拡張するものもあります。Thunar Plugins ウェブサイトを訪れて、現在利用可能なエクステンションをチェックしてください。

UNIX ファイルシステム

ファイルマネージャ Thunar は、基本的なファイルシステムの抽象的な些事を何の問題も無くこなしますので、利用者はこれらを気にする必要はありません。とは言いながら、全体像を掴むために基本概念を理解しておくと後々役立つ場合があります。この章では、UNIX ファイルシステムの概念を手短に紹介します。これは、今日における Linux を含むあらゆる UNIX の派生 OS で用いられています。

フォルダとパス

UNIX ファイルシステムでは、すべてのファルダは一つの最上位フォルダから下へ向かって枝分かれしながら配置されていきます。逆さになった樹木の構造を想像してみてください。この最上位にあるフォルダはルートディレクトリ (ディレクトリ という用語は フォルダ の代わりによく使われます) と呼ばれ、Thunar では ファイルシステム として表示されます。つまり、ある地点に到達するまでフォルダからフォルダへとこの木構造を登って行き、その後に目標とする場所に着くまでサブフォルダを下って行くのです。

この木構造でのファイルやフォルダの位置はその パス で記すことができます。このパスというのは、目標とするフォルダやファイルにたどり着くために通過していかなければいけないフォルダのリストで、最上部のフォルダから始まります。例えば、/home/luke は最上部フォルダのサブフォルダ home のサブフォルダ luke になります。/home/luke/myfile.txt はそのサブフォルダにある myfile.txt というファイルです。これらのパスの先頭にある / は最上部フォルダを表します。

すべての利用者が個人用のファイルや設定を保管するための個別のフォルダを持ちます。このフォルダは ホームディレクトリ と呼ばれ、Thunar では利用者のログイン名と共に特別なアイコンで表示されます。Windows で知られる マイファイル と似ています。それぞれの利用者の ホームディレクトリ は通常 /home の下にあります。例として上げると、ログイン名 luke のホームディレクトリは /home/luke になり、/home/jane はログイン名が jane のホームディレクトリになります。

ファイルの種類

もう御存知かもしれませんが、UNIX ではあらゆるものがファイルとして取り扱われます。UNIX システムを構成するほぼすべての物体がそういう風に取り扱われると考えて差し支えありません。事実、各種装置や周辺機器も特殊ファイルとして表されます。一見意味の無いように思われるかもしれませんが、これは UNIX やその派生 OS の強味の一つです。UNIX はシンプルなコアを何年にもわたって保守するだけでよいのに対して、他のオペレーティングシステムは新しいテクノロジーが紹介される度に、新しい概念を導入しなければなりませんでした。

UNIX ファイルシステムにおけるファイルの種類には、4 つの重要なものがあります。

普通のファイル

普通のファイルは文字データを含んでいたり、プログラムまたは他のデータであったりします。ここには画像ファイル、オーディオファイル、オフィス文書および動画ファイルも入ります。ファイル という用語がこれら普通のファイルを指すのによく使用されます。

フォルダファイル

UNIX ファイルシステムではフォルダもファイルです。正確に言えばフォルダは特殊ファイルになります、このフォルダ内にあるすべてのファイルを参照するためのファイル名のマップが含まれています。

シンボリックリンクファイル

シンボリックリンク (よく リンク と呼ばれます) はファイルシステムで、他のファイルへのパスを含む特殊ファイルです。従ってシンボリックファイル自身は特に意味のある情報を持ちません、単に他のファイルを参照するだけです。

デバイスファイル

始めの方で述べたように (ほとんどの) デバイスもファイルシステム経由でアクセスされます。これら特殊デバイスファイルは通常 /dev フォルダにあります。例えば、特殊ファイル /dev/hda は Linux 上での一番目の IDE ディスクを表します。

diff -Nru thunar-1.2.3/docs/manual/html/ja/copyright.html thunar-1.6.10/docs/manual/html/ja/copyright.html --- thunar-1.2.3/docs/manual/html/ja/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar について

Thunar について

Thunar は Benedikt Meurer () が製作しました。より詳しい情報は Thunar のウェブサイトを参照してください。

Benedikt Meurer () がこの文書を製作しました。最新版は Thunar のウェブサイトにあります。

このソフトウェアはフリーソフトウェア財団が公表する GNU 一般公衆利用許諾契約書の条件下に配布されています。第2版あるいは、あなたが選ぶそれ以降の版のいずれかが適用されます。

このプログラムには、GNU 一般公衆利用許諾契約書のコピーが附属するはずですが、もし無いのであればフリーソフトウェア財団に連絡してください。59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/ja/customizing-thunar.html thunar-1.6.10/docs/manual/html/ja/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/ja/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -Thunar のカスタマイズ

Thunar のカスタマイズ

この章では、ファイルマネージャの一部を必要に応じてカスタマイズする方法を説明します。

「送る」メニュー

Thunar には 「送る」 メニューが用意されており、ファイルやフォルダの送り先を選択できます。「送る」 メニューへのアクセスは、メインメニューから 「ファイル」「送る」 を選択するか、またはファイルやフォルダの上で右クリックし、コンテキストメニューから 「送る」 を選択します。

「送る」メニュー

デフォルトでは、「送る」 メニューには、すべてのファイルおよびフォルダの選択時に 「デスクトップ (リンクを作成)」 という名前のエントリが表示され、これを選ぶと選択された各アイテムのリンクをデスクトップに作成します。また、「ショートカットペイン」 が有効になっていれば、フォルダ選択時のメニューには 「サイドペイン (ショートカットを作成)」 という名前のエントリが表示され、これを選ぶとサイドペインに新しくショートカットを追加します。これらエントリの次に、Thunar はコンピュータにリムーバブルドライブが接続されていればそれらのエントリを表示します。上のスクリーンショットではファイルの送り先として 「フロッピードライブ」 が表示されています。「送る」 メニューからデバイスを一度選択すれば、そのデバイスは自動的にマウントされるため、手動でマウントする必要がないこと覚えておいてください。

さらに、Thunarthunar-sendto-email プラグインを同梱しており、「メール (添付ファイル)」 エントリも追加されています。これは選択されたファイルを添付ファイルとしてメール送信できるようにします。選択されたアイテムの中にフォルダが一つでも含まれていれば、選択されたアイテムはメールに添付される前に ZIP 形式でアーカイブされます。他に、複数のファイルを選択した場合、あるいは 200KiB を超えるサイズのファイルを選択した場合には、ファイルを ZIP 形式でアーカイブするかどうかの確認が行われます。

Thunar「送る」 メニューを拡張し、新しいターゲット用のエントリを利用者またはアプリケーション開発者が追加する場合は、標準デスクトップエントリファイル を使用することで容易に行えます。これらのファイルは $XDG_DATA_DIRS/Thunar/sendto/ フォルダに格納されなければなりません (環境変数 $XDG_DATA_DIRS に関する詳細は、XDG Base Directory Specification を参照してください)。

ターゲットの .desktop ファイルの MimeType には、「送る」 メニューにそのエントリが表示されるファイルのタイプを指定します。例えば、Flickr のアップロードツールのエントリを追加する場合、このエントリは JPEG (または Frickr がサポートするファイル形式の) ファイルが選択されたときにのみ表示されるべきであり、MimeType=image/jpeg; の指定を追加するべきです。MimeType を指定しなかった場合にはエントリはすべてのファイルタイプで表示されます。

アプリケーション postr を使用した完全な例を以下に示します:

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

このファイルを ~/.local/share/Thunar/sendto/ (なかったら作成してください) にインストールすると、JPEG ファイルの「送る」メニューに新しいエントリ 「Flickr」 が表示され、これを使って JPEG 画像を Frickr へアップロードできるようになるはずです。

Thunar Project Wiki には、「送る」メニューで使えるエントリの実用例が登録されています。Wiki ページにあなたの新しい例をお気軽に追加してみてください。

サムネイラ

Thunar はいくつかのファイルタイプのファイルの内容のプレビューとしてサムネイル表示するために、サムネイルを作成する小さなユーティリティを使用します。これら小さなツールはサムネイラと呼ばれます。Thunar はイメージとフォントファイルのサムネイラを同梱しており、gconf をサポートする GNOME のサムネイラがインストールされていれば、それを自動的に使用します。しかし、このサムネイラの基本機能に加え、他のファイルタイプのサムネイラを動的に拡張したいときがあるかもしれません。

あなたがカスタムサムネイラを作成する場合、少なくとも2つのコマンドラインパラメータに対応したプログラムにする必要があります。一つは入力ファイルにサポートしたいファイルタイプに対応していること、もう一つは出力ファイルに Thumbnail Management Standard で指定されたフォーマットに準拠した PNG ファイルに対応していることです。また、必須ではありませんが、あなたのプログラムはサムネイルのサイズ要求に対応していることも強く推奨されます。あなたの作成したプログラムが勝手な画像サイズでファイルを出力した場合、Thunar は後でそれを要求されるサイズに変更しますが、それは最適なサイズでサムネイルを生成した場合に比べ適切な結果を生み出すとは限りません。

あなたのサムネイルを生成するユーティリティができあがったら、Thunar がそれを認識して使用できるように登録する必要があります。そのためには、あなたは $XDG_DATA_DIRS/thumbnailers/ パスのいずれかにサムネイラの説明ファイル (.desktop ファイル) をインストールしなければなりません。例えば、そのサムネイラをあなたのユーザアカウントだけで使用したい場合には、.desktop ファイルを ~/.local/share/thumbnailers/ にインストールします。サムネイラの .desktop ファイルは、以下のフォーマットになります。

サムネイラ説明ファイルのフォーマット

サムネイラ説明ファイルは Desktop Entry Format で規定された形式で、Type に特殊なタイプ X-Thumbnailer を指定し、特殊なフィールド X-Thumbnailer-Exec に新しいコードを指定します。

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

Version および Encoding はデスクトップエントリ仕様によって決まります。上の例の値をそのまま使用してください。Type フィールドは特殊な値 X-Thumbnailer でなければならず、他の値ではとサムネイラとして認識されません。Name フィールドにはあなたのサムネイラの説明を記述してください。

X-Thumbnailer-Exec フィールドにはあなたのサムネイラのコマンドを指定します。ここではサムネイラ実行時に置き換えられるいくつかのフィールドコードをサポートしています。認識するフィールドコードを以下に示します:

%i

サムネイルを作成する入力ファイルのローカルパスです。サムネイラを起動したディレクトリからの相対パスか、絶対パスになります。

%o

生成されたサムネイルが出力されるファイルのローカルパスです。出力ファイルはサムネイル標準 (上記参照) に準拠した有効な PNG ファイルでなければなりません。一部のサードパーティツールを呼び出す場合、パスは .png で終わらないかもしれないことを覚えておいてください。

%s

要求される生成するサムネイルのサイズ (ピクセル) です。このパラメタは任意です。

%u

%i と似ていますが、ファイルのパスではなく URI に置き換えられます。これは GNOME との互換性のために追加されました。

%%

一文字の % に置き換えられます。

パラメータには、少なくとも %o と、%i または %u が指定されなければなりません。指定されない場合サムネイラは正しく動作しません。

MimeType にはサムネイラがプレビューを生成できる MIME タイプを、セミコロンで区切って指定します。

EPS サムネイラの例

ここでは、ImageMagick の一部として提供される convert ユーティリティを使用した、.eps ファイル用サムネイラの作成からインストールまでの例を紹介します。最初に、サムネイルを要求されたサイズで生成するための、convert を呼び出す簡単なスクリプトを作成します。

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

このスクリプトを eps-thumbnailer という名前で保存し、実行許可を設定して、/usr/local/bin にインストールします。

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

次に、以下のようなサムネイル説明ファイル eps-thumbnailer.desktop を作成します。

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

このファイルは /usr/local/share/thumbnailers にインストールされなければなりません (なかったら作成してください)。

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

eps-thumbnailer.desktop ファイルに特殊キー TryExec が指定されていればそれを参照します。TryExec には、サムネイラが動作するためにシステム上に存在しなければならないコマンドを設定します。この例の場合、このスクリプトは convert ユーティリティが存在しないと起動されません。

最後に、サムネイラキャッシュを再生成し、Thunar にこのサムネイラを認識させます。サムネイラキャッシュは $XDG_CACHE_HOME/Thunar/thumbnailers.cache にあります (あなた、またはあなたのシステム管理者が変更していなければ、$XDG_CACHE_HOME~/.cache/ フォルダを指しています)。サムネイラキャッシュは Thunar によって定期的に再作成されますが、Thunar に同梱されている thunar-vfs-update-thumbnailers-cache-1 ユーティリティを使用して強制的に再作成させることができます。このユーティリティは通常あなたのインストレーションプレフィックスのサブフォルダ libexec にインストールされています (Debian/Ubuntu の場合は /usr/lib/thunar) 。従って、例えば Thunar がプレフィックス指定 /usr でインストールされていた場合のこのユーティリティの起動は以下のようになります:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

ただし、サムネイラキャッシュはシステム全体での場所ではなく、あなたのホームフォルダに格納されるため、このプログラムをスーパーユーザではなく、あなたのユーザアカウントで実行することを忘れないでください。

これで Thunar は変更されたファイルモニタリングサポート (FAM または Gamin を使用します) 付きでコンパイルされ、数秒後には新しいサムネイラキャッシュが自動的にピックアップされ、その後はあなたのカスタムサムネイラを使用してサムネイルの生成ができるようになります。もしそれが行われなければ、起動中のすべての Thunar インスタンスを以下のコマンドで終了させてください。

$ Thunar -q

その後 Thunar を起動し直してください。

サムネイルのクリーンアップ

生成されたサムネイルは Thumbnail Management Standard に準拠して ~/.thumbnails/ フォルダに格納されています。新しいサムネイラをテストしているうちにサムネイラキャッシュを掃除したくなった場合は、以下のようにキャッシュフォルダを削除してください。

$ rm -rf ~/.thumbnails/

これであなたのホームフォルダに多少の空きスペースができます。このフォルダに格納されていたすべての情報はあなたのファイルシステムにあるファイルから自動的に再作成され、必要なデータが失われることはありません。

diff -Nru thunar-1.2.3/docs/manual/html/ja/faq.html thunar-1.6.10/docs/manual/html/ja/faq.html --- thunar-1.2.3/docs/manual/html/ja/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -よくある質問

よくある質問

この章では Thunar を使用するにあたって、かなりの頻度で尋ねられる質問に回答します。このページにない質問があるのでしたら、要望 を出して下さるようお願いします。

実行可能になっているファイルを実行しないのはなぜですか?

セキュリティ上の理由から、Thunar は種類が application/x-desktop, application/x-executable および application/x-shellscript のファイルのみを実行します。デスクトップファイルに対しては、種類が Application かつ適正な Exec 行が指定されているか、あるいは種類が Link かつ適正な URL が指定されている場合に限って実行機能が有効になります。その他に対しては、当該ファイルが現在の利用者にとって実行可能なようにマークされている場合に利用できます。

application/x-executable および application/x-shellscript に関しては次のことを覚えておいてください、この種類のファイルは実際にはこの種類に正確に一致する必要がありません、しかし、チェックされた種類に上記二つの種類に該当する親があるなら、あるいは MIME タイプが上にあるものの内の一つへの別名ならば、それで事足ります。

ファイルに関連付けられているメタデータは何処に保存されていますか?

Thunar はファイルやフォルダに様々な設定事項を関連付けます。これらはメタデータと呼ばれ、全ファイルのメタデータは (メタファイルと呼ばれる) tdb データベース・ファイルに保管されます。このデータベースファイルは $XDG_CACHE_HOME/Thunar/metafile.tdb に保存されていて、tdbtool を使うことで変更できます。このツールは配布される Thunar パッケージの一部として、サブディレクトリ tdb/ にあります。

Thunar の環境設定が保存されているのは何処ですか?

Thunar は .ini ファイルに利用者が変更可能な環境設定 (および隠し設定) を格納します。このファイルは $XDG_CONFIG_HOME/Thunar/thunarrc にあり、テキストエディタを使って色々な設定を実験してみることができます。各環境設定の概要は docs/README.thunarrc にあります。

Thunar でマウスジェスチャを使うには?

現在、Thunar はアイコン表示およびコンパクト表示で、いわゆる マウスジェスチャ と呼ばれる機能を簡単ですがサポートしています。マウスポインタがアイコン表示コンポーネントの背景となる場所 (アイコンや文字が無い所ならどこでも該当します) にあるとき、マウスの中央ボタン (通常はマウスホイール) を押しっ放しにすることで、マウスジェスチャ 機能を使用できます。その状態でカーソルを四方に動かすと以下の動作が実行されます。

- 前のフォルダを開きます
- 上位のフォルダを開きます
- 次のフォルダを開きます
- 現在のフォルダをリロードします

どのようにすれば異なるキーボードショートカットを割り当てられますか?

Thunar は GTK+ 標準のショートカット変更手順をサポートしています。ショートカットの割り当ての変更は、マウスポインタが該当するメニューの上にある状態で、割り当てたいキーボードショートカットを押すことで行えます。

割り当てられているショートカットを削除するには、該当するメニュー項目上で バックスペース を押してください。

ショートカットが変更されない場合、GTK+ の本機能を有効にする必要があります。これには 3 つのやり方があります:

  • Xfce 4.3 かそれより新しいものであれば、「外観」の設定ダイアログで 「メニューのショートカットを変更可能にする」 を有効にしてください。

  • GNOME を使用しているのでしたら、コントロール・センターの 「メニューとツールバー」 ダイアログで 「メニューのアクセラレータを編集可能にする」 を有効にしてください。

  • それ以外であれば、ファイル ~/.gtkrc-2.0 (なかったら作成してください) に

    gtk-can-change-accels=1

    という一行を記述します。

ショートカットは何処に保存されるのですか?

個人で変更したキーボードショートカットは GTK+ 標準のアクセラレータマップ形式で保存され、$XDG_CONFIG_HOME/Thunar/accels.scm に置かれます。; で始まる行はコメントです。このファイル形式についての詳細は GTK+ の文書を参照してください。

あなたがパッケージ作成者かシステム管理者で、Thunar の標準ショートカットとは異なる、システム全体の標準キーボードショートカットを設定したいのでしたら、$XDG_CONFIG_DIRS のどれか一つに Thunar/accels.scm を作ることができます。例えば、/etc/xdg (大抵の Linux ディストリビューションの標準) が $XDG_CONFIG_DIRS の一つになっているとすると、/etc/xdg/Thunar/accels.scm にシステム全体に適用される標準を設定することができます。こうすることで、Thunar は初回起動時にこのファイルからショートカットを読み込むようになります。

diff -Nru thunar-1.2.3/docs/manual/html/ja/index.html thunar-1.6.10/docs/manual/html/ja/index.html --- thunar-1.2.3/docs/manual/html/ja/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar ファイルマネージャ

Thunar ファイルマネージャ

Meurer Benedikt [FAMILY Given]

ソフトウェア開発者
os-cillation
システム開発


この説明書は Thunar のバージョン 1.2.0git-cc468f4 について書かれています。

フリーソフトウェア財団が公表する GNU フリー文書利用許諾契約書の第1.1版、あるいはそれ以降のいずれかの版の条件下において、この文書の複製、配布および/または変更が許可されます。変更出来ない箇所、表紙文および裏表紙文があってはいけません。この利用許諾契約書の全文はフリーソフトウェア財団から取得する事ができます。

November 2007


Thunar の紹介

Thunar は Xfce デスクトップ環境用に、素早く手軽に使えるようゼロから設計されている今風のファイルマネージャです。ユーザインターフェイスは簡潔かつ直観的です。紛らわしい、無駄なオプションは標準では一切組み込まれていません。起動時間も短く、フォルダの読み込みに対する反応も上々です。

その結果としてではありますが、ファイルマネージャ Thunar はあなたのファイルやアプリケーションのための統合された一つのアクセス拠点を提供します。このファイルマネージャを使って以下の作業を行えます:

  • フォルダおよび文書の作成

  • ファイルおよびフォルダの表示

  • ファイルおよびフォルダの管理

  • カスタムアクションの実行および管理

  • 持ち運び可能なメディアへのアクセス

diff -Nru thunar-1.2.3/docs/manual/html/ja/preferences.html thunar-1.6.10/docs/manual/html/ja/preferences.html --- thunar-1.2.3/docs/manual/html/ja/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ファイル管理の設定

ファイル管理の設定

Thunar ファイルマネージャの初期設定は 「ファイルマネージャの設定」 ダイアログで行います。設定ダイアログは、メインメニューから 「編集」「設定...」 を選択するか、Xfce 設定マネージャの 「ファイルマネージャ」 ボタンをクリックすると表示されます。

「ファイルマネージャの設定」 ダイアログは各オプションが以下の 4 つのカテゴリごとのページに分割されています。

  • 表示に関するデフォルト設定

  • サイドペインに関するデフォルト設定

  • ファイルマネージャウィンドウの振る舞い

  • ファイルマネージャの詳細機能

Thunar には、ファイルマネージャのさまざまな拡張機能を制御する、いわゆる 隠しオプション もありますが、設定ダイアログをシンプルにしておくために選択項目に含まれていません。Thunar に同梱される README.thunarrc ファイルには、すべての利用可能なオプションの詳細な説明があります。

表示方法の設定

デフォルトの表示、並び替えオプション、および表示オプションを設定できます。また、サムネイル表示がサポートされているファイルタイプについて、それを表示するかどうかの設定も行えます。

表示方法の設定
新規フォルダの表示方法

フォルダのデフォルトの表示方法を選択します。新しいウィンドウが開かれたとき、ここで設定された方法で表示されます。ここでは、アイコン表示、コンパクト表示、または詳細リスト表示の中から選べます。また、「最後に使用した表示方法」 を選択すると、最後にアクティブウィンドウで使用していた方法が採用されます。

フォルダをファイルより先に並べる

このオプションを有効にすると、フォルダの内容を表示する際にフォルダをファイルより先に並べます。

サムネイルを表示する

このオプションを有効にすると、画像やその他サポートされているファイルのサムネイルを表示します。サムネイルファイルはユーザのホームディレクトリに作成される隠しディレクトリ .thumbnails に格納されます。

Thunar が提供する基本サムネイル機能を拡張し、サポートするファイルタイプを追加したい場合は 「サムネイラ」 を参照してください。

文字をアイコンの隣に置く

このオプションを有効にすると、アイコン表示時にアイテムのアイコンのキャプションがアイコンの下ではなく、隣に表示されます。

サイドペインの設定

ショートカットペインおよびツリーペインの表示オプションを設定できます。

サイドペインの設定

サイドペインにはファイルシステム上のフォルダへのショートカットのリストの表示 (デフォルト) か、またはファイルシステムをツリー表示できます。このページではショートカットおよびツリーペインのアイコンのサイズを選択できます。また、アイコンにシンボルを表示するかどうかも選択できます。

アイコンのサイズ

サイドペインに表示するアイコンのサイズを、「とても小さい」 (1616ピクセル) から 「とても大きい」 (128128ピクセル) の間で選択します。

アイコンのシンボルを表示する

このオプションを有効にすると、サイドペインのフォルダにシンボルを表示します。フォルダのシンボルはフォルダの 「プロパティ」 ダイアログで設定できます。メインエリアでフォルダを選択し、メインメニューから 「ファイル」「プロパティ...」 を選択するか、またはフォルダの上で右クリックし、コンテキストメニューから 「プロパティ...」 を選択してください。

振る舞いの設定

ファイルマネージャの振る舞いを設定できます。

振る舞いの設定
シングルクリックでアイテムをアクティブにする

このオプションを有効にすると、アイテムをクリックしただけでデフォルトのアクションが実行されます。このオプションを有効にし、アイテムの上にマウスポインタを移動させると、アイテムのタイトルに下線が表示され、少し遅れて自動的に選択状態になります。

この選択状態になるまでの時間はその下のオプションで設定でき、セレクタを一番左に位置するとアイテムの自動選択は行われません。

ダブルクリックでアイテムをアクティブにする

このオプションを有効にすると、アイテムをダブルクリックしたときにデフォルトのアクションが実行され、シングルクリックで選択状態になります。

詳細の設定

ファイルマネージャの詳細な機能の設定を行えます。

詳細の設定
フォルダのアクセス権

フォルダの 「プロパティ」 ダイアログでアクセス権を変更したときの動作を選択します。フォルダのアクセス権が変更されたときに Thunar が毎回問い合わせるか、デフォルトで新しいアクセス権をフォルダのみに適用するか、さらにフォルダ内のアイテムにまで再帰的に適用するかを選択します。

ボリューム管理

Thunar を HAL サポート付きでインストールし、かつ thunar-volman パッケージもインストールされている場合に統合ボリュームマネージャを有効にできます。この機能の詳細については、「リムーバブルドライブとメディアの管理」 を参照してください。

diff -Nru thunar-1.2.3/docs/manual/html/ja/support.html thunar-1.6.10/docs/manual/html/ja/support.html --- thunar-1.2.3/docs/manual/html/ja/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -サポート

サポート

このアプリケーションあるいは説明書に関するバグを報告したり何か提案をする場合は、http://bugzilla.xfce.org/ にあるバグ追跡システムを御利用ください。意味のあるバグ報告こそがバグを修正するのだという事を忘れないでください。ではどういったものが該当するかというと、2 つの特質があります:

  • 再現可能であること。開発者自身がバグの存在を確認することができない場合は、それを修正するのはほぼ不可能になります。どんな細かいことでも役立ちますので、詳細を余さず伝えてください。

  • 具体的であること。開発者が問題箇所の特定をより早く絞れる程、その修正措置を取りやすくなります。

新機能の追加を要望する場合、なぜそれがアプリケーションにとって有意義だと考えるのか明らかにして下さるようお願いします。その機能について納得のいく議論を行えるのでしたら、追加される可能性は高くなります。要求する機能を実装したパッチを提供して下さるなら更に高くなりますが、事前にファイル HACKING を忘れずに読んでください。特に Coding Style と題されている箇所に目を通すようにしてください。

それ以外、利用方法やこのソフトウェアのインストールに関する質問がある場合は、thunar-dev メーリングリスト で質問するか、IRC クライアントで irc.freenode.net のチャンネル #thunar に参加して手助けを求めてみてください。

diff -Nru thunar-1.2.3/docs/manual/html/ja/the-file-manager-window.html thunar-1.6.10/docs/manual/html/ja/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/ja/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ファイルマネージャウィンドウ

ファイルマネージャウィンドウ

デフォルトでは、ファイルマネージャウィンドウには左にショートカットペイン、右にメインエリア、そしてメインエリアの上にパスボタンが表示されています。

ファイルマネージャウィンドウ

ショートカットペイン にはシステム上のいろいろなフォルダへのショートカットが表示されます。先頭にあるのはあなたの ホームフォルダ へのショートカットで、このフォルダにはあなたの個人データのすべてが格納され、ユーザの名前になっています。2 番目ははゴミ箱へのショートカットで、削除されたファイルが格納されており、あとで復元することができます。3 番目は デスクトップフォルダ へのショートカットで、デスクトップに表示されるファイルやフォルダが格納されています。4 番目はファイルシステムのルートへのショートカットです − あなたが Linux/Unix にまだ慣れていないならあなたを少々混乱させるかもしれませんが、それでもこの中を少し探検してみたくなるかもしれません。ちょっとだけいろいろなフォルダをクリックして中に何が入っているのか見てみてください。

ファイルシステム ショートカットの下にはリムーバブルドライブやメディアがあればそれが表示されます。上のスクリーンショットでは CD-ROM のショートカットが表示されています。リムーバブルドライブおよびメディアに格納されているデータへアクセスする場合はこれらのショートカットをクリックしてください。より詳しい情報については 「リムーバブルメディアの使用」 を参照してください。

その他のショートカットはユーザ定義されたものです。ショートカットの追加はフォルダを ショートカットペイン へドラッグするだけで行えます。これであなたが大事なフォルダへ即座にアクセスできるようになります。すでに追加されているショートカットを削除する場合は、そのショートカット上で右クリックし、「ショートカットの削除」 を選択してください。すでに追加されているショートカットの名前の変更は、ショートカット上で右クリックし、「ショートカット名の変更」 を選択してください。これらの操作はショートカットにのみ適用され、ショートカットが参照している実際のフォルダには影響しないことを覚えておいてください。

メインエリア には常にカレントフォルダの内容が表示されます。フォルダをダブルクリックするとその中へ移動し、ファイルやフォルダ上で右クリックするとそのアイテムに対して行える操作のコンテキストメニューが表示されます。複数のファイルを選択する場合はマウスでそれらをドラッグしてください。また、一つのファイルを選択し、Shift キーを押しながら矢印キーを押すと選択範囲を調整できます。

パスボタン には常に現在表示されているフォルダへのパスが表示されます。パスボタンをクリックすることでそのフォルダへ移動できます。パスボタン上で右クリックするといくつかのオプションとコンテキストメニューが表示されます。

外観のカスタマイズ

ファイルマネージャの外観をカスタマイズする方法はたくさんあります。アイコン表示がお気に召さない場合には、メインメニューから 「表示」「詳細リスト表示」 を選択するとカレントフォルダの内容がリスト表示されます。

ファイルマネージャウィンドウに表示されるパスボタンの代わりにロケーションバーを表示する場合は、メインメニューから 「表示」「位置セレクタ」「ツールバー方式」 を選択してください。

左のペインはツリー表示がお好みなら、メインメニューから 「表示」「サイドペイン」「ツリー」 を選択してください。

詳細リスト表示での表示カラム

あなたがフォルダの内容をリスト表示するのがお好みで、「詳細リスト表示」 を使用している場合、リストに表示されるカラムをカスタマイズすることができます。表示するカラムのカスタマイズは、メインメニューから 「表示」「カラムの設定...」 を選択してください。

表示カラム
表示カラム

表示可能なカラムのリストから表示したいカラムを選択してください。「上に移動」「下に移動」 をクリックするとカラムの表示順を変更できます。「デフォルトに戻す」 をクリックすると変更は取り消されます。

カラムのサイズ変更

「必要に応じてカラムを自動的に拡げる」 オプションを選択すると、カラムの幅は文字全体が表示されるように自動的に拡げられます。

diff -Nru thunar-1.2.3/docs/manual/html/ja/using-removable-media.html thunar-1.6.10/docs/manual/html/ja/using-removable-media.html --- thunar-1.2.3/docs/manual/html/ja/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -リムーバブルメディアの使用

リムーバブルメディアの使用

リムーバブルメディアへのアクセス

Thunar は、HAL サポート付きでビルドしたか、FreeBSD で使用していればリムーバブルメディアをサポートしています。

メディアのマウント

メディアの マウント とは、メディアのファイルシステムを作成し、アクセスできるようにすることです。メディアをマウントしたとき、メディアのファイルシステムがファイルシステムのサブディレクトリにアタッチされます。

メディアにアクセスする場合は、適切なデバイスにメディアを挿入するか、またはコンピュータに新しいデバイスを接続します (例: USB スティックを USB ポートに接続する)。すると、メディアを表すオブジェクトがファイルマネージャのサイドペインに追加されます。xfdesktop が動作しており、ファイル/ランチャアイコン を表示する設定にしてあれば、このオブジェクトはデスクトップにも表示されます。

実際にメディアをマウントする場合は、メディアのオブジェクトをクリックします。例えば、フロッピーディスクをマウントする場合、サイドペインの フロッピードライブ オブジェクトをクリックします。ファイルマネージャはファイルシステムヒエラルキーにメディアのファイルシステムを追加し、メインエリアにフロッピーディスクの内容が表示されます。

メディアの取り出し

メディアのドライブが自動排出可能なデバイス (例: CD-ROM ドライブ) ならば、サイドペインまたはデスクトップに表示されているメディアのオブジェクトの上で右クリックし、「取り出し」 を選択します。数秒後にドライブからメディアが排出されます。メディアのドライブが自動排出しない場合 (例: フロッピードライブや USB スティック) はメディアのオブジェクトの上で右クリックし、「マウント解除」 を選択します。間もなく安全にメディアを取り出せる、またはドライブをコンピュータから取り外してよい旨の通知が表示されます。

マウント解除通知

ただし、この通知は libnotify サポートが有効になっている、かつ通知デーモンがインストールされている場合のみ表示されます。Xfce 用通知デーモンは Xfce Goodies Project から入手できます。通知サポートが無効になっている場合は、コンテキストメニューの表示が消えてからメディアを取り出すかドライブを取り外してください。

一つ以上のアプリケーションがメディアを使用している間はメディアの取り出しやマウント解除は行えないことに注意してください。ファイルマネージャがメディアの取り出しを拒んだ場合は、メディアにアクセスしているアプリケーションが動作していないか、Terminal ウィンドウで動作しているものも含めて確認してください。

必ずメディアを取り出す前にマウント解除を行うようにしてください。フロッピーディスクをマウント解除する前にフロッピードライブから取り出さないでください。USB スティックをマウント解除する前にフラッシュドライブから取り外さないでください。先にマウント解除しておかないと、データを失ったり、システムクラッシュを引き起こしたりするかもしれません。

リムーバブルドライブとメディアの管理

Thunar は thunar-volman パッケージがインストールされていればリムーバブルドライブとメディアの取扱いも自動で行えます。

HAL サポートが有効で、かつ thunar-volman がインストールされていれば、Thunar の ボリューム管理 機能を有効にできます。ファイルマネージャの設定を開き、「詳細」 ページの 「ボリューム管理を有効にする」 ボタンにチェックマークをつけてください。

次にリムーバブルドライブとメディアの取扱いを必要に応じてカスタマイズします。「ボリューム管理」 セクションのボタンの右下にある 「設定」 リンクをクリックしてください。「リムーバブルドライブとメディア」 設定ダイアログが表示されます。

リムーバブルドライブとメディア

あなたが以前に gnome-volume-manager を使用したことがあれば、すぐになじめるはずです。なぜならこの見た目と振る舞いは gnome-volume-manager に似せて設計されているからです。設定は、デバイスに対する目的のオプションの場所がわかりやすいようにデバイスのカテゴリごとに分けられています。

「ストレージ」 ページには重要なオプションのほとんどが含まれています。この名前はここのオプションが、外付けハードディスクドライブ、USB スティック、あるいは CD-ROM のようなストレージデバイスにのみ適用されるものであることを意味しています。

リムーバブルドライブがホットプラグされたらマウントする

このオプションを有効にすると、リムーバブルドライブ (外付けハードディスクドライブや USB スティックなど) がコンピュータに接続されたら自動的にファイルシステムをマウントします。

このオプションは、一部の機能をリムーバブルドライブに対して動作させる際に有効にする必要があります。例えば、このオプションを有効にしていないと、ある種の携帯音楽プレイヤーは検出されず、「マルチメディア」 ページの 「接続されたら音楽ファイルを再生する」 オプションを有効にしていても、携帯音楽プレイヤーがホットプラグされた際に指定されたコマンドは実行されません。

リムーバブルメディアが挿入されたらマウントする

このオプションを有効にすると、リムーバブルメディア (CD-ROM や DVD など) がドライブに挿入されると自動的にファイルシステムをマウントします。

このオプションは、一部の機能をリムーバブルメディアに対して動作させる際に有効にする必要があります。例えば、このオプションを有効にしていないと、リムーバブルメディアが自動実行可能かどうか検出されず、「新しいドライブおよびメディア上のプログラムを自動実行する」 オプションはリムーバブルメディアに対して作用しません。

リムーバブルメディアが挿入されたら参照する

このオプションを有効にすると、新しく挿入されたメディアの内容が自動的にファイルマネージャに表示されます。ただし、他に実行できるアクションが存在しないか、あるいは他の実行できるアクションが無効にされている場合のみ内容が表示されることを覚えておいてください。

新しいドライブおよびメディア上のプログラムを自動実行する

このオプションを有効にすると、一部のドライブやメディアの自動実行機能が使用されるようになります。自動実行メカニズムの詳細については Desktop Application Autostart Specification を参照してください。セキュリティ強化のため、常に自動実行するかどうかの確認が行われます。

Windows 互換レイヤ Wine がインストールされている場合、自動実行メカニズムは Wine を使用して autorun.exe ファイルも実行しようとします。

新しいドライブおよびメディア上のファイルを自動的に開く

このオプションを有効にすると、一部のリムーバブルドライブやメディアの自動オープン機能が使用されるようになります。自動オープンメカニズムについての詳細は Desktop Application Autostart Specification を参照してください。セキュリティ強化のため、常に自動的に開くかどうかの確認が行われます。

残りのオプションはある種のメディアがドライブに挿入されたとき、またはある種の外付けデバイスが接続されたときに指定したコマンドを実行できるようにします。コマンドは 3 種類の特殊変数が使用でき、コマンド実行時にそれぞれ以下のように置き換えられます:

%d

コマンドに %d が指定されていると、それぞれが新しく追加されたデバイスのデバイスファイルパスに置き換えられます。例えば、USB スティックが接続された場合、デバイスファイルパスは /dev/da0s1/dev/sda1 (ハードウェア構成により変わります) のようになります。

デバイスに割り当てるデバイスファイルがなかったり、何らかの理由でデバイスファイルが見つけられなかった場合は、変数 %d は空の文字列に置き換えられます。

%h

コマンドに %h が指定されていると、それぞれ新しく追加されたデバイスの HAL UDI に置き換えられます。

%m

コマンドに %m が指定されていると、それぞれ新しく追加されたデバイスがマウントされたマウントポイントに置き換えられます。マウントできないデバイス (プリンタやキーボードなど) や自動マウントが無効になっている場合は %m は空の文字列に置き換えられます。

ボリュームマネージャのトラブルシューティング

ボリュームマネージャが期待通りに動作しない時のトラブル解決に役立つ Tips です。

  1. Thunar がデーモンモードで動作しているか確認してください。ボリュームマネージャは Thunar デーモンで動作していないと使用できません。デフォルトでは Xfce は起動時に Thunar を自動的にデーモンとして起動します。なんらかの理由でこれを kill していた場合は、プログラムの実行を開き (キーボードショートカットの Alt+F2 を使用するか、デスクトップ上で右クリックしデスクトップメニューから 「プログラムの実行...」 を選択します)、 Thunar --daemon と入力して 「実行」 をクリックします。

  2. デバイスをホットプラグまたはメディアを挿入したあとに thunar-volmanTerminal ウィンドウから実行してみてください。その場合まず lshalhal-device を使用して新しく追加したデバイスの HAL UDI を見つけ出さなければなりません。UDI が分かったら、Terminal ウィンドウで thunar-volman --device-added <udi-of-your-device> を実行し、出力されるエラーや警告メッセージを見てください。

それでもうまく動作しない場合は、Xfce Forumthunar-dev mailing list で尋ねてみてください。

diff -Nru thunar-1.2.3/docs/manual/html/ja/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/ja/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/ja/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ja/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ファイルやフォルダの操作

ファイルやフォルダの操作

ファイルを開く

ファイルを開くとき、ファイルマネージャはファイルタイプに応じたデフォルトのアクションを実行します。例えば、テキストファイルを開くとデフォルトのテキストエディタが起動され、画像ファイルを開くとデフォルトの画像ビューアが起動されます。

ファイルマネージャはファイルの拡張子をチェックしてファイルタイプを決定します。ファイルの拡張子が不明な場合、ファイルマネージャはファイルの内容を調べます。

デフォルトアクションの実行

ファイルのデフォルトアクションはファイルのダブルクリックで実行されます。例えば、オーディオファイルのデフォルトアクションはデフォルトの音楽再生アプリケーションで開くことです。この場合、ファイルをダブルクリックすると音楽プレイヤーでファイルを再生します。

Thunar の設定でファイルのシングルクリックでデフォルトアクションを実行させることができます。詳しくは 「振る舞いの設定」 を参照してください。

デフォルト以外のアクションの実行

ファイルを選択してそのファイルに対するデフォルト以外のアクションを実行したい場合、「ファイル」 メニューまたはコンテキストメニューから選択することができます。

アクションの追加

ファイルタイプに関連付けるアクションを追加する場合、以下の手順で行います:

  1. メインエリアでアクションを追加したいタイプのファイルを選択します。

  2. メインメニューから 「ファイル」「他のアプリケーションで開く...」 を選択します。

  3. 「アプリケーションで開く」 ダイアログからアプリケーションを選ぶか、または「指定コマンドを使用する」 を選択してこのタイプで開くプログラムを設定します。

これで選択したアクションが指定されたファイルタイプ用アクションのリストに追加されました。「この種類のファイルのデフォルトアプリケーションにする」 を有効にするか、このタイプにまだ関連付けられているアクションが設定されていない場合は、新しく追加されたアクションがデフォルトになります。

アクションの追加は 「ファイル」「プロパティ...」 で表示されるプロパティダイアログの 「これで開く」 ボタンでも行えます。

アクションの修正

ファイルまたはファイルタイプに関連付けられたアクションを修正する場合は、以下の手順で行います:

  1. メインエリアでアクションを修正したいタイプのファイルを選択します。

  2. メインメニューから 「ファイル」「プロパティ...」 を選択します。

  3. デフォルトのアクションを修正する場合は 「これで開く」 ボタンを使用するか、またはメインメニューから 「ファイル」「他のアプリケーションで開く...」 を選択し、新しいアクションを追加します。

すでに設定されているアクションを削除する場合は上で説明した 「アプリケーションで開く」 ダイアログを表示させ、削除したいアクションの上で右クリックし、「ランチャを削除」 を選択します。

ファイルのプロパティ

ファイルのプロパティウィンドウでは、ファイルマネージャにおけるファイルまたはフォルダについての詳細情報が表示されます。このウィンドウでは以下のことも行えます:

  • アプリケーションランチャや URL リンクのような特殊ファイルのアイコンの変更

  • ファイルまたはフォルダへのシンボルの追加または除去

  • ファイルやフォルダの UNIX ファイルアクセス権の変更

  • 同じタイプのファイルを開くときに使用するアプリケーションの選択

ファイルのプロパティ

ファイルのプロパティウィンドウを開く場合、以下の手順で行います:

  1. プロパティを調べたい、または変更したいファイルやフォルダを選択します。複数のアイテムを同時に選択してすべてのアイテムで共通なプロパティを表示させることは現在できません。

  2. 以下のいずれかを行います:

    • メインメニューから 「ファイル」「プロパティ...」 を選択します。

    • 選択したアイテムの上で右クリックし、コンテキストメニューから 「プロパティ...」 を選択します。

    • Alt+Return を押します。

diff -Nru thunar-1.2.3/docs/manual/html/nl/advanced-topics.html thunar-1.6.10/docs/manual/html/nl/advanced-topics.html --- thunar-1.2.3/docs/manual/html/nl/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -Advanced Topics

Advanced Topics

To Bulk Rename Files

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

Bulk Rename Files

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • Remove characters.

  • Numbering files.

  • Insert Date or Time.

  • Insert or overwrite characters.

  • Search and replace characters.

  • Convert to uppercase, lowercase or camlcase.

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

The UNIX File System

- While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user - does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. - This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all - incarnations of UNIX, including Linux. -

Folders and Paths

- In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down - from a single top level folder, which is called the root directory (the term - directory is often used instead of folder) and displayed as - File System in Thunar. This means that you can get from any folder to any other by going - up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach - your target. -

- The position of any file or folder in the tree can be described by its path. The path is the - list of folders you would have to descend through to get to the target folder or file, starting from the top level - folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, - and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The - leading / in these paths represents the top level folder. -

- Every user has their own folder to hold their personal files and settings. This folder is called the home - directory and is displayed in Thunar as special icon with the users login name. The folder is similar to - the My Files folder known from Windows. The home directories of the various - users in a system are usually located below the /home folder. For example - /home/luke would be the home directory of the user with the login name - luke, while /home/jane would be - the home directory for the user with the login name jane. -

File Types

- You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems - today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is - one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other - operating systems had to introduce new concepts for every new technology. -

- These are the four most important types of files in the UNIX file system. -

Ordinary Files

- An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents - and video files. The term file is often used to refer to an ordinary file. -

Folder Files

- Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a - mapping of file names to file references for every file contained within this folder. -

Symbolic Link Files

- A Symbolic link (often called a symlink) is a special file that contains a path to - another file in the file system. Symbolic link files therefore do not contain any useful information - themselves, but just refer to other files. -

Device Files

- As mentioned earlier (most) devices are also accessed through the file system. These special device files are - usually located in the /dev folder. For example the special file - /dev/hda represents the first IDE disk on Linux. -

diff -Nru thunar-1.2.3/docs/manual/html/nl/copyright.html thunar-1.6.10/docs/manual/html/nl/copyright.html --- thunar-1.2.3/docs/manual/html/nl/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -About Thunar

About Thunar

- Thunar was written by Benedikt Meurer (). Visit the - Thunar website for more information. -

- This documentation was written by Benedikt Meurer (). The latest - version of this document is always available from the Thunar website. -

- This software is distributed 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. -

- 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. -

diff -Nru thunar-1.2.3/docs/manual/html/nl/customizing-thunar.html thunar-1.6.10/docs/manual/html/nl/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/nl/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -Customizing Thunar

Customizing Thunar

- This chapter describes how to customize certain parts of the file manager to your own needs. -

The "Send To" Menu

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

"Send To" Menu

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

The desired size of the generated thumbnail in pixels. This parameter is optional.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

- Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

- This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). -

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

- to terminate any running instance, and afterwards restart it from your launcher. -

Cleaning up Thumbnails

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

- which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. -

diff -Nru thunar-1.2.3/docs/manual/html/nl/faq.html thunar-1.6.10/docs/manual/html/nl/faq.html --- thunar-1.2.3/docs/manual/html/nl/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -Frequently Asked Questions

Frequently Asked Questions

- The intent of this section is to collect the quite numerous frequently asked - questions that relate to working with Thunar. If you know of a question that - is missing from this page, please file - a request. -

Why doesn't Thunar execute files marked as executable?

- For security reasons Thunar only executes files of type application/x-desktop, - application/x-executable and application/x-shellscript. For - desktop files the execution feature will only be enabled if the desktop file is of type - Application and a valid Exec line is given or of type - Link and a valid URL is given. For the other types the feature - is available if the file is marked executable for the current user. -

- Also note that for application/x-executable and application/x-shellscript, - the types of the file don't really need to match these types exactly, but it is suffice if the detected - type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for - one of the above. -

Where does Thunar store the metadata associated with files?

- Thunar associates various settings with files/folders, which we call metadata. - This metadata for all files is stored in tdb database file, which is called - the metafile. The database file is stored in - $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined - using the tdbtool, which is part of the Thunar distribution - (located in the tdb/ subdirectory). -

Where does Thunar store its preferences?

- Thunar stores the user configurable preferences (and hidden settings) in - an .ini file, which is located at - $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined - using a text editor. See docs/README.thunarrc for an - overview of the various preferences. -

How to use mouse gestures in Thunar?

- Thunar currently features basic support for so called mouse gestures - in its icon view. You can use these mouse gestures by holding down - the middle mouse button (usually the mouse wheel) while the mouse pointer is on the - background area of the icon view component (any area that is not covered by - an icon or a text). Now you can move the cursor into four directions to - perform certain actions, which are described below. -

Left - opens the previous visited folder
Up - opens the parent folder
Right - opens the next visited folder
Down - reloads the current folder

How do I assign different keyboard shortcuts?

- If you want to rebind a shortcut, Thunar supports the standard GTK+ way - of changing shortcuts: simply hover over the menu option with the mouse - pointer and press the keyboard shortcut you want to rebind it to. -

- To delete a keyboard assignment, press the Backspace key - while you are on the menu entry. -

- If the shortcut doesn't change, then you need to enable the feature in - GTK+. This can be achieved in 3 ways: -

  • - If you are running Xfce 4.3 or above then you can enable Editable - menu accelerators in the User Interface Preferences - dialog. -

  • - If you are running GNOME then you can enable Editable menu - accelerators in the Menu and Toolbars control - center dialog. -

  • - Otherwise put the following in your ~/.gtkrc-2.0 file - (create the file if it doesn't exist):

    gtk-can-change-accels=1

    -

Where does Thunar store the keyboard shortcuts?

- The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a - file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting - with ; are comments. See the GTK+ documentation for details about the - file format. -

- If you are a packager or a system administrator and want to provide a system wide default - for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you - can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. - For example, if /etc/xdg is part of $XDG_CONFIG_DIRS - (the default for most Linux distributions), you can install system wide defaults to - /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup. -

diff -Nru thunar-1.2.3/docs/manual/html/nl/index.html thunar-1.6.10/docs/manual/html/nl/index.html --- thunar-1.2.3/docs/manual/html/nl/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Thunar File Manager

Thunar File Manager

Benedikt Meurer

Software developer
os-cillation
System development


- This manual describes version 1.2.0git-cc468f4 of Thunar. -

- Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 or - any later version published by the Free Software Foundation; with no - Invariant Sections, with no Front-Cover Texts, and with no Back-Cover - Texts. The complete license text is available from the Free Software Foundation. -

November 2007


Introduction to Thunar

- Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to - be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless - options by default. Thunar is fast and responsive with a good start up time and folder load time. -

- The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the - file manager to do the following: -

  • Create folders and documents.

  • Display your files and folders.

  • Manage your files and folders.

  • Run and manage custom actions.

  • Access Removable Media.

diff -Nru thunar-1.2.3/docs/manual/html/nl/preferences.html thunar-1.6.10/docs/manual/html/nl/preferences.html --- thunar-1.2.3/docs/manual/html/nl/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -File Management Preferences

File Management Preferences

- Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. -

- The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: -

  • The default settings for the views.

  • The default settings for the side pane.

  • The behavior of the file manager windows.

  • Advanced features of the file manager.

- Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. -

Views Preferences

- You can specify a default view, select sort options and display options. You can - also specify whether thumbnails should be displayed for file types that support - this. -

Views Preferences
View new folder using

- Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. -

Sort folders before files

- Select this option to list folders before files when you sort a folder. -

Show thumbnails

- Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. -

- See de paragraaf “Thumbnailers” if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. -

Text beside icons

- Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. -

Side Pane Preferences

- You can select display options for the shortcuts pane and the tree pane. -

Side Pane Preferences

- The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. -

Icon Size

- The size of the icons displayed in the side, ranging from Very Small (around - 16x16 pixels) to Very Large (around 128x128 pixels). -

Show Icon Emblems

- Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. -

Behavior Preferences

- You can select the preferred behavior to interact with the file manager. -

Behavior Preferences
Single click to active items

- Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. -

- This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. -

Double click to activate items

- Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. -

Advanced Preferences

- You can control advanced features of the file manager. -

Advanced Preferences
Folder Permissions

- Choose the action that should be performed when you change the permissions of a folder in - the Properties dialog. You can choose to let Thunar - ask everytime when you change folder permissions, tell it to default to applying the new permissions - to the folder only or to apply them recursively to the folder contents as well. -

Volume Management

- If Thunar was installed with support for HAL and the thunar-volman - package is also installed, you can enable the integrated volume manager. See de paragraaf “Management of Removable Drives and Media” - for details about this feature. -

diff -Nru thunar-1.2.3/docs/manual/html/nl/support.html thunar-1.6.10/docs/manual/html/nl/support.html --- thunar-1.2.3/docs/manual/html/nl/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -Support

Support

- To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. - Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities: -

  • - Reproducible. If the developer cannot see the bug himself - to prove that it exists, he will most probably not be able to fix it at all. Every detail you - can provide helps. -

  • - Specific. The quicker the developer can isolate the problem - to a specific area, the more likely he will expediently fix it. -

- In case you want to request a new feature, please make clear why you consider it a worth - addition for the application. It is more likely that a new feature gets added if you provide - good arguments for the feature. It will increase the chance of addition even more if you - provide a patch that implements the requested feature, but make sure that you read the file - HACKING - - especially the section labeled Coding Style - before you start hacking - up the source. -

- Else, if you have questions about the use or installation of this software, please ask on the - thunar-dev mailing - list or point your IRC client to irc.freenode.net, - join the channel #thunar and ask for help. -

diff -Nru thunar-1.2.3/docs/manual/html/nl/the-file-manager-window.html thunar-1.6.10/docs/manual/html/nl/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/nl/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -The File Manager Window

The File Manager Window

- By default the file manager window consists of a shortcut pane on the left side, the main area on the right - and a pathbar above the main area. -

File Manager Window

- The Shortcut Pane provides shortcuts to different folders on your system. The first - shortcut will lead to your Home Folder, the folder you store all your personal data, - and will therefore have the name of the current user. The second shortcut will take you to the trash bin, - which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop - Folder, which contains the files and folders that are displayed on the desktop. The fourth - shortcut will take you to the root of your file system - you may want to explore it a bit, even though - it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is - inside. -

- Below the File System shortcut, the removable drives and media will be displayed. In - the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts - to access the data stored on the removable drives and media. See de paragraaf “Using Removable Media” - for further details. -

- The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the - Shortcuts Pane. This will allow you to access important folders instantly. To - remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. - To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. - Note that these actions affect only the shortcut, not the folder referenced by the shortcuts. -

- The main area will always display the contents of the current folder. Double click on - folders to enter them, and right-click on files or folders to get a context-menu offering some choices of - what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, - select one file, hold down the Shift key, and increase or decrease the selection using - the arrow keys. -

- The pathbar will always show the path you took to get to the folder you are currently - at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar - button to bring up a context-menu with some options. -

Customizing the Appearance

- There are many ways to customize the appearance of the file manager windows. In case you do not like the - way the icons are displayed, choose ViewView as Detailed List - from the main menu to have the contents of the current folder displayed as a list. -

- You can have the file manager windows display a location bar instead of the pathbar by choosing - ViewLocation SelectorToolbar Style - from the main menu. -

- In case you prefer a treeview in the left pane, choose - ViewSide PaneTree - from the main menu. -

Visible Columns in the Detailed List View

- If you prefer to display the contents of the folder as a list, using the Detailed List View, you can - customize the columns displayed in the list view. To customize the visible columns, choose - ViewConfigure Columns... from the main menu. -

Visible Columns
Visible Columns

- Select the columns you want to be displayed from the list of available columns. Click Move Up - or Move Down to change the order of the columns. Click Use Default to - revert your changes. -

Column Sizing

- Select the option Automatically expand columns as needed if you want the list view columns - to expand automatically if the needed to ensure the text is fully visible. -

diff -Nru thunar-1.2.3/docs/manual/html/nl/using-removable-media.html thunar-1.6.10/docs/manual/html/nl/using-removable-media.html --- thunar-1.2.3/docs/manual/html/nl/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,133 +0,0 @@ -Using Removable Media

Using Removable Media

Accessing Removable Media

- Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. -

To Mount Media

- To mount media is to make the file system of the media available for access. When you mount media, the - file system of the media is attached as a subdirectory to your file system. -

- To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB - stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If - xfdesktop is running and configured to display File/launcher icons this - object will also be added to your desktop. -

- To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, - click on the Floppy Drive object in the side pane. The file manager will now add the file system - of the media to your file system hierarchy and display the contents of the floppy diskette in the main area. -

To Eject Media

- If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane - or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. - If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and - choose Unmount Volume. After a short period of time, a notification will appear to inform you - that it is now safe to remove the media or disconnect the drive from the computer. -

Unmount notification

- However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. -

- Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file - manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also - check command line applications running in Terminal windows. -

- Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount - the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you - might lose data or cause your system to crash. -

Management of Removable Drives and Media

- Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on - your system. Note however that this feature requires HAL support. -

- Now, if HAL support is available and thunar-volman is installed on your system, you - can choose to enable the Volume Management feature of Thunar. Therefore, open the file - manager preferences, go to the Advanced page and check the Enable Volume - Management button. -

- The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. -

Removable Drives and Media

- If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. -

- The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. -

Mount removable drives when hot-plugged

- Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. -

- This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. -

Mount removable media when inserted

- Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) - when you insert the media into the drive. -

- This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. -

Browse removable media when inserted

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

Auto-run programs on new drives and media

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

Auto-open files on new drives and media

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

- The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: -

%d

- Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. -

- If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. -

%h

- Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. -

%m

- Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. -

Troubleshooting the Volume Manager

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/nl/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/nl/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/nl/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/nl/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -Working with Files and Folders

Working with Files and Folders

Opening Files

- When you open a file, the file manager performs the default action for that file type. For example, opening a text file - will display it in the default text editor, while opening an image file will display the image in the default image - viewer. -

- The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the - file manager examines the contents of the file. -

Executing the Default Action

- To execute the default for a file, double-click on the file. For example, the default action for audio files is to - play the it with the default music playing application. In this case, you can double-click on the file to open the - file in the music player. -

- You can set Thunar preferences so that you click once on a file to execute the default - action. For information, see de paragraaf “Behavior Preferences”. -

Executing Non-Default Actions

- To execute actions other than the default action for a file, select the file that you want to perform an action on. - Choose the desired action from the Open With choices available in File menu - or an Open With submenu. -

Adding Actions

- To add actions associated with a file type, perform the following steps: -

  1. - In the main area, select a file of the type to which you want to add an action. -

  2. - Choose FileOpen With Other Application... - from the main menu. -

  3. - Either choose an application in the Open With dialog or select Use a custom command - and browse to the program with which you wish to open this type. -

- The action you have chosen is now added to the list of actions for that particular file type. If you enabled the - Use as default for this kind of file option or there was no prior action associated with the - type, the newly added action is the default. -

- You may also add actions using the Open With button under - FileProperties.... -

Modifying Actions

- To modify the actions associated with a file or file type, perform the following steps: -

  1. - In the main area, select a file of the type for which you want to modify the action. -

  2. - Choose FileProperties... from the main menu. -

  3. - Select the new default action using the Open With button or add a new action by choosing - Open With Other Application... from the drop down menu. -

- To remove a previously added action for a file type, bring up the Open With dialog as described - above, right-click the action you want to remove and choose Remove Launcher. -

File Properties

- The file properties window shows more information about any file or folder in the file manager. With this window, you can also - do the following: -

  • - Change the icon for special files, such as application launchers and URL links. -

  • - Add or remove emblems for a file or folder. -

  • - Change the UNIX file permissions for a file or folder. -

  • - Choose which application is used to open a file and other files of the same type. -

File Properties

- To open the file properties window, perform the following steps: -

  1. - Select the file or folder whose properties you want to examine or change. You cannot - select multiple items at once and display the properties that are in common to all - items currently. -

  2. - Do one of the following: -

    • Choose FileProperties... from the main menu.

    • Right-click the selected item and choose Properties... from the context menu.

    • Press Alt+Return.

    -

diff -Nru thunar-1.2.3/docs/manual/html/pl/advanced-topics.html thunar-1.6.10/docs/manual/html/pl/advanced-topics.html --- thunar-1.2.3/docs/manual/html/pl/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Zaawansowane zagadnienia

Zaawansowane zagadnienia

Zmiana nazw wielu plikw

Mowa tu o zmianie nazw wielu plikw według określonych kryteriw, do ktrych pasuje co najmniej jeden z przetwarzanych plikw. Thunar zawiera stosowne narzędzie, ktre może być uruchamiane oddzielnie poleceniem Thunar -B lub z wewnątrz Thunara przez zaznaczenie wielu plikw i wcisnięcie klawisza F2 lub z menu EdycjaZmień nazwę....

Zmiana nazwy wielu plikw

Zmiana nazwy może dotyczyć nazw plikw, ich przyrostkw (rozszerzeń), lub obu. Obecnie Thunar wspiera poniższe metody zmiany nazwy:

  • usuwanie znakw,

  • numerowanie plikw,

  • Insert Date or Time.

  • wstawianie lub usuwanie znakw,

  • znajdowanie i zamienianie znakw,

  • zmiana sposobu stosowania wielkich i małych liter.

Dodatkowe sposoby zmiany nazw plikw mogą być dołączane w formie wtyczek dla Thunara. Na stronie Wtyczek Thunara znajdziesz wszystkie dostępne rozszerzenia. Wiki Projektu Thunar zawiera więcej szczegłw na ten temat. Ty także możesz dodać do Wiki pewne informacje, jeśli tylko chcesz.

System plikw Uniksa

Mimo, że Thunar skutecznie tworzy warstwę abstrakcji nad szczegłami dotyczącymi systemu plikw tak, że użytkownik nie musi się o to martwić, czasem przydatna bywa znajomość podstawowych założeń, aby mieć pełny obraz tego, co się dzieje na dysku. Ta sekcja ma na celu krtkie wprowadzenie do koncepcji systemu plikw Uniksa, ktry jest dziś używany przez wszystkie jego odmiany, włączając w to Linuksa.

Katalogi i ścieżki

W uniksowym systemie plikw wszystkie foldery są zaaranżowane w prostą strukturę odwrconego drzewa. Głwny korzeń znajduje się na grze, a podkatalogi stanowią jego gałęzie i liście zmierzające ku dołowi. Ten korzeń, będący nadrzędnym folderem zwany jest często katalogiem głwnym (termin folder jest często zamiennie używany ze słowem katalog) i jest dostępny w Thunarze jako System plikw. Oznacza to, że z dowolnego katalogu można przedostać się do każdego innego najpierw idąc w grę aż do osiągnięcia wsplnego punktu, a następnie schodząc odpowiednią ścieżką w dł aż do celu.

Pozycja każdego pliku lub folderu w drzewie może być opisana przez jego ścieżkę. Ścieżka jest listą folderw, przez ktre musisz przejść, aby dostać się do pożądanego katalogu lub pliku (zaczynając od katalogu głwnego). Przykładowo /home/luke jest podkatalogiem luke podkatalogu home katalogu głwnego, a /home/luke/myfile.txt jest plikiem myfile.txt w tym podkatalogu. Znak / na początku ścieżek oznacza katalog głwny.

Każdy użytkownik posiada swj własny folder do przechowywania osobistych plikw i ustawień. Ten folder nazywany jest katalogiem domowym i jest wyświetlany w Thunarze jako specjalna ikona z nazwą użytkownika. Ten folder jest podobny do folderu Moje dokumenty znanego z Windows. Katalogi domowe rżnych użytkownikw są zazwyczaj położone w katalogu /home. Przykładowo /home/luke byłby katalogiem domowym użytkownika o loginie luke, podczas gdy /home/jane byłby katalogiem domowym użytkownika o loginie jane.

Typy plikw

Być może słyszałeś już, że w Uniksie wszystko jest plikiem. Jest to prawda dla większości elementw spotykanych w dzisiejszych systemach uniksowych. W rzeczywistości nawet urządzenia są reprezentowane jako specjalne pliki. Być może na pierwzsy rzut oka nie ma to sensu, jednak jest to jedna z najpoważniejszych zalet Uniksa i jego pochodnych, ktra przyczyniła się do utrzymywania prostego rdzenia przez lata, podczas gdy inne systemy operacyjne musiały wprowadzać nowe koncepcje dla każdej nowej technologii.

Są cztery podstawowe i najważniejsze typy plikw w uniksowym systemie plikw.

Zwykłe pliki

Zwykły plik może zawierać tekst, program lub inne dane, włączając w to pliki obrazw, dźwięki, dokumenty biurowe i pliki wideo. Termin plik jest często używany w odniesieniu do zwykłego pliku.

Pliki folderw

W uniksowym systemie plikw foldery także są plikami. Aby być dokładnym, foldery są specjalnymi plikami, ktre zawierają odwzorowania nazw plikw na pliki, dla każdego pliku zawartego wewnątrz folderu.

Pliki dowiązań (łącz) symbolicznych

Dowiązanie symboliczne (często zwane symlinkiem) jest specjalnym plikiem zawierającym ścieżkę do innego pliku w systemie plikw. Dowiązania symboliczne nie zawierają żadnych użytecznych informacji same w sobie, ale odnoszą się do innych plikw.

Pliki urządzeń

Jak wspomniano wcześniej, większość urządzeń jest dostępnych przez system plikw. Te specjalne pliki urządzeń są zazwyczaj położone w katalogu /dev. Przykładowo, plik specjalny /dev/hda reprezentuje w Linuksie pierwszy dysk IDE.

diff -Nru thunar-1.2.3/docs/manual/html/pl/copyright.html thunar-1.6.10/docs/manual/html/pl/copyright.html --- thunar-1.2.3/docs/manual/html/pl/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -O Thunar

O Thunar

Thunar został napisany przez Benedikta Meurera (). Odwiedź witrynę Thunara aby dowiedzieć się więcej.

Niniejsza dokumentacja została napisana przez Benedikta Meurera (). Najnowsza wersja tego dokumentu jest zawsze dostępna na witrynie Thunara.

Niniejszy program jest rozprowadzany na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według wersji 2-giej tej Licencji lub ktrejś z pźniejszych wersji.

Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie - napisz do Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/pl/customizing-thunar.html thunar-1.6.10/docs/manual/html/pl/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/pl/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -Dostosowywanie Thunara

Dostosowywanie Thunara

Ten rozdział opisuje, jak dostosować pewne części menedżera plikw do twoich własnych potrzeb.

Menu "Wyślij do"

Thunar zawiera menu Wyślij do, zawierające pewne miejsca docelowe, do ktrych można wysyłać pliki i foldery. Aby uzyskać dostęp do menu Wyślij do, wybierz PlikWyślij do z głwnego menu lub kliknij prawym przyciskiem myszy na pliku lub folderze, po czym wybierz Wyślij do.

Menu "Wyślij do"

Domyślnie menu Wyślij do zawiera pozycję zwaną Pulpit (utwrz łącze) dostępną dla wszystkich plikw i folderw. Tworzy ona łącze na pulpicie do każdego zaznaczonego pliku. Poza tym, jeśli Panel skrtw jest aktywny, menu zawiera także pozycję Panel boczny (utwrz skrt), ktry umożliwia użytkownikom dodawanie nowych skrtw do panelu bocznego (opcja ta dotyczy tylko katalogw). Poniżej tych dwch pozycji, Thunar wyświetla listę napędw wymiennych aktualnie podłączonych do komputera. W zrzucie ekranu powyżej, Stacja dyskietek reprezentuje przykładowy punkt docelowy, dokąd mogą zostać wysłane pliki. Zauważ, że urządzenia są montowane automatycznie przy wybieraniu ich z menu Wyślij do, tak więc nie musisz montować ich ręcznie.

Poza tym Thunar oferuje wtyczkę thunar-sendto-email, ktra dodaje do menu pozycję Odbiorca poczty elektronicznej, otwierającą program pocztowy z zaznaczonymi plikami dołączonymi do nowo utworzonego e-maila. Jeśli zaznaczenie zawiera co najmniej jeden folder, zaznaczone elementy są dodawane do archiwum ZIP przed załączaniem ich do wiadomości. W przeciwnym wypadku, jeśli zaznaczenie zawiera wiele plikw (lub jeden większy niż 200Kib), użytkownik zostanie zapytany, czy pakować pliki do archiwum ZIP i wysłać jako archiwum.

Jak większość innych opcji Thunara, menu Wyślij do może być łatwo rozszerzane przez użytkownikw i programistw o nowe miejsca docelowe, używając standardowych plikw elementw pulpitu. Pliki te muszą zostać zainstalowane do jednego z folderw $XDG_DATA_DIRS/Thunar/sendto/ (zobacz XDG Base Directory Specification - szczegły na temat zmiennej $XDG_DATA_DIRS).

MimeType w pliku .desktop określa typy plikw, dla ktrych ta akcja powinna być dostępna w menu Wyślij do. Przykładowo: powiedzmy, że chcesz dodać pozycję dla narzędzia uploadu Flickr. W takim przypadku ten wpis powinien pojawić się tylko, jeśli zaznaczenie zawiera pliki JPEG (inne formaty nie są wspierane przez Flickr). Wobec tego powinieneś dodać linię MimeType=image/jpeg;. Jeśli nie określisz żadnego MimeType twj wpis będzie pojawiał się dla plikw wszystkich typw.

Kompletny przykład używania aplikacji postr pokazano poniżej:

-# postr.desktop - Zintegruj postr
-#                 w menu "Wyślij do".
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

Jeśli umieścisz ten plik w ~/.local/share/Thunar/sendto/ (jeśli ten katalog nie istnieje - utwrz go), menu Wyślij do będzie zawierać nowy wpis Flickr, ktry będzie mgł być używany do wgrywania obrazw JPEG do Flickr.

Wiki Projektu Thunar zawiera dodatkowe przykłady użytecznych celw dla menu Wyślij do. Ty także możesz uzupełniać strony Wiki o nowe przykłady.

Generatory miniatur

Thunar używa małych narzędzi do generowania miniatur plikw pewnych typw i wyświetla miniatury jako podgląd zawartości pliku. Thunar jest dostarczany z generatorami miniatur dla obrazw i plikw czcionek i automatycznie używa zainstalowanych generatorw GNOME, jeśli tylko został zainstalowany z obsługą gconf. Użytkownicy mogą jednak dynamicznie rozszerzać tą podstawową funkcjonalność generatorami miniatur dla plikw innych formatw.

Jeśli planujesz napisać własny generator miniatur, musisz zacząć od programu przyjmującego co najmniej dwa parametry linii poleceń: plik wejściowy (odpowiedniego typu) i plik wyjściowy (w formacie PNG, zgodnie ze Standardem Zarządzania Miniaturami). Poza tym twj program może także akceptować pożądaną wielkość miniatury (opcjonalne, ale bardzo zalecane). Jeśli twj program wygeneruje miniaturę niestandardowego rozmiaru, Thunar przeskaluje ją zgodnie ze swoimi potrzebami, co może pogorszyć jakość miniatury w stosunku do możliwego efektu przy jej poprawnym generowaniu przez generator miniatur.

Kiedy twoje narzędzie do generowania minatur będzie gotowe, będziesz musiał je zarejestrować, aby Thunar mgł je zlokalizować i używać. Wszystko co musisz zrobić, to zainstalować plik opisu generatora (plik .desktop) w jednej z ścieżek $XDG_DATA_DIRS/thumbnailers/. Przykładowo, jeśli chcesz zarejestrować generator miniatur tylko dla twojego konta użytkownika w systemie, możesz zainstalować plik do folderu ~/.local/share/thumbnailers/. Format plikw .desktop generatora miniatur został opisany poniżej.

Format pliku opisu generatorw miniatur

Pliki opisu generatorw miniatur używają formatu plikw pulpitu z polem Type jako X-Thumbnailer i polem X-Thumbnailer-Exec z nowym kodem pola. Podstawowy plik opisu ma poniższy format.

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Twj generator miniatur
-MimeType=twoj-obslugiwany/typ-mime;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

Pola Version i Encoding są narzucone przez "Desktop Entry Specification", po prostu użyj wartości podanych w przykładzie powyżej. Pole Type musi posiadać specjalną wartość X-Thumbnailer. W przeciwnym wypadku twj generator nie będzie rozpoznawany. Wartość Name opisuje twj generator miniatur.

Pole X-Thumbnailer-Exec zawiera polecenie uruchamiające twj generator i obsługuje pewne kody pl, pod ktre będą podstawiane rżne wartości podczas uruchamiania generatora. Poniższe kody są rozpoznawane:

%i

Ścieżka do pliku, ktrego miniaturę należy utworzyć. Może być ścieżką relatywną względem katalogu z ktrego generator został wywołany lub ścieżką bezwzględną.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

Pożądany rozmiar generowanej miniatury w pikselach. Parametr opcjonalny.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

Musisz wziąć pod uwagę co najmniej %o i %i lub %u. W przeciwnym wypadku twj generator będzie bezużyteczny.

MimeType zawiera listę typw MIME (oddzielonych przecinkiem) dla ktrych twj generator potrafi generować miniatury.

Przykładowy generator EPS

Ten przykład ilustruje jak napisać i zainstalować nowy generator miniatur dla plikw .eps, używając narzędzia convert dostarczanego jako część pakietu ImageMagick. Najpierw zaczniemy od prostego skryptu wywołującego convert, aby wygenerować miniaturę pożądanego rozmiaru.

-#!/bin/sh
-#
-# eps-thumbnailer - przykładowy generator miniatur plikw EPS.
-#
-# Użycie: eps-thumbnailer eps-file png-file size
-#
-
-# parametry linii poleceń
-ifile=$1
-ofile=$2
-size=$3
-
-# wywołaj convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

Zapisz powyższy skrypt do pliku eps-thumbnailer, upewnij się, że plik jest wykonywalny i zainstaluj go do /usr/local/bin.

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

Teraz musimy utworzyć plik opisu generatora miniatur eps-thumbnailer.desktop. Będzie on wyglądał następująco:

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

Plik ten powinien zostać zainstalowany do /usr/local/share/thumbnailers (utwrz ten katalog, jeśli nie istnieje).

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

Plik eps-thumbnailer.desktop używa specjalnego klucza TryExec, określającego polecenie, ktre musi być dostępne w systemie, aby generator mgł działać. W tym przypadku nasz skrypt jest bezużyteczny jeśli narzędzie convert nie jest dostępne w systemie.

Ostatnim krokiem jest regeneracja cache'u generatorw, aby Thunar mgł używać naszego generatora. Cache generatorw znajduje się w $XDG_CACHE_HOME/Thunar/thumbnailers.cache ($XDG_CACHE_HOME wskazuje na ~/.cache/, chyba, że zostało to zmienione przez administratora Twojego systemu). Cache generatorw miniatur jest odbudowywany co jakiś czas przez Thunara, ale możesz zrobić to samodzielnie, używając narzędzia thunar-vfs-update-thumbnailers-cache-1, ktre jest dostarczane jako część Thunara. Narzędzie to jest zazwyczaj zainstalowane w podkatalogu libexec głwnego katalogu instalacji Thunara (sbin w Debianie i Ubuntu). Przykładowo jeśli Thunar jest zainstalowany w /usr, wywołaj to narzędzie tak jak poniżej:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

Upewnij się, że uruchamiasz ten program z konta twojego użytkownika, nie administratora, gdyż cache generatorw jest przechowywany w twoim katalogu domowym, a nie w oglnosystemowym położeniu.

Teraz, jeśli Thunar został skompilowany z obsługą narzędzi monitorowania zmian w plikach (usługa FAM lub Gamin), automatycznie użyje nowego cache'u generatorw i w ciągu paru sekund będzie możliwe generowanie miniatur za pomocą twojego generatora. W przeciwnym wypadku będziesz musiał zrestartować Thunara, aby zmiany odniosły skutek. Użyj:

$ Thunar -q

aby zakończyć wszystkie uruchomione instancje Thunara, po czym uruchom go ponownie za pomocą aktywatora.

Usuwanie miniatur

Wygenerowane miniatury są przechowywane w karalogu ~/.thumbnails/ zgodnie ze Standardem Zarządzania Miniaturami. Podczas testowania nowego generatora miniatur, pomocne może być wyczyszczynie cache'u miniatur używając:

$ rm -rf ~/.thumbnails/

Zwolni to także trochę miejsca w twoim katalogu domowym. Ponieważ wszelkie informacje przechowywane w tym katalogu zostały automatycznie wygenerowane z plikw znajdujących się na twoim systemie plikw, nie utracisz żadnych istotnych danych.

diff -Nru thunar-1.2.3/docs/manual/html/pl/faq.html thunar-1.6.10/docs/manual/html/pl/faq.html --- thunar-1.2.3/docs/manual/html/pl/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Najczęściej zadawane pytania (FAQ)

Najczęściej zadawane pytania (FAQ)

Celem tej sekcji jest zebranie przerżnych pytań i wątpliwości dotyczących Thunara w jedno miejsce. Jeśli uważasz, że brakuje tu jakiegoś istotnego zagadnienia, proszę - zgłoś to.

Dlaczego Thunar nie wykonuje plikw oznaczonych jako wykonywalne?

Ze względw bezpieczeństwa Thunar uruchamia tylko pliki typu application/x-desktop, application/x-executable i application/x-shellscript. Dla plikw pulpitu możliwość uruchamiania zostanie włączona tylko wtedy, jeśli jest on typu Application i podano prawidłową linię Exec lub jeśli jest typu Link i podano prawidłowy URL. Dla innych typw opcja ta jest dostępna, jeśli plik jest oznaczony jako wykonywalny dla bieżącego użytkownika.

Zauważ także, że dla typw application/x-executable i application/x-shellscript, typy plikw nie muszą się z nimi pokrywać, lecz wystarczy jeśli wykryty typ ma taki sam typ nadrzędny jak jeden z powyższych typw lub gdy jego typ MIME jest aliasem dla jednego z powyższych.

Gdzie Thunar przechowuje metadane związane z plikami?

Thunar wiąże rżne ustawienia z plikami i folderami. Ustawienia te nazywamy metadanymi. Owe metadane wszystkich plikw przechowywane są w pliku bazy danych tdb, zwanym metaplikiem. Plik bazy danych znajduje się w $XDG_CACHE_HOME/Thunar/metafile.tdb, a jego przeglądu dokonuje się za pomocą narzędzia tdbtool, będącego częścią dystrybucji Thunara (położonego w podkatalogu tdb/).

Gdzie Thunar przechowuje swoje ustawienia?

Thunar przechowuje preferencje użytkownika (i ustawienia ukryte) w pliku .ini, znajdującym się w $XDG_CONFIG_HOME/Thunar/thunarrc. Można go obejrzeć używając edytora tekstowego. W pliku docs/README.thunarrc znajdziesz przegląd rznych opcji.

Czy i jak można używać gestw myszy w Thunarze?

Obecnie Thunar zapewnia podstawowe wsparcie dla tzw. gestw myszy w widoku ikon. Możesz ich używać wciskając środkowy przycisk myszy (przeważnie rolkę) gdy wskaźnik myszy znajduje się na polu tła (polu, ktre nie jest przykryte przez ikonę lub tekst). Następnie przesuwaj kursor w czterech kierunkach, aby wykonać pewne czynności opisane poniżej:

W lewo - przechodzi do uprzednio odwiedzonego foldderu
W grę - przechodzi do katalogu nadrzędnego
W prawo - przechodzi do kolejnego (według listy historii odwiedzeń) odwiedzonego katalogu
W dł - odświeża bieżący katalog

Jak przypisać własne skrty klawiszowe?

Thunar obsługuje standardową metodę zmieniania skrtw zgodną z GTK+: najedź wskaźnikiem myszy na opcję w menu, do ktrej chcesz przypisać skrt i wciśnij pożądaną kombinację klawiszy.

Aby usunąć skrt, wciśnij Backspace, kiedy znajdujesz się na odpowiedniej pozycji w menu.

Jeśli skrt się nie zmieni, prawdopodobnie będziesz musiał włączyć tą opcję w GTK+. Możesz to zrobić na trzy sposoby:

  • Jeśli używasz Xfce 4.3 lub nowszego, możesz uaktywnić opcję Modyfikowalne akceleratory menu w oknie dialogowym Preferencje Interfejsu Użytkownika.

  • Jeśli używasz GNOME możesz włączyć Modyfikowalne akceleratory menu w oknie dialogowym Paski menu i narzędziowe.

  • W przeciwnym wypadku umieść poniższą linię w pliku ~/.gtkrc-2.0 (utwrz go, jeśli nie istnieje):

    gtk-can-change-accels=1

Gdzie Thunar przechowuje skrty klawiszowe?

Niestandardowe skrty klawiszowe są przechowywane w typowym dla GTK+ formacie, w pliku $XDG_CONFIG_HOME/Thunar/accels.scm. Linie zaczynające się od ; są komentarzami. Obejrzyj dokumentację GTK+, aby dowiedzieć się więcej szczegłw o formacie tego pliku.

Jeśli tworzysz pakiety albo administrujesz systemem i chcesz przygotować globalną konfigurację skrtw, inną od tej domyślnej w Thunarze, możesz utworzyć plik Thunar/accels.scm w jednym z $XDG_CONFIG_DIRS. Przykładowo jeśli /etc/xdg jest częścią $XDG_CONFIG_DIRS (domyślnie w większości dystrybucji Linuksa), możesz zainstalować ustawienia globalne do /etc/xdg/Thunar/accels.scm. Thunar zastosuje się do tych skrtw przy pierwszym uruchomieniu programu.

diff -Nru thunar-1.2.3/docs/manual/html/pl/index.html thunar-1.6.10/docs/manual/html/pl/index.html --- thunar-1.2.3/docs/manual/html/pl/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -Menedżer Plikw Thunar

Menedżer Plikw Thunar

Benedikt Meurer

Software developer
os-cillation
System development


Ten podręcznik opisuje Thunar w wersji 1.2.0git-cc468f4.

- Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 or - any later version published by the Free Software Foundation; with no - Invariant Sections, with no Front-Cover Texts, and with no Back-Cover - Texts. The complete license text is available from the Free Software Foundation. -

November 2007


Wprowadzenie do Thunar

Thunar jest nowoczesnym menedżerem plikw dla Środowiska Graficznego Xfce. Od samego początku w jego projekt została wpisana szybkość i łatwość użycia. Jego interfejs użytkownika jest przejrzysty i intuicyjny. Domyślne ustawienia nie zawierają żadnych bezużytecznych i dezorientujących opcji. Thunar jest szybki i responsywny, a start programu i przechodzenie do nowych folderw zajmują bardzo mało czasu.

Skutkiem tego Thunar stanowi zintegrowany punkt dostępowy do twoich plikw i aplikacji. Możesz używać menedżera plikw do:

  • Tworzenia folderw i dokumentw.

  • Wyświetlania twoich plikw i folderw.

  • Zarządzania plikami i folderami.

  • Uruchamiania i zarządzania akcjami.

  • Korzystania z nośnikw wymiennych.

diff -Nru thunar-1.2.3/docs/manual/html/pl/preferences.html thunar-1.6.10/docs/manual/html/pl/preferences.html --- thunar-1.2.3/docs/manual/html/pl/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Ustawienia menedżera plikw

Ustawienia menedżera plikw

Za pomocą okna dialogowego Ustawienia menedżera plikw możesz zmieniać ustawienia menedżera plikw Thunar. Aby otworzyć okno ustawień, wybierz EdycjaPreferencje... z głwnego menu lub kliknij Menedżer plikw w Menedżerze Ustawień Xfce.

Okno Ustawienia menedżera plikw jest podzielone na cztery karty z rżnymi opcjami, każdą z nich opisano w oddzielnej sekcji poniżej. Najprościej rzecz ujmując, możesz ustawić preferencje w poniższych kategoriach:

  • Domyślne ustawienia widoku.

  • Domyślne ustawienia panelu bocznego.

  • Zachowanie okien menedżera plikw.

  • Zaawansowane funkcje menedżera plikw.

Thunar wspiera także zestaw tzw. Ukrytych Opcji. Kontrolują one pewne zaawansowane aspekty menedżera plikw. Nie są one widoczne w oknie preferencji, by nie komplikować jego wyglądu. Plik README.thunarrc dołączony do dystrybucji Thunara opisuje dostępne opcje szczegłowo.

Ustawienia widoku

Możesz określić domyślny widok, zaznaczyć opcje sortowania i wyświetlania. Możesz takżę określić, czy miniaturki powinny być wyświetlane dla obsługiwanych plikw.

Ustawienia widoku
Pokazuj nowe foldery używając

Wybierz domyślny widok folderw. Kiedy otworzysz nowe okno, zostanie ono wyświetlone w widoku, jaki wybierzesz. Może być to widok ikon, listy kompaktowej lub listy szczegłowej. Możesz także wybrać Ostatnio aktywne, aby używać widoku takiego samego jak w ostatnim aktywnym oknie.

Sortuj foldery przed plikami

Wybierz tę opcję, aby listować foldery przed plikami podczas sortowania zawartości katalogu.

Pokaż miniatury

Wybierz tę opcję, aby pokazywać miniatury obrazw i inych wspieranych formatw plikw. Menedżer plikw przechowuje pliki miniatur dla każdego folderu w ukrytym katalogu .thumbnails w twoim katalogu domowym.

Jeśli chcesz rozszerzyć podstawową funkcjonalność generowania miniatur oferowaną przez Thunara o dodatkowe formaty plikw, zobacz „Generatory miniatur”.

Tekst obok ikon

Zaznacz tą opcję, aby etykiety ikon znajdywały się obok nich, a nie pod (dotyczy widoku ikon).

Ustawienia panelu bocznego

Możesz wybrać opcje wyświetlania dla panelu skrtw i panelu drzewa.

Ustawienia panelu bocznego

Panel boczny może wyświetlać albo listę skrtw do folderw w twoim systemie plikw (domyślne), albo drzewo twojego systemu plikw. Ta karta umożliwia ci wybranie rozmiaru ikon dla skrtw i panelu drzewa. Możesz także okreslić, czy powinny być wyświetlane emblematy.

Rozmiar ikon

Rozmiar ikon wyświetlanych w panelu może przyjmować wartości od Bardzo mały (ok. 16x16 pikseli) do Bardzo duży (ok. 128x128 pikseli).

Pokazuj emblematy ikon

Zaznacz tą opcję aby wyświetlać emblematy dla folderw w panelu bocznym. Możesz przypisać emblematy do folderw w oknie dialogowym Właściwości. Zaznacz folder w obszarze głwnym i wybierz PlikWłaściwości... z głwnego menu lub kliknij prawym przyciskiem myszy i wybierz Właściwości... z menu kontekstowego.

Ustawienia zachowania

Możesz wybrać preferowany sposb komunikacji z menedżerem plikw

Ustawienia zachowania
Pojedyncze kliknięcie aktywuje

Wybierz tą opcję aby wykonać domyślną akcję dla elementu przy pojedynczym kliknięciu. Kiedy ta opcja jest zaznaczona i wskażesz na element, jego tytuł zostanie podkreślony a element zostanie automatycznie zaznaczony po krtkim opźnieniu czasowym.

To opźnienie może być regulowane za pomocą suwaka poniżej. Możesz także wyłączyć automatyczne zaznaczanie elementw, przesuwając suwak maksymalnie do lewej.

Podwjne kliknięcie aktywuje

Zaznacz tą opcję, aby wykonać domyślną akcję dla elementu kiedy klikniesz na niego podwjnie. W tym przypadku pojedyncze kliknięcie spowoduje zaznaczenie elementu.

Zaawansowane ustawienia

Możesz kontrolować zaawansowane opcje menedżera plikw.

Zaawansowane ustawienia
Prawa dostępu katalogw

Wybierz sposb zmieniania uprawnień w oknie dialogowym Właściwości. Możesz nakazać Thunarowi: pytać za każdym razem gdy zmieniasz uprawnienia katalogw, stosować nowe prawa dostępu tylko do wybranego katalogu lub stosować nowe prawa dostępu rekurencyjnie do wszystkich podkatalogw.

Menedżer Woluminw

Jeśli Thunar został zainstalowany z obsługą HAL i jest zainstalowany thunar-volman, możesz uaktywnić zintegrowanego menedżera woluminw. Aby dowiedzieć się szczegłw na ten temat, zobacz „Zarządzanie wymiennymi nośnikami i napędami”.

diff -Nru thunar-1.2.3/docs/manual/html/pl/support.html thunar-1.6.10/docs/manual/html/pl/support.html --- thunar-1.2.3/docs/manual/html/pl/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Wsparcie

Wsparcie

Aby zgłosić błąd albo propozycję dotyczącą tej aplikacji lub tego podręcznika, użyj systemu śledzenia błędw dostępnego na http://bugzilla.xfce.org/. Pamiętaj, że użyteczne raporty to te, po ktrych błąd zostaje naprawiony, tak więc raport powinien posiadać dwie cechy:

  • Powtarzalność. Jeśli programista nie może zobaczyć błędu na własne oczy, prawdopodobnie nie będzie mgł go naprawić. Każdy szczegł, o ktrym poinformujesz, może pomc.

  • Szczegłowość. Im szybciej programista zawęzi obszar poszukiwań przyczyny problemu, tym szybciej błąd zostanie przez niego naprawiony.

Jeśli chcesz zgłosić potrzebę nowej funkcjonalności, proszę uzasadnij, dlaczego uważasz, że jest ona warta dodania do aplikacji. Nowa funkcjonalność zostanie dodana, jeśli dostarczysz dobrych argumentw, ktre będą za nią przemawiały. Jeśli dołączysz implementujący ją patch, prawdopodobieństwo jej włączenia jeszcze się zwiększy. Pamiętaj jednak, aby przeczytać plik HACKING - szczeglnie sekcję zatytułowaną Coding Style - zanim zaczniesz hakować źrdło.

Jeśli natomiast masz pytania dotyczące używania lub instalacji tego oprogramowania, proszę zapytaj na liście mailingowej thunar-dev lub połącz swojego klienta IRC z irc.freenode.net, dołącz do kanału #thunar i poproś o pomoc.

diff -Nru thunar-1.2.3/docs/manual/html/pl/the-file-manager-window.html thunar-1.6.10/docs/manual/html/pl/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/pl/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Okno Menedżera Plikw

Okno Menedżera Plikw

Domyślnie okno menedżera plikw składa się z panelu bocznego po lewej, obszaru głwnego po prawej i paska ścieżki powyżej głwnego obszaru.

Okno Menedżera Plikw

Panel boczny zawiera skrty do rżnych folderw w twoim systemie. Pierwszy skrt prowadzi do twojego katalogu domowego, folderu, gdzie przechowujesz swoje prywatne dane. Będzie on miał nazwę bieżącego użytkownika. Drugi skrt poprowadzi Cię do śmietnika. Tam są przechowywane usunięte pliki, w celu ich pźniejszego przywrcenia. Trzeci z kolei skrt prowadzi do folderu pulpitu, ktry zawiera pliki i foldery wyświetlane na twoim pulpicie. Czwarty, ostatni skrt, zaprowadzi Cię do głwnego katalogu systemu plikw - być może będziesz chciał go obejrzeć, chociaż może to być dla Ciebie zbędne jeśli jesteś początkującym użytkownikiem Linuksa/Uniksa. Proste klikanie na rżne foldery pozwoli Ci obejrzeć ich zawartość.

Poniżej skrtu "System plikw", będą wyświetlane wymienne napędy i nośniki. W zrzucie ekranu powyżej możesz zobaczyć skrt do Napędu dyskietek. Klikając na te skrty uzyskasz dostęp do danych przechowywanych na wymiennych nośnikach i napędach. Przeczytaj „Używanie nośnikw wymiennych”, jeśli chcesz poznać szczegły.

Pozostałe skrty są definiowane przez użytkownika. Możesz dodawać swoje własne skrty po prostu przeciągając foldery do panelu bocznego. Pozwoli Ci to na natychmiastowy dostęp do ważnych folderw. Aby usunąć poprzednio dodany skrt, kliknij prawym przyciskiem myszy na skrcie i wybierz Usuń skrt. Zauważ, że ta czynność będzie miała wpływ tylko na skrt, a nie na folder wskazywany przez niego.

Obszar głwny będzie zawsze wyświetlał zawartość bieżącego folderu. Podwjnym kliknięciem możesz wchodzić do folderw, natomiast klikając prawym przyciskiem myszy uzyskasz dostęp do menu kontekstowego, umożliwiającego zarządzanie folderem. Możesz zaznaczyć wiele plikw przeciągając nad nimi prostokąt utworzony z zaznaczenia myszą. Alternatywnie możesz zaznaczyć jeden plik, wcisnąć klawisz Shift i zwiększać lub zmniejszać zaznaczenie, używając strzałek na klawiaturze.

Pasek ścieżki będzie zawsze pokazywał drogę, jaką przebyłeś do bieżącego folderu. Możesz kliknąć na ktrymkolwiek przycisku ścieżki aby przenieść się do odpowiadającego folderu. Kliknij na nim prawym przyciskiem myszy, aby przywołać menu kontekstowe zawierające pewne opcje.

Dostosowywanie wyglądu

Jest wiele sposobw na dostosowanie wyglądu okien menedżera plikw. Jeśli nie odpowiada Ci sposb wyświetlania ikon, wybierz WidokWidok szczegłowy z głwnego menu, aby wyświetlać zawartość katalogw w formie listy.

Możesz nakazać menedżerowi plikw używania paska położenia zamiast paska ścieżki, wybierając WidokWskaźnik położeniaStyl tradycyjny z głwnego menu.

Jeżeli podoba Ci się widok drzewa w lewym panelu, wybierz WidokPanel bocznyDrzewo z głwnego menu.

Kolumny widoczne w widoku szczegłowej listy

Jeśli wolisz wyświetlać zawartość folderw jako listę używając Widoku szczegłowego, możesz dostosować kolumny wyświetlane w widoku listy. Aby dostosować widoczność kolumn, wybierz WidokKonfiguruj kolumny... z głwnego menu (po wybraniu widoku listy).

Widoczne kolumny
Widoczne kolumny

Z listy dostępnych kolumn wybierz te, ktre mają być wyświetlane. Kliknij W grę lub W dł aby zmienić kolejność kolumn lub Użyj domyślnych aby cofnąć wprowadzone zmiany.

Rozmiar kolumny

Wybierz opcję Skaluj kolumny jeśli chcesz, aby kolumny listy były rozszerzane automatycznie tak, aby cały tekst był widoczny.

diff -Nru thunar-1.2.3/docs/manual/html/pl/using-removable-media.html thunar-1.6.10/docs/manual/html/pl/using-removable-media.html --- thunar-1.2.3/docs/manual/html/pl/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Używanie nośnikw wymiennych

Używanie nośnikw wymiennych

Dostęp do nośnikw wymiennych

Thunar wspiera nośniki wymienne, jeśli został zbudowany z obsługą HAL lub jeśli używasz FreeBSD. Jednakże na FreeBSD 6.0 i nowszych lepiej jest używać HAL niż natywnego wsparcia oferowanego przez Thunara.

Montowanie nośnikw

Zamontować to znaczy uczynić system plikw na nośniku dostępnym. Kiedy montujesz nośnik, system plikw ktry się na nim znajduje jest podłączany jako podkatalog do twojego systemu plikw.

Aby uzyskać dostęp do nośnika, umieść nośnik w odpowiednim urządzeniu lub podłącz urządzenie do twojego komputera (tj. podłącz PenDrive do jednego z twoich portw USB). Element reprezentujący nośnik zostanie dodany do bocznego panelu menedżera plikw. Jeśli xfdesktop jest uruchomiony i skonfigurowany tak, aby wyświetlać ikony plikw i wyzwalaczy, to ten obiekt także zostanie dodany do twojego pulpitu.

Aby zamontować nośnik, kliknij na reprezentujący go obiekt. Na przykład aby zamontować dyskietkę, kliknij na obiekt Stacja Dyskietek znajdujący się w panelu bocznym. Menedżer plikw doda system plikw na nośniku do hierarchii twojego systemu plikw i wyświetli zawartość dyskietki w obszarze głwnym.

Wysuwanie nośnikw

Jeśli stacja (napęd) nośnika jest motoryczny (np. napęd CD-ROM), kliknij prawym przyciskiem myszy na obiekcie nośnika w bocznym panelu lub na pulpicie i wybierz Wysuń. Nośnik zostanie wysunięty z napędu po kilku sekundach. Jeśli napęd nośnika nie jest motoryczny (np. stacja dyskietek lub PenDrive), kliknij prawym przyciskiem myszy na obiekcie nośnika i wybierz Odmontuj. Po chwili pojawi się powiadomienie o możliwości bzepiecznego odłączenia napędu (lub wyciągnięcia nośnika).

Powiadomienie o odmontowaniu

To powiadomienie pojawi się tylko wtedy, jeśli została włączona obsługa libnotify i został zainstalowany demon powiadomień. Demon powiadomień dla Xfce jest dostępny z Projektu Xfce Goodies. Jeśli nie ma obsługi powiadomień, poczekaj aż menu kontekstowe zniknie, zanim odłączysz napęd lub wyciągniesz nośnik.

Pamiętaj, że nie możesz wysunąć lub odmontować nośnika jeśli jest on ciągle używany przez jedną lub więcej aplikacji. Jeśli menedżer plikw odmwi odmontowania nośnika, upewnij się, że zamknąłeś wszystkie aplikacje, ktre mogły go używać. Sprawdź także programy linii poleceń uruchamiane w oknach Terminala.

Upewnij się, że odmontowałeś wymienne nośniki przed ich fizycznym usunięciem z systemu. Nie wyciągaj dyskietki ze stacji dyskietek zanim jej nie odmontujesz. Nie wyciągaj pamięci USB (np. PenDrive'w) przed ich odmontowaniem. Jeśli najpierw nie odmontujesz nośnika możesz stracić dane lub uszkodzić system.

Zarządzanie wymiennymi nośnikami i napędami

Thunar może automatycznie zarządzać wymiennymi napędami i nośnikami jeśli pakiet thunar-volman został zainstalowany w systemie. Trzeba przy tym zauważyć, że ta opcja wymaga wsparcia ze strony HAL.

Gdy wsparcie HAL jest już dostępne, a thunar-volman zainstalowany, możesz uaktywnić opcję Menedżera woluminw w Thunarze. Aby to zrobić otwrz okno preferencji menedżera plikw, przejdź do karty Zaawansowane i zaznacz pole Włącz menedżera woluminw

Kolejnym krokiem jest dostosowanie sposobu zarządzania napędami i nośnikami do twoich potrzeb. Kliknij łącze Konfiguruj w sekcji Menedżer Woluminw. Zostanie wyświetlone okno dialogowe Wymienne napędy i nośniki.

Wymienne napędy i nośniki

Jeśli poprzednio używałeś gnome-volume-manager, pownieneś poczuć się jak w domu, ponieważ menedżer woluminw został zaprojektowany z myślą o podobieństwie w wyglądzie i zachowaniu do gnome-volume-manager. Preferencje zostały podzielone na kategorie, aby ułatwić odnalezienie odpowiedniej opcji do konkretnego urządzenia.

Karta Pamięć zawiera najważniejsze opcje. Jak sugeruje nazwa, opcje te odnoszą się tylko do pamięci przenośnych, jak zewnętrzne dyski twarde, PenDrive'y czy płyty CD-ROM. Opcje sekcji Pamięć wymienna zostały szczegłowo opisane poniżej.

Montuj napędy wymienne przy podłączaniu

Uaktywnij tą opcję, aby automatycznie zamontować systemy plikw na napędach wymiennych (np. zewnętrznych dyskach twardych lub PenDrive'ach) kiedy tylko zostaną podłączone do komputera.

Ta opcja musi być włączona aby działały inne funkcje operujące na nośnikach wymiennych. Przykładowo, jeśli wyłączysz tą opcję, pewne rodzaje przenośnych odtwarzaczy muzyki nie będą mogły być rozpoznane. Nawet gdy włączysz opcję Odtwarzaj muzykę przy podłączaniu na karcie Multimedia, określone polecenie nie zostanie uruchomione.

Montuj wymienne nośniki przy wkładaniu

Uaktywnij tą opcję, aby automatycznie montować systemy plikw na wymiennych nośnikach (np. płytach CD-ROM lub DVD) kiedy włożysz je do napędu.

Ta opcja musi być włączona aby działały inne funkcje operujące na nośnikach wymiennych. Przykładowo, jeśli wyłączysz tą opcję, nie będzie możliwe sprawdzenie, czy nośnik posiada możliwość autouruchamiania. Tym samym opcja Automatycznie uruchamiaj programy na nowych napędach i nośnikach nie będzie działać.

Przeglądaj wymienne nośniki przy wkładaniu

Uaktywnij tą opcję aby automatycznie wyświetlać zawartość nowo podłączonych nośnikw w menedżerze plikw. Zauważ jednakże, że stanie się tak tylko wtedy, gdy nie będzie możliwe wykonanie żadnej innej akcji lub wybrałeś ignorowanie innych możliwych akcji. Przykładowo jeśli umieścisz płytę CD-ROM z autostartem, a opcja Automatycznie otwieraj programy na nowych napędach i nośnikach jest aktywna, zostaniesz zapytany, czy umożliwić autostart. Jeśli odmwisz, zawartość nośnika zostanie wyświetlona w menedżerze plikw.

Automatycznie otwieraj programy na nowych napędach i nośnikach

Uaktywnij tą opcję aby skorzystać z opcji autostartu niektrych wymiennych nośnikw i napędw. Zobacz Desktop Application Autostart Specification, aby dowiedzieć się szczegłw na temat mechanizmu autostartu. Aby zapewnić bezpieczeństwo, zostaniesz za każdym razem poproszony o potwierdzenie autostartu.

Jeśli emulator Windowsa, WINE, został zainstalowany w twoim systemie, mechanizm autouruchamiania będzie prbował także uruchomiać pliki autorun.exe używając WINE.

Automatycznie otwieraj pliki na nowych napędach i nośnikach

Uaktywnij tą opcję, aby skorzystać z możliwości automatycznego otwierania niektrych napędw i nośnikw. Zobacz Desktop Application Autostart Specification, aby dowiedzieć się szczegłw na temat mechanizmu autootwierania. W trosce o bezpieczeństwo zostaniesz za każdym razem poproszony o potwierdzenie automatycznego otwierania.

Pozostałe opcje pozwolą ci na określenie poleceń do uruchomienia przy podłączaniu pewnych zewnętrznych urządzeń czy wymiennych nośnikw. Polecenia mogą używać trzech specjalnych zmiennych, ktre zostaną zastąpione podczas uruchamiania polecenia:

%d

Każde wystąpienie %d w poleceniu zostanie zastąpione ścieżką do nowo dodanego urządzenia. Przykładowo, jeśli podłączyłeś PenDrive, ścieżka do urządzenia będzie /dev/da0s1 lub /dev/sda1.

Jeśli żaden plik urządzenia nie jest powiązany z urządzeniem lub z pewnych względw plik urządzenia nie może zostać odnaleziony, zmienna %d zostanie zastąpiona pustym napisem.

%h

Każde wystąpienie %h w poleceniu zostanie zastąpione przez UDI nowo dodanego urządzenia w systemie HAL.

%m

Każde wystąpienie %m w poleceniu zostanie zastąpione punktem montowania nowo dodanego urządzenia. Jeśli urządzenie nie może być zamontowane (np. drukarki lub klawiatury) lub jeśli automatyczne montowanie zostało wyłączone, %m zostanie zastąpione pustym napisem.

Rozwiązywanie problemw z Menedżerem Woluminw

Porady użyteczne przy rozwiązywaniu problemw z menedżerem woluminw jeśli nie działa on tak, jak oczekiwano.

  1. Upewnij się, że Thunar jest uruchomiony jako demon. Menedżer woluminw wymaga tego, jako że sam w sobie nie jest demonem. Domyślnie Xfce automatycznie uruchamia Thunara jako demon przy starcie. Jeśli z jakiegoś powodu jego proces został zakończony, otwrz Uruchom program (używając skrtu Alt+F2 lub klikając prawym przyciskiem myszy na pulpit i wybierając Uruchom Program... z menu), wprowadź Thunar --daemon i kliknij Uruchom.

  2. Sprbuj uruchomić thunar-volman z okna Terminala po podłączeniu napędu lub włożeniu nośnika. Najpierw musisz poznać HALowe UDI nowego urządzenia używając lshal lub hal-device. Jeśli już znasz UDI, uruchom thunar-volman --device-added <udi-twojego-urządzenia> w oknie Terminala i obserwuj komunikaty wyjściowe szukając błędw i ostrzeżeń.

Jeśli problem nadal istnieje, poproś o pomoc na Forum Xfce lub liście mailingowej thunar-dev.

diff -Nru thunar-1.2.3/docs/manual/html/pl/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/pl/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/pl/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/pl/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Praca z plikami i folderami

Praca z plikami i folderami

Otwieranie plikw

Kiedy otwierasz plik, menedżer plikw wykonuje domyślną akcję dla plikw tego typu. Na przykład otwarcie pliku tekstowego spowoduje jego wyświetlenie w domyślnym edytorze tekstu, podczas gdy otwarcie pliku obrazu wyświetli go w domyślnej przeglądarce obrazw.

Menedżer plikw sprawdza rozszerzenie pliku, aby określić jego typ. Jeśli plik nie posiada rozszerzenia, sprawdzana jest jego zawartość.

Wykonywanie domyślnej akcji

Aby wykonać domyślną akcję na pliku, kliknij go podwjnie. Na przykład domyślną akcją dla plikw dźwiękowych jest ich odtworzenie w domyślnym odtwarzaczu muzyki. W takim przypadku, dwukrotnie kliknięcie takiego pliku spowoduje odtworzenie go w odtwarzaczu muzyki.

Możesz zmienić zachowanie Thunara tak, aby pojedyncze kliknięcie wyzwalało domyślną akcję. Aby dowiedzieć się jak to zrobić, przeczytaj „Ustawienia zachowania”.

Wykonywanie innych akcji

Aby wykonywać akcje inne niż domyślne dla danego pliku, zaznacz plik, ktry chcesz obsłużyć. Następnie wybierz pożądaną akcję z podmenu Otwrz za pomocą dostępnego w menu Plik lub w menu kontekstowym.

Dodawanie akcji

Aby dodać akcje powiązane z danym typem pliku, wykonaj poniższe kroki:

  1. W obszarze głwnym zaznacz plik typu, ktrego akcje chcesz edytować.

  2. Wybierz PlikOtwrz za pomocą innej aplikacji... z głwnego menu.

  3. Wybierz aplikację albo w oknie Otwrz za pomocą albo wybierz Użyj polecenia użytkownika i przejdź do programu ktrego chcesz używać do otwierania plikw tego typu.

Akcja, ktrą wybrałeś, jest teraz dodana do listy akcji dla plikw tego typu. Jeśli zaznaczyłeś opcję Ustaw jako domyślne dla tego typu plikw lub nie było poprzednio żadnej akcji powiązanej z tym typem, nowo dodana akcja stanie się domyślną.

Możesz także dodawać akcje używając przycisku Otwrz za pomocą w menu PlikWłaściwości....

Modyfikowanie akcji

Aby zmodyfikować akcje powiązane z plikiem lub z typem plikw, wykonaj poniższe kroki:

  1. W obszarze głwnym, wybierz plik typu, ktrego akcje chcesz modyfikować.

  2. Wybierz PlikWłaściwości... z głwnego menu.

  3. Wybierz nową domyślną akcję używając przycisku Otwrz za pomocą albo dodaj nową akcję wybierając Inna aplikacja... z rozwijanego menu.

Aby usunąć poprzednio dodaną akcję dla typu pliku, przywołaj okno Otwrz za pomocą jak opisano powyżej, kliknij prawym przyciskiem myszy akcję ktrą chcesz usunąć i wybierz Usuń aktywator.

Właściwości pliku

Okno właściwości pliku pokazuje więcej informacji o każdym pliku i katalogu w menedżerze plikw. W tym oknie możesz także:

  • Zmieniać ikony dla plikw specjalnych, takich jak wyzwalacze aplikacji i łącza URL.

  • Dodawać i usuwać emblematy dla plikw i folderw.

  • Zmieniać uprawnienia systemu UNIX dla plikw lub folderw.

  • Wybrać aplikację używaną do otwierania tego pliku i innych plikw tego typu.

Właściwości pliku

Aby otworzyć okno właściwości pliku, wykonaj poniższe czynności:

  1. Zaznacz plik lub folder, ktrego właściwości chcesz sprawdzić lub zmienić. Obecnie nie możesz zaznaczyć wielu elementw jednocześnie i wyświetlić właściwości, ktre są wsplne.

  2. Zrb jedno z poniższych:

    • Wybierz PlikWłaściwości... z głwnego menu.

    • Kliknij prawym przyciskiem myszy zaznaczony element i wybierz Właściwości... z menu kontekstowego.

    • Wciśnij Alt+Enter.

diff -Nru thunar-1.2.3/docs/manual/html/ru/advanced-topics.html thunar-1.6.10/docs/manual/html/ru/advanced-topics.html --- thunar-1.2.3/docs/manual/html/ru/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -Расширенная информация

Расширенная информация

Для группового переименования файлов

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

Групповое переименование файлов

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • Удалить символы

  • Нумерация файлов

  • Вставить дату или время

  • Вставить или перезаписать символы

  • Поиск и замена символов

  • Convert to uppercase, lowercase or camlcase.

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

Файловая система UNIX

Несмотря на то, что файловый менеджер Thunar позволяет абстрагироваться от деталей функционирования файловых систем, иногда полезно знать основы, чтобы видеть полную картину. Этот раздел является кратким введением в концепцию файловых систем UNIX, на сегодня эта концепция используется во всех инкарнациях UNIX, включая Linux.

Папки и пути

В файловой системе UNIX все папки расположены в виде простой древовидной структуры, основой которой является папка, именуемая корневой каталог (термин каталог часто используется вместо термина папка) и отображается в Thunar как Файловая система. Это значит, что вы можете попасть из одной папки в другую просто перемещаясь по дереву файловой системы.

Местоположение любого файла и любой папки в дереве файловой системы может описывается термином путь. Путь - это список папок, которые вы должны открыть, чтобы добраться от корня файловой системы к папке или файлу. Например, путь /home/luke состоит из подпапки luke, которая в свою очередь является подпапкой папки home;а путь /home/luke/myfile.txt указывает на файл myfile.txt, расположенные в подпапке /home/luke. Открывающий слэш / обозначает корневую папку файловой системы.

Каждый пользователь имеет свою собственную папку для хранения файлов и настроек. Эта папка называется домашней папкой и отображается в Thunar специальным значком с именем пользователя. Эта папка похожа на папку Мои документы из Windows. Домашние папки пользователей обычно располагаются в папке /home.Например, папка /home/luke будет домашней папкой пользователя с именем luke, а папка /home/jane будет домашней папкой пользователя с именем jane.

Типы файлов

- You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems - today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is - one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other - operating systems had to introduce new concepts for every new technology. -

В файловой системе UNIX существует четыре наиболее важных типов файлов.

Обычные файлы

- An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents - and video files. The term file is often used to refer to an ordinary file. -

Папки

- Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a - mapping of file names to file references for every file contained within this folder. -

Символические ссылки

- A Symbolic link (often called a symlink) is a special file that contains a path to - another file in the file system. Symbolic link files therefore do not contain any useful information - themselves, but just refer to other files. -

Устройства

- As mentioned earlier (most) devices are also accessed through the file system. These special device files are - usually located in the /dev folder. For example the special file - /dev/hda represents the first IDE disk on Linux. -

diff -Nru thunar-1.2.3/docs/manual/html/ru/copyright.html thunar-1.6.10/docs/manual/html/ru/copyright.html --- thunar-1.2.3/docs/manual/html/ru/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -О Thunar

О Thunar

Thunar написан Benedikt Meurer (). Смотрите Сайт Thunar для большей информации.

- This documentation was written by Benedikt Meurer (). The latest - version of this document is always available from the Thunar website. -

- This software is distributed 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. -

- 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. -

diff -Nru thunar-1.2.3/docs/manual/html/ru/customizing-thunar.html thunar-1.6.10/docs/manual/html/ru/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/ru/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -Настроить Thunar

Настроить Thunar

- This chapter describes how to customize certain parts of the file manager to your own needs. -

Меню "Send To"

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

Меню "Send To"

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

Желаемый размер тамбнэйлов в пикселях. Этот параметр не обязательный

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

- Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

- This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). -

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

- to terminate any running instance, and afterwards restart it from your launcher. -

Очистить тамбнэйлы

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

- which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. -

diff -Nru thunar-1.2.3/docs/manual/html/ru/faq.html thunar-1.6.10/docs/manual/html/ru/faq.html --- thunar-1.2.3/docs/manual/html/ru/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -Часто задаваемые вопросы

Часто задаваемые вопросы

- The intent of this section is to collect the quite numerous frequently asked - questions that relate to working with Thunar. If you know of a question that - is missing from this page, please file - a request. -

Почему Thunar не запускает файлы, помеченные как исполняемые?

- For security reasons Thunar only executes files of type application/x-desktop, - application/x-executable and application/x-shellscript. For - desktop files the execution feature will only be enabled if the desktop file is of type - Application and a valid Exec line is given or of type - Link and a valid URL is given. For the other types the feature - is available if the file is marked executable for the current user. -

- Also note that for application/x-executable and application/x-shellscript, - the types of the file don't really need to match these types exactly, but it is suffice if the detected - type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for - one of the above. -

Где Thunar хранит метаданные, связанные с файлами?

- Thunar associates various settings with files/folders, which we call metadata. - This metadata for all files is stored in tdb database file, which is called - the metafile. The database file is stored in - $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined - using the tdbtool, which is part of the Thunar distribution - (located in the tdb/ subdirectory). -

Где Thunar хранит свои настройки?

- Thunar stores the user configurable preferences (and hidden settings) in - an .ini file, which is located at - $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined - using a text editor. See docs/README.thunarrc for an - overview of the various preferences. -

Как использовать трюки с мышью в Thunar?

- Thunar currently features basic support for so called mouse gestures - in its icon view. You can use these mouse gestures by holding down - the middle mouse button (usually the mouse wheel) while the mouse pointer is on the - background area of the icon view component (any area that is not covered by - an icon or a text). Now you can move the cursor into four directions to - perform certain actions, which are described below. -

Налево - opens the previous visited folder
Вверх - opens the parent folder
Направо - opens the next visited folder
Вниз - reloads the current folder

Как я могу переназначить горячие клавиши?

- If you want to rebind a shortcut, Thunar supports the standard GTK+ way - of changing shortcuts: simply hover over the menu option with the mouse - pointer and press the keyboard shortcut you want to rebind it to. -

- To delete a keyboard assignment, press the Backspace key - while you are on the menu entry. -

- If the shortcut doesn't change, then you need to enable the feature in - GTK+. This can be achieved in 3 ways: -

  • - If you are running Xfce 4.3 or above then you can enable Editable - menu accelerators in the User Interface Preferences - dialog. -

  • - If you are running GNOME then you can enable Editable menu - accelerators in the Menu and Toolbars control - center dialog. -

  • - Otherwise put the following in your ~/.gtkrc-2.0 file - (create the file if it doesn't exist):

    gtk-can-change-accels=1

    -

Где Thunar хранит настройки горячих клавиш?

- The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a - file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting - with ; are comments. See the GTK+ documentation for details about the - file format. -

- If you are a packager or a system administrator and want to provide a system wide default - for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you - can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. - For example, if /etc/xdg is part of $XDG_CONFIG_DIRS - (the default for most Linux distributions), you can install system wide defaults to - /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup. -

diff -Nru thunar-1.2.3/docs/manual/html/ru/index.html thunar-1.6.10/docs/manual/html/ru/index.html --- thunar-1.2.3/docs/manual/html/ru/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Файловый менеджер Thunar

Файловый менеджер Thunar

Benedikt Meurer

Разработчик ПО
os-cillation
Системный разработчик


Это руководство описывает 1.2.0git-cc468f4 версию Thunar.

Разрешено копировать, распространять и/или модифицировать данный документ на условиях лицензии GNU Free Documentation License, версия 1.1 или более поздней версии, опубликованной Фондом Свободного ПО (Free Software Foundation). Полный текст лицензии доступен на сайте Free Software Foundation.

November 2007


Введение в Thunar

Thunar это новый современный файловый менеджер для рабочего окружения Xfce. Thunar изначально разрабатывался, чтобы быть быстрым и легким в использовании.У него простой и интуитивный интерфейс, который по умолчанию не содержит бесполезных или вносящих путаницу элементов. Thunar быстро запускается, быстро открывает папки и быстро реагирует на действия пользователя.

Файловый менеджер Thunar предоставляет доступ одновременно к вашим файлам и приложениям. Используя файловый менеджер вы можете:

  • Создавать папки и документы.

  • Просматривать ваши файлы и папки.

  • Управлять вашими файлами и папками.

  • Настраивать и выполнять особые действия над файлами и папками.

  • Получать доступ к съемным носителям.

diff -Nru thunar-1.2.3/docs/manual/html/ru/preferences.html thunar-1.6.10/docs/manual/html/ru/preferences.html --- thunar-1.2.3/docs/manual/html/ru/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -Настройки файлового менеджера

Настройки файлового менеджера

- Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. -

- The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: -

  • Установки по умолчанию для просмотра

  • Установки по умолчанию для боковой панели

  • Настройка окон файлового менеджера

  • Специальные настройки файлового менеджера

- Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. -

Настройки просмотра

- You can specify a default view, select sort options and display options. You can - also specify whether thumbnails should be displayed for file types that support - this. -

Настройки просмотра
Просомтр новой папки используя

- Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. -

Сортировать папки перед файлами

- Select this option to list folders before files when you sort a folder. -

Показывать тамбнэйлы

- Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. -

- See Thumbnailers if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. -

Текст рядом с иконками

- Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. -

Настройки боковой панели

- You can select display options for the shortcuts pane and the tree pane. -

Настройки боковой панели

- The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. -

Размер значков

- The size of the icons displayed in the side, ranging from Very Small (around - 16x16 pixels) to Very Large (around 128x128 pixels). -

Показывать значок эмблем

- Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. -

Настройка внешнего вида

- You can select the preferred behavior to interact with the file manager. -

Настройка внешнего вида
Одиночный клик для активации элемента

- Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. -

- This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. -

Двойной клик для активации элемента

- Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. -

Специальные настройки

Вы можете управлять расширенными возможностями файлового менеджера

Специальные настройки
Права доступа папки

- Choose the action that should be performed when you change the permissions of a folder in - the Properties dialog. You can choose to let Thunar - ask everytime when you change folder permissions, tell it to default to applying the new permissions - to the folder only or to apply them recursively to the folder contents as well. -

Управление разделами

- If Thunar was installed with support for HAL and the thunar-volman - package is also installed, you can enable the integrated volume manager. See Управление съемными дисками - for details about this feature. -

diff -Nru thunar-1.2.3/docs/manual/html/ru/support.html thunar-1.6.10/docs/manual/html/ru/support.html --- thunar-1.2.3/docs/manual/html/ru/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -Поддержка

Поддержка

- To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. - Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities: -

  • - Reproducible. If the developer cannot see the bug himself - to prove that it exists, he will most probably not be able to fix it at all. Every detail you - can provide helps. -

  • - Specific. The quicker the developer can isolate the problem - to a specific area, the more likely he will expediently fix it. -

- In case you want to request a new feature, please make clear why you consider it a worth - addition for the application. It is more likely that a new feature gets added if you provide - good arguments for the feature. It will increase the chance of addition even more if you - provide a patch that implements the requested feature, but make sure that you read the file - HACKING - - especially the section labeled Coding Style - before you start hacking - up the source. -

- Else, if you have questions about the use or installation of this software, please ask on the - thunar-dev mailing - list or point your IRC client to irc.freenode.net, - join the channel #thunar and ask for help. -

diff -Nru thunar-1.2.3/docs/manual/html/ru/the-file-manager-window.html thunar-1.6.10/docs/manual/html/ru/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/ru/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -Окно файлового менеджера

Окно файлового менеджера

По умолчанию окно файлового менеджера состоит из панели ярлыков слева, главного окна справа и панели адреса сверху

File Manager Window

На панели ярлыков показаны ссылки на различные каталоги в вашей системе. Первый ярлык указывает на вашу домашнюю папку, папку в которой хранится вся ваша персональная информация, папка имеет имя вашего пользователя. Второй ярлык указывает на корзину, в которой хранятся удаленные файлы, которые могут быть восстановлены позже. Третий ярлык указывает на на папку Рабочий стол, в которой хранятся файлы, видимые на рабочем столе. Четвертый ярлык указывает на корневую файловую систему-если вы новичёк в Linux/Unix, то будьте аккуратны при ее использовании. Просто кликайте по ярлыкам, для того чтобы посмотреть что внутри.

Ниже ярлыкаФайловая Система, показаны съемные носители и диски. На скриншоте выше вы можете увидеть ярлыкFloppy Driveguilabel>.

- The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the - Shortcuts Pane. This will allow you to access important folders instantly. To - remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. - To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. - Note that these actions affect only the shortcut, not the folder referenced by the shortcuts. -

- The main area will always display the contents of the current folder. Double click on - folders to enter them, and right-click on files or folders to get a context-menu offering some choices of - what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, - select one file, hold down the Shift key, and increase or decrease the selection using - the arrow keys. -

- The pathbar will always show the path you took to get to the folder you are currently - at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar - button to bring up a context-menu with some options. -

Настройка внешнего вида

- There are many ways to customize the appearance of the file manager windows. In case you do not like the - way the icons are displayed, choose ViewView as Detailed List - from the main menu to have the contents of the current folder displayed as a list. -

- You can have the file manager windows display a location bar instead of the pathbar by choosing - ViewLocation SelectorToolbar Style - from the main menu. -

- In case you prefer a treeview in the left pane, choose - ViewSide PaneTree - from the main menu. -

Видимые колонки в списке деталей

- If you prefer to display the contents of the folder as a list, using the Detailed List View, you can - customize the columns displayed in the list view. To customize the visible columns, choose - ViewConfigure Columns... from the main menu. -

Видимые колонки
Видимые колонки

- Select the columns you want to be displayed from the list of available columns. Click Move Up - or Move Down to change the order of the columns. Click Use Default to - revert your changes. -

Размер колонки

- Select the option Automatically expand columns as needed if you want the list view columns - to expand automatically if the needed to ensure the text is fully visible. -

diff -Nru thunar-1.2.3/docs/manual/html/ru/using-removable-media.html thunar-1.6.10/docs/manual/html/ru/using-removable-media.html --- thunar-1.2.3/docs/manual/html/ru/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,125 +0,0 @@ -Using Removable Media

Using Removable Media

Accessing Removable Media

- Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. -

Для подключения диска

- To mount media is to make the file system of the media available for access. When you mount media, the - file system of the media is attached as a subdirectory to your file system. -

- To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB - stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If - xfdesktop is running and configured to display File/launcher icons this - object will also be added to your desktop. -

- To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, - click on the Floppy Drive object in the side pane. The file manager will now add the file system - of the media to your file system hierarchy and display the contents of the floppy diskette in the main area. -

Для извлечения диска

- If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane - or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. - If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and - choose Unmount Volume. After a short period of time, a notification will appear to inform you - that it is now safe to remove the media or disconnect the drive from the computer. -

Уведомление об отключениеи

- However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. -

- Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file - manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also - check command line applications running in Terminal windows. -

- Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount - the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you - might lose data or cause your system to crash. -

Управление съемными дисками

Thunar также позволяет автоматически управлять дисками и съемными носителями, если пакет thunar-volman установлен в системе. Также для этого необходима поддержка HAL.

Теперь, если HAL и thunar-volman установленый в системе, вы можете включить Volume Management. Для этого откройте настройки файлового менеджера, далее выберите вкладку Дополнительно и включите Включить управление томами

- The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. -

Removable Drives and Media

- If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. -

- The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. -

Подключать сьемные диски при включении

- Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. -

- This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. -

Подключать съемные диски при включении

- Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) - when you insert the media into the drive. -

- This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. -

Просмотратра содержимого съемного диска при подключении

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

Запускать автоматически программы на новых дисках

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

Запускать автоматически программы на новых дисках

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

- The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: -

%d

- Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. -

- If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. -

%h

- Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. -

%m

- Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. -

Разрешение проблем менеджера разделов

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/ru/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/ru/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/ru/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ru/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -Working with Files and Folders

Working with Files and Folders

Открыть файлы

- When you open a file, the file manager performs the default action for that file type. For example, opening a text file - will display it in the default text editor, while opening an image file will display the image in the default image - viewer. -

Файловый менеджер проверяет расширение файла для определения его типа. Если файл не имеет расширения или оно неизвестно, файловый менеджер пытается определить тип файла по содержимому.

Действиеие по умолчанию при запуске

- To execute the default for a file, double-click on the file. For example, the default action for audio files is to - play the it with the default music playing application. In this case, you can double-click on the file to open the - file in the music player. -

- You can set Thunar preferences so that you click once on a file to execute the default - action. For information, see Настройка внешнего вида. -

Запуск нестандартных действий

- To execute actions other than the default action for a file, select the file that you want to perform an action on. - Choose the desired action from the Open With choices available in File menu - or an Open With submenu. -

Действия по добавлению

Для добавления ассоциации к файлу, делайте следующее:

  1. Выберите файл в главном окне, к которому хотите применить действие.

  2. Выберите ФайлОткрыть с помощью другого приложения... из главного меню.

  3. - Either choose an application in the Open With dialog or select Use a custom command - and browse to the program with which you wish to open this type. -

- The action you have chosen is now added to the list of actions for that particular file type. If you enabled the - Use as default for this kind of file option or there was no prior action associated with the - type, the newly added action is the default. -

- You may also add actions using the Open With button under - FileProperties.... -

Действиея по изменению

Для изменения действий ассоциированных с файлом или файловым типом выполните:

  1. В главном окне выберите файл типа, для которого вы хотите изменить ассоциированное действие.

  2. - Choose FileProperties... from the main menu. -

  3. - Select the new default action using the Open With button or add a new action by choosing - Open With Other Application... from the drop down menu. -

- To remove a previously added action for a file type, bring up the Open With dialog as described - above, right-click the action you want to remove and choose Remove Launcher. -

File Properties

- The file properties window shows more information about any file or folder in the file manager. With this window, you can also - do the following: -

  • Измените иконки для специальных файлов, таких как ярлыки и ссылки на страницы

  • Добавить или удалить эмблему для папки/файла

  • Измененить права доступа для файла или папкеи

  • Выбор приложения для открытия файлов одного типа

File Properties

Для открытияя окна свойств файла, сделайте следуующее:

  1. - Select the file or folder whose properties you want to examine or change. You cannot - select multiple items at once and display the properties that are in common to all - items currently. -

  2. Сделайте одного из:

    • Choose FileProperties... from the main menu.

    • Right-click the selected item and choose Properties... from the context menu.

    • Press Alt+Return.

diff -Nru thunar-1.2.3/docs/manual/html/sv/advanced-topics.html thunar-1.6.10/docs/manual/html/sv/advanced-topics.html --- thunar-1.2.3/docs/manual/html/sv/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -Avancerade mnen

Avancerade mnen

To Bulk Rename Files

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

Bulk Rename Files

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • Ta bort tecken.

  • Numbering files.

  • Infoga datum eller tid.

  • Insert or overwrite characters.

  • Search and replace characters.

  • Convert to uppercase, lowercase or camlcase.

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

The UNIX File System

- While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user - does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. - This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all - incarnations of UNIX, including Linux. -

Mappar och skvgar

- In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down - from a single top level folder, which is called the root directory (the term - directory is often used instead of folder) and displayed as - File System in Thunar. This means that you can get from any folder to any other by going - up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach - your target. -

- The position of any file or folder in the tree can be described by its path. The path is the - list of folders you would have to descend through to get to the target folder or file, starting from the top level - folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, - and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The - leading / in these paths represents the top level folder. -

- Every user has their own folder to hold their personal files and settings. This folder is called the home - directory and is displayed in Thunar as special icon with the users login name. The folder is similar to - the My Files folder known from Windows. The home directories of the various - users in a system are usually located below the /home folder. For example - /home/luke would be the home directory of the user with the login name - luke, while /home/jane would be - the home directory for the user with the login name jane. -

Filtyper

- You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems - today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is - one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other - operating systems had to introduce new concepts for every new technology. -

- These are the four most important types of files in the UNIX file system. -

Vanliga filer

- An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents - and video files. The term file is often used to refer to an ordinary file. -

Mappfiler

- Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a - mapping of file names to file references for every file contained within this folder. -

Symboliska lnkfiler

- A Symbolic link (often called a symlink) is a special file that contains a path to - another file in the file system. Symbolic link files therefore do not contain any useful information - themselves, but just refer to other files. -

Enhetsfiler

- As mentioned earlier (most) devices are also accessed through the file system. These special device files are - usually located in the /dev folder. For example the special file - /dev/hda represents the first IDE disk on Linux. -

diff -Nru thunar-1.2.3/docs/manual/html/sv/copyright.html thunar-1.6.10/docs/manual/html/sv/copyright.html --- thunar-1.2.3/docs/manual/html/sv/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Om Thunar

Om Thunar

- Thunar was written by Benedikt Meurer (). Visit the - Thunar website for more information. -

- This documentation was written by Benedikt Meurer (). The latest - version of this document is always available from the Thunar website. -

- This software is distributed 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. -

- 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. -

diff -Nru thunar-1.2.3/docs/manual/html/sv/customizing-thunar.html thunar-1.6.10/docs/manual/html/sv/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/sv/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -Anpassa Thunar

Anpassa Thunar

- This chapter describes how to customize certain parts of the file manager to your own needs. -

The "Send To" Menu

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

"Send To" Menu

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

The desired size of the generated thumbnail in pixels. This parameter is optional.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

- Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

- This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). -

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

- to terminate any running instance, and afterwards restart it from your launcher. -

Cleaning up Thumbnails

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

- which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. -

diff -Nru thunar-1.2.3/docs/manual/html/sv/faq.html thunar-1.6.10/docs/manual/html/sv/faq.html --- thunar-1.2.3/docs/manual/html/sv/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -Frgor och svar

Frgor och svar

- The intent of this section is to collect the quite numerous frequently asked - questions that relate to working with Thunar. If you know of a question that - is missing from this page, please file - a request. -

Why doesn't Thunar execute files marked as executable?

- For security reasons Thunar only executes files of type application/x-desktop, - application/x-executable and application/x-shellscript. For - desktop files the execution feature will only be enabled if the desktop file is of type - Application and a valid Exec line is given or of type - Link and a valid URL is given. For the other types the feature - is available if the file is marked executable for the current user. -

- Also note that for application/x-executable and application/x-shellscript, - the types of the file don't really need to match these types exactly, but it is suffice if the detected - type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for - one of the above. -

Where does Thunar store the metadata associated with files?

- Thunar associates various settings with files/folders, which we call metadata. - This metadata for all files is stored in tdb database file, which is called - the metafile. The database file is stored in - $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined - using the tdbtool, which is part of the Thunar distribution - (located in the tdb/ subdirectory). -

Where does Thunar store its preferences?

- Thunar stores the user configurable preferences (and hidden settings) in - an .ini file, which is located at - $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined - using a text editor. See docs/README.thunarrc for an - overview of the various preferences. -

How to use mouse gestures in Thunar?

- Thunar currently features basic support for so called mouse gestures - in its icon view. You can use these mouse gestures by holding down - the middle mouse button (usually the mouse wheel) while the mouse pointer is on the - background area of the icon view component (any area that is not covered by - an icon or a text). Now you can move the cursor into four directions to - perform certain actions, which are described below. -

Left - opens the previous visited folder
Up - opens the parent folder
Right - opens the next visited folder
Down - reloads the current folder

How do I assign different keyboard shortcuts?

- If you want to rebind a shortcut, Thunar supports the standard GTK+ way - of changing shortcuts: simply hover over the menu option with the mouse - pointer and press the keyboard shortcut you want to rebind it to. -

- To delete a keyboard assignment, press the Backspace key - while you are on the menu entry. -

- If the shortcut doesn't change, then you need to enable the feature in - GTK+. This can be achieved in 3 ways: -

  • - If you are running Xfce 4.3 or above then you can enable Editable - menu accelerators in the User Interface Preferences - dialog. -

  • - If you are running GNOME then you can enable Editable menu - accelerators in the Menu and Toolbars control - center dialog. -

  • - Otherwise put the following in your ~/.gtkrc-2.0 file - (create the file if it doesn't exist):

    gtk-can-change-accels=1

    -

Where does Thunar store the keyboard shortcuts?

- The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a - file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting - with ; are comments. See the GTK+ documentation for details about the - file format. -

- If you are a packager or a system administrator and want to provide a system wide default - for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you - can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. - For example, if /etc/xdg is part of $XDG_CONFIG_DIRS - (the default for most Linux distributions), you can install system wide defaults to - /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup. -

diff -Nru thunar-1.2.3/docs/manual/html/sv/index.html thunar-1.6.10/docs/manual/html/sv/index.html --- thunar-1.2.3/docs/manual/html/sv/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -Filhanteraren Thunar

Filhanteraren Thunar

Benedikt Meurer

Programutvecklare
os-cillation
Systemutveckling


- This manual describes version 1.2.0git-cc468f4 of Thunar. -

- Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 or - any later version published by the Free Software Foundation; with no - Invariant Sections, with no Front-Cover Texts, and with no Back-Cover - Texts. The complete license text is available from the Free Software Foundation. -

November 2007


Introduktion till Thunar

- Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to - be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless - options by default. Thunar is fast and responsive with a good start up time and folder load time. -

- The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the - file manager to do the following: -

  • Skapa mappar och dokument.

  • Visa dina filer och mappar.

  • Hantera dina filer och mappar.

  • Kr och hantera anpassade tgrder.

  • Kom t flyttbart media.

diff -Nru thunar-1.2.3/docs/manual/html/sv/preferences.html thunar-1.6.10/docs/manual/html/sv/preferences.html --- thunar-1.2.3/docs/manual/html/sv/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -File Management Preferences

File Management Preferences

- Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. -

- The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: -

  • The default settings for the views.

  • The default settings for the side pane.

  • The behavior of the file manager windows.

  • Advanced features of the file manager.

- Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. -

Views Preferences

- You can specify a default view, select sort options and display options. You can - also specify whether thumbnails should be displayed for file types that support - this. -

Views Preferences
View new folder using

- Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. -

Sort folders before files

- Select this option to list folders before files when you sort a folder. -

Show thumbnails

- Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. -

- See ”Thumbnailers” if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. -

Text beside icons

- Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. -

Side Pane Preferences

- You can select display options for the shortcuts pane and the tree pane. -

Side Pane Preferences

- The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. -

Ikonstorlek

- The size of the icons displayed in the side, ranging from Very Small (around - 16x16 pixels) to Very Large (around 128x128 pixels). -

Visa ikonemblem

- Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. -

Behavior Preferences

- You can select the preferred behavior to interact with the file manager. -

Behavior Preferences
Single click to active items

- Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. -

- This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. -

Double click to activate items

- Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. -

Avancerade instllningar

- You can control advanced features of the file manager. -

Avancerade instllningar
Mapprttigheter

- Choose the action that should be performed when you change the permissions of a folder in - the Properties dialog. You can choose to let Thunar - ask everytime when you change folder permissions, tell it to default to applying the new permissions - to the folder only or to apply them recursively to the folder contents as well. -

Volymhantering

- If Thunar was installed with support for HAL and the thunar-volman - package is also installed, you can enable the integrated volume manager. See ”Management of Removable Drives and Media” - for details about this feature. -

diff -Nru thunar-1.2.3/docs/manual/html/sv/support.html thunar-1.6.10/docs/manual/html/sv/support.html --- thunar-1.2.3/docs/manual/html/sv/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -Support

Support

- To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. - Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities: -

  • - Reproducible. If the developer cannot see the bug himself - to prove that it exists, he will most probably not be able to fix it at all. Every detail you - can provide helps. -

  • - Specific. The quicker the developer can isolate the problem - to a specific area, the more likely he will expediently fix it. -

- In case you want to request a new feature, please make clear why you consider it a worth - addition for the application. It is more likely that a new feature gets added if you provide - good arguments for the feature. It will increase the chance of addition even more if you - provide a patch that implements the requested feature, but make sure that you read the file - HACKING - - especially the section labeled Coding Style - before you start hacking - up the source. -

- Else, if you have questions about the use or installation of this software, please ask on the - thunar-dev mailing - list or point your IRC client to irc.freenode.net, - join the channel #thunar and ask for help. -

diff -Nru thunar-1.2.3/docs/manual/html/sv/the-file-manager-window.html thunar-1.6.10/docs/manual/html/sv/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/sv/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -The File Manager Window

The File Manager Window

- By default the file manager window consists of a shortcut pane on the left side, the main area on the right - and a pathbar above the main area. -

File Manager Window

- The Shortcut Pane provides shortcuts to different folders on your system. The first - shortcut will lead to your Home Folder, the folder you store all your personal data, - and will therefore have the name of the current user. The second shortcut will take you to the trash bin, - which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop - Folder, which contains the files and folders that are displayed on the desktop. The fourth - shortcut will take you to the root of your file system - you may want to explore it a bit, even though - it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is - inside. -

- Below the File System shortcut, the removable drives and media will be displayed. In - the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts - to access the data stored on the removable drives and media. See ”Using Removable Media” - for further details. -

- The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the - Shortcuts Pane. This will allow you to access important folders instantly. To - remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. - To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. - Note that these actions affect only the shortcut, not the folder referenced by the shortcuts. -

- The main area will always display the contents of the current folder. Double click on - folders to enter them, and right-click on files or folders to get a context-menu offering some choices of - what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, - select one file, hold down the Shift key, and increase or decrease the selection using - the arrow keys. -

- The pathbar will always show the path you took to get to the folder you are currently - at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar - button to bring up a context-menu with some options. -

Anpassa utseendet

- There are many ways to customize the appearance of the file manager windows. In case you do not like the - way the icons are displayed, choose ViewView as Detailed List - from the main menu to have the contents of the current folder displayed as a list. -

- You can have the file manager windows display a location bar instead of the pathbar by choosing - ViewLocation SelectorToolbar Style - from the main menu. -

- In case you prefer a treeview in the left pane, choose - ViewSide PaneTree - from the main menu. -

Visible Columns in the Detailed List View

- If you prefer to display the contents of the folder as a list, using the Detailed List View, you can - customize the columns displayed in the list view. To customize the visible columns, choose - ViewConfigure Columns... from the main menu. -

Synliga kolumner
Synliga kolumner

- Select the columns you want to be displayed from the list of available columns. Click Move Up - or Move Down to change the order of the columns. Click Use Default to - revert your changes. -

Column Sizing

- Select the option Automatically expand columns as needed if you want the list view columns - to expand automatically if the needed to ensure the text is fully visible. -

diff -Nru thunar-1.2.3/docs/manual/html/sv/using-removable-media.html thunar-1.6.10/docs/manual/html/sv/using-removable-media.html --- thunar-1.2.3/docs/manual/html/sv/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,133 +0,0 @@ -Using Removable Media

Using Removable Media

Accessing Removable Media

- Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. -

To Mount Media

- To mount media is to make the file system of the media available for access. When you mount media, the - file system of the media is attached as a subdirectory to your file system. -

- To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB - stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If - xfdesktop is running and configured to display File/launcher icons this - object will also be added to your desktop. -

- To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, - click on the Floppy Drive object in the side pane. The file manager will now add the file system - of the media to your file system hierarchy and display the contents of the floppy diskette in the main area. -

To Eject Media

- If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane - or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. - If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and - choose Unmount Volume. After a short period of time, a notification will appear to inform you - that it is now safe to remove the media or disconnect the drive from the computer. -

Unmount notification

- However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. -

- Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file - manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also - check command line applications running in Terminal windows. -

- Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount - the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you - might lose data or cause your system to crash. -

Management of Removable Drives and Media

- Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on - your system. Note however that this feature requires HAL support. -

- Now, if HAL support is available and thunar-volman is installed on your system, you - can choose to enable the Volume Management feature of Thunar. Therefore, open the file - manager preferences, go to the Advanced page and check the Enable Volume - Management button. -

- The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. -

Removable Drives and Media

- If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. -

- The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. -

Mount removable drives when hot-plugged

- Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. -

- This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. -

Mount removable media when inserted

- Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) - when you insert the media into the drive. -

- This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. -

Browse removable media when inserted

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

Auto-run programs on new drives and media

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

Auto-open files on new drives and media

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

- The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: -

%d

- Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. -

- If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. -

%h

- Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. -

%m

- Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. -

Troubleshooting the Volume Manager

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/sv/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/sv/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/sv/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/sv/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -Arbeta med filer och mappar

Arbeta med filer och mappar

Opening Files

- When you open a file, the file manager performs the default action for that file type. For example, opening a text file - will display it in the default text editor, while opening an image file will display the image in the default image - viewer. -

- The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the - file manager examines the contents of the file. -

Executing the Default Action

- To execute the default for a file, double-click on the file. For example, the default action for audio files is to - play the it with the default music playing application. In this case, you can double-click on the file to open the - file in the music player. -

- You can set Thunar preferences so that you click once on a file to execute the default - action. For information, see ”Behavior Preferences”. -

Executing Non-Default Actions

- To execute actions other than the default action for a file, select the file that you want to perform an action on. - Choose the desired action from the Open With choices available in File menu - or an Open With submenu. -

Adding Actions

- To add actions associated with a file type, perform the following steps: -

  1. - In the main area, select a file of the type to which you want to add an action. -

  2. - Choose FileOpen With Other Application... - from the main menu. -

  3. - Either choose an application in the Open With dialog or select Use a custom command - and browse to the program with which you wish to open this type. -

- The action you have chosen is now added to the list of actions for that particular file type. If you enabled the - Use as default for this kind of file option or there was no prior action associated with the - type, the newly added action is the default. -

- You may also add actions using the Open With button under - FileProperties.... -

Modifying Actions

- To modify the actions associated with a file or file type, perform the following steps: -

  1. - In the main area, select a file of the type for which you want to modify the action. -

  2. - Choose FileProperties... from the main menu. -

  3. - Select the new default action using the Open With button or add a new action by choosing - Open With Other Application... from the drop down menu. -

- To remove a previously added action for a file type, bring up the Open With dialog as described - above, right-click the action you want to remove and choose Remove Launcher. -

Filegenskaper

- The file properties window shows more information about any file or folder in the file manager. With this window, you can also - do the following: -

  • - Change the icon for special files, such as application launchers and URL links. -

  • - Add or remove emblems for a file or folder. -

  • - Change the UNIX file permissions for a file or folder. -

  • - Choose which application is used to open a file and other files of the same type. -

Filegenskaper

- To open the file properties window, perform the following steps: -

  1. - Select the file or folder whose properties you want to examine or change. You cannot - select multiple items at once and display the properties that are in common to all - items currently. -

  2. - Do one of the following: -

    • Choose FileProperties... from the main menu.

    • Right-click the selected item and choose Properties... from the context menu.

    • Tryck p Alt+Return.

    -

diff -Nru thunar-1.2.3/docs/manual/html/tr/advanced-topics.html thunar-1.6.10/docs/manual/html/tr/advanced-topics.html --- thunar-1.2.3/docs/manual/html/tr/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Gelişmiş Başlıklar

Gelişmiş Başlıklar

Toplu Yeniden Adlandırma İşlemi

oklu dosyaları yeniden adlandırma işlemi birden fazla dizin ve dosyayı yeniden adlandırmak iin kullanılmaktadır. Thunar oklu yeniden adlandırma desteği sunmaktadır. Thunar -B komutu ile yapılabileceği gibi, programın iinden de yapılabilir. Programın iinden yapmak iin birden fazla dosyayı seip F2 tuşuna basabilirsiniz veya menden DzenleYeniden Adlandır... ğesini seebilirsiniz.

oklu dosyaları yeniden adlandırma

oklu dosyaları yeniden adlandırma işlemi dosya isimleri veya uzantılarını değiştirmeye ya da her ikisini de değiştirmenizi sağlar. Thunar şu zellikleri sunmaktadır:

  • Karakter silme.

  • Numaralandırma.

  • Tarih ve Saat Ekleme

  • Ykleme ve stne Yazma

  • Arama ve Değiştirme

  • Byk ve kk harfe dnştrme

İlave oklu dosyaları yeniden adlandırma betikleri eklenti olarak kurulabilir. Thunar eklentileri sayfasını kontrol edebilirsiniz. Thunar Project Wikisi bu konuda daha aıklayıcı bilgileri barındırmaktadır.

UNIX Dosya Sistemi

Thunar dosya yneticisi sadece işini yaparak kullanıcıya ekstra bir işlem yaptırmamaktadır. Ancak yine de kullanıcının dosya sistemi hakkında bilgi sahibi olması beklenmektedir. Bu blm UNIX ve Linux da dahil olmak zere trevlerinin dosya sistemi sistemi hakkında bilgi vermeye yneliktir.

Dizinler ve Yollar

UNIX dosya sisteminde btn dizinler basit bir st dizine bağlıdır. Bu dizin kk dizin olarak adlandırılmaktadır ve Thunar zerinde Dosya Sistemi olarak grntlenmektedir. Dosya sistemi zerinde gitmek istediğiniz dizine buradan ulaşabilirsiniz.

Herhangi bir dosya veya dizin yoluna gre tanımlanabilir. Yol, hedef dizin ya da dosyaya ulaşmak iin zerinden getiğiniz kısıma verilen isimdir. rneğin, /home/luke dizini home dizininin alt dizinidir. /home/luke/myfile.txt dosyasına erişim iin, kk dizinden home dizininine oradan da luke dizinine geilmektedir. Bu da dosya yolunu ifade etmektedir.

Her kullanıcı kişisel dosyaları ve ayarları iin kendi dizinine sahiptir. Bu dizin ev dizini olarak adlandırılmaktadır. Thunar her kullanıcı iin zel bir simge ile bu ev dizinini gstermektedir. Ev dizini Windows işletim sistemindeki Belgelerim dizini ile benzerlik taşımaktadır. Ev dizinleri /home dizini altında yer alır ve her kullanıcının ismine gre /home/kullanıcıismi şeklinde dizin oluşturulur.

Dosya Trleri

UNIX ve benzeri sistemlerde herşeyin bir dosya olduğunu duymuş olabilirsiniz. Bu birok gncel UNIX sistemi iin doğrudur. Aygıtlar bile zel dosyalar biimindedir. İlk bakışta ilgi ekici bir zellik gibi grnmese de bu UNIX ve benzeri işletim sistemlerinin gl bir zelliğidir. Diğer işletim sistemleri yeni teknolojiler iin yeni konseptler gerektirse bile UNIX ve benzeri işletim sistemlerinin byle bir konsept yenilemesine ihtiyacı bulunmamaktadır.

UNIX dosya sisteminde drt nemli dosya tr bulunmaktadır:

Sıradan Dosyalar

Sıradan dosyalar, metin dosyası, program veya başka trl veri olabilir. Başka trl veri, resim dosyaları, oklu ortam dosyaları, ofis dokmanları olabilir. dosya sıradan dosyaları nitelemek iin kullanılır.

Dizin Dosyaları

UNIX dosya sisteminde dizinler de birer dosyadır. Dizin başka dosyaları da iinde barındırabilen bir tr dosyadır.

Sembolik Bağ Dosyaları

Sembolik bağ dosyaları (genellikle symlink olarak isimlendirilir) başka bir dosya yoluna işaret eden zel dosyalardır. Sembolik bağ dosyaları nemli bilgi iermez ve sadece diğer dosyalara işaret ederler.

Aygıt Dosyaları

Daha nce de belirtildiği gibi aygıtlar da dosya olarak erişime aıktır. Bu zel aygıt dosyaları /dev dizini altında bulunur. rnek verecek olursak, /dev/hda Linux zerinde birincil IDE disk anlamına gelmektedir.

diff -Nru thunar-1.2.3/docs/manual/html/tr/copyright.html thunar-1.6.10/docs/manual/html/tr/copyright.html --- thunar-1.2.3/docs/manual/html/tr/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar hakkında

Thunar hakkında

Thunar Benedikt Meurer () tarafından geliştirilmektedir. Daha fazla bilgi iin Thunar websitesini ziyaret edebilirsiniz.

Bu dokmanın zgn srm Benedikt Meurer () tarafından yazılmıştır. Bu dokmanın gncel srmne Thunar websitesi zerinden ulaşabilirsiniz.

Bu yazılım zgr Yazılım Vakfı tarafından yayınlanan GNU Genel Kamu Lisansı altında dağıtılmaktadır.

Bu yazılımla birlikte GNU Genel Kamu Lisansının bir kopyasını almış olmalısınız, eğer almadıysanız, zgr Yazılım Vakfına yazabilirsiniz; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/tr/customizing-thunar.html thunar-1.6.10/docs/manual/html/tr/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/tr/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -Thunar'ı zelleştirme

Thunar'ı zelleştirme

Bu blmde dosya yneticisini kendi istekleriniz doğrultusunda nasıl zelleştireceğiniz anlatılmaktadır.

"Gnder" Mens

Thunar dosya ve dizinleri belirli noktalara taşımak iin Gnder mensn barındırmaktadır. Gnder mensne erişmek iin DosyaGnder seeneğini kullanabileceğiniz gibi, gndermek istediğiniz dizin veya dosyaya sağ tıklayarak Gnder seeneğini kullanmanızı sağlamaktadır.

"Gnder" Mens

ntanımlı olarak Gnder mens Masast (Bağlantı Oluştur) seeneği ile belirtilen dosya veya dizin iin masastnde kısayol oluşturmaktadır. Ayrıca, eğer Kısayol blm etkin ise, o dizin iin kısayol blmnde kısayol oluşturmak iin Yan pencere gz (Kısa yol yarat) seeneğini sunmaktadır. te yandan, ayrılabilir ortamlara da dosya gnderme işlemi bu men yardımıyla yapılabilir. Thunar otomatik olarak ayrılabilir ortamı da gnderilebilir hedefler arasına almaktadır.

Thunar ayrıca E-posta eklentisi ile menye eklenen E-posta alan seeneği ile e-posta programında alıcısı tanımlanmış olmakla birlikte dosyayı eklenmiş olarak tanımlayan bir zellik sunmaktadır. Eğer seim en az bir dizin ieriyorsa bunu ZIP arşivine koyup o şekilde hazırlamaktadır. Eğer birden ok dosya gnderilecekse ve bunların toplam boyutu 200Kib zerinde ise, kullanıcıya dosyaların ZIP arşivine koyması iin onay istemekte ve bu dosyaları ZIP arşivine koyup gndermektedir.

Thunar uygulamasının diğer zellikleri gibi Gnder mens desktop entry files standardına uygun olmak kaydıyla genişletilebilir. Bu dosyalar $XDG_DATA_DIRS/Thunar/sendto/ dizinine kopyalanmalıdır. ($XDG_DATA_DIRS değişkeni hakkında bilgi almak iin XDG Base Directory Specification sayfasını inceleyebilirsiniz)

MimeType ile hedef .desktop dosyası tanımlanmaktadır ve bu tanımlama sonucunda gerekleştirilecek işlem Gnder mensnde yer alacaktır. Mesela, Flickr sitesine JPEG biimindeki resimleri yklemek iin, MimeType=image/jpeg; değeri kullanılmalıdır. Eğer MimeType belirlemezseniz yapmak istediğiniz işlem btn dosyalar iin geerli olacaktır.

rnek bir postr uygulaması aşağıdaki rnekte gsterilmektedir.

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

Bu dosyayı ~/.local/share/Thunar/sendto/ altına kopyalarsanız (dizin yok ise oluşturmalısınız), JPEG dosyaları iin Gnder mensnde Flickr seeneğini grebilirsiniz.

Thunar Project Wikisi Gnder mens iin birok rnek barındırmaktadır. Kendi oluşturduğunuz rnekleri de bu wiki sayfasında paylaşabilirsiniz.

nizleme Oluşturucular

Thunar kk uygulamalar yardımıyla belirli dosyalar iin nizlemeler oluşturmakta ve dosya ieriğinin nizlemesini gstermektedir. Bu kk aralar nizleme oluşturucusu olarak isimlendirilmektedir. Thunar ntanımlı olarak resimler ve yazıtipleri iin nizleme desteği sunmaktadır. Ayrıca gconf desteği ile kurulmuşsa GNOME iin kullanılan nizleme oluşturucular da kullanılabilir. Kullanıcılar bu nizleme oluşturucuların fonksiyonunu genişletmek isteyebilir.

nizleme oluşturucu yazmak istiyorsanız, bir girdi ve Thumbnail Management Standard adresinde belirtilen standartlara uygun bir PNG ıktı dosyası veren bir uygulama alıştırmalısınız. Ayrıca programınız nizleme boyutunu ayarlamanızı da sağlamalıdır. Byk bir nizleme dosyası dosya listeleme işlemini yavaşlatabilir.

nizleme dosyaları oluşturma işlemi bittikten sonra, nizleme oluşturu dosyanızı kayıt etmelisiniz bylece Thunar onu bulup kullanabilecektir. Yapmanız gereken tek şey, nizleme oluşturucusu iin bir aıklama dosyasını (yani .desktop dosyası) $XDG_DATA_DIRS/thumbnailers/ altına koymaktır.

nizleme Oluşturucu Dosya Biimi

nizleme oluşturucu aıklaması Desktop Entry Format standardını kullanmaktadır.

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

Version ve Encoding Desktop Entry Specification standartları tarafından himaye edilmektedir. Yukarıdaki rnekteki değerleri kullanmanız yeterlidir. Type kısmı mutlaka X-Thumbnailer değerini iermelidir, aksi takdirde nizleme oluşturucunuz tanınmayacaktır. Name değeri nizleme oluşturucunuzu tanımlamaktadır.

X-Thumbnailer-Exec kısmı alıştırılacak nizleme oluşturucusunu tanımlamak iin kullanılmaktadır. Tanınan alan kodları şunlardır:

%i

nizleme oluşturacak girdi dosyasının yolu. nizleme oluşturucusunun alıştırılacağı bir dizine bağlı olabileceği gibi mutlak yol da kullanılabilir.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

Oluşturulacak nizleme dosyasının piksel boyutu. Bu parametre isteğe bağlıdır.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

%o, %i ve %u değişkenlerini barındırmalıdır, aksi takdirde nizleme oluşturucusu bir işe yaramayacaktır.

nizleme iin MimeType - noktalı virgl ile ayrılan - MIME trlerini listelemektedir.

rnek EPS nizleyicisi

Bu rnek .eps dosyaları iin nizleme dosyasının nasıl oluşturulacağını gstermektedir. İşlem iin ImageMagick paketi ile birlikte gelen convert komutu kullanılmaktadır. ncelikle convert ile istenilen boyutta bir nizleme oluşturulacaktır.

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

Bu betiği eps-thumbnailer ismi ile kaydedip, alıştırılabilir yaptıktan sonra /usr/local/bin altına kopyalamalısınız.

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

Daha sonra, eps-thumbnailer.desktop isminde bir aıklama dosyası oluşturup şu şekilde grnmesini sağlamalısınız:

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

Bu dosya /usr/local/share/thumbnailers altına kopyalanmalıdır (eğer bu dizin yoksa oluşturmalısınız)

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

eps-thumbnailer.desktop dosyası zel anahtar olan ve yararlı bir nizleme oluşturmanızı sağlayacak TryExec zelliğini kullanmaktadır. Eğer convert belirtilmezse betik bir işe yaramayacaktır.

Son aşama ise, nizleme nbelleğini tekrar oluşturmak iindir, bylece Thunar nizlemeyi alacaktır. nizleme nbelleği $XDG_CACHE_HOME/Thunar/thumbnailers.cache altında bulunmaktadır. nizleme nbelleği Thunar tarafından otomatik olarak tekrar oluşturulmaktadır ancak isterseniz thunar-vfs-update-thumbnailers-cache-1 aracı ile tekrar oluşturulmasını sağlayabilirsiniz. Bu ara libexec ierisinde yer alır. Eğer Thunar /usr altında kurulu ise, bu şu şekilde alıştırabilirsiniz:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

Bu komutu mutlaka kendi kullanıcınızdan alıştırmalısınız, eğer root olarak alıştırırsanız, nizleme dosyaları sistem geneline yayılacaktır.

Eğer Thunar FAM veya Gamin servislerinden herhangi birisinin desteği ile derlenmişse otomatik olarak nizlemeleri gsterecektir. Gstermez ise Thunar'ı tekrar başlatmak iin şu komutu verebilirsiniz:

$ Thunar -q

komutunu vererek alışan uygulamayı kapatıp, tekrar alıştırabilirsiniz.

nizlemeyi Temizleme

Thumbnail Management Standard ilkelerine uyarak oluşturulan nizlemeler ~/.thumbnails/ dizininde barındırılmaktadır. Oluşturulan nizlemeleri test etmek iin, nizleme belleğini temizlemek iin şu komutu verebilirsiniz:

$ rm -rf ~/.thumbnails/

bylece ev dizininizde yer amış olursunuz. Btn bilgiler sisteminizde bulunan dosyalar tarafından oluşturulduğu iin herhangi bir veri kaybı yaşamazsınız.

diff -Nru thunar-1.2.3/docs/manual/html/tr/faq.html thunar-1.6.10/docs/manual/html/tr/faq.html --- thunar-1.2.3/docs/manual/html/tr/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Sıka Sorulan Sorular

Sıka Sorulan Sorular

Bu kısımda Thunar hakkında sıka sorulan soruları ve cevaplarını bulacaksınız. Eğer bu sayfada yer almasını istediğiniz bir soru var ise, talep etmeniz yeterlidir.

Thunar neden alıştırılabilir olarak işaretlenmiş dosyaları alıştırmıyor?

Gvenlik nedeniyle Thunar sadece application/x-desktop, application/x-executable ve application/x-shellscript dosya trlerini alıştırmaktadır. Desktop dosyalarının alıştırılması iin dosya da geerli Application, Exec ve URL değerleri yer almalıdır. Diğer dosya trleri iin kullanıcı dosyayı alıştırılabilir olarak işaretlemelidir.

Ayrıca application/x-executable ve application/x-shellscript değerleri iin, dosyanın bu trlere uymasına gerek yoktur, tanımlanmış bir tr bunlara uyuyorsa veya bu değerler iin MIME tr belirtilmiş ise, bu yeterlidir.

Thunar dosyalara ilişkin stveriyi nerede tutuyor?

Thunar, stveri adı verilen, dosya ve dizinler iin belirlenen ayarları, bir tdb veritabanı dosyasında barındırmaktadır ve bu veritabanı dosyasına stdosya adı verilmektedir. Bu dosya $XDG_CACHE_HOME/Thunar/metafile.tdb altında bulunmaktadır ve tdbtool aracı ile incelenebilir.

Thunar ayarlarını nerede saklamaktadır?

Thunar kullanıcı tarafından yapılandırılabilen ayar dosyalarını bir .ini dosyası olarak $XDG_CONFIG_HOME/Thunar/thunarrc altında saklamaktadır ve herhangi bir metin editr ile incelenmeye msait bir şekilde sunmaktadır.

Thunar dosya yneticisinde fare hareketleri nasıl kullanılır?

Thunar şimdilik temel fare hareketlerini simge grnmnde sunmaktadır. Bu fare hareketlerini farenizin orta tuşuna (genelde tekerlek) basılı tutarak drt farklı yne hareket ettirerek kullanabilirsiniz. Her ynn farklı bir işlemi vardır. Bunlar:

Sol - bir nceki dizini aar
Yukarı - ana dizini aar
Sağ - bir sonraki dizini aar
Aşağı - mevcut dizini tekrar ykler

Farklı klavye kısayollarını nasıl atayabilirim?

Thunar bir kısayolu değiştirmek iin GTK+ yntemini kullanır. Fare işaretisi ile men seeneğinin stne gelip istediğiniz klavye kısayoluna basmanız yeterlidir.

Klavye kısayolunu silmek iin men ğesinin zerinde iken Backspace tuşuna basmanız yeterlidir.

Eğer kısayol değişmez ise, bu zelliği GTK+ iinde ayarlamanız gerekir. Bu 3 yolla mmkndr:

  • Eğer Xfce 4.3 ve st bir srmn kullanıyorsanız, Kullanıcı Arayz Ayarlarında bulunan Dzenlenebilir men hızlandırıcıları seeneğini işaretleyebilirsiniz.

  • GNOME kullanıyorsanız, kontrol panelindeki Men ve Aralar blmnde Dzenlenebilir Men Hızlandırıcı zelliğini etkinleştirebilirsiniz.

  • Ya da ~/.gtkrc-2.0 dosyanıza (eğer dosya yok ise oluşturmalısınız) şu satırı ekleyebilirsiniz:

    gtk-can-change-accels=1

Thunar klavye kısayollarını nerede saklamaktadır?

zel klavye kısayolları standart GTK+ map biiminde $XDG_CONFIG_HOME/Thunar/accels.scm dosyasında saklanmaktadır. ; ile başlayan satırlar yorum satırlarıdır. Bu dosya biimi hakkında detaylı bilgi iin GTK+ belgelerini inceleyebilirsiniz.

Eğer bir paketi veya sistem yneticisi iseniz ve sistem genelinde klavye kısayolları atamak istiyorsanız, bu işlem Thunardaki ntanımlı kısayollardan farklıdır. $XDG_CONFIG_DIRS dizinlerinden herhangi birinde Thunar/accels.scm dosyasını oluşturabilirsiniz. Mesela, /etc/xdg dizini eğer $XDG_CONFIG_DIRS olarak tanımlanmışsa (oğu Linux dağıtımı iin varsayılandır), sistem genelinde ntanımlıları /etc/xdg/Thunar/accels.scm iinde belirleyebilirsiniz. Thunar ilk aılışta bu dosyadaki kısayolları ykleyecektir.

diff -Nru thunar-1.2.3/docs/manual/html/tr/index.html thunar-1.6.10/docs/manual/html/tr/index.html --- thunar-1.2.3/docs/manual/html/tr/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar Dosya Yneticisi

Thunar Dosya Yneticisi

Benedikt Meurer

Yazılım geliştiricisi
os-cillation
Sistem geliştirme


Bu kılavuz Thunar programının 1.2.0git-cc468f4 srmne yneliktir.

Bu dokmanın dağıtımı, kopyalanması ve/veya dzenlenmesi GNU zgr Belgeleme Lisansı 1.1 srm ve daha sonraki srmleri de dahil olmak zere, ancak değişmesi imkansız biimde olmamak kaydı ile serbesttir. Lisansın tamamına zgr Yazılım Vakfı sitesinden ulaşabilirsiniz.

November 2007


Thunar programı hakkında

Thunar, Xfce Masast Ortamı iin geliştirilmiş yeni ve modern bir dosya yneticisidir. Hızlı ve kolay bir kullanım sunmak iin tasarlanmıştır. Arabirimi sade ve kolay ğrenilebilecek niteliktedir ve kesinlikle kafa karıştırıcı ve gereksiz seenekleri ntanımlı olarak sunmamaktadır. Thunar dosya yneticisinin aılışı ve dosya listeleme işlemi gayet hızlıdır.

Thunar dosya yneticisi, entegre bir erişim suretiyle dosyalarınıza ve programlarınıza ulaşmanızı sağlar. Dosya yneticisini şu işlemler iin kullanabilirsiniz:

  • Dizin ve dokman oluşturma.

  • Dosyaları ve dizinleri gsterimi.

  • Dosya ve dizin ynetimi.

  • zel işlemlerin alıştırılması ve ynetimi.

  • Ayrılabilir ortam erişimi.

diff -Nru thunar-1.2.3/docs/manual/html/tr/preferences.html thunar-1.6.10/docs/manual/html/tr/preferences.html --- thunar-1.2.3/docs/manual/html/tr/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Dosya Ynetimi Seenekleri

Dosya Ynetimi Seenekleri

Dosya Yneticisi Tercihleri mensn Thunar dosya yneticisini ayarlamak iin kullanabilirsiniz. Tercihler penceresini amak iin menden DzenleTercihler... seeneğine tıklamalısınız ya da Xfce4 Ayarları mensndeki Dosya Yneticisi ğesini kullanmalısınız.

Dosya Yneticisi Tercihleri drt blme ayrılmıştır ve her blm değişik seenekler barındırmaktadır ve her biri aşağıdaki blmde aıklanacaktır. Tercihleri şu kategoriler altında dzenleyebilirsiniz:

  • ntanımlı grnm ayarları.

  • Yan pencere blm ayarları.

  • Dosya yneticisi pencerelerinin davranışı.

  • Dosya yneticisi gelişmiş zellikleri.

Thunar ayrıca birok gizli seenek barındırır ancak men pencerelerini basit tutmak amacıyla bunları Tercihler penceresinde gstermemektedir. README.thunarrc dosyasını okuyarak bu gizli seenekler hakkında bilgi sahibi olabilirsiniz.

Grnt Seenekleri

ntanımlı grnm belirleyebilir, sıralama seeneklerini ve grnm seeneklerini dzenleyebilirsiniz. Ayrıca dosya trlerinin nizlemesinin gsterilip gsterilmeyeceğini belirleyebilirsiniz.

Grnt Seenekleri
Yeni dizinleri şununla listele

Dizinler iin ntanımlı grnm belirlemenizi sağlar. Yeni bir pencere atığınızda belirlediğiniz grnm kullanılacaktır. Bu simge grnm, detaylı liste veya sıralı liste biiminde olabilir. Ayrıca nceki Aktif Grnm seeneği ile en son kullandığınız grnm kullanılabilir.

Dizinleri dosyalardan nce listele

Bu seeneği eğer dizinlerin dosyalardan nce gsterilmesini istiyorsanız kullanabilirsiniz.

Kk resimleri gster

Bu seeneği resim dosyalarının kk resimlerini gstermek iin kullanabilirsiniz. Dosya yneticisi her bir dizin iin kk resim dosyalarını kullanıcının ev dizinindeki .thumbnails dizininde barındırmaktadır.

Eğer temel kk resim fonksiyonlarını daha ok dosya desteği ile birlikte geliştirmek istiyorsanız, “nizleme Oluşturucular” bağlantısını incelemeniz gerekmektedir.

Simgelerin yanında yazı

Bu seeneği dosya ve dizin isimlerini dosya simgelerinin altında gstermek yerine yanında gstermek iin kullanabilirsiniz.

Yan Pencere Gz Tercihleri

Bu kısımda yan pencere gz ve ağa grnm tercihlerini ayarlayabilirsiniz.

Yan Pencere Gz Tercihleri

Yan pencere gz ntanımlı olarak sistem dizinlerinize kısayolları barındırır veya ayarlarsanız ağa grnmn kullanır. Bu blmde kısayolların ve ağa grnmn simge boyutunu ayarlayabilirsiniz. Ayrıca amblemlerin gsterilip gsterilmeyeceğini belirleyebilirsiniz.

Simge Boyutu

Yan gzde gsterilecek simge boyutunu ok Kk (16x16 piksel boyutlarında) değeri ile ok Byk (128x128 piksel boyutlarında) değeri arasında ayarlayabilirsiniz.

Simge Amblemlerini Gster

Bu seeneği yan pencere gznde amblemleri gstermek iin kullanabilirsiniz. Dizinlere amblem belirlemek iin zellikler mensn kullanabilirsiniz. Bu işlemi gerekleştirebilmek iin, amblem atamak istediğiniz dizini seip menden Dosyazellikler... ğesine tıklayabilir veya dizine sağ tıklayıp aılan menden zellikler... ğesine tıklayabilirsiniz.

Davranış Tercihleri

Bu seenek yardımı ile dosya yneticisinin dosya ve dizinler ile etkileşimini dzenleyebilirsiniz.

Davranış Tercihleri
ğeleri aktif etmek iin tek tıklama

Bu seeneği eğer tek tıklama ile dosyaların işlemlerini gerekleştirmek istiyorsanız kullanabilirsiniz. Bu seeneği setiğiniz takdirde, o dosyanın zerine geldiğinizde ğenin isminin altı izilecektir ve kısa bir sre gecikmeden sonra otomatik olarak seilecektir.

Gecikme sresini aşağıdan belirleyebilirsiniz. Ayrıca aktif değil seeneğinin zerine getirerek otomatik seimi kapatabilirsiniz.

ğeleri aktif etmek iin ift tıklama

Bu seenek yardımı ile bir dosya iin tanımlanan işlemi ift tıklama ile gerekleştirebilirsiniz. Ayrıca ğeyi tek tıklama ile seebilirsiniz.

Gelişmiş Seenekler

Dosya yneticisinin gelişmiş zelliklerini kullanabilirsiniz.

Gelişmiş Seenekler
Dizin İzinleri

Bir dizinin izinlerini değiştirmek iin zellikler mensn kullanabilirsiniz. Thunar dosya yneticisini dizin izinlerini değiştirirken her zaman sizden onay istemesini, sadece o dizinde değiştirmesini veya o dizinin alt dizinlerinin izinlerini de değiştirmesi iin ayarlayabilirsiniz.

Birim Ynetimi

Thunar eğer HAL desteği ile kurulmuşsa ve thunar-volman paketi de kurulu ise, entegre blm yneticisini de kullanabilirsiniz. Konu hakkında detaylı bilgiye ulaşmak iin “Ayırılabilir Src ve Ortam Ynetimi” sayfasını inceleyebilirsiniz.

diff -Nru thunar-1.2.3/docs/manual/html/tr/support.html thunar-1.6.10/docs/manual/html/tr/support.html --- thunar-1.2.3/docs/manual/html/tr/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Destek

Destek

Hata kaydı girmek veya bir iyileştirme nerisinde bulunmak iin http://bugzilla.xfce.org/ adresindeki hata takip sistemini kullanabilirsiniz. Yararlı bir hata kaydının iki unsuru vardır:

  • Tekrarlanabilir olması. Eğer geliştirici byle bir hatanın olduğunu kanıtlayamazsa, bu hatayı kapatamaz.

  • Spesifik olması. İyi bir hata kaydı btn detayların verildiği bir hata kaydıdır. Bylece geliştirici hatayı zmede daha az zaman harcayacaktır ve kolayca hatayı zebilecektir.

Eğer bir iyileştirme nerisinde bulunursanız, bunun nasıl bir yenilik getireceğini ve niin yer alması gerektiğini aıklamanız gerekmektedir. Bylece eklenme şansı yksek olacaktır. Ayrıca eğer geliştirici iseniz, iyileştirmelerinizi yama olarak gnderebilirsiniz. Ancak HACKING belgesini, zellikle Coding Style ile ilgili kısmı okumalısınız.

Eğer başka sorularınız varsa bunları thunar-dev tartışma listesinde veya irc.freenode.net zerinde bulunan #thunar kanalında sorabilirsiniz.

diff -Nru thunar-1.2.3/docs/manual/html/tr/the-file-manager-window.html thunar-1.6.10/docs/manual/html/tr/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/tr/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Dosya Yneticisi Penceresi

Dosya Yneticisi Penceresi

Dosya yneticisi ntanımlı olarak sol blmde bir kısayol kısmı ve sağ kısımda bulunan esas alan ve onun stndeki yol bilgisini gsteren adres satırından ibarettir.

Dosya Yneticisi Penceresi

Kısayol Blm sisteminizdeki eşitli dizinlere kısayol atamanızı sağlar. Listedeki ilk kısayol, kullanıcınızın btn kişisel dosyalarının bulunduğu Ev dizininize ulaşmanızı sağlar. İkinci kısayol ise, silinen dosyaların yer aldığı ve isterseniz silinen dosyaları geri alabileceğiniz p kutusuna erişimi sağlar. nc kısayol ise, masastnde bulunan dosya, dizinler ve kısayolları barındıran Masast dizinine ulaşmanız iindir. Drdnc kısayol ise, kk dizinine ulaşmanızı sağlar - eğer yeni bir Linux veya Unix kullanıcısı iseniz, kk dizini keşfetmek heyecanlı olabilir. Değişik dizinlere tıklayın ve ierisinde ne olduğunu grn.

Dosya Sistemi kısayolu altında, kaldırılabilir srcler ve ortam bulunmaktadır. Yukarıdaki ekran grntsnde, Disket srcs kısayolunu grebilirsiniz. Bu kısayollara tıklayarak kaldırılabilir srcler ve ortamlardaki verilere ulaşabilirsiniz. Daha detaylı bilgi iin “Kaldırılabilir Ortam Kullanımı” sayfasını inceleyebilirsiniz.

Diğer kısayollar ise kullanıcı tanımlı kısayollardır. Kendi kısayolunuzu belirlemek iin yapmanız gereken kısayolunu oluşturmak istediğiniz dizini kısayol kısmına srklemektir. Bylece nemli dizinlerinize hemen ulaşabilirsiniz. Daha nce oluşturduğunuz bir kısayolu silmek iin ise, kısayola sağ tıklayıp Kısa Yolu Kaldır seeneğine tıklamanız yeterlidir. Kısayolunuzun ismini değiştirmek iin, kısayola sağ tıklayıp, Kısa Yolu Yeniden Adlandır seeneğine tıklamalısınız. Bu işlem sadece kısayol ile ilgilidir, kısayolunu oluşturduğunuz dizin zerinde herhangi bir işlem gerekleştirmemektedir.

Ana blm her zaman mevcut dizindeki ieriği gsterir. Dizinlere girmek iin ift tıklamanız gerekmektedir ve dosya ve dizinler zerinde işlem yapabilmek iin sağ tıklamanız gerekmektedir. Sağ tıkladığınız zaman aılan mende dosya veya dizine dair işlemleri grebilirsiniz. Birden ok dosyayı semek iin, farenin sol tuşuna basılı tutarak toplu seim yapabilirsiniz. Ayrıca alternatif bir yntem olarak tek bir dosyayı seerek, Shift tuşuna basılı tutarak yn tuşları ile birden fazla seim yapmanız da mmkndr.

Adres satırı bulunduğunuz dizine giderken gemiş olduğunuz dosya yolunu belirtir ve gsterir. Adres satırı kısmında gitmek istediğiniz dizine tıklayabilirsiniz. Adres satırı dğmelerinden birine sağ tıklayarak o dizine has işlemleri ve varsa seenekleri dzenleyebilirsiniz.

Grnm zelleştirme

Dosya yneticisi pencerelerinde grnm zelleştirmenin birok yolu vardır. Eğer simge grnmn beğenmezseniz, GrnmDetaylı Liste Şeklinde Gster seeneğini kullanarak o an iinde bulunduğunuz dizindeki ieriği listelenmiş biimde grebilirsiniz.

Adres satırı grnm yerine, ara ubuğu kullanmak istiyorsanız GrnmYer SeiciAra ubuğu Tarzı seeneğini kullanabilirsiniz.

Sol kısımda grnm ağa grnmne evirmek istiyorsanız, GrnmYan Pencere GzAğa seeneğini kullanabilirsiniz.

Detaylı Listede Gsterilecek Stunlar

Detaylı Liste Şeklinde Gster seeneğini kullanarak dizin ieriğini liste şeklinde grntlyorsanız, liste grnmnde gsterilecek stunları zelleştirmek isteyebilirsiniz. Grntlenecek stunları grmek ve semek iin, mendeki GrnmStunları Yapılandır... seeneğini kullanabilirsiniz.

Grnr Stunlar
Grnr Stunlar

Gsterilmesini istediğiniz stunları listeden seebilirsiniz. Yukarı Taşı veya Aşağı Taşı seeneklerini kullanarak stunların gsterim sırasını değiştirebilirsiniz. Yapmış olduğunuz değişiklikleri geri almak iin ntanımlı Kullan seeneğini kullanabilirsiniz.

Stun Boyutlandırma

Gerekli olduğunda stunları otomatik olarak genişlet seeneği ile stunlar istenilen bilginin uzunluğu doğrultusunda o bilginin uzunluğuna gre genişletilecektir.

diff -Nru thunar-1.2.3/docs/manual/html/tr/using-removable-media.html thunar-1.6.10/docs/manual/html/tr/using-removable-media.html --- thunar-1.2.3/docs/manual/html/tr/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Kaldırılabilir Ortam Kullanımı

Kaldırılabilir Ortam Kullanımı

Kaldırılabilir Ortama Erişim

Thunar eğer HAL desteği ile derlenmişse veya FreeBSD kullanıyorsanız kaldırılabilir ortamı desteklemektedir. Buna rağmen FreeBSD 6.0 veya daha yeni srmn kullanıyorsanız, HAL kullanmanız tavsiye edilmektedir.

Ortam Bağlama İşlemi

Ortam bağlamak dosya sistemini ortama erişime uygun kılmak iindir. Ortam bağladığınız zaman, bağladığınız ortam dosya sisteminizin alt dizini olarak sisteminize eklenecektir.

Ortama erişmek iin, ortamı uygun cihaza yerleştirmelisiniz ya da bağlamalısınız (mesela USB stick). Sol blmde ortamın yer aldığını greceksiniz. Eğer xfdesktop alışıyorsa ve Dosya/alıştırıcı simgelerini alıştırmak iin ayarlanmışsa bu ortam ğesi masastnzde de yer alacaktır.

Ortamı bağlamak iin, ortama ilişkin nesneye tıklamalısınız. Mesela, bir disketi bağlamak iin, Disket Src nesnesine tıklamalısınız. Dosya yneticisi ortamın dosya sistemini, dosya sisteminizin hiyerarşisine ekleyecektir ve ana blmde diskette bulunan ieriği gsterecektir.

Ortamı ıkarmak

Eğer ortam srcs motorlu ise (mesela CD-ROM), sol kısımda sağ tıklayıp, ıkar seeneği ile ayırabilirsiniz. Eğer src motorlu değil ise (mesela disket veya USB stick ise), sağ tıklayıp Ayır seeneği ile ayırabilirsiniz. Bu seeneği setikten sonra gvenle kaldırabileceğinize dair bir uyarı alacaksınız.

Ayırma uyarısı

Buna karşın bu bilgilendirme sadece libnotify desteği var ise ve notification daemon kurulu ise gsterilecektir. Xfce iin bir notification daemon'a Xfce Goodies Project sayfasından ulaşabilirsiniz. Eğer bilgilendirme desteği yok ise, aılır men kaybolana kadar bekleyin ve ortamı bilgisayarınızdan ıkarın.

Eğer bir uygulama ortamdaki bir dosyaya erişim halinde ise ortamı ayıramayacağınızın bilincinde olmalısınız. Ayrıca dosya yneticisi ortamı ıkarmak istemiyorsa, ortama erişen btn uygulamaları kapattığınızdan emin olmalısınız. Ayrıca Terminal uygulamasını kullanarak da ortama erişmediğinizden emin olmalısınız.

Ortamı ıkarmadan nce ayırdığınızdan emin olmalısınız. Disketi ayırmadan disket srcnzden ıkarmamalısınız. Aynı durum USB stick iin de sz konusudur. Eğer ortamı gvenli bir şekilde ayırmadan ıkarırsanız veri kaybına uğrayabileceğiniz gibi sisteminizde hasara da yol aabilirsiniz.

Ayırılabilir Src ve Ortam Ynetimi

Thunar thunar-volman kullanarak da otomatik olarak ayrılabilir src ve ortam ynetimini sağlamaktadır. Ancak bu zellik HAL desteği gerektirmektedir.

Eğer HAL desteği mevcut ise ve thunar-volman sisteminizde kurulu ise, Thunar'ın Blm Ynetimi zelliğinden faydalanabilirsiniz. te yandan, dosya yneticisi zelliklerini aıp, Gelişmiş sayfasına gidip, Birim Ynetimini Etkinleştir seeneğini kontrol edebilirsiniz.

Sonraki aşama ise, ayrılabilir src ve ortamın ynetimini isteklerinize gre zelleştirmek olacaktır. Blm Ynetimi blmnde Yapılandır dKald yap

Ayrılabilir Src ve Ortam

Eğer daha nce gnome-volume-manager kullanmış iseniz, aynı kullanım rahatlığını gnome-volume-manager benzeri arabirim ile de yaşabilirsiniz. Seenekler kolay erişim sağlanması bakımından ayrı aygıt kategorilerine ayrılmıştır.

Storage sayfası en nemli seenekleri barındırır. Bu seenek isminden belli olduğu gibi sadece depolama aygıtlarına erişim iin kullanılır. Removable Storage seenekleri aşağıda aıklanacaktır.

Ayrılabilir srcleri takıldığı zaman bağla

Bu seeneği ayrılabilir srcleri (harici diskler veya USB stick) otomatik olarak bağlamak istiyorsanız semelisiniz.

Bu seenek ayrılabilir src kullanmak istiyorsanız muhakkak seili olmalıdır. Mesela, bu zelliği kaldırırsanız, taşınabilir mzikalarlar otomatik olarak tanınmayacaktır. Multimedia sekmesinde Play music files when connected seeneği işaretli ise tanımlanan komut alışmayacaktır.

Ayrılabilir src yerleştirildiğinde bağla

Bu seeneği optik srclerin (CDROM veya DVD) otomatik olarak bağlanmasını istiyorsanız seiniz.

Bu seenek optik src ynetimi iin gereklidir. Mesela, bu zelliği devredışı bırakırsanız, optik srcye ilişkin otomatik alıştırma zelliği kullanılmaz olacaktır ve Auto-run programs on new drives and media zelliği iş grmeyecektir.

Ayrılabilir ortam yerleştirildiğinde dosyaları grntle

Bu seeneği ortamı bilgisayarınıza yerleştirdiğinizde otomatik olarak ortamın barındırdığı dosyaları grntlemek iin kullanabilirsiniz. Eğer başka bir işlem atanmamışsa veya atanmış bir işlemi gz ardı ederseniz sadece ierik gsterilecektir. Mesela bir otomatik alıştırılabilir betik ieren bir CD-ROM yerleştirdiğinizde Auto-run programs on new drives and media seeneği işaretli ise, nce bunu alıştırmak isteyip istemediğiniz sorulacaktır. Eğer gz ardı et seeneğini kullanırsanız, CD-ROM ieriği grntlenecektir.

Yeni srclerde ve ortamdaki uygulamaları otomatik alıştırma

Bu seeneği ayrılabilir src ve ortamlarda otomatik alıştırma desteği iin kullanabilirsiniz. Otomatik alıştırma mekanizmasının nasıl işlediğini gsteren belge iin Desktop Application Autostart Specification adresini ziyaret etmelisiniz. Gvenlik aısından sizden daima otomatik alıştırma ncesi onay istenecektir.

Eğer sisteminizde WINE kurulu ise, otomatik alıştırma mekanizması autorun.exe dosyasını WINE kullanarak alıştırmayı deneyecektir.

Yeni srclerde ve ortamdaki dosyaları otomatik ama

Bu seeneği ayrılabilir src ve ortamları otomatik amak iin kullanabilirsiniz. Bu mekanizma hakkında daha detaylı bilgiye Desktop Application Autostart Specification sayfasından ulaşabilirsiniz. Gvenlik aısından, otomatik ama ncesi sizden onayınız istenecektir.

Kalan seenekler bilgisayarınıza bir src bağladığınızda ya da bir ortam taktığınızda alıştırılacak komutları belirlemenizi sağlar. alıştıracağınız komut iin zel değişken belirleyebilirsiniz. Bunlar:

%d

alıştırılacak komut ierisinde %d yer alıyorsa, bu değer aygıtın dosya yolu ile değiştirilecektir. Mesela, bilgisayarınıza USB stick bağladığınızda yol /dev/da0s1 veya /dev/sda1.

Eğer aygıt dosyası ile ilintili bir aygıt yoksa veya aygıt dosyası herhangi bir sebepten dolayı bulunamıyorsa, %d değeri boş bir dizge ile değiştirilecektir.

%h

alıştırılacak komut ierisinde %h değişkeni yer alıyorsa bu değer HAL UDI ile yer değiştirecektir.

%m

alıştırılacak komut ierisinde %m değişkeni yer alıyorsa bu değer bağlama noktası ile değiştirilecektir. Eğer aygıt bağlanabilen bir aygıt değilse (mesela klavye veya yazıcı ise) veya otomatik bağlama devredışı ise, %m değeri boş dizge ile değiştirilecektir.

Blm Yneticisi İin Sorun Giderme İpuları

Blm yneticisi hakkında sorun giderme konusunda faydalı ipuları sunmaktadır.

  1. Thunar uygulamasının sistem servisi olarak alıştığından emin olun. Blm yneticisi servis olmadığından buna ihtiya duymaktadır. Xfce, ntanımlı olarak Thunar uygulamasını aılışta sistem servisi olarak alıştırır. Eğer sistem servisi herhangi bir sebepten dolayı kapatılmış ise, mendeki alıştır seeneğini (klavye kısayolu Alt+F2 veya masastne sağ tıklayıp alıştır seeneği) kullanarak Thunar --daemon yazıp alıştır seeneğine tıklamalısınız.

  2. Aygıtı taktıktan sonra ya da ortamı yerleştirdikten sonra thunar-volman uygulamasını Terminal uygulamasını kullanarak konsoldan alıştırmayı deneyebilirsiniz. ncelikle, lshal veya hal-device kullanarak aygıtın HAL UDI değerini ğrenmelisiniz. UDI değerini ğrendikten sonra, Terminal uygulaması ierisinde thunar-volman --device-added <aygıtın-udi-değeri> komutunu vermelisiniz ve ıktıyı takip ederek hatayı anlamaya alışmalısınız.

Eğer hala alışmıyorsa, Xfce Forumu veya Thunar geliştirici listesini kullanarak yardım isteyebilirsiniz.

diff -Nru thunar-1.2.3/docs/manual/html/tr/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/tr/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/tr/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/tr/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Dizin ve Dosya İşlemleri

Dizin ve Dosya İşlemleri

Dosyaların Aılması

Bir dosya atığınız zaman, dosya yneticisi o dosya tipine uygun işlemi gerekleştirecektir. rneğin, bir metin dosyasını amak istediğinizde, o metin dosyası metin editrnzde aılacağı gibi, bir resim dosyası da resimleri gsteren uygulama ierisinde aılacaktır.

Dosya yneticisi dosyanın uzantısına bakarak dosya tipinin ne olduğuna karar verir. Eğer dosya bilinen bir uzantıya sahip değilse, dosya yneticisi dosyanın ieriğini gzden geirecektir.

Varsayılan İşlemi alıştırmak

Bir dosya iin varsayılan işlemi alıştırmak iin, dosyaya ift tıklamalısınız. rneğin, ses dosyalarına ift tıkladığınız zaman ntanımlı o ses dosyası okluortam programı tarafından alıştırılacaktır.

Thunar dosya yneticisini tek tıklama ile dosyaların alıştırılmasını sağlamak iin ayarlamanız mmkndr. Bu konuda ayrıntılı bilgi iin “Davranış Tercihleri” sayfasını inceleyiniz.

ntanımlı Olmayan İşlemleri alıştırmak

Bir dosya iin ntanımlı gerekleştirilen işlem yerine, istediğiniz dosyayı Dosya mensnden Birlikte A seeneklerinden birini kullanarak veya sağ tıkladığınızda gsterilecek olan Birlikte A alt mens ile alıştırabilirsiniz.

İşlem Ekleme

Bir dosya uzantısına işlem atamak iin, şu işlemleri yapmalısınız:

  1. Ana blmde, işlem eklemek istediğiniz dosyayı sein.

  2. Menden DosyaDiğer Uygulama ile A ... seeneğine tıklayın.

  3. Birlikte A mensnde işlem iin istediğiniz uygulamayı seebileceğiniz gibi zel bir komut kullan seeneği yardımıyla o dosya işlemi iin alıştırılacak uygulamayı belirtebilirsiniz.

Bylece dosya iin setiğiniz uygulama işlemler listesine eklenmiş oldu. Eğer bu tr dosyalar iin ntanımlı olarak kullan seeneğini işaretlemişseniz veya dosya iin ilişkilendirilmiş başka bir işlem yok ise, yeni eklediğiniz işlem ntanımlı olacaktır.

Ayrıca Dosyazellikler... mensnde bulunan Birlikte A seeneği ile de dosyanın başka bir uygulama ile aılmasını sağlayabilirsiniz.

İşlemleri Değiştirme

Bir dosya veya dosya tipi iin tanımlanan işlemleri değiştirmek iin, şu işlemleri gerekleştirmelisiniz:

  1. Ana blmde, tipini değiştirmek istediğiniz dosyayı seiniz.

  2. ncelikle Dosyazellikler... mensn amalısınız.

  3. Yeni işlemi aılır mendeBirlikte A seeneği ile belirleyebileceğiniz gibi Başka Uygulama... seeneği ile de belirleyebilirsiniz.

Daha nce atadığınız bir işlemi kaldırmak iin, yukarıda anlatıldığı gibi Birlikte A mensn aıp, kaldırmak istediğiniz işleme sağ tıklayıp, Uygulama Başlatıcısını Kaldır seeneğini kullanabilirsiniz.

Dosya zellikleri

Dosya zellikleri penceresi dosya ya da dizin hakkında dosya yneticisinde gsterilenden daha fazla bilgi edinmenizi sağlar. Bu pencere ile, şu işlemleri gerekleştirebilirsiniz.

  • zel dosyaların, mesela uygulama alıştırıcılar ve URL linklerinin simgelerini değiştirebilirsiniz.

  • Dosya veya dizine amblem atayabilir veya varsa amblemini kaldırabilirsiniz.

  • Dosya ya da dizinin UNIX dosya izinlerini değiştirebilirsiniz.

  • Dosyanın hangi uygulama ile alıştırılacağını belirleyebilirsiniz.

Dosya zellikleri

Dosya zellikleri penceresini amak iin, şu işlemleri yapmalısınız:

  1. Araştırmak ya da değiştirmek istediğiniz dosya veya dizini semelisiniz. Birden fazla seim yapıp dosya zelliklerini amanız mmkn değildir.

  2. Şunu gerekleştirmelisiniz:

    • ncelikle Dosyazellikler... mensn amalısınız.

    • Setiğiniz ğeye sağ tıklayıp zellikler... seeneğine tıklamalısınız.

    • Ayrıca bu işlemi Alt+Enter tuşları ile de gerekleştirebilirsiniz.

diff -Nru thunar-1.2.3/docs/manual/html/ug/advanced-topics.html thunar-1.6.10/docs/manual/html/ug/advanced-topics.html --- thunar-1.2.3/docs/manual/html/ug/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -ئالىي تېمىلار

ئالىي تېمىلار

ھۆججەت ئاتىنى توپ ئۆزگەرتىش

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

ھۆججەت ئاتىنى توپ ئۆزگەرتىش

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • ھەرپلەرنى ئۆچۈرىدۇ.

  • ھۆججەتلەرگە نومۇر سالىدۇ.

  • چېسلا ياكى ۋاقىتنى قىستۇرىدۇ.

  • ھەرپلەرنى قىستۇرىدۇ ياكى قاپلايدۇ.

  • ھەرپلەرنى ئىزدەيدۇ ۋە ئالماشتۇرىدۇ.

  • چوڭ يېزىلىشقا، كىچىك يېزىلىشقا ياكى باش ھەرپنىلا ئۆزگەرتىدۇ.

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

UNIX ھۆججەت سىستېمىسى

- While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user - does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. - This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all - incarnations of UNIX, including Linux. -

ھۆججەت ۋە يول

- In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down - from a single top level folder, which is called the root directory (the term - directory is often used instead of folder) and displayed as - File System in Thunar. This means that you can get from any folder to any other by going - up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach - your target. -

- The position of any file or folder in the tree can be described by its path. The path is the - list of folders you would have to descend through to get to the target folder or file, starting from the top level - folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, - and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The - leading / in these paths represents the top level folder. -

- Every user has their own folder to hold their personal files and settings. This folder is called the home - directory and is displayed in Thunar as special icon with the users login name. The folder is similar to - the My Files folder known from Windows. The home directories of the various - users in a system are usually located below the /home folder. For example - /home/luke would be the home directory of the user with the login name - luke, while /home/jane would be - the home directory for the user with the login name jane. -

ھۆججەت تىپى

- You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems - today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is - one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other - operating systems had to introduce new concepts for every new technology. -

UNIX سىستېمىسىدا ئاساسلىق ھۆججەت تىپىدىن 4 ئى بار.

ئادەتتىكى ھۆججەت

ئادەتتىكى ھۆججەت دېگىنىمىز، تېكىست ھۆججىتى، پروگرامما، ياكى باشقا سانلىق ئاساس ھۆججەتلىرىنى كۆرسىتىدۇ، سۈرەت ھۆججەتلىرى، ئۈن ھۆججەتلىرى، ئىشخانا پۈتۈكلىرى ۋە سىن ھۆججەتلىرى مۇشۇ تۈرگە تەۋە.ھۆججەت دېگىنى مۇشۇ ئادەتتىكى ھۆججەتنى كۆرسىتىدۇ.

مۇندەرىجە(ھۆججىتى)

UNIX ھۆججەت سىستېمىسىدا مۇندەرىجىمۇ ھۆججەت. ئېنىق قىلىپ ئېيتقاندا مۇندەرىجە ئالاھىدە ھۆججەت بولۇپ، このフォルダ内にあるすべてのファイルを参照するためのファイル名のマップが含まれています。

Symbolic ئۇلانما ھۆججىتى

Symbolic ئۇلانما (كوپ ھاللاردا ئۇلانما دەپلا ئېلىنىدۇ) ھۆججەت سىستېمىسىدىكى باشقا ھۆججەتلەرنىڭ يولىنى ئوز ئىچىگە ئالغان ئالاھىدە ھۆججەت ھېسابلىنىدۇ. Symbolic ئۇلانما ھۆججىتىدە ئالاھىدە ئۇچۇرلار يوق، پەقەتلا ئۇ باشقا بىر ھۆججەتنى كۆرسىتىپلا بېرىدۇ خالاس.

ئۈسكىنە ھۆججىتى

- As mentioned earlier (most) devices are also accessed through the file system. These special device files are - usually located in the /dev folder. For example the special file - /dev/hda represents the first IDE disk on Linux. -

diff -Nru thunar-1.2.3/docs/manual/html/ug/copyright.html thunar-1.6.10/docs/manual/html/ug/copyright.html --- thunar-1.2.3/docs/manual/html/ug/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -Thunar ھەققىدە

Thunar ھەققىدە

Thunar نىڭ ئاپتورى Benedikt Meurer (). تېخىمۇ كوپ ئۇچۇرغا ئىگە بولماقچى بولسىڭىز Thunar بېتىنى زىيارەت قىلىڭ.

بۇ پۈتۈكلەرنى Benedikt Meurer () يازغان. ئەڭ يېڭى نەشرى Thunar بېتىدە بار.

- This software is distributed 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. -

- 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. -

diff -Nru thunar-1.2.3/docs/manual/html/ug/customizing-thunar.html thunar-1.6.10/docs/manual/html/ug/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/ug/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,151 +0,0 @@ -Thunar Customize قىلىش

Thunar Customize قىلىش

بۇ بابتا ھۆججەت باشقۇرغۇنىڭ بىر قىسىم جايلىرىنى Customize قىلىش ئۇسۇلىنى چۈشەندۈرىمىز

"...گە ئەۋەت" Menu

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

"...گە ئەۋەت" Menu

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-
-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer چۈشەندۈرۈش ھۆججىتىنىڭ فورماتى

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-
-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

thumbnail نىڭ چوڭلۇقى (پىكسېل)، بۇ پارامېتىر يېزىلمىسىمۇ بولىدۇ

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

EPS Thumbnailer ھەققىدىكى مىسال

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-
-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

بۇ script eps-thumbnailer نى دېگەن ئاتتا ساقلاپ، ئىجرا ھوقۇقى بېرىپ، /usr/local/bin غا ئورنىتىلىدۇ

-
-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

كېيىنكى قەدەمدە، تۆۋەندىكىدەك thumbnail چۈشەندۈرۈش ھۆججىتىeps-thumbnailer.desktop نى ياساش كېرەك.

-
-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

بۇ ھۆججەت /usr/local/share/thumbnailers گە ئورنىتىلمىسا بولمايدۇ (مۇندەرىجە يوق بولسا بىرنى قۇرۇڭ).

-
-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

بۇ پروگراممىنى سىزنىڭ ھېساباتىڭىزدا ئىجرا قىلىسىز، ھەرگىزمۇ superuser نىڭ ھېساباتىدا ئىجرا قىلدۇرۇشقا بولمايدۇ. چۈنكى thumbnailers غەملىكى سىزنىڭ ماكان مۇندەرىجىڭىز ئىچىگە ياسالغان. بۇنىڭغا بەك دىققەت قىلىڭ

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

شۇنىڭدىن كېيىن Thunar نى قايتا قوزغىتىڭ.

Thumbnails تازىلاش

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

بۇنىڭ بىلەن ماكان مۇندەرىجىڭىزدە ئازراق بىكار يەر كۆپىيىدۇ. بۇ مۇندەرىجىدىكى ئۇچۇرلارنىڭ ھەممىسى سىزنىڭ سىستېمىڭىزدىكى ھۆججەتلەردىن ياسالغان بولغاچقا، ئۆچۈرۈۋەتسىڭىزمۇ سىستېمىغا تەسىرى بولمايدۇ.

diff -Nru thunar-1.2.3/docs/manual/html/ug/faq.html thunar-1.6.10/docs/manual/html/ug/faq.html --- thunar-1.2.3/docs/manual/html/ug/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -كوپ سورىلىدىغان سوئاللار

كوپ سورىلىدىغان سوئاللار

بۇ بابتا Thunar نىڭ ئىشلىتىش جەريانىدا كوپ سورىلىدىغان سوئاللارغا جاۋاب بېرىلىدۇ. بۇ يەردە يوق سوئال بولسا تەلەپنى يېزىپ غا ئەۋەتىڭلار.

ئىجرا قىلغىلى بولىدۇ دەپ بەلگە سېلىنغان ھۆججەتنى Thunar نېمىشقا ئىجرا قىلمايدۇ?

- For security reasons Thunar only executes files of type application/x-desktop, - application/x-executable and application/x-shellscript. For - desktop files the execution feature will only be enabled if the desktop file is of type - Application and a valid Exec line is given or of type - Link and a valid URL is given. For the other types the feature - is available if the file is marked executable for the current user. -

- Also note that for application/x-executable and application/x-shellscript, - the types of the file don't really need to match these types exactly, but it is suffice if the detected - type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for - one of the above. -

Thunar ھۆججەتكە مۇناسىۋەتلىك metadata لارنى قەيەردە ساقلايدۇ؟

- Thunar associates various settings with files/folders, which we call metadata. - This metadata for all files is stored in tdb database file, which is called - the metafile. The database file is stored in - $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined - using the tdbtool, which is part of the Thunar distribution - (located in the tdb/ subdirectory). -

Thunar تەڭشەكلىرى قەيەردە ساقلىنىدۇ؟

- Thunar stores the user configurable preferences (and hidden settings) in - an .ini file, which is located at - $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined - using a text editor. See docs/README.thunarrc for an - overview of the various preferences. -

Thunar دا چاشقىنەكنىڭ ئىشارەت تىلىنى قانداق ئىشلىتىمىز؟

- Thunar currently features basic support for so called mouse gestures - in its icon view. You can use these mouse gestures by holding down - the middle mouse button (usually the mouse wheel) while the mouse pointer is on the - background area of the icon view component (any area that is not covered by - an icon or a text). Now you can move the cursor into four directions to - perform certain actions, which are described below. -

سول - ئالدىنقى مۇندەرىجىنى ئاچىدۇ
ئۈستى - ئاتا مۇندەرىجىنى ئاچىدۇ
ئوڭ - كېيىنكى مۇندەرىجىنى ئاچىدۇ
ئاستى - ھازىرقى مۇندەرىجىنى قايتا ئوقۇيدۇ

ئوخشاشمىغان تېزلەتمە كۇنۇپكىلىرى قانداق تەقسىم قىلىنىدۇ؟

- If you want to rebind a shortcut, Thunar supports the standard GTK+ way - of changing shortcuts: simply hover over the menu option with the mouse - pointer and press the keyboard shortcut you want to rebind it to. -

تەقسىملەنگەن تېزلەتمە كۇنۇپكىنى ئۆچۈرۈش ئۈچۈن، menu تاللانغان ۋاقىتتا يېنىپ ئۆچۈرۈش كۇنۇپكىسى نى بېسىڭ.

تېزلەتمە كۇنۇپكا ئۆزگەرمىسە، GTK+ نىڭ بۇ ئىقتىدارىنى ئىناۋەتلىك قىلىش كېرەك، بۇنىڭ قىلىشنىڭ ئۇسۇللىرى 3 تۈرلۈك:

  • - If you are running Xfce 4.3 or above then you can enable Editable - menu accelerators in the User Interface Preferences - dialog. -

  • - If you are running GNOME then you can enable Editable menu - accelerators in the Menu and Toolbars control - center dialog. -

  • - Otherwise put the following in your ~/.gtkrc-2.0 file - (create the file if it doesn't exist):

    gtk-can-change-accels=1

    -

Thunar تېزلەتمە كۇنۇپكىلارنى قەيەردە ساقلايدۇ؟

- The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a - file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting - with ; are comments. See the GTK+ documentation for details about the - file format. -

- If you are a packager or a system administrator and want to provide a system wide default - for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you - can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. - For example, if /etc/xdg is part of $XDG_CONFIG_DIRS - (the default for most Linux distributions), you can install system wide defaults to - /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup. -

diff -Nru thunar-1.2.3/docs/manual/html/ug/index.html thunar-1.6.10/docs/manual/html/ug/index.html --- thunar-1.2.3/docs/manual/html/ug/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar ھۆججەت باشقۇرغۇ

Thunar ھۆججەت باشقۇرغۇ

Benedikt Meurer

يۇمشاق دېتال ئىجادىيىتى
os-cillation
سىستېما ئىجادىيىتى


بۇ بولاق Thunar نىڭ 1.2.0git-cc468f4 نەشرى ھەققىدىكى قوللانمىدۇر

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation.

November 2007


Thunar ھەققىدىكى دەسلەپكى چۈشەنچە

Thunar بولسا Xfce ئۈچۈن مەخسۇس لايىھىلەنگەن يېڭىچە ھۆججەت باشقۇرغۇدۇر. كۆرۈنمە يۈزى ئاددىي، ئارتقۇچە تاللانمىلار يوق، قوزغىلىشى ۋە شۇنداقلا ھۆججەت ۋە مۇندەرىجىلەرنى كۆرسىتىشىمۇ تەز.

Thunar ھۆججەت باشقۇرغۇنى ئىشلىتىپ، ھۆججەت ۋە پروگراممىلارنى بىرلا يەردە بىر تەرەپ قىلغىلى بولىدۇ. بۇنى ئىشلىتىپ تۆۋەندىكى مەشغۇلاتلارنى قىلغىلى بولىدۇ:

  • ھۆججەت ۋە پۈتۈكلەرنى قۇرغىلى بولدى.

  • ھۆججەت ۋە مۇندەرىجىلەرنى كۆرسەتكىلى بولىدۇ.

  • ھۆججەت ۋە مۇندەرىجىلەرنى باشقۇرغىلى بولىدۇ.

  • custom action لارنى ئىجرا قىلغىلى ۋە باشقۇرغىلى بولىدۇ.

  • Removable دىسكىلارنى زىيارەت قىلغىلى بولىدۇ.

diff -Nru thunar-1.2.3/docs/manual/html/ug/preferences.html thunar-1.6.10/docs/manual/html/ug/preferences.html --- thunar-1.2.3/docs/manual/html/ug/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -ھۆججەت باشقۇرغۇ تەڭشىكى

ھۆججەت باشقۇرغۇ تەڭشىكى

- Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. -

- The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: -

  • كۆرۈنۈش ھەققىدىكى كۆڭۈلدىكى تەڭشەكلەر

  • يان pane ھەققىدىكى كۆڭۈلدىكى تەڭشەكلەر

  • ھۆججەت باشقۇرغۇ كۆزنىكىنىڭ ھەرىكىتى

  • ھۆججەت باشقۇرغۇنىڭ ئالىي ئىقتىدارلىرى

- Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. -

كۆرۈنۈش تەڭشەكلىرى

كۆڭۈلدىكى كۆرۈنۈش، تەرتىپلەش، كۆرسىتىش ئۇسۇللىرى بېكىتىلىدۇ. يەنە thumbnails نى قوللايدىغان ھۆججەت تىپىغا نىسبەتەن، thumbnail نى كۆرسىتىش كۆرسەتمەسلىكنى بېكىتىدۇ.

كۆرۈنۈش تەڭشەكلىرى
يېڭى مۇندەرىجىنى كۆرسىتىش ئۇسۇلى

- Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. -

تەرتىپلىگەندە مۇندەرىجە ھۆججەتنىڭ ئالدىغا كەلسۇن

بۇ تاللانما تاللانسا، بىرەر مۇندەرىجىنى تەرتىپلىسىڭىز مۇندەرىجە ھۆججەتلەرنىڭ ئالدىغا تەرتىپلىنىدۇ

thumbnails نى كۆرسەتسۇن

- Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. -

- See the section called “Thumbnailers” if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. -

تېكىست سىنبەلگىنىڭ يېنىدا كۆرسىتىلسۇن

- Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. -

يان Pane تەڭشەكلىرى

تېزلەتمە Pane ۋە دەرەخسىمان Pane نىڭ كۆرسىتىش تاللانمىلىرىنى بەلگىلەيدۇ

يان Pane تەڭشەكلىرى

- The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. -

سىنبەلگە چوڭلۇقى

يان pane دا كۆرسىتىلىدىغان سىنبەلگىنىڭ چوڭلۇقى بەك كىچىك (1616 پىكسېل) دىن بەك چوڭ (128128 پىكسېل) نىڭ ئارىلىقىدا بولىدۇ

سىنبەلگە سىمۋولىنى كۆرسىتىش

- Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. -

ھەرىكەت تەڭشىكى

- You can select the preferred behavior to interact with the file manager. -

ھەرىكەت تەڭشىكى
بىرلا چېكىپ تۈرلەرنى ئاكتىپلىسۇن

- Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. -

- This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. -

قوش چېكىپ تۈرلەرنى ئاكتىپلىسۇن

- Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. -

ئالىي تەڭشەكلەر

ھۆججەت باشقۇرغۇنىڭ ئالىي ئىقتىدارلىرىنى كونترول قىلغىلى بولىدۇ.

ئالىي تەڭشەكلەر
مۇندەرىجە ھوقۇقلىرى

مۇندەرىجە خاسلىق كۆزنىكىدە مۇندەرىجە ھوقۇقلىرىنى ئۆزگەرتكەن چاغدىكى مەشغۇلاتنى قىلىمىز. مۇندەرىجە ھوقۇقلىرىنى ئۆزگەرتىلگەندە Thunar ھەر قېتىم سورىسۇنمۇ سورىمىسۇنمۇ، ياكى يېڭى مۇندەرىجە بولغاندىلا سورىسۇنمۇ، مۇندەرىجە ۋە ئۇنىڭ ئاستىدىكى بارلىق قات مۇندەرىجىلەرنىڭ ھەممىسىگە قوللانسىمۇ كونترول قىلغىلى بولىدۇ.

Volume باشقۇرۇش

Thunar を HAL サポート付きでインストールし、かつ thunar-volman パッケージもインストールされている場合に統合ボリュームマネージャを有効にできます。この機能の詳細については、the section called “Removable ئۈسكىنە ۋە Media نى باشقۇرۇش” を参照してください。

diff -Nru thunar-1.2.3/docs/manual/html/ug/support.html thunar-1.6.10/docs/manual/html/ug/support.html --- thunar-1.2.3/docs/manual/html/ug/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -Support

Support

- To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. - Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities: -

  • - Reproducible. If the developer cannot see the bug himself - to prove that it exists, he will most probably not be able to fix it at all. Every detail you - can provide helps. -

  • - Specific. The quicker the developer can isolate the problem - to a specific area, the more likely he will expediently fix it. -

- In case you want to request a new feature, please make clear why you consider it a worth - addition for the application. It is more likely that a new feature gets added if you provide - good arguments for the feature. It will increase the chance of addition even more if you - provide a patch that implements the requested feature, but make sure that you read the file - HACKING - - especially the section labeled Coding Style - before you start hacking - up the source. -

- Else, if you have questions about the use or installation of this software, please ask on the - thunar-dev mailing - list or point your IRC client to irc.freenode.net, - join the channel #thunar and ask for help. -

diff -Nru thunar-1.2.3/docs/manual/html/ug/the-file-manager-window.html thunar-1.6.10/docs/manual/html/ug/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/ug/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -ھۆججەت باشقۇرغۇ كۆزنىكى

ھۆججەت باشقۇرغۇ كۆزنىكى

كۆڭۈلدىكى ھالەتتە، ھۆججەت باشقۇرغۇ كۆزنىكىنىڭ سول تەرىپىدە تېزلەتمە pane بار، ئوڭ تەرەپتە ئاساسلىق رايون، ئۈستىدە pathbar بار.

ھۆججەت باشقۇرغۇ كۆزنىكى

تېزلەتمە pane دا سىستېمىدىكى ھەر خىل مۇندەرىجىلەرنىڭ تېزلەتمىسى بار. ئەڭ باشتىكى سىزنىڭ ماكان مۇندەرىجە نىڭ تېزلەتمىسى. بۇ يەردە سىزنىڭ بارلىق خۇسۇسىي ماتېرىياللىرىڭىز ساقلىنىدۇ، ئاتى ئادەتتە ئىشلەتكۈچىنىڭ ئاتى بىلەن ئوخشاش. ئىككىنچىسى ئەخلەت ساندۇقىنىڭ تېزلەتمىسى بولۇپ، ئەخلەت ساندۇقىدا ئۆچۈرۈلگەن ھۆججەتلەر ساقلىنىدۇ، كېيىن ئەسلىگە كەلتۈرۈشكىمۇ بولىدۇ. ئۈچىنچىسى ئۈستەل يۈزى مۇندەرىجە سېنىڭ تېزلەتمىسى، ئۈستەليۇزىدە كۆرۈنىدىغان ھۆججەت ۋە مۇندەرىجە ساقلىنىدۇ. تۆتىنچىسى ھۆججەت سىستېمىسىنىڭ تېزلەتمىسى – Linux/Unix غا يېڭى بولسىڭىز قايمۇقۇپ قېلىشىڭىزمۇ مۇمكىن، شۇنداقتىمۇ بۇ يەرنى كۆرۈپ باقسىڭىز بولىدۇ، ھەرخىل مۇندەرىجىلەر بار.

ھۆججەت سىستېمىسى تېزلەتمىسىنىڭ ئاستىدا، removable ئۈسكىنە ۋە دىسكىلار كۆرسىتىلىدۇ. CD-ROM نىڭ تېزلەتمىسىنى چېكىپ بۇ ئۈسكىنە ۋە دىسكىلاردىكى نەرسىلەرنى كۆرگىلى بولىدۇ. تەپسىلاتىنى the section called “Removable Media نى ئىشلىتىش” دىن كۆرۈڭ.

- The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the - Shortcuts Pane. This will allow you to access important folders instantly. To - remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. - To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. - Note that these actions affect only the shortcut, not the folder referenced by the shortcuts. -

- The main area will always display the contents of the current folder. Double click on - folders to enter them, and right-click on files or folders to get a context-menu offering some choices of - what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, - select one file, hold down the Shift key, and increase or decrease the selection using - the arrow keys. -

pathbar دا ھازىر كۆرۈۋاتقان مۇندەرىجىنىڭ يولى كۆرۈنىدۇ، چەكسە شۇ يەرگە كىرگىلى بولىدۇ. pathbar نىڭ ئۈستىدە چاشقىنەكنىڭ ئوڭ تەرىپىنى چەكسە context-menu چىقىدۇ.

كۆرۈنۈشىنى Customize قىلىش

ھۆججەت باشقۇرغۇنىڭ كۆرۈنۈشىنى Customize قىلىشنىڭ نۇرغۇن ئۇسۇللىرى بار. مەسىلەن سىنبەلگىلەرنىڭ كۆرۈنۈشى كۆڭلىڭىزگە ياقمىسا باش menu دىن كۆرۈنۈشView as Detailed List نى تاللىسىڭىز ھازىرقى مۇندەرىجىنىڭ مەزمۇنلىرى تېزلىك بولۇپ كۆرۈنىدۇ.

- You can have the file manager windows display a location bar instead of the pathbar by choosing - ViewLocation SelectorToolbar Style - from the main menu. -

- In case you prefer a treeview in the left pane, choose - ViewSide PaneTree - from the main menu. -

Visible Columns in the Detailed List View

- If you prefer to display the contents of the folder as a list, using the Detailed List View, you can - customize the columns displayed in the list view. To customize the visible columns, choose - ViewConfigure Columns... from the main menu. -

كۆرۈنىدىغان ئىستونلار
كۆرۈنىدىغان ئىستونلار

- Select the columns you want to be displayed from the list of available columns. Click Move Up - or Move Down to change the order of the columns. Click Use Default to - revert your changes. -

ئىستون چوڭلۇقىنى ئۆزگەرتىش

- Select the option Automatically expand columns as needed if you want the list view columns - to expand automatically if the needed to ensure the text is fully visible. -

diff -Nru thunar-1.2.3/docs/manual/html/ug/using-removable-media.html thunar-1.6.10/docs/manual/html/ug/using-removable-media.html --- thunar-1.2.3/docs/manual/html/ug/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ -Removable Media نى ئىشلىتىش

Removable Media نى ئىشلىتىش

Removable Media نى زىيارەت قىلىش

- Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. -

Media نى Mount قىلىش

Media نى Mount قىلىش دېگەنلىك، Media نىڭ ھۆججەت سىستېمىسىنى زىيارەت قىلغىلى بولىدىغان قىلىش دېگەنلىكتۇر. Media نى mount قىلغاندا Media نىڭ ھۆججەت سىستېمىسى سىتەمنىڭ ھۆججەت سىستېمىسىدىكى بىرەر مۇندەرىجىگە باغلىنىدۇ.

media نى زىيارەت قىلىش ئۈچۈن، media مۇۋاپىق ئۈسكۈنىگە سېلىنىدۇ(قىستۇرۇلىدۇ) ياكى يېڭى ئۈسكىنىنى كومپيۇتېرغا باغلايمىز.(مەسىلەن: USB نى USB ئېغىزىغا چاتىمىز). بۇنىڭ بىلەن Media نى تەسۋىرلەيدىغان ئوبيېكت ھۆججەت باشقۇرغۇنىڭ يان pane غا قوشۇلىدۇ. xfdesktop ئىجرا بولۇۋاتقان بولسا ھەم ھۆججەت/ئىجراچى سىنبەلگىسى كۆرۈنىدىغان قىلىپ تەڭشەلگەن بولسا، مەزكۇر ئوبيېكت ئۈستەل يۈزىدىمۇ كۆرۈنىدۇ.

ئەمەلىيەتتە media نى mount قىلىش ئۈچۈن Media نى تەسۋىرلەيدىغان ئوبيېكتنى چېكىلىدۇ. مەسىلەن، يۇمشاق دىسكىنى mount قىلىش ئۈچۈن يان pane دىكى يۇمشاق دىسكا ئوبيېكتى چېكىلىدۇ. ھۆججەت باشقۇرغۇ media نىڭ ھۆججەت سىستېمىسىنى سىستېمىنىڭ ھۆججەت سىستېمىسىغا قوشىدۇ، ھەم ئۇنىڭ ئىچىدىكى مەزمۇنلارنى ئاساسىي رايوندا كۆرسىتىدۇ.

Media نى چىقىرىش

- If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane - or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. - If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and - choose Unmount Volume. After a short period of time, a notification will appear to inform you - that it is now safe to remove the media or disconnect the drive from the computer. -

Unmount ئۇقتۇرۇشى

- However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. -

media نى باشقا پروگراممىلار ئىشلىتىۋاتقان بولسا، ئۇنى unmount قىلغىلى ياكى چىقارغىلى بولمايدۇ. ھۆججەت باشقۇرغۇ media نى چىقىرىشنى رەت قىلسا، media نى ئىشلىتىۋاتقان پروگرامما بارمۇ يوقمۇ تېرمىنال كۆزنىكىدە تەكشۈرۈش كېرەك.

media نى چىقىرىشتىن بۇرۇن چوقۇم unmount قىلىش زۆرۈر. يۇمشاق دىسكىنى چىقىرىشتىن بۇرۇن چوقۇم، ئۇنى unmount قىلىش كېرەك. USB نى چىقىرىشتىن بۇرۇن چوقۇم، ئۇنى unmount قىلىش كېرەك. ئالدى بىلەن unmount قىلمىسا ئۇچۇرلار تولۇق ساقلانماي قېلىشى، سىستېمىدىن چاتاق چىقىشىمۇ مۇمكىن.

Removable ئۈسكىنە ۋە Media نى باشقۇرۇش

ئەگەر thunar-volman بولىقى ئورنىتىلغان بولسا، Thunar ئارقىلىق Removable ئۈسكىنە ۋە Media نى ئاپتوماتىك باشقۇرغىلى بولىدۇ. بىراق بۇنىڭ ئۈچۈن چوقۇم سىستېمىدا HAL بولۇشى كېرەك.

ئەگەر سىستېمىدا HAL بار بولۇپ ھەم thunar-volman ئورنىتىلغان بولسا، Thunar نىڭ Volume باشقۇرۇش ئىقتىدارىنى تاللىغىلى بولىدۇ. بۇنىڭ ئۈچۈن ھۆججەت باشقۇرغۇنىڭ تەڭشىكىنى ئېچىپ تەپسىلاتلار بېتىگە بېرىپ، Volume باشقۇرۇشنى چەكلىمەسلىك توپچىسىنى تاللاش كېرەك.

- The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. -

Removable ئۈسكىنە ۋە Media

- If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. -

- The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. -

Mount removable drives when hot-plugged

- Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. -

- This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. -

removable media سېلىنغان ھامان Mount قىلىنسۇن

مەزكۇر تاللانما تاللانسا، removable media (CD-ROM ياكى DVD قاتارلىقلار) ئۈسكىنىگە سېلىنغان ھامان، ئۇلارنىڭ ھۆججەت سىستېمىسى mount قىلىنىدۇ.

- This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. -

removable media سېلىنغان ھامان مەزمۇنى كۆرۈنسۇن

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

يېڭى ئۈسكىنە ۋە media دىكى پروگرامما ئاپتوماتىك ئىجرا قىلىنسۇن

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

يېڭى ئۈسكىنە ۋە media دىكى ھۆججەتلەر ئاپتوماتىك ئېچىلسۇن

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

- The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: -

%d

- Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. -

- If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. -

%h

- Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. -

%m

- Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. -

Volume باشقۇرغۇدىكى كاشىلىلارنى تۈزەش

Volume باشقۇرغۇ ئويلىغاندەك ئىشلىمەي قالغاندا كۆرسىتىلىدىغانTip لار.

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/ug/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/ug/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/ug/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/ug/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -ھۆججەت ۋە مۇندەرىجە مەشغۇلاتى

ھۆججەت ۋە مۇندەرىجە مەشغۇلاتى

ھۆججەت ئېچىش

- When you open a file, the file manager performs the default action for that file type. For example, opening a text file - will display it in the default text editor, while opening an image file will display the image in the default image - viewer. -

ھۆججەت باشقۇرغۇ ھۆججەتنىڭ كېڭەيتىلمە ئاتىغا ئاساسەن ھۆججەتنىڭ تىپىنى بېكىتىدۇ، ئەگەر كېڭەيتىلمە ئاتى يوق بولسا مەزمۇنىغا ئاساسەن بېكىتىدۇ.

كۆڭۈلدىكى Action نى ئىجرا قىل

ھۆججەتكە بولغان كۆڭۈلدىكى Action ئىجرا قىلىش ئۈچۈن، چاشقىنەكنى قوش چەكسىلا بولىدۇ.مەسىلەن، ئۈن ھۆججىتىگە نىسبەتەن كۆڭۈلدىكى Action ئىجرا قىلىنسا، ئۈن ھۆججىتى چېلىنىدۇ. يەنى ئۈن ھۆججىتى قوش چەكسە مۇزىكا قويغۇ ئۇنى چېلىپ بېرىدۇ.

Thunar نىڭ تەڭشىكىدە كۆڭۈلدىكى Action نى تاق چېكىپ ئىجرا قىلىدىغان قىلىپ بەلگىلەشكىمۇ بولىدۇ. تەپسىلاتىنى the section called “ھەرىكەت تەڭشىكى” دىن كۆرۈڭ.

كۆڭۈلدىكى Action دىن باشقىسىنى ئىجرا قىلىش

ھۆججەتكە نىسبەتەن كۆڭۈلدىكى action دىن باشقا action نى ئېلىپ بارماقچى بولغاندا ھۆججەت menu نىڭ ئىچىدىكى Open With نى چېلىپ مەشغۇلات قىلسا بولىدۇ.

action قوشۇش

ھۆججەتكە نىسبەتەن action قوشماقچى بولغاندا، تۆۋەندىكىدەك مەشغۇلات قىلسا بولىدۇ:

  1. ئاساسىي رايوندىن ھۆججەتنى تاللىنىدۇ.

  2. باش menu دىن ھۆججەتباشقا پروگراممىدا ئاچ تاللىسا بولىدۇ.

  3. - Either choose an application in the Open With dialog or select Use a custom command - and browse to the program with which you wish to open this type. -

- The action you have chosen is now added to the list of actions for that particular file type. If you enabled the - Use as default for this kind of file option or there was no prior action associated with the - type, the newly added action is the default. -

- You may also add actions using the Open With button under - FileProperties.... -

Action نى تۈزىتىش

ھۆججەتكە نىسبەتەن قوشۇلغان action نى تۈزىتىش ئۈچۈن ، تۆۋەندىكىدەك مەشغۇلات قىلسا بولىدۇ:

  1. ئاساسىي رايوندىن تۈزەتمەكچى بولغان ھۆججەتنى تاللىنىدۇ.

  2. - Choose FileProperties... from the main menu. -

  3. - Select the new default action using the Open With button or add a new action by choosing - Open With Other Application... from the drop down menu. -

- To remove a previously added action for a file type, bring up the Open With dialog as described - above, right-click the action you want to remove and choose Remove Launcher. -

ھۆججەت خاسلىقى

ھۆججەت خاسلىقى رامكىسىدا ھۆججەت ۋە مۇندەرىجىگە مۇناسىۋەتلىك نۇرغۇن ئۇچۇرلارنى كۆرگىلى بولىدۇ. بۇ كۆزنەكتە تۆۋەندىكىدەك مەشغۇلاتلارنى قىلغىلى بولىدۇ:

  • پروگرامما ئىجراچىسى ۋە URL ئۇلانمىسى قاتارلىقلارنىڭ سىنبەلگىسىنى ئۆزگەرتكىلى بولىدۇ.

  • ھۆججەت ياكى مۇندەرىجىگە emblem قوشقىلى ياكى ئۆچۈرگىلى بولىدۇ.

  • ھۆججەت ياكى مۇندەرىجىنىڭ UNIX ھۆججەت ھوقۇقلىرى نى ئۆزگەرتكىلى بولىدۇ.

  • ئوخشاش تىپتىكى ھۆججەتنى ئېچىشتا ئىشلىتىدىغان پروگراممىنى تاللايدۇ.

ھۆججەت خاسلىقى

ھۆججەت خاسلىقى رامكىسىنى ئېچىش ئۈچۈن، تۆۋەندىكىدەك مەشغۇلات قىلسا بولىدۇ:

  1. خاسلىقى ئۆزگەرتىلمەكچى بولغان ھۆججەت ياكى مۇندەرىجە تاللىنىدۇ. بىر نەچچە ھۆججەت ياكى مۇندەرىجىنى تاللاپ، ئۇلارغا ئورتاق بولغان خاسلىقنى ئۆزگەرتىش تېخى ئەمەلگە ئاشۇرۇلمىدى.

  2. تۆۋەندىكى مەشغۇلاتنىڭ بىرەرى ئېلىپ بېرىلىدۇ:

    • Choose FileProperties... from the main menu.

    • تاللانغان تۈردە چاشقىنەكنىڭ ئوڭ كۇنۇپكىنى چېكىلىدۇ، ئاندىن context menu نىڭ ئىچىدىكى خاسلىق تاللىنىدۇ.

    • Alt+Return چېكىلىدۇ.

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/advanced-topics.html thunar-1.6.10/docs/manual/html/zh_CN/advanced-topics.html --- thunar-1.2.3/docs/manual/html/zh_CN/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -高级内容

高级内容

对文件进行批量重命名

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

批量重命名文件

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • 删除字符。

  • 文件计数。

  • 插入日期或时间。

  • 插入或改写字符。

  • 搜索与替换字符。

  • Convert to uppercase, lowercase or camlcase.

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

UNIX 文件系统

- While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user - does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. - This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all - incarnations of UNIX, including Linux. -

文件夹和路径

- In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down - from a single top level folder, which is called the root directory (the term - directory is often used instead of folder) and displayed as - File System in Thunar. This means that you can get from any folder to any other by going - up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach - your target. -

- The position of any file or folder in the tree can be described by its path. The path is the - list of folders you would have to descend through to get to the target folder or file, starting from the top level - folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, - and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The - leading / in these paths represents the top level folder. -

- Every user has their own folder to hold their personal files and settings. This folder is called the home - directory and is displayed in Thunar as special icon with the users login name. The folder is similar to - the My Files folder known from Windows. The home directories of the various - users in a system are usually located below the /home folder. For example - /home/luke would be the home directory of the user with the login name - luke, while /home/jane would be - the home directory for the user with the login name jane. -

文件类型

- You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems - today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is - one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other - operating systems had to introduce new concepts for every new technology. -

UNIX 文件系统之中有四种重要的文件类型。

普通文件

一个普通文件可能包含文本、一个程序或者其他数据,包括图像文件、音频文件、办公文档和视频文件等等。术语 file 常用以指代一个普通文件。

文件夹文件

文件夹在 UNIX 文件系统中同样被认为是文件。准确地说,一个文件夹是一个包含文件夹中存放的每个文件的文件名和文件内容的对应关系的特殊文件。

符号链接文件

一个符号链接 (通常称作一个 symlink) 是一个包含有指向文件系统中另一个文件路径的特殊文件。符号链接文件自身并不包含任何有用信息,而只是指向其他文件。

设备文件

如前所述,(大多数) 设备可以通过文件系统来访问。这些特殊的设备文件通常位于 /dev 文件夹。例如,文件 /dev/hda 在 Linux 中表示第一块 IDE 硬盘。

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/copyright.html thunar-1.6.10/docs/manual/html/zh_CN/copyright.html --- thunar-1.2.3/docs/manual/html/zh_CN/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -关于 Thunar

关于 Thunar

Thunar 由 Benedikt Meurer () 所编写。更多信息,请查看 Thunar 网站

本文档由 Benedikt Meurer () 所写。本文档的最新版本总能够在以下链接找到: Thunar 网站

此软件在自由软件基金会发布的 GNU 通用公共许可协议的第二版或者(您可以选择)更新的版本的条款约束下发布。

您应该能够随此软件获得一份 GNU 通用公共许可协议的副本;如果没有,请致信自由软件基金会: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/customizing-thunar.html thunar-1.6.10/docs/manual/html/zh_CN/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/zh_CN/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,154 +0,0 @@ -自定义 Thunar

自定义 Thunar

这一章介绍如何按您自己的需求定制文件管理器中的特定部分。

“发送至” 菜单

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

“发送至” 菜单

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

The desired size of the generated thumbnail in pixels. This parameter is optional.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

下一步我们要创建缩略图描述文件 eps-thumbnailer.desktop,文件内容大致如下:

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

此文件必须安装至 /usr/local/share/thumbnailers (如果该文件夹不存在则请您自行创建)。

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

以终止所有正在运行的实例,然后您可以从启动器重启 Thunar。

清除缩略图

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

- which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. -

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/faq.html thunar-1.6.10/docs/manual/html/zh_CN/faq.html --- thunar-1.2.3/docs/manual/html/zh_CN/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -常见问题

常见问题

本节的目的是说明 Thunar 在使用过程中常出现的一些问题。如果您认为还有哪些常见问题在本节中遗漏了,请 提出您的建议

为什么 Thunar 并不执行可执行文件?

出于安全因素考虑,Thunar 仅会执行类型为 application/x-desktopapplication/x-executableapplication/x-shellscript 的文件。对于 desktop 文件,可执行属性仅当该 desktop 文件是 Application 类型且包含一个有效的 Exec 行或者是 Link 类型且包含一个有效的 URL 时被启用。对于其他类型的文件,可执行属性仅当当前用户对该文件具有可执行权限时有效。

请您注意,对于类型为 application/x-executableapplication/x-shellscript 的文件,文件类型并不需要和以上两种类型完全匹配,当检测到该文件为以上两种类型之一的子类型,或该文件的 MIME-type 为以上两种类型的一个别名时,文件类型即被认为是以上两种类型之一。

Thunar 将与文件相关的元数据存放在哪里?

Thunar 将各种设置与 文件/文件夹 进行关联,我们称这些设置为元数据。这些关于所有文件的元数据存放在一个 tdb 数据库文件中,我们称该文件为元数据文件。该数据库文件存放于 $XDG_CACHE_HOME/Thunar/metafile.tdb 并且可以使用 tdbtool 这个作为随 Thunar 发行的一部分的工具来查看(位于 tdb/ 子目录)。

Thunar 将它的首选项设置存放在哪里?

Thunar 将用户可调节的首选项设置 (和隐藏设置) 存放在一个 .ini 文件中,位于 $XDG_CONFIG_HOME/Thunar/thunarrc,该文件可以用任意一个文本编辑器来查看。请参看 docs/README.thunarrc 以了解关于各种首选项设置的概况。

在 Thunar 中如何使用鼠标手势?

Thunar 目前在其图标视图中添加了对所谓 鼠标手势 的基本支持。您可以通过当鼠标指针在图标试图的背景区域 (或者其他不被图标或者文本覆盖的区域) 时按下鼠标中键 (通常为鼠标滚轮) 来使用 鼠标手势。然后,您可以向四个不同的方向移动鼠标光标来执行特定的动作,下面将会给出详细介绍。

向左 - 打开之前查看的文件夹
向上 - 打开上一级文件夹
向右 - 打开在历史中之后查看的文件夹
向下 - 重新载入当前文件夹

我该如何指定不同的键盘快捷方式?

如果您想重新设置一个快捷方式,Thunar 支持以标准的 GTK+ 方式来改变一个快捷方式: 将鼠标光标移至该菜单项上方,然后按下您希望该选项使用的快捷键即可。

要删除一个键盘快捷键,在鼠标光标在该菜单项上方时按下 Backspace 键即可。

如果该快捷键并未被修改,那么您需要在 GTK+ 中开启该项特性。可以通过以下三种方式来开启:

  • 如果您使用 Xfce 4.3 或者以上版本,您可以在 用户界面首选项 对话框中启用 可修改菜单快捷键

  • 如果您使用 GNOME,您可以在 菜单和工具栏 控制中心对话框中启用 可修改菜单快捷键

  • 其他情况下,请在您的 ~/.gtkrc-2.0 文件中 (如果没有该文件请您自行创建) 添加如下内容:

    gtk-can-change-accels=1

Thunar 将键盘快捷方式设置存放在哪里?

自定义的键盘快捷键存放在以标准的 GTK+ accel map 格式存放在 $XDG_CONFIG_HOME/Thunar/accels.scm文件中。以 ; 开始的行为注释内容。查看 GTK+ 文档以获取关于该文件格式的详细信息。

如果您是一名打包者或者系统管理员,并且希望提供在整个系统环境中使用的与 Thunar 默认设置不同的键盘快捷方式,您可以在任意一个 $XDG_CONFIG_DIRS 中建立一个名为 Thunar/accels.scm 的文件。例如,如果 /etc/xdg$XDG_CONFIG_DIRS 中的一个 (在大多数 Linux 发行版上是如此),您可以将要让系统全局使用的键盘快捷方式存放至 /etc/xdg/Thunar/accels.scm 文件。Thunar 在第一次启动的时候将会从该文件中读取快捷键的内容。

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/index.html thunar-1.6.10/docs/manual/html/zh_CN/index.html --- thunar-1.2.3/docs/manual/html/zh_CN/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -Thunar 文件管理器

Thunar 文件管理器

Benedikt Meurer

软件开发者
os-cillation
系统开发


本手册介绍了 @PACKAGE_VERSION 版本的 Thunar。

在自由软件基金会发布的 GNU 自由文档许可协议版本 1.1 或以后版本的条款约束下允许复制,分发和/或修改本文档,不要求保留特定内容、封面文本或者封底文本。许可协议全文可以通过以下链接找到: 自由软件基金会

November 2007


Thunar 简介

- Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to - be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless - options by default. Thunar is fast and responsive with a good start up time and folder load time. -

- The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the - file manager to do the following: -

  • 创建文件夹和文档。

  • 列出您的文件和文件夹。

  • 管理您的文件和文件夹。

  • 执行或管理自定义动作。

  • 访问可移动媒体。

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/preferences.html thunar-1.6.10/docs/manual/html/zh_CN/preferences.html --- thunar-1.2.3/docs/manual/html/zh_CN/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -File Management Preferences

File Management Preferences

- Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. -

- The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: -

  • The default settings for the views.

  • The default settings for the side pane.

  • The behavior of the file manager windows.

  • Advanced features of the file manager.

- Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. -

Views Preferences

- You can specify a default view, select sort options and display options. You can - also specify whether thumbnails should be displayed for file types that support - this. -

Views Preferences
View new folder using

- Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. -

Sort folders before files

- Select this option to list folders before files when you sort a folder. -

Show thumbnails

- Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. -

- See “Thumbnailers”一节 if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. -

Text beside icons

- Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. -

Side Pane Preferences

- You can select display options for the shortcuts pane and the tree pane. -

Side Pane Preferences

- The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. -

图标大小

- The size of the icons displayed in the side, ranging from Very Small (around - 16x16 pixels) to Very Large (around 128x128 pixels). -

Show Icon Emblems

- Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. -

行为首选项

- You can select the preferred behavior to interact with the file manager. -

行为首选项
单击激活项目

- Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. -

- This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. -

双击激活项目

- Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. -

高级首选项

您可以控制文件管理器的高级特性。

高级首选项
文件夹权限

- Choose the action that should be performed when you change the permissions of a folder in - the Properties dialog. You can choose to let Thunar - ask everytime when you change folder permissions, tell it to default to applying the new permissions - to the folder only or to apply them recursively to the folder contents as well. -

音量控制

- If Thunar was installed with support for HAL and the thunar-volman - package is also installed, you can enable the integrated volume manager. See “Management of Removable Drives and Media”一节 - for details about this feature. -

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/support.html thunar-1.6.10/docs/manual/html/zh_CN/support.html --- thunar-1.2.3/docs/manual/html/zh_CN/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -支持

支持

报告错误或者对本程序或本文档提供建议,请使用位于 http://bugzilla.xfce.org/ 上的 bug 追踪系统。请注意,有效的错误报告应该能够很好地帮助解决问题,因此,一个有效的错误报告应该具备如下两个特点:

  • 可重现的 如果开发者自己无法体验该错误以证明其确实存在,他很可能完全无法去解决该问题。您所能够提供的每个细节信息都将会有所帮助。

  • 明确的 开发者能够越快地确定问题的所在,问题就可能被越快地解决。

如果您希望在本软件中添加新的功能特性,请清楚描述为什么您认为该功能或者特性值得添加进程序中。理由足够充分的话,该功能或者特性将更可能被添加进程序中。如果您能够直接提供该特性的补丁,添加进程序中的可能性将更高,但在您对源代码进行修改或者添加之前,请确保您先阅读以下文档 HACKING,尤其是其中 Coding Style 一节。

另外,如果您在安装或者是用本软件过程中有任何问题,请在 thunar 开发邮件列表 中提问,或者可以使用您的 IRC 客户端,加入 irc.freenode.net 服务器上的 #thunar 频道以获得帮助。

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/the-file-manager-window.html thunar-1.6.10/docs/manual/html/zh_CN/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/zh_CN/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -文件管理器窗口

文件管理器窗口

默认情况下,文件管理器窗口左侧是快捷方式栏,右侧是主区域,主区域上方为一路径栏。

文件管理器窗口

- The Shortcut Pane provides shortcuts to different folders on your system. The first - shortcut will lead to your Home Folder, the folder you store all your personal data, - and will therefore have the name of the current user. The second shortcut will take you to the trash bin, - which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop - Folder, which contains the files and folders that are displayed on the desktop. The fourth - shortcut will take you to the root of your file system - you may want to explore it a bit, even though - it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is - inside. -

- Below the File System shortcut, the removable drives and media will be displayed. In - the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts - to access the data stored on the removable drives and media. See “Using Removable Media”一节 - for further details. -

- The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the - Shortcuts Pane. This will allow you to access important folders instantly. To - remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. - To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. - Note that these actions affect only the shortcut, not the folder referenced by the shortcuts. -

- The main area will always display the contents of the current folder. Double click on - folders to enter them, and right-click on files or folders to get a context-menu offering some choices of - what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, - select one file, hold down the Shift key, and increase or decrease the selection using - the arrow keys. -

- The pathbar will always show the path you took to get to the folder you are currently - at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar - button to bring up a context-menu with some options. -

自定义外观

您可以使用多种方法自定义文件管理器窗口的外观。假如您不喜欢以图标的方式浏览,可以在主菜单中选择 查看以详细列表方式查看,将以列表形式显示当前文件夹内容。

您可以在主菜单选择 查看位置选择器工具栏风格 以在文件管理器中以位置栏取代路径栏。

如果您更倾向在左侧栏以树形列表显示,在主菜单中选择 查看侧栏以树形列表显示

Visible Columns in the Detailed List View

- If you prefer to display the contents of the folder as a list, using the Detailed List View, you can - customize the columns displayed in the list view. To customize the visible columns, choose - ViewConfigure Columns... from the main menu. -

Visible Columns
Visible Columns

- Select the columns you want to be displayed from the list of available columns. Click Move Up - or Move Down to change the order of the columns. Click Use Default to - revert your changes. -

Column Sizing

- Select the option Automatically expand columns as needed if you want the list view columns - to expand automatically if the needed to ensure the text is fully visible. -

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/using-removable-media.html thunar-1.6.10/docs/manual/html/zh_CN/using-removable-media.html --- thunar-1.2.3/docs/manual/html/zh_CN/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,133 +0,0 @@ -Using Removable Media

Using Removable Media

Accessing Removable Media

- Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. -

To Mount Media

- To mount media is to make the file system of the media available for access. When you mount media, the - file system of the media is attached as a subdirectory to your file system. -

- To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB - stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If - xfdesktop is running and configured to display File/launcher icons this - object will also be added to your desktop. -

- To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, - click on the Floppy Drive object in the side pane. The file manager will now add the file system - of the media to your file system hierarchy and display the contents of the floppy diskette in the main area. -

To Eject Media

- If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane - or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. - If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and - choose Unmount Volume. After a short period of time, a notification will appear to inform you - that it is now safe to remove the media or disconnect the drive from the computer. -

Unmount notification

- However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. -

- Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file - manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also - check command line applications running in Terminal windows. -

- Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount - the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you - might lose data or cause your system to crash. -

Management of Removable Drives and Media

- Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on - your system. Note however that this feature requires HAL support. -

- Now, if HAL support is available and thunar-volman is installed on your system, you - can choose to enable the Volume Management feature of Thunar. Therefore, open the file - manager preferences, go to the Advanced page and check the Enable Volume - Management button. -

- The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. -

Removable Drives and Media

- If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. -

- The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. -

Mount removable drives when hot-plugged

- Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. -

- This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. -

Mount removable media when inserted

- Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) - when you insert the media into the drive. -

- This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. -

Browse removable media when inserted

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

Auto-run programs on new drives and media

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

Auto-open files on new drives and media

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

- The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: -

%d

- Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. -

- If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. -

%h

- Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. -

%m

- Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. -

Troubleshooting the Volume Manager

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/zh_CN/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/zh_CN/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/zh_CN/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_CN/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -操作文件和文件夹

操作文件和文件夹

打开文件

当您打开一个文件,文件管理器会为该类型的文件执行相应的默认动作。例如,打开一个文本文件将会在默认的文本编辑器中将其显示出来,而打开一个图像文件则会在默认的图像查看器中显示该幅图片。

文件管理器检查该文件的扩展名以确定该文件的类型。如果文件没有一个已知的扩展名,文件管理器将会检查文件的内容。

执行默认动作

要对文件执行默认的动作,直接双击该文件。例如,音频文件的默认动作是使用默认的音乐播放器进行播放,在上述例子中,您可以双击该音频文件以使用默认的音乐播放器打开并播放该文件。

您可以设置 Thunar 首选项以使用单击执行默认动作。更多信息,请查看 “行为首选项”一节

执行非默认动作

要执行一个非默认动作,选中该文件。在 文件 菜单中的 以...打开 选项中或者右键菜单的 以...打开 子菜单中选择您想要执行的动作。

添加动作

要对一个类型的文件添加动作,请按以下步骤操作:

  1. 在文件管理器主区域中选择您要添加动作到该类型的一个文件。

  2. 从主菜单中选择 文件以其它应用程序打开...

  3. 以...打开 对话框中选择一个应用程序,或者选择 使用自定义命令 然后浏览并选择您需要的程序以使用该程序打开该类文件。

您选择的动作将会被添加到该类文件的动作列表中。如果您选中 作为打开此类文件的默认程序 选项或者在此之前该类文件没有默认动作,新添加的动作将会作为该类文件的默认动作。

您还可以通过 文件属性... 菜单项下的 以...打开 按钮添加动作。

修改动作

要修改一个或者一类文件使用的动作,请按以下步骤操作:

  1. 在主区域中,选中您要修改该类型动作的一个文件。

  2. 在主菜单中选择 文件属性...

  3. - Select the new default action using the Open With button or add a new action by choosing - Open With Other Application... from the drop down menu. -

- To remove a previously added action for a file type, bring up the Open With dialog as described - above, right-click the action you want to remove and choose Remove Launcher. -

File Properties

- The file properties window shows more information about any file or folder in the file manager. With this window, you can also - do the following: -

  • - Change the icon for special files, such as application launchers and URL links. -

  • - Add or remove emblems for a file or folder. -

  • - Change the UNIX file permissions for a file or folder. -

  • - Choose which application is used to open a file and other files of the same type. -

File Properties

- To open the file properties window, perform the following steps: -

  1. - Select the file or folder whose properties you want to examine or change. You cannot - select multiple items at once and display the properties that are in common to all - items currently. -

  2. - Do one of the following: -

    • 在主菜单中选择 文件属性...

    • Right-click the selected item and choose Properties... from the context menu.

    • Press Alt+Return.

    -

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/advanced-topics.html thunar-1.6.10/docs/manual/html/zh_TW/advanced-topics.html --- thunar-1.2.3/docs/manual/html/zh_TW/advanced-topics.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -進階內容

進階內容

To Bulk Rename Files

- To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. -

Bulk Rename Files

- The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: -

  • 移除字元。

  • Numbering files.

  • 插入日期或時間。

  • 插入或覆寫字元。

  • 搜尋並取代字元。

  • 轉換為大寫、小寫或駱駝式寫法。

- Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. -

UNIX 檔案系統

既然 Thunar 檔案管理員已經幫您把使用檔案的瑣碎細節給處理好了,一般使用者其實可以不必管這些細節的東西。不過稍微了解一下整體性的觀點,有時候對您也會十分有用的哦。本章節將會初淺地介紹 UNIX 檔案系統的基本概念,這些概念在每一種 UNIX 上都可以套用,當然也包括了 Linux。

檔案與路徑

在 UNIX 檔案系統中,所有的資料夾都可以像摸藤找地瓜一樣 ;匯歸到同一個最初始的源頭目錄。這一個目錄,我們叫它 根目錄 (我們比較常用 目錄 這個字眼而不是用資料夾) 而在 Thunar 裡則是顯示為檔案系統 。這表示在開枝散葉的樹狀結構中,您可以很有條理地在各個資料夾裡層層往上推,最後都是殊途同歸;然後再來清楚地往下尋找您想要找到的資料夾,一切都有條不紊。

在系統裡任何檔案或資料夾的位置都能用所謂的路徑 來描述。 路徑會以根目錄為起始,條列出您指定的檔案或資料夾的精確位置。舉個例子來看: /home/luke 就是表示從根目錄算起,luke 是位於 home 底下的子目錄,而/home/luke/myfile.txt 表示檔案 myfile.txt 就放在子目錄裡。最前面的反斜線 / 就是代表根目錄的意思。

每位使用者都擁有自己的目錄以置放自己的檔案和相關的設定。這個目錄稱為家目錄 ,您在 Thunar 工具列上會看到一個標示著您登入帳號的特別小圖示。這個目錄有點類似您在 Windows 底下常看到的 我的文件夾。 系統使用者的家目錄 通常是被放在 /home 這個目錄底下。比如說 /home/luke 這個目錄就是登入帳號為 luke這個用戶的家目錄。同樣地 /home/jane也就是登入帳號為jane這個使用者的家目錄。

檔案類型

也許您有聽說在 UNIX 底下任何東西都是「檔案」, 時至今日 UNIX 的本色依然如此。事實上就連硬體設備也被當作特別的「檔案」。或許乍聽之下會有點奇怪,這卻正是 Unix 具有韌性和延展性的強項之一。如此安排讓 Unix 數十年來不管面對怎樣的新科技,核心架構依然單純合理。不像其他的作業系統需要不斷花時間更改它們的架構內容才有辦法跟上時代。

在 UNIX 系統中,有四種最重要的檔案類型您不可不知。

實質檔案

實質檔案的定義包含文字、程式、或其它具體的資料。像是影像檔、音訊檔、辦公文件、影片檔等這些常見的東西。一般我們講的 檔案 其實就是在說這些實質檔案。

目錄檔

資料夾在 UNIX 裡也是一種檔案。我們要把它視作一種特殊檔案,主要的功用在於儲存資料夾中每個實質檔案依照其檔名所產生的對應關係並且處理和安置這些關聯性。

符號連結檔

符號連結 (常被稱為 symlink) 是一種特殊的檔案,內含檔案系統上另一個檔案的路徑。符號連結檔案除了指向其它檔案以外,本身並未包含太多有用的資訊。

裝置檔

前面提到既然硬體是「檔案」,它們當然也位於檔案系統之中。這些特殊的「硬體檔」通常都擺在 /dev 這個資料夾。比方說「硬體檔」 /dev/hda 就代表您的Linux 裡頭第一顆(a) IDE 硬碟(hd)。

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/copyright.html thunar-1.6.10/docs/manual/html/zh_TW/copyright.html --- thunar-1.2.3/docs/manual/html/zh_TW/copyright.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/copyright.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -關於 Thunar

關於 Thunar

Thunar 是由 Benedikt Meurer ()所撰寫。請造訪 Thunar 網站以獲得更多資訊。

本文件撰寫人為 Benedikt Meurer ()。最新版本的文件內容可自這裡 Thunar website取得。

本軟體依自由軟體基金會所訂立的 GNU General Public License 授權條款散布;乃依該授權條款的 2 版為基準,(如您有意願) 亦准許採用其後續版本。

本軟體應有隨附一份 GNU General Public License 授權條款; 如果您沒有找到,請來信告知 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/customizing-thunar.html thunar-1.6.10/docs/manual/html/zh_TW/customizing-thunar.html --- thunar-1.2.3/docs/manual/html/zh_TW/customizing-thunar.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/customizing-thunar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,161 +0,0 @@ -自訂 Thunar

自訂 Thunar

本章旨在描述如何自訂檔案管理員的某些部份以符合您自身的需求。

The "Send To" Menu

- Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. -

"Send To" Menu

- By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. -

- In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. -

- Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). -

- The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. -

- A complete example using the postr application is shown below: -

-# postr.desktop - Integrate postr into
-#                 the "Send To" menu.
-[Desktop Entry]
-Type=Application
-Version=1.0
-Encoding=UTF-8
-TryExec=postr
-Exec=postr %F
-Icon=postr
-Name=Flickr
-MimeType=image/jpeg;

- If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. -

- The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. -

Thumbnailers

- Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. -

- If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. -

- Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. -

Thumbnailer Description File Format

- Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=Your Thumbnailer
-MimeType=your-supported/mime-type;
-X-Thumbnailer-Exec=your-thumbnailer %i %o %s

- The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. -

- The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: -

%i

The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path.

%o

The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools.

%s

The desired size of the generated thumbnail in pixels. This parameter is optional.

%u

Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME.

%%

Will be substituted with a single %.

- You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. -

- The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. -

Example EPS Thumbnailer

- This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. -

-#!/bin/sh
-#
-# eps-thumbnailer - Example thumbnailer script for EPS files.
-#
-# Usage: esp-thumbnailer eps-file png-file size
-#
-
-# command line parameters
-ifile=$1
-ofile=$2
-size=$3
-
-# invoke convert (ImageMagick)
-exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

- Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. -

-$ chmod +x eps-thumbnailer
-$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

- Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: -

-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Type=X-Thumbnailer
-Name=EPS Thumbnailer
-TryExec=convert
-MimeType=image/x-eps;
-X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

- This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). -

-$ sudo install -d /usr/local/share/thumbnailers
-$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

- The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. -

- The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: -

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

- But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. -

- Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using -

$ Thunar -q

- to terminate any running instance, and afterwards restart it from your launcher. -

Cleaning up Thumbnails

- The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using -

$ rm -rf ~/.thumbnails/

- which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. -

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/faq.html thunar-1.6.10/docs/manual/html/zh_TW/faq.html --- thunar-1.2.3/docs/manual/html/zh_TW/faq.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/faq.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -常見問題集

常見問題集

以下章節的內容,是我們在各方搜集整理當您在使用 Thunar 時,可能會遇上的常見狀況及其簡易解答。如果您知道一些有用的問題卻沒列在裡頭,請經由 file a request告訴我們。

在 Thunar 裡頭看到的可執行檔為什麼不能執行?

為了系統安全 Thunar 只能夠執行 application/x-desktopapplication/x-executable 還有application/x-shellscript這幾種執行檔。放在桌面上的程式圖示除非在Application這欄有設定並且有標明 Exec 這一行否則無法執行,此外像 Link(連結) 這種桌面圖示沒有輸入正確的 URL (網址)的話也會執行失敗。其他類型的執行檔除非目前的使用者有為它們加上可執行的內容屬性,不然也是不會動的。

另外也要注意屬於 application/x-executable 以及 application/x-shellscript的執行檔。這些類型的程式碼不需要真的符合內建對應的檔案類型就能執行。只要執行檔的父程序符合上述兩種執行檔之一,或者其 MIME-類型是上述執行檔類型的別名的話,就能夠被執行。

Thunar 都把設定檔案關聯類型的資料放在哪裡呢?

Thunar 能夠處理許多類型的檔案與資料夾,全靠我們叫作元始資料的法寶。這種聯繫所有檔案類型的元始資料是以 tdb 資料庫型式儲存的,而這個資料庫檔又稱為元始檔案(metafile)。儲存的檔案放在 $XDG_CACHE_HOME/Thunar/metafile.tdb 這裡,您可以用tdbtool來檢查一下,在 Thunar 公布的原始碼中附有這個工具。(放在原始碼解開後的 tdb/ 子目錄裡)。

請問 Thunar 的功能設定放在哪裡呢?

Thunar 將可供使用者調整的設定 (以及隱藏的設定值) 放在一個 .ini 檔案中,它位於 $XDG_CONFIG_HOME/Thunar/thunarrc 這個檔案裡頭,您可以使用文字編輯器來直接加以修改。請參考 docs/README.thunarrc 說明檔案以便認識這些設定選項。

要怎麼在 Thunar 裡頭使用滑鼠手勢?

Thunar 現在使用圖示檢視模式時可以玩到一種叫作滑鼠手勢 的新功能。要使用滑鼠手勢 您需要按住滑鼠中鍵 (也就是滾輪的地方) 不放,然後在檔案總管空白的地方就會出現之前沒看過的箭頭游標 (請注意不要點到任何檔案圖示或文字)。 現在您可以上下左右動動看這個游標,我們將為您說明指到這四個方向有什麼作用。

向左 - 回去前一個目錄
往上 - 跳到往上一層的目錄
向右 - 跳到往後一個目錄
往下 - 重新整理現在這個目錄

我要怎樣才能改成我想要的快速鍵?

如果您想要更改快速鍵,Thunar 支援標準的 GTK+ 行為方便您改動快速鍵:只要將滑鼠游標指到程式選單中您可以反白的操作選項那裡,然後馬上按下您想要的快速鍵組合就行了。

要消除您不想要的快速鍵,同樣也是滑鼠擺到程式選單可以反白的操作選項那裡然後按下消去鍵( Backspace )即可。

如果設定的快速鍵沒有更動,那麼您需要自行啟用 GTK+ 的這個好用之處。有3種方法可以幫您做到:

  • 如果您有執行 Xfce 4.3 或更新的版本,請在使用者介面自定 設定中心的地方勾選 自定程式選單功能 選項即可。

  • 如果您在執行 GNOME 桌面,則在控制台中 選單及工具列 的地方勾選 自定程式選單功能

  • 最後手段就是在您的 ~/.gtkrc-2.0 設定檔(沒有的話請自行建立)裡加上這一段 :

    gtk-can-change-accels=1

那麼 Thunar 是把快速鍵的設定放在哪裡呢?

自定的快速鍵會存成標準的 GTK+ accel 對映格式然後擺在 $XDG_CONFIG_HOME/Thunar/accels.scm這個檔案裡。您若看到每行最前面有 ; 就是註解停用的。請參考 GTK+ 文件以便深入了解這種檔案格式的細節。

如果您是軟體包裝人員或是系統管理員,那麼也許會想要提供一組全域適用的預設快速鍵,而不是採用Thunar 原始碼中提供的設定。您可以建立像 Thunar/accels.scm 的檔案,放在 $XDG_CONFIG_DIRS 的資料夾裡。舉例來說,如果 /etc/xdg 屬於 $XDG_CONFIG_DIRS (大多數 Linux 套件的預設路徑)的話,您就可以把全域使用的快速鍵放在/etc/xdg/Thunar/accels.scm這邊。Thunar 在初次啟動時就會載入這裡的快速鍵設定。

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/index.html thunar-1.6.10/docs/manual/html/zh_TW/index.html --- thunar-1.2.3/docs/manual/html/zh_TW/index.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Thunar 檔案管理員

Thunar 檔案管理員

Benedikt Meurer

軟體開發人員
os-cillation
系統開發


本手冊說明1.2.0git-cc468f4 版本的 Thunar 操作方式

您可以複製、散布、「及/或」更改文件內容,其成立條件為遵照 GNU 自由文件授權 (GFDL) 版本 1.1 或之後自由軟體基金會的更新授權版本。所附授權條款內文章節不可更動,不應附有封面文字,也不應附有封底文字。完整的授權條款內容可自這裡 Free Software Foundation取得。

November 2007


介紹 Thunar

Thunar 是 Xfce 桌面環境嶄新的檔案管理員。Thunar 以快速且易於使用為設計的原則。它的使用介面清爽又直覺,也沒有什麼奇奇怪怪的東西或預設一些無用的額外功能。Thunar 在啟動程式及載入目錄時的反應時間都奇快無比。

Thunar 檔案管理員能夠讓您很直覺地管理自己的檔案與程式。您可以使用檔案管理員從事以下的操作:

  • 建立目錄與文件

  • 檢視您的檔案和資料夾。

  • 管理您的檔案與資料夾。

  • 可以執行並管理自定的動作。

  • 存取隨身型的儲存媒體。

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/preferences.html thunar-1.6.10/docs/manual/html/zh_TW/preferences.html --- thunar-1.2.3/docs/manual/html/zh_TW/preferences.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -檔案管理偏好設定

檔案管理偏好設定

使用檔案管理員偏好設定對話窗來設定您的 Thunar 檔案管理員偏好設定。若要開啟該偏好設定對話窗,請從選單列中選擇編輯偏好設定...,或是點擊 Xfce 設定值管理員內的 檔案管理員按鈕。

檔案管理員偏好設定對話窗分為四個有不同的選項的頁面,每個頁面的選項都位於下方的獨立區塊內。基本上您可以於下列分類內設定偏好設定:

  • 檢視的預設值。

  • 側窗格的預設值。

  • 檔案管理員視窗的行為。

  • 檔案管理員的進階功能。

Thunar 也支援一堆所謂的隱藏選項,可以控制許多檔案管理員的進階功能,但是為了保持偏好設定對話窗的簡單設計,它們沒有被納入偏好設定中。Thunar 發行內所包含的 README.thunarrc 檔案有所有可用選項的詳細描述。

檢視偏好設定

您可以指定預設檢視、選取排序選項與顯示選項。您也可以指定那些支援縮圖的檔案類型是否要顯示縮圖。

檢視偏好設定
檢視新資料夾的設定

選取檢視資料夾時的預設檢視設定。當您開啟新視窗時,顯示您所選取的檢視方式。它可以是圖示檢視、簡潔清單檢視、詳細清單檢視。您也可以在這裡選取上次的檢視狀態以使用您最後一次開啟視窗所使用的檢視方式。

將資料夾排在檔案前面

選取此選項以讓您排序資料夾的內容時讓內含的資料夾排在檔案前面。

顯示縮圖

選取此選項以顯示影像檔與其它支援本功能檔案的縮圖。檔案管理員會在使用者「家資料夾」內隱藏的 .thumbnails 目錄內,為每個資料夾儲存縮圖檔案。

如果您想要擴展 Thunar 提供的基本縮圖功能,為它加入額外檔案類型支援的話,請見 “Thumbnailers”

文字位於圖示旁

選取此選項以在圖示檢視內,將項目的圖示說明放置在圖示的旁邊而不是在圖示的下方。

側窗格偏好設定

您可以為捷徑窗格與樹狀窗格選取顯示選項。

側窗格偏好設定

側窗格還可以顯示一份您檔案系統內資料夾的捷徑清單 (預設情況),或是顯示您檔案系統的樹狀檢視。此頁面讓您可以為捷徑與樹狀窗格選取圖示大小。您也可以指定是否要顯示標記。

圖示大小

在側邊要顯示的圖示大小,範圍從最小 (大約 16x16 像素) 到最大 (大約 128x128 像素)。

顯示圖示標記

選取此選項以在側窗格內顯示資料夾的標記。您可以在屬性對話窗內指定資料夾的標記。在主要區域內選取一份資料夾,接著選擇從主選單選擇檔案屬性...,或是對該資料夾點擊右鍵並從情境選單內選取屬性...

行為偏好設定

您可以選取和檔案管理員互動的偏好行為。

行為偏好設定
單點擊以啟用項目

選取此選項以在您點擊某項目時為該項目執行預設動作。當選取了此選項,而您指向某個項目,該項目的標題會被加上底線,並且在一小段延遲時間後該項目將會被自動選取。

此延遲時間可以在該選項的下方調整。您也可以停用自動項目選取,只要將滑桿移動至最左方的位置即可。

雙點擊以啟用項目

選取此選項以在您雙次點擊某項目時為該項目執行預設動作,而單次點擊則是用來選取項目。

進階偏好設定

您可以控制檔案管理員的進階功能。

進階偏好設定
資料夾權限

選擇您在屬性對話窗內變更權限時應該要執行的動作。您可以選擇讓 Thunar 在您變更資料夾權限時每次都問,或是請它預設為只套用到資料夾本身,或是遞迴地套用到資料夾所含內容。

儲存裝置管理

如果 Thunar 安裝時有加入 HAL 支援,並且同時也有安裝 thunar-volman 套件的話,您可以啟用整合的儲存裝置管理員。請見 “Management of Removable Drives and Media” 以取得此功能的詳細資訊。

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/support.html thunar-1.6.10/docs/manual/html/zh_TW/support.html --- thunar-1.2.3/docs/manual/html/zh_TW/support.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/support.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -程式支援

程式支援

對這份手冊以及介紹的程式若發現錯誤或有其他建議,請用錯誤回報系統http://bugzilla.xfce.org/告訴我們。一份描述妥當的錯誤回報,能夠加快我們改善的進度。而妥當的回報主要有兩項重點:

  • 出錯屢試不爽。如果開發人員在他那邊沒有辦法重現出錯的步驟,也就無從得知如何修理了。請儘量提供您如何操作時的細節。

  • 軟硬體環境 The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it.

如果您想要下一版能加入一些新功能,請清楚地跟我們講為何加入的功能可以讓程式更好用。假若您提出的新功能真地讓我們覺得夠好夠讚非加不可,下一版的程式可能就會有哦。懂得修改程式的您如果能夠提供實作新功能的 patch ,那麼下一版會出現的機會就更大了。不過請先閱讀網站上的 HACKING 說明 - 尤其是 Coding Style 這一節 - 這樣合作起來才會更愉快哦。

最後,如果您在使用或安裝本軟體時有什麼問題,請洽詢 thunar-dev mailing list ,或是使用 IRC 聊天軟體連上 irc.freenode.net,加入我們的頻道 #thunar ,裡面會有熱心的人幫您。

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/the-file-manager-window.html thunar-1.6.10/docs/manual/html/zh_TW/the-file-manager-window.html --- thunar-1.2.3/docs/manual/html/zh_TW/the-file-manager-window.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/the-file-manager-window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -檔案管理員視窗

檔案管理員視窗

預設情況下,檔案管理員視窗是由左方的捷徑窗格、右方的主要區域、主要區域上方的路徑列所構成。

檔案管理員視窗

捷徑窗格提供一些您系統上不同資料夾的捷徑。第一個捷徑會進入家資料夾,那是用來儲存您所有個人資料的資料夾,所以會以目前使用者的名稱表示。第二個捷徑將帶領您查看垃圾桶,它保留您刪除過的檔案,並且未來可以將它們還原。第三個捷徑會引領您前往桌面資料夾,它包含顯示在您桌面上的檔案與資料夾。第四個捷徑則會帶著您到您檔案系統的根目錄去 - 雖然它對於 Linux/Unix 新手來說還有點令人摸不著頭緒,但您還是有可能想探索它。只要點選不同的資料夾後就能查看裡面有什麼東西。

檔案系統捷徑的下方,會顯示可移除式裝置與媒體。在上方的螢幕擷圖中,您可以看見一個軟碟機捷徑。點擊這些捷徑以存取儲存在可移除式裝置與媒體內的資料。請見 “使用可移除式媒體” 以瞭解更多細節。

剩下的捷徑是使用者自行定義的。只要將資料夾拖曳至捷徑窗格內,就能輕鬆加入您自己的捷徑。這樣您便可以即時存取重要的資料夾。若要移除之前加入的捷徑,對該捷徑點擊右鍵並選擇移除捷徑。若要重新命名之前加入的捷徑,對該捷徑點擊右鍵並選擇重新命名捷徑。請注意這些動作只會影響到捷徑而已,不會反應到捷徑所參照的資料夾。

主要區域 用來顯示目前資料夾內的內容。請雙擊資料夾以進入其中,接著針對檔案或資料夾點擊右鍵以取得情境選單,情境選單提供您一些目前情境下可以做什麼事的選項。您可以透過滑鼠拖曳出一個矩形,並將該矩形覆蓋住您想選取的多項檔案來選取它們。另外,您也可以先選取一個檔案,接著按住 Shift 鍵,再使用方向鍵來增加或減少您的選取項目。

路徑列 用來顯示您目前所在的資料夾路徑。您可以點擊任何路徑列按鈕來變換至按鈕所代表的資料夾。對路徑列按鈕點擊右鍵會帶出附有一些選項的情境選單。

自訂外觀

有許多方式可以自訂檔案管理員視窗的外觀。舉例來說,如果您不喜歡圖示顯示的方式,那麼從主選單選擇檢視以詳細清單方式檢視就能將目前資料夾的內容以清單的方式顯示。

您可以讓檔案管理員視窗用位置列取代路徑列,只要從主選單選擇檢視位置表示工具列風格就能達成。

如果您偏好左方窗格內是樹狀檢視,那麼從主選單選擇檢視側窗格樹狀圖即可。

詳細清單檢視模式下的可見欄位

如果您偏好將資料夾的內容以清單方式顯示,也就是使用以詳細清單方式檢視的話,您可以自訂清單檢視所顯示的欄位。想要自訂可見欄位的話,從主選單選擇檢視設定欄位...即可。

可見欄位
可見欄位

從可用的欄位清單中選取您想要顯示的欄位。點擊上移下移來變更欄位的順序。點擊使用預設來撤銷所做的變更。

欄位大小

若您想要讓清單檢視欄位在文字被遮住時自動延展欄位讓文字可以完全看見的話,則選取依需求自動延展欄位

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/using-removable-media.html thunar-1.6.10/docs/manual/html/zh_TW/using-removable-media.html --- thunar-1.2.3/docs/manual/html/zh_TW/using-removable-media.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/using-removable-media.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,115 +0,0 @@ -使用可移除式媒體

使用可移除式媒體

存取可移除式媒體

- Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. -

掛載媒體

掛載 媒體是要讓媒體的檔案系統可供存取。當您掛載媒體時,該媒體的檔案系統會以子目錄的方式連接至您的檔案系統。

若要存取媒體,請將媒體插入適當的裝置,或是將新裝置接上您的電腦 (例:將 USB 隨身碟插入您的 USB 連接埠)。接著一個代表該媒體的物件會加入檔案管理員的側窗格內。如果 xfdesktop 正在執行中,並且被設置為會顯示檔案/啟動器圖示的話,此物件也會加入至您的桌面上。

若要實際掛載媒體,請點擊代表該媒體的物件。比如說您要掛載軟碟片的話,就點擊側窗格內的軟碟機。接著,檔案管理員將立刻將該媒體的檔案系統加入至您的檔案系統階層目錄內,並且在主要區域內顯示軟碟片的內容。

退出媒體

如果媒體的裝置屬於機動型裝置 (例:光碟機),在側窗格或是桌面上對該媒體物件點擊右鍵,接著選擇退出儲存裝置。該媒體將在幾秒後從裝置中退出。如果媒體的裝置屬於非機動型 (例:軟碟機或 USB 隨身碟),對該媒體物件點擊右鍵,接著選擇卸載儲存裝置。一小段時間後,系統會顯示通知以通知您現在從電腦移除媒體或是斷開裝置連接是安全的。

Unmount notification

- However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. -

- Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file - manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also - check command line applications running in Terminal windows. -

- Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount - the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you - might lose data or cause your system to crash. -

Management of Removable Drives and Media

- Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on - your system. Note however that this feature requires HAL support. -

- Now, if HAL support is available and thunar-volman is installed on your system, you - can choose to enable the Volume Management feature of Thunar. Therefore, open the file - manager preferences, go to the Advanced page and check the Enable Volume - Management button. -

- The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. -

可移除式裝置與媒體

- If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. -

- The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. -

Mount removable drives when hot-plugged

- Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. -

- This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. -

Mount removable media when inserted

- Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) - when you insert the media into the drive. -

- This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. -

Browse removable media when inserted

- Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. -

Auto-run programs on new drives and media

- Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. -

- If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. -

Auto-open files on new drives and media

- Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. -

- The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: -

%d

- Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. -

- If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. -

%h

- Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. -

%m

- Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. -

Troubleshooting the Volume Manager

- Useful tips to trouble shoot the volume manager in case it does not work as expected. -

  1. - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - Alt+F2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. -

  2. - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. -

- If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. -

diff -Nru thunar-1.2.3/docs/manual/html/zh_TW/working-with-files-and-folders.html thunar-1.6.10/docs/manual/html/zh_TW/working-with-files-and-folders.html --- thunar-1.2.3/docs/manual/html/zh_TW/working-with-files-and-folders.html 2011-09-20 20:28:46.000000000 +0000 +++ thunar-1.6.10/docs/manual/html/zh_TW/working-with-files-and-folders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -管理您的檔案與資料夾

管理您的檔案與資料夾

開啟檔案

當您開啟一份檔案時,檔案管理員會執行該檔案類型的預設動作。舉例來說,開啟一份文字檔會以預設的文字編輯器顯示其內容;而開啟一份影像檔會以預設的影像檢視器顯示該影像。

檔案管理員會檢查檔案的副檔名來決定檔案的類型。如果檔案沒有副檔名,那麼檔案管理員會仔細探查該檔案的內容。

執行預設動作

若要為檔案執行預設動作,請雙點該檔案。舉例來說,音訊檔案的預設動作是使用預設的音樂播放應用程式播放它。在這種情況下,您可以雙點該檔案以在音樂播放器內開啟它。

您可以設定 Thunar 偏好設定,如此一來您只要對檔案點擊一次就能執行預設動作。若要瞭解更多資訊,請見 “行為偏好設定”

執行非預設動作

若要對檔案執行預設動作之外的動作,請先選取您想要執行該動作的檔案。接著在檔案選單內的以此開啟 可選項目,或是以此開啟 子選單內的可選項目中挑選偏愛的動作。

加入動作

若要加入與某種檔案類型關聯的動作,請執行下列步驟:

  1. 在主要區域內,選取您想要加入動作的某類型檔案。

  2. 從主選單選擇檔案以其它應用程式開啟...

  3. 也可以在以此開啟對話窗內選擇應用程式,或是選取使用自訂指令來瀏覽您希望開啟此類型檔案的程式。

您選擇的動作現在已加入該特定檔案類型的動作清單內。若您啟用了設為此類檔案的預設動作選項,或是之前都沒有任何動作和該類型檔案相關聯的話,新加入的動作將成為預設動作。

您也可以透過檔案屬性...之下的以此開啟按鈕來加入動作。

修改動作

若要修改與檔案或檔案類型相關聯的動作,請執行下列步驟:

  1. 在主要區域內,選取您想要修改動作的類型的檔案。

  2. 從主選單選擇檔案屬性...

  3. 使用以此開啟按鈕來選取新的預設動作,或是從下拉式選單選擇以其它應用程式開啟...來加入新動作。

若要為某檔案類型移除之前加入的動作,如上述方式叫出以此開啟對話窗,對您想要移除的動作點擊右鍵,接著選擇移除啟動器

檔案屬性

檔案管理員內的檔案屬性視窗會顯示更多有關任何檔案或資料夾的資訊。有了該視窗,您可以進行以下的操作:

  • 為特殊檔案變更圖示,像是應用程式啟動器與 URL 連結。

  • 加入或移除檔案或資料夾的標記

  • 為檔案或資料夾變更 UNIX 檔案權限。

  • 選擇用來開啟某檔案以及其它同類型檔案的應用程式。

檔案屬性

若要開啟檔案屬性視窗,請執行下載步驟:

  1. 選取您想要檢視或變更屬性的檔案或資料夾。您無法同時選取多個項目並顯示它們的屬性,目前對於所有項目都不能這樣操作。

  2. 執行下列動作之一:

    • 從主選單選擇檔案屬性...

    • 對選取的項目點擊右鍵,接著從情境選單內選擇屬性...

    • 按下 Alt+Enter

Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/bulk-rename.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/bulk-rename.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/file-manager-window.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/file-manager-window.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/file-properties.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/file-properties.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/bulk-rename.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/bulk-rename.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/file-manager-window.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/file-manager-window.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/file-properties.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/file-properties.png differ diff -Nru thunar-1.2.3/docs/manual/images/fr/Makefile.am thunar-1.6.10/docs/manual/images/fr/Makefile.am --- thunar-1.2.3/docs/manual/images/fr/Makefile.am 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/docs/manual/images/fr/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -# $Id$ - -imagesdir = $(docdir)/html/fr/images -images_DATA = \ - bulk-rename.png \ - file-manager-window.png \ - file-properties.png \ - preferences-advanced.png \ - preferences-behavior.png \ - preferences-side-pane.png \ - preferences-views.png \ - removable-drives-and-media.png \ - removable-media-unmount.png \ - sendto-menu.png \ - visible-columns.png - -EXTRA_DIST = \ - $(images_DATA) - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/docs/manual/images/fr/Makefile.in thunar-1.6.10/docs/manual/images/fr/Makefile.in --- thunar-1.2.3/docs/manual/images/fr/Makefile.in 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/docs/manual/images/fr/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,553 +0,0 @@ -# Makefile.in generated by automake 1.11.1 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@ - -# $Id$ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = docs/manual/images/fr -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(imagesdir)" -DATA = $(images_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_CFLAGS = @DBUS_CFLAGS@ -DBUS_LIBS = @DBUS_LIBS@ -DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ -DBUS_VERSION = @DBUS_VERSION@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXIF_CFLAGS = @EXIF_CFLAGS@ -EXIF_LIBS = @EXIF_LIBS@ -EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ -EXIF_VERSION = @EXIF_VERSION@ -EXO_CFLAGS = @EXO_CFLAGS@ -EXO_LIBS = @EXO_LIBS@ -EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ -EXO_VERSION = @EXO_VERSION@ -FGREP = @FGREP@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ -GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO_CFLAGS = @GIO_CFLAGS@ -GIO_LIBS = @GIO_LIBS@ -GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ -GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ -GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ -GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ -GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ -GIO_VERSION = @GIO_VERSION@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ -GTHREAD_LIBS = @GTHREAD_LIBS@ -GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ -GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ -GTK_VERSION = @GTK_VERSION@ -GUDEV_CFLAGS = @GUDEV_CFLAGS@ -GUDEV_LIBS = @GUDEV_LIBS@ -GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ -GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_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@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ -LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ -LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ -LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSM_CFLAGS = @LIBSM_CFLAGS@ -LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ -LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ -LIBTOOL = @LIBTOOL@ -LIBX11_CFLAGS = @LIBX11_CFLAGS@ -LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ -LIBX11_LIBS = @LIBX11_LIBS@ -LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ -LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ -LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ -LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ -LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ -LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ -LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ -LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ -LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ -LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ -LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ -LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ -PCRE_VERSION = @PCRE_VERSION@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ -PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ -PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ -THUNARX_VERINFO = @THUNARX_VERINFO@ -THUNARX_VERSION_API = @THUNARX_VERSION_API@ -THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ -THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ -THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_ARGS = @XGETTEXT_ARGS@ -XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -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 = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xfconf_query_found = @xfconf_query_found@ -imagesdir = $(docdir)/html/fr/images -images_DATA = \ - bulk-rename.png \ - file-manager-window.png \ - file-properties.png \ - preferences-advanced.png \ - preferences-behavior.png \ - preferences-side-pane.png \ - preferences-views.png \ - removable-drives-and-media.png \ - removable-media-unmount.png \ - sendto-menu.png \ - visible-columns.png - -EXTRA_DIST = \ - $(images_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 docs/manual/images/fr/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/manual/images/fr/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 -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-imagesDATA: $(images_DATA) - @$(NORMAL_INSTALL) - test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)" - @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ - done - -uninstall-imagesDATA: - @$(NORMAL_UNINSTALL) - @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(imagesdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(imagesdir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(imagesdir)"; 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) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool 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-imagesDATA - -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 mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-imagesDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-imagesDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-imagesDATA - - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: - -# 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/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/preferences-advanced.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/preferences-advanced.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/preferences-behavior.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/preferences-behavior.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/preferences-side-pane.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/preferences-side-pane.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/preferences-views.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/preferences-views.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/removable-drives-and-media.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/removable-drives-and-media.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/removable-media-unmount.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/removable-media-unmount.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/sendto-menu.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/sendto-menu.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/fr/visible-columns.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/fr/visible-columns.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/bulk-rename.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/bulk-rename.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/file-manager-window.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/file-manager-window.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/file-properties.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/file-properties.png differ diff -Nru thunar-1.2.3/docs/manual/images/ja/Makefile.am thunar-1.6.10/docs/manual/images/ja/Makefile.am --- thunar-1.2.3/docs/manual/images/ja/Makefile.am 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/docs/manual/images/ja/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -# $Id$ - -imagesdir = $(docdir)/html/ja/images -images_DATA = \ - bulk-rename.png \ - file-manager-window.png \ - file-properties.png \ - preferences-advanced.png \ - preferences-behavior.png \ - preferences-side-pane.png \ - preferences-views.png \ - removable-drives-and-media.png \ - removable-media-unmount.png \ - sendto-menu.png \ - visible-columns.png - -EXTRA_DIST = \ - $(images_DATA) - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/docs/manual/images/ja/Makefile.in thunar-1.6.10/docs/manual/images/ja/Makefile.in --- thunar-1.2.3/docs/manual/images/ja/Makefile.in 2011-09-20 20:28:12.000000000 +0000 +++ thunar-1.6.10/docs/manual/images/ja/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,553 +0,0 @@ -# Makefile.in generated by automake 1.11.1 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@ - -# $Id$ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = docs/manual/images/ja -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(imagesdir)" -DATA = $(images_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_CFLAGS = @DBUS_CFLAGS@ -DBUS_LIBS = @DBUS_LIBS@ -DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ -DBUS_VERSION = @DBUS_VERSION@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXIF_CFLAGS = @EXIF_CFLAGS@ -EXIF_LIBS = @EXIF_LIBS@ -EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ -EXIF_VERSION = @EXIF_VERSION@ -EXO_CFLAGS = @EXO_CFLAGS@ -EXO_LIBS = @EXO_LIBS@ -EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ -EXO_VERSION = @EXO_VERSION@ -FGREP = @FGREP@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ -GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO_CFLAGS = @GIO_CFLAGS@ -GIO_LIBS = @GIO_LIBS@ -GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ -GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ -GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ -GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ -GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ -GIO_VERSION = @GIO_VERSION@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ -GTHREAD_LIBS = @GTHREAD_LIBS@ -GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ -GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ -GTK_VERSION = @GTK_VERSION@ -GUDEV_CFLAGS = @GUDEV_CFLAGS@ -GUDEV_LIBS = @GUDEV_LIBS@ -GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ -GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_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@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ -LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ -LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ -LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSM_CFLAGS = @LIBSM_CFLAGS@ -LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ -LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ -LIBTOOL = @LIBTOOL@ -LIBX11_CFLAGS = @LIBX11_CFLAGS@ -LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ -LIBX11_LIBS = @LIBX11_LIBS@ -LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ -LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ -LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ -LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ -LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ -LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ -LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ -LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ -LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ -LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ -LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ -LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ -PCRE_VERSION = @PCRE_VERSION@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ -PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ -PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ -THUNARX_VERINFO = @THUNARX_VERINFO@ -THUNARX_VERSION_API = @THUNARX_VERSION_API@ -THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ -THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ -THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_ARGS = @XGETTEXT_ARGS@ -XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -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 = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xfconf_query_found = @xfconf_query_found@ -imagesdir = $(docdir)/html/ja/images -images_DATA = \ - bulk-rename.png \ - file-manager-window.png \ - file-properties.png \ - preferences-advanced.png \ - preferences-behavior.png \ - preferences-side-pane.png \ - preferences-views.png \ - removable-drives-and-media.png \ - removable-media-unmount.png \ - sendto-menu.png \ - visible-columns.png - -EXTRA_DIST = \ - $(images_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 docs/manual/images/ja/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/manual/images/ja/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 -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-imagesDATA: $(images_DATA) - @$(NORMAL_INSTALL) - test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)" - @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ - done - -uninstall-imagesDATA: - @$(NORMAL_UNINSTALL) - @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(imagesdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(imagesdir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(imagesdir)"; 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) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool 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-imagesDATA - -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 mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-imagesDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-imagesDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-imagesDATA - - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: - -# 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/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/preferences-advanced.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/preferences-advanced.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/preferences-behavior.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/preferences-behavior.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/preferences-side-pane.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/preferences-side-pane.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/preferences-views.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/preferences-views.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/removable-drives-and-media.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/removable-drives-and-media.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/removable-media-unmount.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/removable-media-unmount.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/sendto-menu.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/sendto-menu.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/ja/visible-columns.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/ja/visible-columns.png differ diff -Nru thunar-1.2.3/docs/manual/images/Makefile.am thunar-1.6.10/docs/manual/images/Makefile.am --- thunar-1.2.3/docs/manual/images/Makefile.am 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/docs/manual/images/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -SUBDIRS = \ - fr \ - ja \ - pl - -imagesdir = $(docdir)/html/C/images -images_DATA = \ - bulk-rename.png \ - file-manager-window.png \ - file-properties.png \ - preferences-advanced.png \ - preferences-behavior.png \ - preferences-side-pane.png \ - preferences-views.png \ - removable-drives-and-media.png \ - removable-media-unmount.png \ - sendto-menu.png \ - visible-columns.png - -EXTRA_DIST = \ - $(images_DATA) - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/docs/manual/images/Makefile.in thunar-1.6.10/docs/manual/images/Makefile.in --- thunar-1.2.3/docs/manual/images/Makefile.in 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/docs/manual/images/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,758 +0,0 @@ -# Makefile.in generated by automake 1.11.1 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@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = docs/manual/images -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(imagesdir)" -DATA = $(images_DATA) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_CFLAGS = @DBUS_CFLAGS@ -DBUS_LIBS = @DBUS_LIBS@ -DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ -DBUS_VERSION = @DBUS_VERSION@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXIF_CFLAGS = @EXIF_CFLAGS@ -EXIF_LIBS = @EXIF_LIBS@ -EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ -EXIF_VERSION = @EXIF_VERSION@ -EXO_CFLAGS = @EXO_CFLAGS@ -EXO_LIBS = @EXO_LIBS@ -EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ -EXO_VERSION = @EXO_VERSION@ -FGREP = @FGREP@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ -GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO_CFLAGS = @GIO_CFLAGS@ -GIO_LIBS = @GIO_LIBS@ -GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ -GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ -GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ -GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ -GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ -GIO_VERSION = @GIO_VERSION@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ -GTHREAD_LIBS = @GTHREAD_LIBS@ -GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ -GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ -GTK_VERSION = @GTK_VERSION@ -GUDEV_CFLAGS = @GUDEV_CFLAGS@ -GUDEV_LIBS = @GUDEV_LIBS@ -GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ -GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_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@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ -LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ -LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ -LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSM_CFLAGS = @LIBSM_CFLAGS@ -LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ -LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ -LIBTOOL = @LIBTOOL@ -LIBX11_CFLAGS = @LIBX11_CFLAGS@ -LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ -LIBX11_LIBS = @LIBX11_LIBS@ -LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ -LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ -LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ -LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ -LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ -LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ -LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ -LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ -LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ -LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ -LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ -LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ -PCRE_VERSION = @PCRE_VERSION@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ -PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ -PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ -THUNARX_VERINFO = @THUNARX_VERINFO@ -THUNARX_VERSION_API = @THUNARX_VERSION_API@ -THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ -THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ -THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_ARGS = @XGETTEXT_ARGS@ -XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -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 = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xfconf_query_found = @xfconf_query_found@ -SUBDIRS = \ - fr \ - ja \ - pl - -imagesdir = $(docdir)/html/C/images -images_DATA = \ - bulk-rename.png \ - file-manager-window.png \ - file-properties.png \ - preferences-advanced.png \ - preferences-behavior.png \ - preferences-side-pane.png \ - preferences-views.png \ - removable-drives-and-media.png \ - removable-media-unmount.png \ - sendto-menu.png \ - visible-columns.png - -EXTRA_DIST = \ - $(images_DATA) - -all: all-recursive - -.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 docs/manual/images/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/manual/images/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 -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-imagesDATA: $(images_DATA) - @$(NORMAL_INSTALL) - test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)" - @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ - done - -uninstall-imagesDATA: - @$(NORMAL_UNINSTALL) - @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(imagesdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(imagesdir)" && rm -f $$files - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(DATA) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(imagesdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(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) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-imagesDATA - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-imagesDATA - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am \ - install-imagesDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-imagesDATA - - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: - -# 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/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/bulk-rename.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/bulk-rename.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/file-manager-window.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/file-manager-window.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/file-properties.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/file-properties.png differ diff -Nru thunar-1.2.3/docs/manual/images/pl/Makefile.am thunar-1.6.10/docs/manual/images/pl/Makefile.am --- thunar-1.2.3/docs/manual/images/pl/Makefile.am 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/docs/manual/images/pl/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -# $Id$ - -imagesdir = $(docdir)/html/pl/images -images_DATA = \ - bulk-rename.png \ - file-manager-window.png \ - file-properties.png \ - preferences-advanced.png \ - preferences-behavior.png \ - preferences-side-pane.png \ - preferences-views.png \ - removable-drives-and-media.png \ - removable-media-unmount.png \ - sendto-menu.png \ - visible-columns.png - -EXTRA_DIST = \ - $(images_DATA) - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/docs/manual/images/pl/Makefile.in thunar-1.6.10/docs/manual/images/pl/Makefile.in --- thunar-1.2.3/docs/manual/images/pl/Makefile.in 2011-09-20 20:28:12.000000000 +0000 +++ thunar-1.6.10/docs/manual/images/pl/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,553 +0,0 @@ -# Makefile.in generated by automake 1.11.1 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@ - -# $Id$ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = docs/manual/images/pl -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(imagesdir)" -DATA = $(images_DATA) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_CFLAGS = @DBUS_CFLAGS@ -DBUS_LIBS = @DBUS_LIBS@ -DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ -DBUS_VERSION = @DBUS_VERSION@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXIF_CFLAGS = @EXIF_CFLAGS@ -EXIF_LIBS = @EXIF_LIBS@ -EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ -EXIF_VERSION = @EXIF_VERSION@ -EXO_CFLAGS = @EXO_CFLAGS@ -EXO_LIBS = @EXO_LIBS@ -EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ -EXO_VERSION = @EXO_VERSION@ -FGREP = @FGREP@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ -GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO_CFLAGS = @GIO_CFLAGS@ -GIO_LIBS = @GIO_LIBS@ -GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ -GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ -GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ -GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ -GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ -GIO_VERSION = @GIO_VERSION@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ -GTHREAD_LIBS = @GTHREAD_LIBS@ -GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ -GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ -GTK_VERSION = @GTK_VERSION@ -GUDEV_CFLAGS = @GUDEV_CFLAGS@ -GUDEV_LIBS = @GUDEV_LIBS@ -GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ -GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_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@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ -LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ -LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ -LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSM_CFLAGS = @LIBSM_CFLAGS@ -LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ -LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ -LIBTOOL = @LIBTOOL@ -LIBX11_CFLAGS = @LIBX11_CFLAGS@ -LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ -LIBX11_LIBS = @LIBX11_LIBS@ -LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ -LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ -LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ -LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ -LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ -LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ -LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ -LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ -LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ -LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ -LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ -LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ -PCRE_VERSION = @PCRE_VERSION@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ -PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ -PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ -THUNARX_VERINFO = @THUNARX_VERINFO@ -THUNARX_VERSION_API = @THUNARX_VERSION_API@ -THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ -THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ -THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_ARGS = @XGETTEXT_ARGS@ -XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -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 = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xfconf_query_found = @xfconf_query_found@ -imagesdir = $(docdir)/html/pl/images -images_DATA = \ - bulk-rename.png \ - file-manager-window.png \ - file-properties.png \ - preferences-advanced.png \ - preferences-behavior.png \ - preferences-side-pane.png \ - preferences-views.png \ - removable-drives-and-media.png \ - removable-media-unmount.png \ - sendto-menu.png \ - visible-columns.png - -EXTRA_DIST = \ - $(images_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 docs/manual/images/pl/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/manual/images/pl/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 -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-imagesDATA: $(images_DATA) - @$(NORMAL_INSTALL) - test -z "$(imagesdir)" || $(MKDIR_P) "$(DESTDIR)$(imagesdir)" - @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ - done - -uninstall-imagesDATA: - @$(NORMAL_UNINSTALL) - @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(imagesdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(imagesdir)" && rm -f $$files -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: - for dir in "$(DESTDIR)$(imagesdir)"; 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) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool 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-imagesDATA - -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 mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-imagesDATA - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-imagesDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-imagesDATA - - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: - -# 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/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/preferences-advanced.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/preferences-advanced.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/preferences-behavior.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/preferences-behavior.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/preferences-side-pane.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/preferences-side-pane.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/preferences-views.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/preferences-views.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/removable-drives-and-media.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/removable-drives-and-media.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/removable-media-unmount.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/removable-media-unmount.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/sendto-menu.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/sendto-menu.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/pl/visible-columns.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/pl/visible-columns.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/preferences-advanced.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/preferences-advanced.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/preferences-behavior.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/preferences-behavior.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/preferences-side-pane.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/preferences-side-pane.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/preferences-views.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/preferences-views.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/removable-drives-and-media.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/removable-drives-and-media.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/removable-media-unmount.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/removable-media-unmount.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/sendto-menu.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/sendto-menu.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/manual/images/visible-columns.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/manual/images/visible-columns.png differ diff -Nru thunar-1.2.3/docs/manual/Makefile.am thunar-1.6.10/docs/manual/Makefile.am --- thunar-1.2.3/docs/manual/Makefile.am 2011-09-14 18:15:33.000000000 +0000 +++ thunar-1.6.10/docs/manual/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,132 +0,0 @@ -SUBDIRS = \ - images \ - po - -STYLESHEET = $(PACKAGE)-html.xsl -DOCUMENT = $(PACKAGE).xml -LINGUAS = $(shell cd $(srcdir)/po && echo `/bin/ls *.po | sed 's,[.]po,,g'`) -ALL_LINGUAS = C $(LINGUAS) - -# install the html files to the destdir -install-data-local: - for lang in $(ALL_LINGUAS); do \ - if test -d $(srcdir)/html/$$lang; then \ - dest=$(DESTDIR)$(docdir)/html/$$lang; \ - $(mkinstalldirs) $$dest; \ - installfiles=`echo $(srcdir)/html/$$lang/*`; \ - for file in $$installfiles; do \ - echo "--- Installing "$$file; \ - $(INSTALL_DATA) $$file $$dest; \ - done; \ - if test x"$$lang" != x"C" -a ! -d $(srcdir)/images/$$lang; then \ - echo "--- Creating symlink to C images for $$lang"; \ - ln -sf ../C/images $(DESTDIR)$(docdir)/html/$$lang/images; \ - fi \ - fi \ - done; - -# remove installed files from the destdir -uninstall-local: - for lang in $(ALL_LINGUAS); do \ - dest=$(DESTDIR)$(docdir)/html/$$lang; \ - if test -d $$dest; then \ - if test -L $$dest/images; then \ - rm -rf $$dest; \ - else \ - rm -f $$dest/*.html; \ - fi \ - fi \ - done - -# remove generate html from the srcdir -clean-local: - rm -rf $(srcdir)/html - -if GENERATE_DOCUMENTATION - -# regenerate po(t) files -update-po: - rm -f $(srcdir)/po/$(GETTEXT_PACKAGE).pot; \ - $(XML2PO) -o $(srcdir)/po/$(GETTEXT_PACKAGE).pot $(srcdir)/$(DOCUMENT); \ - for lang in $(LINGUAS); do \ - pofile=$(srcdir)/po/$$lang.po; \ - $(XML2PO) -u $(srcdir)/po/$$lang.po $(srcdir)/$(DOCUMENT); \ - done - -# build the translated help files -doc-build.stamp: $(srcdir)/$(DOCUMENT) $(srcdir)/$(STYLESHEET) - @chmod -R u+w $(srcdir); \ - rm -rf $(srcdir)/html; \ - echo; \ - for lang in $(ALL_LINGUAS); do \ - pofile=$(srcdir)/po/$$lang.po; \ - echo "*** Generating $$lang documentation"; \ - if test x"$$lang" = x"C"; then \ - cp $(srcdir)/$(DOCUMENT) xgen-doc; \ - else \ - echo "Building the translated DocBook XML file"; \ - $(XML2PO) -e -l $$lang -p $$pofile $(srcdir)/$(DOCUMENT) > xgen-doc; \ - rm -f .xml2po.mo; \ - fi; \ - sed -e "s,\@PACKAGE_NAME\@,$(PACKAGE_NAME),g" \ - -e "s,\@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g" \ - -i xgen-doc; \ - echo "Validating DocBook XML file"; \ - $(XMLLINT) --noout --valid xgen-doc || exit 1; \ - echo "Creating the HTML pages"; \ - $(XSLTPROC) --nonet -o $(srcdir)/html/$$lang/ $(srcdir)/$(STYLESHEET) xgen-doc; \ - chmod -R u+w $(srcdir)/html/$$lang; \ - rm -f xgen-doc; \ - echo; \ - done; \ - touch doc-build.stamp - -dist-check-doc: all - -else - -update-po: - @echo "*** You need to compile with --enable-gen-doc in order to make update-po" - @false - -doc-build.stamp: - @if test ! -d $(srcdir)/html; then \ - echo; \ - echo "*** No generated documentation found. If you want to"; \ - echo "*** generate the (translated) documentation, run configure"; \ - echo "*** with --enable-gen-doc."; \ - echo; \ - fi - -dist-check-doc: - @echo "*** You need to compile with --enable-gen-doc in order to make dist" - @false - -endif - -# always try to build (if compiling with --enable-build-doc) or print -# a message if no html files were found in the tarball -all: doc-build.stamp - -# include the html and man files in the dist -dist-hook: dist-check-doc doc-build.stamp - for lang in $(ALL_LINGUAS); do \ - if test -d $(srcdir)/html/$$lang; then \ - mkdir -p $(distdir)/html/$$lang; \ - cp $(srcdir)/html/$$lang/* $(distdir)/html/$$lang/; \ - fi \ - done - -# css file -cssdir = $(docdir)/html -css_DATA = \ - thunar.css - -EXTRA_DIST = \ - $(css_DATA) \ - $(STYLESHEET) \ - $(DOCUMENT) - -CLEANFILES = \ - xgen-doc \ - doc-build.stamp diff -Nru thunar-1.2.3/docs/manual/Makefile.in thunar-1.6.10/docs/manual/Makefile.in --- thunar-1.2.3/docs/manual/Makefile.in 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/docs/manual/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,864 +0,0 @@ -# Makefile.in generated by automake 1.11.1 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@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = docs/manual -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(cssdir)" -DATA = $(css_DATA) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = C $(LINGUAS) -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_CFLAGS = @DBUS_CFLAGS@ -DBUS_LIBS = @DBUS_LIBS@ -DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ -DBUS_VERSION = @DBUS_VERSION@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXIF_CFLAGS = @EXIF_CFLAGS@ -EXIF_LIBS = @EXIF_LIBS@ -EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ -EXIF_VERSION = @EXIF_VERSION@ -EXO_CFLAGS = @EXO_CFLAGS@ -EXO_LIBS = @EXO_LIBS@ -EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ -EXO_VERSION = @EXO_VERSION@ -FGREP = @FGREP@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ -GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO_CFLAGS = @GIO_CFLAGS@ -GIO_LIBS = @GIO_LIBS@ -GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ -GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ -GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ -GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ -GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ -GIO_VERSION = @GIO_VERSION@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ -GTHREAD_LIBS = @GTHREAD_LIBS@ -GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ -GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ -GTK_VERSION = @GTK_VERSION@ -GUDEV_CFLAGS = @GUDEV_CFLAGS@ -GUDEV_LIBS = @GUDEV_LIBS@ -GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ -GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_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@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ -LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ -LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ -LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSM_CFLAGS = @LIBSM_CFLAGS@ -LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ -LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ -LIBTOOL = @LIBTOOL@ -LIBX11_CFLAGS = @LIBX11_CFLAGS@ -LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ -LIBX11_LIBS = @LIBX11_LIBS@ -LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ -LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ -LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ -LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ -LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ -LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ -LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ -LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ -LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ -LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ -LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ -LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ -PCRE_VERSION = @PCRE_VERSION@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ -PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ -PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ -THUNARX_VERINFO = @THUNARX_VERINFO@ -THUNARX_VERSION_API = @THUNARX_VERSION_API@ -THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ -THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ -THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_ARGS = @XGETTEXT_ARGS@ -XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -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 = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xfconf_query_found = @xfconf_query_found@ -SUBDIRS = \ - images \ - po - -STYLESHEET = $(PACKAGE)-html.xsl -DOCUMENT = $(PACKAGE).xml -LINGUAS = $(shell cd $(srcdir)/po && echo `/bin/ls *.po | sed 's,[.]po,,g'`) - -# css file -cssdir = $(docdir)/html -css_DATA = \ - thunar.css - -EXTRA_DIST = \ - $(css_DATA) \ - $(STYLESHEET) \ - $(DOCUMENT) - -CLEANFILES = \ - xgen-doc \ - doc-build.stamp - -all: all-recursive - -.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 docs/manual/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/manual/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 -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-cssDATA: $(css_DATA) - @$(NORMAL_INSTALL) - test -z "$(cssdir)" || $(MKDIR_P) "$(DESTDIR)$(cssdir)" - @list='$(css_DATA)'; test -n "$(cssdir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(cssdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(cssdir)" || exit $$?; \ - done - -uninstall-cssDATA: - @$(NORMAL_UNINSTALL) - @list='$(css_DATA)'; test -n "$(cssdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(cssdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(cssdir)" && rm -f $$files - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook -check-am: all-am -check: check-recursive -all-am: Makefile $(DATA) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(cssdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool clean-local mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-cssDATA install-data-local - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-cssDATA uninstall-local - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - clean-local ctags ctags-recursive dist-hook distclean \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-cssDATA 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 installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-cssDATA uninstall-local - - -# install the html files to the destdir -install-data-local: - for lang in $(ALL_LINGUAS); do \ - if test -d $(srcdir)/html/$$lang; then \ - dest=$(DESTDIR)$(docdir)/html/$$lang; \ - $(mkinstalldirs) $$dest; \ - installfiles=`echo $(srcdir)/html/$$lang/*`; \ - for file in $$installfiles; do \ - echo "--- Installing "$$file; \ - $(INSTALL_DATA) $$file $$dest; \ - done; \ - if test x"$$lang" != x"C" -a ! -d $(srcdir)/images/$$lang; then \ - echo "--- Creating symlink to C images for $$lang"; \ - ln -sf ../C/images $(DESTDIR)$(docdir)/html/$$lang/images; \ - fi \ - fi \ - done; - -# remove installed files from the destdir -uninstall-local: - for lang in $(ALL_LINGUAS); do \ - dest=$(DESTDIR)$(docdir)/html/$$lang; \ - if test -d $$dest; then \ - if test -L $$dest/images; then \ - rm -rf $$dest; \ - else \ - rm -f $$dest/*.html; \ - fi \ - fi \ - done - -# remove generate html from the srcdir -clean-local: - rm -rf $(srcdir)/html - -# regenerate po(t) files -@GENERATE_DOCUMENTATION_TRUE@update-po: -@GENERATE_DOCUMENTATION_TRUE@ rm -f $(srcdir)/po/$(GETTEXT_PACKAGE).pot; \ -@GENERATE_DOCUMENTATION_TRUE@ $(XML2PO) -o $(srcdir)/po/$(GETTEXT_PACKAGE).pot $(srcdir)/$(DOCUMENT); \ -@GENERATE_DOCUMENTATION_TRUE@ for lang in $(LINGUAS); do \ -@GENERATE_DOCUMENTATION_TRUE@ pofile=$(srcdir)/po/$$lang.po; \ -@GENERATE_DOCUMENTATION_TRUE@ $(XML2PO) -u $(srcdir)/po/$$lang.po $(srcdir)/$(DOCUMENT); \ -@GENERATE_DOCUMENTATION_TRUE@ done - -# build the translated help files -@GENERATE_DOCUMENTATION_TRUE@doc-build.stamp: $(srcdir)/$(DOCUMENT) $(srcdir)/$(STYLESHEET) -@GENERATE_DOCUMENTATION_TRUE@ @chmod -R u+w $(srcdir); \ -@GENERATE_DOCUMENTATION_TRUE@ rm -rf $(srcdir)/html; \ -@GENERATE_DOCUMENTATION_TRUE@ echo; \ -@GENERATE_DOCUMENTATION_TRUE@ for lang in $(ALL_LINGUAS); do \ -@GENERATE_DOCUMENTATION_TRUE@ pofile=$(srcdir)/po/$$lang.po; \ -@GENERATE_DOCUMENTATION_TRUE@ echo "*** Generating $$lang documentation"; \ -@GENERATE_DOCUMENTATION_TRUE@ if test x"$$lang" = x"C"; then \ -@GENERATE_DOCUMENTATION_TRUE@ cp $(srcdir)/$(DOCUMENT) xgen-doc; \ -@GENERATE_DOCUMENTATION_TRUE@ else \ -@GENERATE_DOCUMENTATION_TRUE@ echo "Building the translated DocBook XML file"; \ -@GENERATE_DOCUMENTATION_TRUE@ $(XML2PO) -e -l $$lang -p $$pofile $(srcdir)/$(DOCUMENT) > xgen-doc; \ -@GENERATE_DOCUMENTATION_TRUE@ rm -f .xml2po.mo; \ -@GENERATE_DOCUMENTATION_TRUE@ fi; \ -@GENERATE_DOCUMENTATION_TRUE@ sed -e "s,\@PACKAGE_NAME\@,$(PACKAGE_NAME),g" \ -@GENERATE_DOCUMENTATION_TRUE@ -e "s,\@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g" \ -@GENERATE_DOCUMENTATION_TRUE@ -i xgen-doc; \ -@GENERATE_DOCUMENTATION_TRUE@ echo "Validating DocBook XML file"; \ -@GENERATE_DOCUMENTATION_TRUE@ $(XMLLINT) --noout --valid xgen-doc || exit 1; \ -@GENERATE_DOCUMENTATION_TRUE@ echo "Creating the HTML pages"; \ -@GENERATE_DOCUMENTATION_TRUE@ $(XSLTPROC) --nonet -o $(srcdir)/html/$$lang/ $(srcdir)/$(STYLESHEET) xgen-doc; \ -@GENERATE_DOCUMENTATION_TRUE@ chmod -R u+w $(srcdir)/html/$$lang; \ -@GENERATE_DOCUMENTATION_TRUE@ rm -f xgen-doc; \ -@GENERATE_DOCUMENTATION_TRUE@ echo; \ -@GENERATE_DOCUMENTATION_TRUE@ done; \ -@GENERATE_DOCUMENTATION_TRUE@ touch doc-build.stamp - -@GENERATE_DOCUMENTATION_TRUE@dist-check-doc: all - -@GENERATE_DOCUMENTATION_FALSE@update-po: -@GENERATE_DOCUMENTATION_FALSE@ @echo "*** You need to compile with --enable-gen-doc in order to make update-po" -@GENERATE_DOCUMENTATION_FALSE@ @false - -@GENERATE_DOCUMENTATION_FALSE@doc-build.stamp: -@GENERATE_DOCUMENTATION_FALSE@ @if test ! -d $(srcdir)/html; then \ -@GENERATE_DOCUMENTATION_FALSE@ echo; \ -@GENERATE_DOCUMENTATION_FALSE@ echo "*** No generated documentation found. If you want to"; \ -@GENERATE_DOCUMENTATION_FALSE@ echo "*** generate the (translated) documentation, run configure"; \ -@GENERATE_DOCUMENTATION_FALSE@ echo "*** with --enable-gen-doc."; \ -@GENERATE_DOCUMENTATION_FALSE@ echo; \ -@GENERATE_DOCUMENTATION_FALSE@ fi - -@GENERATE_DOCUMENTATION_FALSE@dist-check-doc: -@GENERATE_DOCUMENTATION_FALSE@ @echo "*** You need to compile with --enable-gen-doc in order to make dist" -@GENERATE_DOCUMENTATION_FALSE@ @false - -# always try to build (if compiling with --enable-build-doc) or print -# a message if no html files were found in the tarball -all: doc-build.stamp - -# include the html and man files in the dist -dist-hook: dist-check-doc doc-build.stamp - for lang in $(ALL_LINGUAS); do \ - if test -d $(srcdir)/html/$$lang; then \ - mkdir -p $(distdir)/html/$$lang; \ - cp $(srcdir)/html/$$lang/* $(distdir)/html/$$lang/; \ - fi \ - done - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff -Nru thunar-1.2.3/docs/manual/po/bn.po thunar-1.6.10/docs/manual/po/bn.po --- thunar-1.2.3/docs/manual/po/bn.po 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/bn.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,2914 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# Israt Jahan , 2010. -# Ummey Salma , 2010. -# -msgid "" -msgstr "" -"Project-Id-Version: bn\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-06-15 16:45+0600\n" -"Last-Translator: Ummey Salma \n" -"Language-Team: Bengali \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" -msgstr "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" -msgstr "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" -msgstr "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "" -"@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "" -"@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Thunar ফাইল ম্যানেজার" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "২০০৪" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "২০০৫" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "২০০৬" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "২০০৭" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "বেনেডিক্ট মিউরার" - -#: Thunar.xml:25(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License, Version 1.1 or any later " -"version published by the Free Software Foundation; with no Invariant " -"Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The " -"complete license text is available from the Free Software Foundation." -msgstr "GNU মু" - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "বেনেডিক্ট" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "মিউরার" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "সফটওয়্যার ডেভেলপার" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "অস-সিলেশন" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "সিস্টেম ডেভেলপমেন্ট" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "এই ম্যানুয়ালটি @PACKAGE_VERSION@ of @PACKAGE_NAME@ সংস্করণটি ব্যাখ্যা করে।" - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ এর ভূমিকা" - -# snigdha -#: Thunar.xml:56(para) -msgid "" -"Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar " -"has been designed from the ground up to be fast and easy-to-use. Its user " -"interface is clean and intuitive, and does not include any confusing or " -"useless options by default. Thunar is fast and responsive with a good start " -"up time and folder load time." -msgstr "" -"Xfce ডেক্সটপ এনভারনমেন্টের জন্য Thunar একটি নতুন আধুনিক ফাইল ব্যবস্থাপক। " -"Thunar দ্রুত ও সহজে ব্যবহারের করার মত করে তৈরি করা হয়েছে। এর ব্যবহারকারী " -"ইন্টারফেস পরিচ্ছন্ন এবং অন্তর্জ্ঞানলব্ধ, এবং এতে ডিফল্ট হিসাবে কোনো গোলমেলে " -"ও অপ্রয়োজনীয় অপশন থাকে না। চালু হতে ও ফোল্ডার লোড করতে খুব কম সময় নেয়ার " -"কারণে Thunar দ্রুত কাজ করে এবং সাড়াও দেয় দ্রুত।" - -# snigdha -#: Thunar.xml:62(para) -msgid "" -"The Thunar file manager thereby provides an integrated access point to your " -"files and applications. You can use the file manager to do the following:" -msgstr "" -"Thunar ফাইল ব্যবস্থাপক আপনার ফাইল এবং অ্যাপ্লিকেশনসমূহের জন্য একটি সমন্বিত " -"প্রবেশ পয়েন্ট প্রদান করে। নিম্নোক্ত কাজগুলো করতে ফাইল ম্যানেজারটি ব্যবহার " -"করতে পারেন:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "ফোল্ডার এবং ডকুমেন্ট তৈরি করুন।" - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "আপনার ফাইল এবং ফোল্ডার প্রদর্শন করে।" - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "আপনার ফাইল এবং ফোল্ডার ব্যবস্থাপনা করে।" - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "পছন্দসই অ্যাকশন চালায় এবং ম্যানেজ করে।" - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "স্থানান্তরযোগ্য মিডিয়ায় কাজ করা হয়।" - -# snigdha -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "ফাইল ব্যবস্থাপক উইন্ডো" - -# snigdha -#: Thunar.xml:80(para) -msgid "" -"By default the file manager window consists of a shortcut pane on the left " -"side, the main area on the right and a pathbar above the main area." -msgstr "" -"ডিফল্ট হিসাবে ফাইল ব্যবস্থাপক উইন্ডোতে বামে একটি শর্টকাট প্যান, ডানে মেইন " -"এরিয়া এবং মেইন এরিয়ার উপরে পাথবার থাকে।" - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "ফাইল ম্যানেজার উইন্ডো" - -# snigdha -#: Thunar.xml:97(para) -msgid "" -"The Shortcut Pane provides shortcuts to different " -"folders on your system. The first shortcut will lead to your Home " -"Folder, the folder you store all your personal data, and will " -"therefore have the name of the current user. The second shortcut will take " -"you to the trash bin, which stores deleted files that can be recovered " -"later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the " -"desktop. The fourth shortcut will take you to the root of your file system - " -"you may want to explore it a bit, even though it may be confusing to you if " -"you are new to Linux/Unix. Just click on the different folders and see what " -"is inside." -msgstr "" -"শর্টকাট প্যান আপনার সিস্টেমে বিভিন্ন শর্টকাট সরবরাহ " -"করে। প্রথম শর্টকাট আপনাকে প্রধান ফোল্ডার এ নিয়ে যাবে, " -"যেখানে আপনার সকল ব্যক্তিগত ডাটা এবং বর্তমান ব্যবহারকারীর নামও থাকবে। আপনি " -"দ্বিতীয় শর্টকাট দিয়ে ট্যাশ বিনে যেতে পারেন যেখানে মুছে ফেলা ফাইল জমা থাকে " -"এবং সেখান থেকে আবার পরে পুনরুদ্ধার করা যায়। তৃতীয় শর্টকাট থেকে " -"ডেক্সটপ ফোল্ডার এ যেতে পারবেন যেখানে ডেক্সটপে প্রদর্শিত " -"ফাইল ও ফোল্ডার থাকে। চতুর্থ শর্টকাটটি আপনাকে ফাইল সিস্টেমের মূলে নিয়ে যাবে " -"- আপনি যদি লিনাক্স/উইনিক্স ব্যবহারে নতুন হয়ে থাকেন তবে এটি এক্সপ্লোর করতে " -"কিছুটা সমস্যা হতে পারে। বিভিন্ন ফোল্ডারে শুধু ক্লিক করুন এবং ভেতরে কি আছে " -"দেখুন। " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " - -# snigdha -#: Thunar.xml:108(para) -msgid "" -"Below the File System shortcut, the removable drives " -"and media will be displayed. In the screenshot above, you can see a " -"Floppy Drive shortcut. Click on these shortcuts to " -"access the data stored on the removable drives and media. See for further details." -msgstr "" -"ফাইল সিস্টেম শর্টকাট এর নীচে স্থানান্তরযোগ্য ড্রাইভ ও " -"মিডিয়া প্রদর্শিত হবে। উপরের স্ক্রিনশটে, আপনি একটি ফ্লপি " -"ড্রাইভ শর্টকাট দেখতে পাবেন। শর্টকাটে ক্লিক করে স্থানান্তরযোগ্য " -"ড্রাইভ ও মিডিয়াতে যে ডাটা জমা আছে তাতে প্রবেশ করতে পারেন। আরও তথ্যের জন্য " -" দেখুন।" - -# snigdha -#: Thunar.xml:115(para) -msgid "" -"The remaining shortcuts are user defined. Add your own shortcuts by simply " -"dragging folders to the Shortcuts Pane. This will allow " -"you to access important folders instantly. To remove a previously added " -"shortcut, right-click on the shortcut and choose Remove " -"Shortcut. To rename a previously added shortcut, right-click " -"on the shortcut and choose Rename Shortcut. Note " -"that these actions affect only the shortcut, not the folder referenced by " -"the shortcuts." -msgstr "" -"বাকী শর্টকাটগুলো ব্যবহারকারী দ্বারা নির্ধারিত। যেকোনো ফোল্ডার টেনে এনে " -"শর্টকাট প্যান এ রেখে নিজের মত করে শর্টকাট তৈরী করা যায়। " -"এর সাহয্যে খুব দ্রুত গুরুত্বপূর্ন ফোল্ডারে প্রবেশ করতে পারবেন। পূর্বে যোগ " -"করা কোনো শর্টকাট অপসারন করতে, শর্টকাটে ডান ক্লিক করুন এবং " -"শর্টকাট অপসারণ করুন বাছাই করুন। পূর্বে যোগ করা " -"কোনো শর্টকাট পুনরায় নামকরন করতে, শর্টকাটে ডান ক্লিক করুন এবং " -"শর্টকাট পুনরায় নামকরণ করুন বাছাই করুন। মনে " -"রাখবেন, এ পদ্ধতিগুলো কেবল শর্টকাটের জন্যই প্রযোজ্য, শর্টকাট থেকে " -"রেফারেন্সপ্রাপ্ত ফোল্ডারের জন্য নয়।" - -# snigdha -#: Thunar.xml:123(para) -msgid "" -"The main area will always display the contents of the " -"current folder. Double click on folders to enter them, and right-click on " -"files or folders to get a context-menu offering some choices of what to do " -"with it. Select multiple files by dragging a rectangle over them with the " -"mouse. Alternatively, select one file, hold down the Shift " -"key, and increase or decrease the selection using the arrow keys." -msgstr "" -"মেইন এরিয়া সর্বদা বিদ্যমান ফোল্ডারের বিষয়বস্তু প্রদর্শন " -"করে। ফোল্ডারে প্রবেশ করার জন্য ফোল্ডারে ডবল ক্লিক করুন, এবং ফাইল অথবা " -"ফোল্ডারে ডান-ক্লিক করলে একটি প্রসঙ্গ-মেনু আসে যেখান থেকে আপনি কি করতে চান " -"তা বাছাই করা যায়। মাউসের সাহায্যে একটি অায়তক্ষেত্র টেনে একসাথে কয়েকটি ফাইল " -"নির্বাচন করা যায়। অন্যথায়, একটি ফাইল নির্বাচন করে Shift কী " -"টি ধরে রেখে ও তীরচিহ্নিত কী ব্যবহার করে নির্বাচিত ফাইলের সংখ্যা বাড়ানো বা " -"কমানো যায়।" - -# snigdha -#: Thunar.xml:131(para) -msgid "" -"The pathbar will always show the path you took to get " -"to the folder you are currently at. You can click on any pathbar button to " -"change to the folder it represents. Right-click on a pathbar button to bring " -"up a context-menu with some options." -msgstr "" -"পাথবার সর্বদা আপনি যে ফোল্ডারে আছেন সেখানে যাওয়ার পাথ " -"প্রদর্শন করে। আপনি যেকোনো পাথবার বোতামে ক্লিক করে যে ফোল্ডার দ্বারা একে " -"প্রকাশ করা হয় তা পরিবর্তন করতে পারেন। কিছু অপশনসহ প্রসঙ্গ-মেনু আনার জন্য " -"পাথবার বোতামে ডান-ক্লিক করুন।" - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "অবয়ব পছন্দসই করা হচ্ছে" - -# snigdha -#: Thunar.xml:141(para) -msgid "" -"There are many ways to customize the appearance of the file manager windows. " -"In case you do not like the way the icons are displayed, choose " -"ViewView as Detailed List from the main menu to have the contents of the " -"current folder displayed as a list." -msgstr "" -"ফাইল ব্যবস্থাপক উইন্ডো এর অবয়ব পছন্দনীয় করে তোলার আরও অনেক উপায় রয়েছে। " -"আইকনগুলো আপনার পছন্দানুসারে প্রদর্শিত না থাকে তবে বর্তমান ফোল্ডারের " -"বিষয়বস্তু তালিকা আকারে প্রকাশের জন্য প্রধান মেনু থেকে " -"প্রদর্শনবিস্তারিত তালিকা আকারে " -"প্রদর্শন করুন বাছাই করুন।" - -# SNIGDHA -#: Thunar.xml:147(para) -msgid "" -"You can have the file manager windows display a location bar instead of the " -"pathbar by choosing ViewLocation " -"SelectorToolbar Style " -"from the main menu." -msgstr "" -"প্রধান মেনু থেকে প্রদর্শনস্থান " -"নির্বাচকটুলবার শৈলী " -"বাছাই করে ফাইল ম্যানেজার উইন্ডোতে পাথবারের এর পরিবর্তে অবস্থানবার রাখতে " -"পারেন।" - -# snigdha -#: Thunar.xml:153(para) -msgid "" -"In case you prefer a treeview in the left pane, choose " -"ViewSide PaneTree from the main menu." -msgstr "" -"আপনি বাম প্যানে একটি ট্রিভিউ পছন্দ করার ক্ষেত্রে, প্রধান মেনু থেকে " -"প্রদর্শনসাইড " -"প্যানট্রি বাছাই করুন।" - -# snigdha -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "বিস্তারিত তালিকা ভিউতে দৃশ্যমান কলাম" - -# SNIGDHA -#: Thunar.xml:162(para) -msgid "" -"If you prefer to display the contents of the folder as a list, using the " -"Detailed List View, you can customize the columns " -"displayed in the list view. To customize the visible columns, choose " -"ViewConfigure Columns... from the main menu." -msgstr "" -"আপনি যদি ফোল্ডারের বিষয়বস্তু তালিকা আকারে প্রদর্শন করতে পছন্দ করেন তাহলে, " -"বিস্তারিত তালিকা প্রদর্শন ব্যবহার করে তালিকা " -"প্রদর্শনীতে প্রদর্শিত কলামকে পছন্দীয় করে সাজাতে পারবেন। দৃশ্যমান কলামকে " -"পছন্দনীয় করে সাজানোর জন্য প্রধান মেনু থেকে " -"প্রদর্শনকলাম " -"সাজান... বাছাই করুন।" - -#: Thunar.xml:175(phrase) Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "দৃশ্যমান কলাম" - -# snigdha -#: Thunar.xml:184(para) -msgid "" -"Select the columns you want to be displayed from the list of available " -"columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" -"বিদ্যমান কলামের তালিকা থেকে আপনি যে কলামটি প্রদর্শন করতে চান তা নির্বাচন " -"করুন। কলামের বিন্যাস পরিবর্তন করার জন্য উপরে যান অথবা " -"নিচে নামুন ক্লিক করুন। আবার পূর্ববর্তী অবস্থা ফিরে " -"পেতে ডিফল্ট ব্যবহার করুন ক্লিক করুন।" - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "কলামের আকার পরিবর্তন করা" - -# snigdha -#: Thunar.xml:195(para) -msgid "" -"Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the " -"needed to ensure the text is fully visible." -msgstr "" -"আপনি যদি স্বয়ংক্রিয়ভাবে তালিকা প্রদর্শন কলাম প্রসারন করতে চান এবং টেক্সট " -"সম্পূর্নরূপে দৃশ্যমান কিনা তা নিশ্চিত হতে চান তবে প্রয়োজনানুসারে " -"স্বয়ংক্রিয়ভাবে কলাম প্রসারন অপশনটি নির্বাচন করুন।" - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "ফাইল এবং ফোল্ডারে কাজ করা হচ্ছে" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "ফাইল খোলা হচ্ছে" - -#: Thunar.xml:214(para) -msgid "" -"When you open a file, the file manager performs the default action for that " -"file type. For example, opening a text file will display it in the default " -"text editor, while opening an image file will display the image in the " -"default image viewer." -msgstr "" -"যখন আপনি একটি ফাইল খুলবেন, সেই ধরনের ফাইলের জন্য ফাইল ব্যবস্থাপকই " -"পূর্বনির্ধারিত কাজগুলো করে দেয়। যেমন, কোনো টেক্সট ফাইল খোলা হলে তা ডিফল্ট " -"টেক্সট সম্পাদকে প্রদর্শিত হবে, যখন ছবি ফাইল খোলা হবে ছবিটি ডিফল্ট ছবি " -"প্রদর্শকের সাহায্যে ছবিটি প্রদর্শিত হবে।" - -# snigdha -#: Thunar.xml:220(para) -msgid "" -"The file manager checks the extension of a file to determine the type of a " -"file. If the file has no known extension, the file manager examines the " -"contents of the file." -msgstr "" -"ফাইল ব্যবস্থাপক ফাইলের ধরন বের করার জন্য ফাইলের বর্ধিতাংশ পরীক্ষা করে। ফাইলে " -"যদি কোনো বর্ধিতাংশ না থাকে, তবে ফাইল ব্যবস্থাপক ফাইলের বিষয়বস্তু পরীক্ষা " -"করে।" - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "ডিফল্ট অ্যাকশন চালানো হচ্ছে" - -# snigdha -#: Thunar.xml:228(para) -msgid "" -"To execute the default for a file, double-click on the file. For example, " -"the default action for audio files is to play the it with the default music " -"playing application. In this case, you can double-click on the file to open " -"the file in the music player." -msgstr "" -"ফাইলের ডিফল্ট কার্যকর করতে, ফাইলটির উপর ডাবল ক্লিক করুন। যেমন, অডিও ফাইলের " -"জন্য ডিফল্ট অ্যাকশন হল ডিফল্ট মিউজিক প্লেয়িং অ্যাপ্লিকেশনের সাহায্যে একে " -"চালানো। এই ক্ষেত্রে, মিউজিক প্লেয়ারে ফাইলটি খোলার জন্য ফাইলের উপর ডাবল ক্লিক " -"করুন।" - -# snigdha -#: Thunar.xml:234(para) -msgid "" -"You can set Thunar preferences so that you click " -"once on a file to execute the default action. For information, see ." -msgstr "" -"Thunar পছন্দসমুহ নির্ধারন করলে কোনো ফাইলের উপর " -"একবার ক্লিক করলেই ডিফল্ট অ্যাকশন কার্যকর হয়ে যাবে। তথ্যের জন্য দেখুন।" - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "পূর্বনির্ধারিত না এমন কাজ চালানো হচ্ছে" - -# snigdha -#: Thunar.xml:243(para) -msgid "" -"To execute actions other than the default action for a file, select the file " -"that you want to perform an action on. Choose the desired action from the " -"Open With choices available in File " -"menu or an Open With submenu." -msgstr "" -"ফাইলের জন্য ডিফল্ট অ্যাকশন ছাড়া অন্য কোনো অ্যাকশন কার্যকর করতে, আপনি যে " -"ফাইলটি নিয়ে কাজ করতে চান তা নির্বাচন করুন। ফাইল মেনু বা " -"অন্য অ্যাপ্লিকেশনে খুলুন সাবমেনুতে প্রাপ্য " -"অন্য অ্যাপ্লিকেশনে খুলুন পছন্দসমূহ থেকে আপনার কাঙ্ক্ষিত " -"অ্যাকশন বাছাই করুন।" - -# SNIGDHA -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "অ্যাকশন যোগ করা হচ্ছে" - -# snigdha -#: Thunar.xml:253(para) -msgid "" -"To add actions associated with a file type, perform the following steps:" -msgstr "" -"ফাইলের ধরনের সাথে সংশ্লিষ্ট অ্যাকশন সংযুক্ত করতে নিম্নোক্ত ধাপগুলো অনুসরন " -"করুন:" - -# snigdha -#: Thunar.xml:259(para) -msgid "" -"In the main area, select a file of the type to which you want to add an " -"action." -msgstr "" -"আপনি যে ধরনের ফাইলে কোনো অ্যাকশন সংযুক্ত করতে চান মেইন এরিয়ায় তা নির্বাচন " -"করুন।" - -# snigdha -#: Thunar.xml:264(para) -msgid "" -"Choose FileOpen With Other " -"Application... from the main menu." -msgstr "" -"মেইন মেনু থেকে ফাইলঅন্য " -"অ্যাপ্লিকেশনে খুলুন... বাছাই করুন।" - -# snigdha -#: Thunar.xml:270(para) -msgid "" -"Either choose an application in the Open With dialog or " -"select Use a custom command and browse to the program " -"with which you wish to open this type." -msgstr "" -"অন্য অ্যাপ্লিকেশনে খুলুন ডায়ালগে একটি অ্যাপ্লিকেশন " -"বাছাই করুন অথবা একটি পছন্দনীয় কমান্ড ব্যবহার করুন " -"নির্বাচন করুন এবং এটি যে প্রোগ্রামের সাহয্যে খুলতে চান তা ব্রাউজ করুন।" - -# snigdha -#: Thunar.xml:277(para) -msgid "" -"The action you have chosen is now added to the list of actions for that " -"particular file type. If you enabled the Use as default for this " -"kind of file option or there was no prior action associated with " -"the type, the newly added action is the default." -msgstr "" -"আপনি যে অ্যাকশনটি বাছাই করেছেন তা এখন আপনার নির্দিষ্ট ফাইল টাইপের অ্যাকশন " -"তালিকায় সংযুক্ত হয়ে গিয়েছে। আপনি যদি এই ধরনের ফাইলের জন্য ডিফল্ট " -"হিসেবে ব্যবহার করুন অপশনটি সক্রিয় করেন অথবা পূর্ববর্তী কোনো " -"অ্যাকশন সংযুক্ত করা ছিল না এমন হয় তবে, নতুন যুক্ত অ্যাকশনটাই ডিফল্ট হিসাবে " -"রয়ে যাবে।" - -# snigdha -#: Thunar.xml:283(para) -msgid "" -"You may also add actions using the Open With button " -"under FileProperties...." -msgstr "" -"আপনি ফাইলবৈশিষ্ট্যাবলী... এর আওতায়\n" -"অন্য অ্যাপ্লিকেশনে খুলুনবোতাম ব্যবহার করেও অ্যাকশনটি " -"সংযুক্ত করতে পারেন।" - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "অ্যাকশন পরিবর্তন করা হচ্ছে" - -# snigdha -#: Thunar.xml:292(para) -msgid "" -"To modify the actions associated with a file or file type, perform the " -"following steps:" -msgstr "" -"ফাইল অথবা ফাইল টাইপের সাথে সংযুক্ত অ্যাকশন পরিবর্তন করার জন্য নিম্নোক্ত " -"ধাপগুলো অনুসরন করুন:" - -# snigdha -#: Thunar.xml:298(para) -msgid "" -"In the main area, select a file of the type for which you want to modify the " -"action." -msgstr "যে ফাইলে কোনো অ্যাকশন পরিবর্তন করতে চান তা মেইন এরিয়াতে নির্বাচন করুন।" - -# snigha -# -#: Thunar.xml:303(para) Thunar.xml:383(para) -msgid "" -"Choose FileProperties... from the main menu." -msgstr "" -"মেইন মেনু থেকে ফাইলবৈশিষ্ট্যাবলী" -"... বাছাই করুন।" - -# snigdha -#: Thunar.xml:308(para) -msgid "" -"Select the new default action using the Open With " -"button or add a new action by choosing Open With Other " -"Application... from the drop down menu." -msgstr "" -"অন্য অ্যাপ্লিকেশনে খুলুন বোতাম ব্যবহার করে নতুন ডিফল্ট " -"অ্যাকশন নির্বাচন করুন অথবা ড্রপ ডাউন মেনু থেকে অন্য " -"অ্যাপ্লিকেশনে খুলুন... বাছাই করেও নতুন অ্যাকশন সংযুক্ত করতে " -"পারেন।" - -# Snigdha -#: Thunar.xml:315(para) -msgid "" -"To remove a previously added action for a file type, bring up the " -"Open With dialog as described above, right-click the " -"action you want to remove and choose Remove Launcher." -msgstr "" -"কোনো ফাইল টাইপের জন্য পূর্বে যোগ করা কোনো অ্যাকশন মুছে ফেলতে উপরের " -"বর্ণনানুসারে অন্য অ্যাপ্লিকেশনে খুলুন ডায়ালগ গড়ে তুলুন, " -"যে অ্যাকশনটি অপসারন করতে চান তার উপর ডান-ক্লিক করুন এবং লঞ্চার " -"অপসারন বাছাই করুন।" - -#: Thunar.xml:324(title) Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "ফাইলের বৈশিষ্ট্যাবলী" - -# snigdha -#: Thunar.xml:326(para) -msgid "" -"The file properties window shows more information about any file or folder " -"in the file manager. With this window, you can also do the following:" -msgstr "" -"ফাইল প্রপাটিজ উইন্ডো ফাইল ম্যানেজারের যেকোনো ফাইল বা ফোল্ডাররের বেশি তথ্য " -"প্রদর্শন করে। এই উইন্ডোর সাহায্যে আপনি নিম্নোক্ত কাজগুলোও করতে পারেন:" - -# snigdha -#: Thunar.xml:333(para) -msgid "" -"Change the icon for special files, such as application launchers and URL " -"links." -msgstr "" -"বিশেষ ফাইলের জন্য আইকন পরিবর্তন করুন, যেমন অ্যাপ্লিকেশন লঞ্চার এবং URL লিংক।" - -# snigdha -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "ফাইল বা ফোল্ডারের প্রতীক যোগ করুন অথবা মুছে ফেলুন।" - -# smigdha -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "ফাইল অথবা ফোল্ডােরর UNIX ফাইল অনুমোদন পরিবর্তন করুন।" - -# snigdha -#: Thunar.xml:348(para) -msgid "" -"Choose which application is used to open a file and other files of the same " -"type." -msgstr "" -"একটি ফাইল এবং একই ধরনের অন্যান্য ফাইল খুলতে কোন অ্যাপ্লিকেশন ব্যবহার করা হয় " -"তা বাছাই করুন।" - -# snigdha -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "ফাইল প্রপাটিজ উইন্ডো খোলার জন্য নিম্নোক্ত ধাপগুলো অনুসরন করুন:" - -# snigdha -#: Thunar.xml:372(para) -msgid "" -"Select the file or folder whose properties you want to examine or change. " -"You cannot select multiple items at once and display the properties that are " -"in common to all items currently." -msgstr "" -"আপনি যে ফাইল বা ফোল্ডারের বৈশিষ্ট্যাবলী পরীক্ষা বা পরিবর্তন করতে চান তা " -"নির্বাচন করুন। একসাথে একাধিক আইটেম নির্বাচন করা যায় না এবং সব আইটেমেই " -"বিদ্যমান আছে এমন বৈশিষ্ট্যাবলী প্রদর্শন করতে পারে না।" - -# snigdha -#: Thunar.xml:386(para) -msgid "" -"Right-click the selected item and choose Properties... from the context menu." -msgstr "" -"নির্বাচিত আইটেমে ডান-ক্লিক করুন এবং প্রাসঙ্গিক-মেনু থেকে " -"বৈশিষ্ট্যাবলী... বাছাই করুন।" - -# snigdha -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "" -"Altরিটার্ন চাপুন।" - -# snigdha -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "নিম্নের একটি কাজ করুন: " - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "স্থানান্তরযোগ্য মিডিয়া ব্যবহার করা হচ্ছে" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "স্থানান্তরযোগ্য মিডিয়ায় কাজ করা হচ্ছে" - -# snigdha -#: Thunar.xml:405(para) -msgid "" -"Thunar supports removable media if it was built with support for HAL, or " -"if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is " -"suggested to use HAL rather than the native support provided by Thunar." -msgstr "" -"যদি HAL কে সমর্থন করার " -"মত করে তৈরি করা হয় অথবা আপনি FreeBSD ব্যবহার করছেন এমন হয় তবে " -"Thunar স্থানান্তরযোগ্য মিডিয়াকে সমর্থন করে। উপরন্তু লক্ষ্য করুন যে FreeBSD " -"6.0 অথবা এর নতুনটায় Thunar এর স্থানীয় সমর্থন ব্যবহার না করে HAL ব্যবহারের " -"জন্য পরামর্শ দেয়া আছে।" - -# snigdha -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "মিডিয়া মাউন্ট করতে" - -#: Thunar.xml:414(para) -msgid "" -"To mount media is to make the file system of the media " -"available for access. When you mount media, the file system of the media is " -"attached as a subdirectory to your file system." -msgstr "" -"মাউন্ট মিডিয়ায় মাউন্ট করে মিডিয়ার ফাইল সিস্টেম চালানো " -"যায়। আপনি যখন মিডিয়ায় মাউন্ট করেন, তখন আপনার ফাইল সিস্টেমের সাথে " -"সাব-ডিরেক্টরি হিসাবে মিডিয়ার ফাইল সিস্টেম সংযুক্ত থাকে। " - -# snigdha -#: Thunar.xml:419(para) -msgid "" -"To access media, insert the media in the appropriate device, or connect the " -"new device to your computer (i.e. connect an USB stick to one of your USB " -"ports). An object that represents the media is added to the side pane of the " -"file manager. If xfdesktop is running and " -"configured to display File/launcher icons this object " -"will also be added to your desktop." -msgstr "" -"মিডিয়া চালানোর জন্য একে যথাযথ ডিভাইসে প্রবেশ করান বা নতুন ডিভাইসটিকে " -"কম্পিউটারের সাথে সংযুক্ত করুন (যেমন, USB পোর্টে USB স্টিক সংযুক্ত করুন)। " -"মিডিয়াকে প্রতিনিধিত্ব করে এমন একটি অবজেক্ট ফাইল ব্যবস্থাপকের সাইড প্যানে " -"সংযুক্ত থাকে। যদি xfdesktop চালু থাকে এবং " -"ফাইল/লঞ্চার আইকন প্রদর্শন করার জন্য কনফিগার করা থাকে " -"তবে এই অবজেক্টটি আপনার ডেক্সটপে সংযুক্ত হয়ে যাবে।" - -# snigdha -#: Thunar.xml:426(para) -msgid "" -"To actually mount the media, click on the object that represents the media. " -"For example, to mount a floppy diskette, click on the Floppy " -"Drive object in the side pane. The file manager will now add the " -"file system of the media to your file system hierarchy and display the " -"contents of the floppy diskette in the main area." -msgstr "" -"মিডিয়া মাউন্ট করার জন্য যে অবজেক্টটি দ্বারা একে তার উপর ক্লিক করুন। যেমন, " -"ফ্লপি ডিসকেট মাউন্ট করতে সাইড প্যানের ফ্লপি ড্রাইভ " -"অবজেক্টিতে ক্লিক করুন। ফাইল ম্যানেজার মিডিয়ার ফাইল সিস্টেমকে আপনার ফাইল " -"সিস্টেম স্তরায়নে যোগ করবে এবং মেইন এরিয়ায় ফ্লপি ডিসকেটের বিষয়বস্তু প্রদর্শন " -"করবে।" - -# snigdha -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "মিডিয়া অপসারন করতে" - -# snigdha -#: Thunar.xml:436(para) -msgid "" -"If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-" -"click on the media object in the side pane or on the desktop and choose " -"Eject Volume. The media is ejected from the drive after " -"a few seconds. If the drive for the media is not motorized (i.e. a floppy " -"drive or an USB stick), right-click on the media object and choose " -"Unmount Volume. After a short period of time, a " -"notification will appear to inform you that it is now safe to remove the " -"media or disconnect the drive from the computer." -msgstr "" -"মিডিয়ার ড্রাইভটি যদি মোটরাইজড্ ড্রাইভ হয় (যেমন, CD-ROM ড্রাইভ) তবে সাইড " -"প্যান বা ডেক্সটপের মিডিয়া অবজেক্টের উপর ডান-ক্লিক করুন এবং ইজেক্ট " -"ভলিউম বাছাই করুন। কয়েক সেকেন্ডের মধ্যেই মিডিয়াটি ড্রাইভ থেকে বের " -"হয়ে আসে। মিডিয়ার ড্রাইভটি যদি মোটরাইজড্ না হয় (যেমন, ফ্লপি ড্রাইভ বা USB " -"স্টিক) তবে মিডিয়া অবজেক্টের উপর ডান-ক্লিক করুন এবং আনমাউন্ট " -"ভলিউম বাছাই করুন। অল্প কিছু সময় পরই একটি ঘোষনার সাহায্যে আপনাকে " -"জানানো হবে যে এখন মিডিয়াটি অপসারন করা বা ড্রাইভটি কম্পিউটার থেকে বিচ্ছিন্ন " -"করা নিরাপদ।" - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "আনমাউন্ট ঘোষনা" - -# snigdha -#: Thunar.xml:456(para) -msgid "" -"However this notification will only be displayed if support for " -"libnotify is enabled, and you have installed a " -"notification daemon. A notification daemon for Xfce is available from the " -"Xfce Goodies Project. If notification " -"support is not available, wait until the context menu disappears before you " -"remove the media or disconnect the drive." -msgstr "" -"উপরন্তু লিবনোটিফাই এর সমর্থন সক্রিয় থাকলে এবং " -"প্রাক বিজ্ঞপ্তি ইন্সটল করা থাকলেই কেবল এই ঘোষনাটি প্রদর্শিত হবে। Xfce এর " -"প্রাক বিজ্ঞপ্তি Xfce গুডিজ প্রজেক্ট এ পাওয়া যায়। যদি ঘোষনার সমর্থন পাওয়া না " -"যায় তবে মিডিয়াটি অপসারণ বা ড্রাইভটি বিচ্ছিন্ন করার আগে প্রাসঙ্গিক-মেনু চলে " -"যাওয়া পর্যন্ত অপেক্ষা করুন।" - -# snigdha -#: Thunar.xml:464(para) -msgid "" -"Be aware that you cannot eject or unmount media that is still in use by one " -"or more applications. Therefore if the file manager refuses to eject media, " -"make sure you close all applications that were accessing the media, and be " -"sure to also check command line applications running in " -"Terminal windows." -msgstr "" -"এক বা একাধিক অ্যাপ্লিকেশনে ব্যবহৃত হওয়ার সময় মিডিয়াটি বের করা বা আনমাউন্ট " -"করা থেকে বিরত থাকুন। অতএব যদি ফাইল ব্যবস্থপক মিডিয়াটি বের করতে না চায় তবে যে " -"সকল অ্যাপ্লিকেশন মিডিয়াতে চলছে সেগুলো বন্ধ কিনা তা নিশ্চিত হয়ে নিন এবং " -"টার্মিনাল উইন্ডোজে কমান্ড লাইন অ্যািপ্লকেশন চলছে " -"কিনা তা যাচাই করে নিন।" - -# snigdha -#: Thunar.xml:470(para) -msgid "" -"Make sure to unmount removable media before ejecting. Do not eject a " -"diskette from the floppy drive before your unmount the diskette. Do not " -"remove an USB stick before you unmount the flash drive. If you do not " -"unmount the media first you might lose data or cause your system to crash." -msgstr "" -"স্থানান্তরযোগ্য মিডিয়া বের করার আগে অবশ্যই আনমাউন্ট করে নিন। ফ্লপি ড্রাইভ " -"থেকে ডিসকেটটি আনমাউন্ট না করে বের করবেন না। ফ্ল্যাশ ড্রাইভ থেকে USB স্টিক " -"আনমাউন্ট না করে বের করবেন না। আপনি যদি প্রথমে মিডিয়াকে আনমাউন্ট করে না নেন " -"তবে আপনি ডাটা হারাতে পারেন বা সিস্টেম ক্র্যাশও করতে পারে।" - -# snigdha -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "স্থানান্তরযোগ্য ড্রাইভ এবং মিডিয়া ব্যবস্থাপনা" - -# snigdha -#: Thunar.xml:481(para) -msgid "" -"Thunar is also able to automatically manage removable drives and media if " -"the thunar-volman package is installed on " -"your system. Note however that this feature requires HAL support." -msgstr "" -"যদি আপনার সিস্টেমে thunar-volman " -"প্যাকেজটি ইন্সটল করা থাকে তবে Thunar স্বয়ংক্রিয়ভাবে স্থানান্তরযোগ্য " -"মিডিয়াকে নিয়ন্ত্রন করতে পারে। উপরন্তু মনে রাখুন, এই বৈশিষ্ট্যের জন্য HAL " -"সমর্থন প্রয়োজন।" - -# snigdha -#: Thunar.xml:487(para) -msgid "" -"Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the " -"Volume Management feature of Thunar. Therefore, open " -"the file manager preferences, go to the Advanced page " -"and check the Enable Volume Management button." -msgstr "" -"এখন যদি HAL সমর্থন পাওয়া যায় এবং আপনার সিস্টেমে thunar-" -"volman ইন্সটল করা থাকে তাহলে আপনি Thunar এর ভলিউম " -"ম্যানেজমেন্ট বৈশিষ্টটি সক্রিয় করতে পারেন। অতএব, ফাইল ব্যবস্থাপক " -"পছন্দসমুহ খুলুন, উচ্চ পর্যায়ের পৃষ্ঠায় যান এবং " -"ভলিউম ব্যবস্থাপনা সক্রিয় করুন বোতাম পরীক্ষা করে নিন। " -" " -" " -" " -" " - -# snigdha -#: Thunar.xml:494(para) -msgid "" -"The next step is to customize the management of removable drives and media " -"to your needs. Click on the Configure link in the " -"Volume Management section, right below the button. The " -"Removable Drives and Media configuration dialog will be " -"displayed." -msgstr "" -"পরবর্তী ধাপ হল স্থানান্তরযোগ্য ড্রাইভ ও মিডিয়াকে আপনার প্রয়োজনানুসারে " -"পছন্দনীয় করে তোলা। বোতামের ডানে নীচে, ভলিউম ব্যবস্থাপনা " -"সেকশনের কনফিগার লিংকে ক্লিক করুন। " -"স্থানান্তরযোগ্য ড্রাইভ এবং মিডিয়া কনফিগারেশন ডায়ালগ " -"প্রদর্শিত হবে।" - -# snigdha -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "স্থানান্তরযোগ্য ড্রাইভ এবং মিডিয়া" - -# snigdha -#: Thunar.xml:512(para) -msgid "" -"If you have used the gnome-volume-manager " -"previously, you should feel right at home, because it was designed to look " -"and behave similar to gnome-volume-manager. The " -"preferences are divided by device categories to make it easy to locate the " -"option for you specific device." -msgstr "" -"আপনি যদি আগেই জিনোম-ভলিউম-ম্যানেজার ব্যবহার করে " -"থাকেন তবে আপনার জন্য খুবই ভাল, কারণ একে " -"জিনোম-ভলিউম-ম্যানেজার এর মত করেই তৈরি করা হয়েছে। " -"সুনির্দিষ্ট ডিভাইসের অপশন কোথায় আছে তা বের করার সুবিধার্তে পছন্দসমুহ বিিভন্ন " -"শ্রেনীর ডিভাইস অনুসারে বিভক্ত করা আছে। " - -# snigdha -#: Thunar.xml:519(para) -msgid "" -"The Storage page contains the most important options. " -"As the name suggests these options apply only to storage devices like " -"external harddisk drives, USB sticks and CD-ROMs. The Removable " -"Storage options are described in detail below." -msgstr "" -"স্টোরেজ পৃষ্ঠায় সবচেয়ে গুরুত্বপূর্ন অপশনসমূহ থাকে। নাম " -"থেকে বোঝা যায় এই অপশনগুলো কেবল স্টোরেজ ডিভাইস যেমন বাহ্যিক হার্ডডিস্ক " -"ড্রাইভ, USB স্টিক এবং CD-ROM এর জন্যই প্রযোজ্য। স্থানান্তরযোগ্য " -"স্টোরেজ অপশনটি নিচে বর্ণনা করা আছে।" - -# snigdha -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "হট-প্লাগড্ হলে স্থানান্তরযোগ্য ড্রাইভ মাউন্ট করুন" - -# snigdha -#: Thunar.xml:529(para) -msgid "" -"Enable this option to automatically mount file systems on removable drives " -"(i.e. external harddisk drives or USB sticks) when such drives are plugged " -"into the computer." -msgstr "" -"যখন স্থানান্তরযোগ্য ড্রাইভ কম্পিউটারে প্লাগ করা থাকে তখন এই ধরনের ড্রাইভে " -"(যেমন, বাহ্যিক হার্ডডিস্ক ড্রাইভ বা USB স্টিক) ফাইল সিস্টেমকে স্বয়ংক্রিয়ভাবে " -"মাউন্ট করতে এই অপশনটি সক্রিয় করুন।" - -# snigdha -#: Thunar.xml:533(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable drives. For example, if you disable this option, certain kinds of " -"portable music players cannot be detected any more and so, even if you " -"enabled the Play music files when connected option on " -"the Multimedia page, the specified command will not be " -"run when you hot-plug your portable music player." -msgstr "" -"অন্যান্য ফিচারে স্থানান্তরযোগ্য ড্রাইভ দিয়ে কাজ করতে এই অপশনটি সক্রিয় করতে " -"হবে। যেমন, আপনি যদি এই অপশনটি নিস্ক্রিয় করে দেন তবে কিছু পোর্টেবল মিউজিক " -"প্লেয়ার আর খুঁজে বের করা যাবেনা এবং মাল্টিমিডিয়া " -"পৃষ্ঠায় সংযুক্ত থাকা অবস্থায় মিউজিক ফইল চালান অপশন " -"সক্রিয় করলেও আপনার মিউজিক প্লেয়ারকে হট-প্লাগ করে সুনির্দিষ্ট কমান্ড চালানো " -"যাবে না।" - -# snigdha -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "প্রবেশ করানোর সময় স্থানান্তরযোগ্য মিডিয়াকে মাউন্ট করুন" - -# snigdha -#: Thunar.xml:546(para) -msgid "" -"Enable this option to automatically mount file systems on removable media (i." -"e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" -"আপনি যখন ড্রাইভে মিডিয়াটি প্রবেশ করাবেন তখন স্থানান্তরযোগ্য মিডিয়ায় (যেমন, " -"CD-ROMs অথবা DVDs) ফাইল সিস্টেমকে স্বয়ংক্রিয়ভাবে মাউন্ট করতে এই অপশনটি " -"সক্রিয় করুন।" - -# snigdha -#: Thunar.xml:550(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable media. For example, if you disable this option, it is impossible " -"to detect whether the removable media has auto-run capabilities, and so the " -"Auto-run programs on new drives and media option has no " -"effect for removable media." -msgstr "" -"অন্যান্য ফিচারের জন্য স্থানান্তরযোগ্য মিডিয়ার সাহায্যে কাজ করতে এই অপশনটি " -"সক্রিয় করতে হবে। যেমন, আপনি যদি এই অপশনটি নিস্ক্রিয় করে দেন তবে " -"স্থানান্তরযোগ্য মিডিয়ার অটো-রান ক্ষমতা আছে কিনা তা বের করা অসম্ভব হয়ে যায় " -"এবং নতুন ড্রাইভ ও মিডিয়ায় অটো-রান প্রোগ্রাম অপশনটির " -"স্থানান্তরযোগ্য মিডিয়ায় কোনো প্রভাব থাকে না। " - -# snigdha -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "প্রবেশ করানোর পর স্থানান্তরযোগ্য মিডিয়াটি ব্রাউজ করুন" - -# snigdha -#: Thunar.xml:562(para) -msgid "" -"Enable this option to automatically display the content of newly inserted " -"media in the file manager. Note however, that the contents will only be " -"displayed if no other action was possible or you choose to ignore the other " -"possible actions. For example, if you insert a CD-ROM with auto-run " -"capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow " -"or ignore the auto-run. If you choose to ignore the auto-run the contents " -"will be displayed in the file manager." -msgstr "" -"ফাইল ব্যবস্থাপকে নতুনভাবে প্রবেশ করানো মিডিয়ার বিষয়বস্তু স্বয়ংক্রিয়ভাবে " -"প্রদর্শন করতে এই অপশনটিকে সক্রিয় করুন। উপরন্তু মনে রাখুন, যদি অন্য কোনো " -"অ্যাকশন ব্যবহৃত না হয় বা অন্য সব অ্যাকশনকে উপেক্ষা করা হয় তবেই কেবল বিষয়বস্ত " -"প্রদর্শিত হবে। যেমন, আপনি যদি অটো-রান ক্ষমতা সম্পন্ন CD-ROM প্রবেশ করান এবং " -"নতুন ড্রাইভ ও মিডিয়াতে অটো-রান প্রোগ্রাম অপশনটি সক্রিয় " -"করেন তবে আপনি অটো-রানের অনুমোদন দিবেন না উপেক্ষা করবেন তা নির্বাচন করতে " -"পারবেন। আপনি যদি অটোরান বাছাই না করেন তবে বিষয়বস্তু ফাইল ম্যানেজারে " -"প্রদর্শিত হবে।" - -# snigdha -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "নতুন ড্রাইভ ও মিডিয়ায় অটো-রান প্রোগ্রাম" - -# snigdha -#: Thunar.xml:576(para) -msgid "" -"Enable this option to make use of auto-run capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-run mechanism. To " -"enhance security, you will always be prompted to confirm the auto-run." -msgstr "" -"নির্দিষ্ট কিছু স্থানান্তরযোগ্য ড্রাইভ ও মিডিয়ার জন্য অটো-রান ক্ষমতা ব্যবহার " -"করতে এই অপশনটি সক্রিয় করুন। অটো-রান পদ্ধতি সম্পর্কে আরও জানার জন্য ডেক্সটপ অ্যাপ্লিকেশন অটোস্টার্ট স্পেসিফিকেশন দেখুন। " -"বাড়তি নিরাপত্তার জন্য আপনাকে সবসময় অটোরান নিশ্চিত করতে বলা হয়ে থাকে।" - -# SNIGDHA -#: Thunar.xml:582(para) -msgid "" -"If the Windows emulator WINE is installed on your system, the auto-run mechanism will " -"also try to run autorun.exe files using WINE." -msgstr "" -"আপনার সিস্টেমে যদি উইন্ডোজ ইমিউলেটর WINE ইনস্টল করা থাকে, তবে অটো-রান " -"পদ্ধতি WINE ব্যবহার করে autorun.exe ফাইল চালানোর চেষ্টা " -"করবে।" - -# snigdha -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "নতুন ড্রাইভ ও মিডিয়ায় অটো-ওপেন ফাইল" - -# snigdha -#: Thunar.xml:592(para) -msgid "" -"Enable this option to make of auto-open capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-open mechanism. " -"To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" -"নির্দিষ্ট স্থানান্তরযোগ্য ড্রাইভ ও মিডিয়ার অটো-ওপেন ক্ষমতা তৈরি করতে এই " -"অপশনটি সক্রিয় করুন। অটো-ওপেন পদ্ধতি সম্পর্কে বিস্তারিত জানতে ডেক্সটপ অ্যাপ্লিকেশন অটোস্টার্ট স্পেসিফিকেশন দেখুন। " -"নিরাপত্তা বৃদ্ধির জন্য, সর্বদা আপনাকে অটো-ওপেন অপশনটি নিশ্চিত করতে বলা হবে।" - -# snigdha -#: Thunar.xml:602(para) -msgid "" -"The remaining options allow you to specify a command to run when a certain " -"kind of media is inserted into a drive or a certain kind of external device " -"is connected. The command can use three special variables, that will be " -"substituted when the command is run:" -msgstr "" -"যখন ড্রাইভে নির্দিষ্ট মিডিয়া প্রবেশ করানো থাকে অথবা বাহ্যিক কোনো ডিভাইস " -"সংযুক্ত থাকে তখন অবশিষ্ট অপশনসমূহ আপনাকে নির্দিষ্ট কমান্ড চালাতে অনুমতি " -"দিবে। কমান্ড তিন ধরনের চালক ব্যবহার করতে পারে, কমান্ড যখন চালু হয় তখন এটি " -"প্রতিস্থাপিত হয়:" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "%d" - -# snigdha -#: Thunar.xml:612(para) -msgid "" -"Each appearance of %d in the command will be substituted " -"with the device file path of the newly added device. For example, if you " -"have plugged in an USB stick, the device file path will be /dev/" -"da0s1 or /dev/sda1." -msgstr "" -"কমান্ডে %d এর প্রতিটি অবয়ব নতুন সংযুক্ত ডিভাইসের ডিভাইস " -"ফাইল পাথ দ্বারা প্রতিস্থাপিত হবে। উদাহরণস্বরূপ, আপনি যদি USB স্টিক সংযুক্ত " -"করেন, তবে ডিভাইস ফাইল পাথ /dev/da0s1 অথবা " -"/dev/sda1 হবে।" - -# snigdha -#: Thunar.xml:617(para) -msgid "" -"If no device file is associated with the device or the device file could not " -"be found for some reason, the variable %d will be " -"substituted with the empty string." -msgstr "" -"যদি ডিভাইসের সাথে কোনো ডিভাইস ফাইল যুক্ত না থাকে অথবা কোনো কারণে ডিভাইস " -"ফাইলটি পাওয়া না যায়, তবে %d চলকটি খালি স্ট্রিং দ্বারা " -"প্রতিস্থাপিত হবে।" - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "%h" - -# snigdha -#: Thunar.xml:627(para) -msgid "" -"Each appearance of %h in the command will be substituted " -"with the HAL UDI of the newly added device." -msgstr "" -"কমান্ডে %h এর প্রতিটি অবয়ব নতুন সংযুক্ত ডিভাইসের HAL UDI " -"দ্বারা প্রতিস্থাপিত হবে।" - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "%m" - -# snigdha -#: Thunar.xml:637(para) -msgid "" -"Each appearance of %m in the command will be substituted " -"with the mount point where the newly added device was mounted. If the device " -"cannot be mounted (for example printers or keyboards) or if the automatic " -"mounting was disabled, %m will be substituted with the " -"empty string." -msgstr "" -"যেখানে নতুনভাবে সংযুক্ত ডিভাইস মাউন্ট করা আছে সেখানে কমান্ডে %" -"m এর প্রত্যেকটি অবয়ব মাউন্ট পয়েন্ট দ্বারা প্রতিস্থাপিত হবে। যদি " -"ডিভাইসটি মাউন্ট করতে না পারেন (যেমন, মুদ্রনযন্ত্র বা কীবোর্ড) অথবা " -"স্বয়ংক্রিয় মাউন্টিং যদি নিস্ক্রিয় করা থাকে তবে, %m খালি " -"স্ট্রিং দ্বারা প্রতিস্থাপিত হবে।" - -# snigdha -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "ভলিউম ব্যবস্থাপকের কারিগরী সমস্যার সমাধান করা হচ্ছে" - -# snigdha -#: Thunar.xml:650(para) -msgid "" -"Useful tips to trouble shoot the volume manager in case it does not work as " -"expected." -msgstr "" -"ভলিউম ব্যবস্থাপক প্রত্যাশিত কাজ না করে সেই ক্ষেত্রে সমস্যা সমাধানের জন্য " -"কার্যকরী পরামর্শ।" - -#: Thunar.xml:656(para) -msgid "" -"Make sure Thunar is running as daemon. The volume " -"manager depends on this, as it is not a daemon by itself. By default, Xfce " -"automatically spawns Thunar as daemon on startup. " -"If it got killed for some reason, open the Run program " -"(using the keyboard shortcut AltF2 or right-click on the desktop and choose Run " -"Program... from the desktop menu), enter Thunar --" -"daemon and click Run." -msgstr "" -"নিশ্চিত হয়ে নিন যে Thunar ডিমন হিসাবে চলছে। ভলিউম " -"ব্যবস্থাপক এর উপর নির্ভর করে, কারণ এটি নিজে ডিমন হিসাবে নেই। ডিফল্ট হিসাবে " -"প্রথমেই Xfce স্বয়ংক্রিভাবেই Thunarকে ডিমন হিসাবে " -"ধারণ করে। এটি যদি কোনো কারণে ধ্বংস হয়ে যায় তবে প্রোগ্রাম " -"চালান (কীবোর্ড শর্টকাট ব্যবহার করে " -"AltF2 খুলুন অথবা " -"ডেক্সটপে ডান ক্লিক করে ডেক্সটপ থেকে প্রোগ্রাম চালানো... " -"বাছাই করুন, Thunar --ডিমন দিন এবং " -"চালান এ ক্লিক করুন।" - -# snigdha -#: Thunar.xml:668(para) -msgid "" -"Try running thunar-volman from a " -"Terminal window after hot-plugging the drive or " -"inserting the media. First, you need to figure out the HAL UDI of the new " -"device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-" -"added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" -"ড্রাইভটি হট-প্লাগ করে বা মিডিয়া প্রবেশ করানোর পর " -"টার্মিনাল উইন্ডো থেকে thunar-" -"volman চালানোর চেষ্টা করুন। প্রথমে, আপনাকে " -"lshal অথবা hal-device " -"ব্যবহার করে নতুন ডিভাইসের HAL UDI খুঁজে বের করে নিতে হবে। আপনি একবার UDI " -"সম্পর্কে জেনে যাবার পর টার্মিনাল উইন্ডোতে " -"thunar-volman --সংযুক্ত ডিভাইস<আপনার ডিভাইসের udi> " -"চালান এবং ভুল ও সতর্কবানীর আউটপুট দেখুন।" - -# snigdha -#: Thunar.xml:678(para) -msgid "" -"If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing " -"list for help." -msgstr "" -"এরপরও যদি কাজ না করে তবে Xfce ফোরাম অথবা thunar-dev মেইল " -"তালিকা এ সাহায্য চান।" - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "ফাইল ম্যানেজমেন্ট পছন্দসমূহ" - -# snigdha -#: Thunar.xml:691(para) -msgid "" -"Use the File Manager Preferences dialog to set your " -"Thunar file manager preferences. To open the " -"preferences dialog, choose EditPreferences... from the menu " -"bar, or click on the File Manager button in the Xfce " -"Settings Manager." -msgstr "" -"আপনার Thunar ফাইল ব্যবস্থাপক পছন্দসমূহ নির্ধারণ " -"করতে ফাইল ব্যবস্থাপক পছন্দসমূহ ডায়ালগ ব্যবহার করুন। " -"পছন্দনীয় ডায়ালগ খুলতে মেনুবার থেকে সম্পাদন " -"করুনপছন্দসমূহ... বাছাই " -"করুন, অথবা Xfce সেটিং ব্যবস্থাপকে ফাইল ব্যবস্থাপক " -"বোতামে ক্লিক করুন।" - -# snigdha -#: Thunar.xml:697(para) -msgid "" -"The File Manager Preferences dialog is divided into " -"four pages with different options, each described in a separate section " -"below. Basically you can set preferences in the following categories:" -msgstr "" -"ফাইল ব্যবস্থাপক পছন্দসমূহ ডায়ালগ পৃথক পৃথক অপশন নিয়ে " -"চার পৃষ্ঠায় বিন্যস্ত রয়েছে, যার প্রত্যেকটি নিচে আলাদা শ্রেনীতে বর্ণিত আছে। " -"মূলত আপনি নিম্নলিখিত বিভাগে আপনার পছন্দসমুহ নির্ধারণ করে দিতে পারেন:" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "প্রদর্শনের জন্য পূর্বনির্ধারিত সেটিংস।" - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "সাইড প্যানের জন্য পূর্বনির্ধারিত সেটিংস।" - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "ফাইল ম্যানেজার উইন্ডোর আচরণ।" - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "ফাইল ম্যানেজারের উচ্চ পর্যায়ের বৈশিষ্ট্যাবলী।" - -# snigdha -#: Thunar.xml:709(para) -msgid "" -"Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but " -"are not included in the preferences in order to keep the preferences dialog " -"simple. The README.thunarrc " -"file that is included with the Thunar distribution describes all available " -"options in detail." -msgstr "" -"Thunar তথাকথিত বেশকিছু আড়ালকৃত অপশন কে সমর্থন করে, যা " -"ফাইল ব্যবস্থাপকের উচ্চ পর্যায়ের বৈশিষ্টসমুহ নিয়ন্ত্রন করে, কিন্তু " -"পছন্দসমূহের ডায়ালগকে সাধারণ রাখার উদ্দেশ্যে এগুলোকে পছন্দসমূহের মধ্যে রাখা " -"হয়নি। Thunar বন্টনের সাথে সংযুক্ত README.thunarrc ফাইলটি বিদ্যমান অপশনসমূহের বিস্তারিত বর্ণনা দেয়। " - -#: Thunar.xml:718(title) Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "প্রদর্শনের পছন্দসমূহ" - -# snigdha -# -#: Thunar.xml:720(para) -msgid "" -"You can specify a default view, select sort options and display options. You " -"can also specify whether thumbnails should be displayed for file types that " -"support this." -msgstr "" -"আপনি ডিফল্ট দৃশ্যপট, ক্রম নির্বাচন এবং অপশন প্রদর্শন নির্দিষ্ট করে দিতে " -"পারেন। যেসকল ফাইল থাম্বনেইল সমর্থন করে সেগুলোতে তা প্রদর্শিত হবে কিনা তা " -"নির্দিষ্ট করে দিতে পারেন।" - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "নতুন ফোল্ডার যা ব্যবহার করছে" - -# snigdha -#: Thunar.xml:742(para) -msgid "" -"Select the default view for folders. When you open a new window, the is " -"displayed in the view that you select. This can be either the icon view, the " -"compact list view or the detailed list view. You can also select " -"Last Active View here to use the view you used for the " -"last active window." -msgstr "" -"ফোল্ডারের জন্য ডিফল্ট ভিউ নির্বাচন করুন। যখন নতুন উইন্ডো খুলবেন, আপনি যে " -"ভিউটি নির্বাচন করেছেন তা প্রদর্শিত হবে। এটা আইকন ভিউ, সন্নিবিষ্ট তালিকা ভিউ " -"অথবা বিস্তারিত তালিকা ভিউও হতে পারে। আপনি এখানে পূর্ববর্তী সক্রিয় ভিউয়ের " -"জন্য ব্যবহৃত ভিউটি ব্যবহার করতে পূর্ববর্তী সক্রিয় ভিউ " -"নির্বাচন করতে পারেন।" - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "ফাইলের পূর্বে ফোল্ডার সাজিয়ে নিন" - -# snigdha -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "" -"আপনি যখন ফোল্ডারকে ক্রমানুসারে সাজান তখন ফাইলের পূর্বে ফোল্ডারকে তালিকাভুক্ত " -"করার জন্য এই অপশনটি নির্বাচন করুন।" - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "থাম্বনেইলস প্রদর্শন করুন" - -# snigdha -#: Thunar.xml:763(para) -msgid "" -"Select this option to show thumbnails of image files and other supported " -"files. The file manager stores the thumbnail files for each folder in the " -"hidden .thumbnails directory in the " -"user's Home Folder." -msgstr "" -"ছবি ফাইল ও অন্যান্য সমর্থিত ফাইলের থাম্বনেইল প্রদর্শনের জন্য এই অপশনটি " -"নির্বাচন করুন। ফাইল ব্যবস্থাপক প্রতিটি ফোল্ডারের জন্য ব্যবহারকারীর প্রধান " -"ফোল্ডারে আড়াল করা .থাম্বনেইলস " -"ডিরেক্টরীতে থাম্বনেইল ফাইল সংরক্ষন করে রাখে।" - -# snigdha -#: Thunar.xml:768(para) -msgid "" -"See if you want to extend the basic " -"thumbnail functionality provided by Thunar with " -"support for additional file types." -msgstr "" -"আপনি যদি অতিরিক্ত ফাইলের সমর্থন সহ Thunar থেকে " -"প্রাপ্ত থাম্বনেইলের মূল কার্যবিধি বৃদ্ধি করতে চান, তাহলে দেখুন।" - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "আইকনের পাশে পাঠ্য" - -#: Thunar.xml:779(para) -msgid "" -"Select this options to place the icon captions for items in the icon view " -"beside the icon rather than under the icon." -msgstr "" -"আইকন ভিউতে আইটেমের ক্যাপশনটি আইকনের নীচে না দিয়ে পাশে দেয়ার জন্য এই অপশনটি " -"নির্বাচন করুন।" - -#: Thunar.xml:790(title) Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "সাইড প্যান পছন্দসমূহ" - -# snigdha -#: Thunar.xml:792(para) -msgid "" -"You can select display options for the shortcuts pane and the tree pane." -msgstr "শর্টকাট প্যান ও তিনটি প্যানের জন্য প্রদর্শন অপশনটি নির্বাচন করতে পারেন।" - -# snigdha -#: Thunar.xml:808(para) -msgid "" -"The side pane can either display a list of shortcuts for folders in your " -"file system, which is the default, or a tree view of your file system. This " -"page allows you to select the size of the icons for the shortcuts and the " -"tree pane. You can also specify whether emblems should be displayed." -msgstr "" -"সাইড প্যানটি আপনার ফাইল সিস্টেমের ফোল্ডারের শর্টকাটের একটি তালিকা অথবা ফাইল " -"সিস্টেমের একটি ট্রিভিউ প্রদর্শন করবে। এই পৃষ্ঠায় শর্টকাট এবং ট্রি প্যানের " -"আইকনের আকার নির্ধারন করা যায়। এর কোনো প্রতীক প্রদর্শিত হবে কিনা তাও আপনি " -"নির্দিষ্ট করে দিতে পারেন।" - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "আইকনের আকার" - -# snigdha -#: Thunar.xml:819(para) -msgid "" -"The size of the icons displayed in the side, ranging from Very " -"Small (around 16x16 pixels) to Very Large " -"(around 128x128 pixels)." -msgstr "" -"সাইডে প্রদর্শিত আইকনের আকার খুব ছোট (১৬x১৬ পিক্সেলের " -"কাছাকাছি) থেকে খুব বড় (১২৮x১২৮ পিক্সেলের কাছাকাছি) " -"পর্যন্ত।" - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "আইকন প্রতীক প্রদর্শন করুন" - -# snigdha -#: Thunar.xml:829(para) -msgid "" -"Select this option to display emblems for folders in the side pane. You can " -"assign emblems to folders in the Properties dialog. " -"Select a folder in the main area and choose FileProperties... from the main " -"menu, or right-click the folder and select " -"Properties... from the " -"context menu." -msgstr "" -"সাইড প্যানে ফোল্ডারের প্রতীক প্রদর্শনের জন্য এই অপশনটি নির্বাচন করুন। আপনি " -"বৈশিষ্ট্যাবলী ডায়ালগে ফোল্ডারের জন্য প্রতীক নির্ধারন " -"করে দিতে পারেন। মেইন এরিয়া থেকে একটি ফোল্ডার নির্বাচন করুন এবং মেইন মেনু " -"থেকে ফাইলবৈশিষ্ট্যাবলী... বাছাই করুন অথবা ফোল্ডারে ডান-ক্লিক করুন এবং " -"প্রাসঙ্গিক-মেনু থেকে " -"বৈশিষ্ট্যাবলী... " -"নির্বাচন করুন।" - -#: Thunar.xml:843(title) Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "আচরণ পছন্দসমূহ" - -# snigdha -#: Thunar.xml:845(para) -msgid "" -"You can select the preferred behavior to interact with the file manager." -msgstr "" -"ফাইল ম্যানেজারের সাথে যোগাযোগের জন্য আরও পছন্দসই কিছু নির্বাচন করতে পারেন।" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "আইটেমগুলো সক্রিয় করতে ক্লিক করুন" - -# snigdha -#: Thunar.xml:865(para) -msgid "" -"Select this option to perform the default action for an item when you click " -"on the item. When this option is selected, and you point to an item, the " -"title of the item is underlined and the item will be selected automatically " -"after a short delay." -msgstr "" -"কোনো আইটেমে ক্লিক করে এর ডিফল্ট অ্যাকশন কার্যকর করার জন্য এই অপশনটি নির্বাচন " -"করুন। অপশনটি নির্বাচিত হয়ার পর, আপনি যখন একটি আইটেম নির্দেশ করেন তখন এর " -"শিরোনাম নিম্নরেখাঙ্কিত হয় এবং কিছু সময় পরই আইটেমটি স্বয়ংক্রিয়ভাবেই " -"নির্বাচিত হয়।" - -# snigdha -#: Thunar.xml:871(para) -msgid "" -"This delay can be configured below the option. You can also disable the " -"automatic selection of items by moving the selector to the left-most " -"position." -msgstr "" -"অপশনের নিচে এই বিলম্বটি কনফিগার করা যায়। আপনি নির্বাচককে সর্ববামে সরিয়ে দিয়ে " -"আইটেমের স্বয়ংক্রিয় নির্বাচন নিস্ক্রিয় করে দিতে পারেন।" - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "আইটেমগুলো সক্রিয় করতে ডাবল ক্লিক করুন" - -# snigdha -#: Thunar.xml:882(para) -msgid "" -"Select this option to perform the default action for an item when you double " -"click on the item, and select the item with a single click." -msgstr "" -"আপনি যখন কোনো আইটেমে ডাবল-ক্লিক করেন তখন সেখানে ডিফল্ট অ্যাকশন কাজ করানোর " -"জন্য এই অপশনটি নির্বাচন করুন এবং একটি ক্লিক করে আইটেমটি নির্বাচন করুন।" - -#: Thunar.xml:893(title) Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "উচ্চ পর্যায়ের পছন্দসমূহ" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "আপনি ফাইল ব্যবস্থাপকের উচ্চপর্যায়ের বৈশিষ্টগুলো নিয়ন্ত্রন করতে পারবেন।" - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "ফোল্ডারের অনুমোদনসমূহ" - -# snigdha -#: Thunar.xml:915(para) -msgid "" -"Choose the action that should be performed when you change the permissions " -"of a folder in the Properties dialog. You can choose to " -"let Thunar ask everytime when you change folder " -"permissions, tell it to default to applying the new permissions to the " -"folder only or to apply them recursively to the folder contents as well." -msgstr "" -"আপনি একটি অ্যাকশন বাছাই করুন যা বৈশিষ্ট্যাবলী ডায়ালগের " -"ফোল্ডারের অনুমোদনসমুহ পরিবর্তন করার সময় কাজ করবে। আপনি এমনভাবে বাছাই করতে " -"পারেন যাতে আপনি যতবার ফোল্ডারের অনুমোদনসমুহ পরিবর্তন করবেন " -"Thunar ততবার জিজ্ঞাসা করবে, যাতে শুধু ফোল্ডারে " -"নতুন অনুমোদনসমুহ ব্যবহার করা হয় তা ডিফল্ট করতে বলে দেয়া হবে অথবা ফোল্ডারের " -"বিষয়বস্তুতেও ব্যবহার করা হবে।" - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "ভলিউম ম্যানেজমেন্ট" - -# snigdha -#: Thunar.xml:927(para) -msgid "" -"If Thunar was installed with support for HAL and " -"the thunar-volman package is also installed, you " -"can enable the integrated volume manager. See for details about this feature." -msgstr "" -"যদি HAL সমর্থন দ্বারা Thunar ইন্সটল করা হয় এবং " -"thunar-volman প্যাকেজও ইন্সটল করা থাকে তবে আপনি " -"ইন্টিগ্রেটেড ভলিউম ব্যবস্থাপক সক্রিয় করতে পারবেন। এই ফিচার সম্পর্কে " -"বিস্তারিত জানতে " -"দেখুন।" - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "Thunar পছন্দসই করা হচ্ছে" - -# snigdha -#: Thunar.xml:942(para) -msgid "" -"This chapter describes how to customize certain parts of the file manager to " -"your own needs." -msgstr "" -"এই অধ্যায় ফাইল ব্যবস্থাপকের কিছু নির্দিষ্ট অংশকে প্রয়োজনানুসারে কিভাবে " -"স্বনির্মান করতে হয় তা বর্ণনা করে।" - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "\"যেখানে পাঠানো হবে\" মেনু" - -# snigdha -#: Thunar.xml:950(para) -msgid "" -"Thunar includes a Send To menu, which provides possible " -"targets where files and folders can be sent to. To access the Send " -"To menu, choose FileSend To from the main menu, " -"or right-click on a file or folder and choose Send " -"To." -msgstr "" -"Thunar এ প্রেরণ করুন মেনু থাকে, যা কোথায় ফাইল ও ফোল্ডার " -"প্রেরণ করতে হবে তার সম্ভাব্য লক্ষ্য স্থির করে। প্রেরণ " -"করুন মেনুতে প্রবেশ করতে মেইন মেনু থেকে " -"ফাইলপ্রেরণ " -"করুন বাছাই করুন অথবা ফাইল বা ফোল্ডারে ডান-ক্লিক " -"করুন এবং প্রেরণ করুন " -"বাছাই করুন।" - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "\"যেখানে পাঠানো হবে\" মেনু" - -# snigdha -#: Thunar.xml:969(para) -msgid "" -"By default, the Send To menu includes an entry named " -"Desktop (Create Link) for all files and folders, which " -"simply creates a link on the desktop for each selected file. In addition, if " -"the Shortcuts Pane is active, the menu also includes an " -"entry called Side Pane (Create Shortcut) for folders, " -"which allows users to add new shortcuts to the side pane. Following these " -"entries, Thunar lists the removable drives " -"currently plugged into the computer. In the screenshot above, the " -"Floppy Drive represents a possible target where files " -"can be sent to. Note that the device is mounted automatically once selected " -"from the Send To menu, so you do not need to manually " -"mount it." -msgstr "" -"ডিফল্ট হিসাবে প্রেরণ করুন মেনুতে সব ফাইল ও ফোল্ডারের " -"জন্য একটি ডেক্সটপ (লিঙ্ক তেরি করুন) নামক ভুক্তি থাকে " -"যা প্রতিটি নির্বাচিত ফাইলের জন্য ডেক্সটপে একটি লিঙ্ক তৈরি করে। এছাড়া, যদি " -"শর্টকাট প্যান সক্রিয় থাকে তবে মেনুতে ফোল্ডারের জন্য " -"সাইড প্যান (শর্টকাট তৈরি করুন) নামক একটি ভুক্তি থাকে যা " -"ব্যবহারকারীকে সাইড প্যানে নতুন শর্টকাট যোগ করার অনুমোদন দেয়। ভুক্তিসমুহ " -"অনুসরন করে Thunar কম্পিউটারে প্রবেশকৃত " -"স্থানান্তরযোগ্য ড্রাইভগুলোর তালিকা তৈরি করা হয়। উপরোক্ত স্ক্রিনশটে " -"ফ্লপি ড্রাইভ একটি সম্ভাব্য লক্ষ্য দেখায় যেখানে ফাইলগুলো " -"প্রেরণ করা যায়। লক্ষ্য রাখুন, প্রেরণ করুন মেনু থেকে " -"নির্বাচিত ডিভাইসটি স্বয়ংক্রিয়ভাবে মাউন্ট হয়, সুতরাং আপনাকে নিজে থেকে মাউন্ট " -"করতে হয়না। " -" " -" " -" " -" " -" " -" " - -# snigdha -#: Thunar.xml:979(para) -msgid "" -"In addition Thunar also ships the " -"thunar-sendto-email plugin, which adds the entry " -"Mail Recipient to the menu, that opens the mail " -"composer with the selected files attach to the new email. If the selection " -"contains atleast one folder, the selected items are added to a ZIP archive " -"before attaching them to the email. Otherwise, if the selection contains " -"multiple files, or a single file, which is larger than 200Kib, the user will " -"be prompted whether to pack the files into a ZIP archive, and send the ZIP " -"archive." -msgstr "" -"এছাড়াও Thunar, thunar-প্রেরণ " -"করুন-ইমেইল প্লাগিং চালায় যা মেইল প্রাপক " -"ভুক্তি হিসাবে মেনুতে যোগ করে এবং নতুন মেইলের সাথে যোগ করা নির্বাচিত ফাইলসমূহ " -"মেইল কম্পোজারের সাহায্যে খুলে। নির্বাচিত অংশে যদি একটিও ফোল্ডার থাকে তবে " -"নির্বাচিত আইটেম ইমেইলের সাথে যুক্ত হওয়ার আগে ZIP আর্কাইভে নিয়ে নিতে হবে। " -"অন্যথায়, নির্বাচিত অংশে যদি একাধিক ফাইল বা ২০০Kib এর চেয়ে বড় কোনো ফাইল থাকে " -"তবে ব্যবহারকারীই ফাইলগুলো ZIP আর্কাইভে প্যাক করে প্রেরণ করবে। " - -#: Thunar.xml:987(para) -msgid "" -"Like most other features of Thunar, the " -"Send to menu can be easily extended by users and " -"application developers with new targets, using standard desktop entry files. These files must be installed into one of " -"the $XDG_DATA_DIRS/Thunar/sendto/ " -"folders (see the XDG Base Directory Specification for " -"details about the $XDG_DATA_DIRS variable)." -msgstr "" -"Thunar এর অন্যান্য বৈশিষ্ট্যাবলীর মতই, " -"প্রেরণ করুন মেনুটিকে ব্যবহারকারী এবং অ্যাপ্লিকেশন " -"ডেভেলপারগণ নতুন টার্গেট নিয়ে ডেক্সটপ " -"ভুক্তি ফাইলসমূহ ব্যবহার করে সম্প্রসারিত করতে পারে। এই ফাইলগুলো " -"$XDG_DATA_DIRS/Thunar/sendto/ ফোল্ডারে " -"ইন্সটল করতে হবে ($XDG_DATA_DIRS ভেরিয়েবল সম্পর্কে আরও " -"তথ্য জানার জন্য XDG বেস " -"ডিরেক্টরি সুনির্দিষ্টকরণ দেখুন)।" - -# snigdha -#: Thunar.xml:996(para) -msgid "" -"The MimeType of the target .desktop " -"specifies the types of files for which this action should be available in " -"the Send To menu. For example, say you want to add " -"entry for a Flickr " -"uploader tool, then this entry should only show up if the selection contains " -"JPEG files (other file formats are not supported by Flickr) and so you " -"should add a line MimeType=image/jpeg;. If you do not " -"specify any MimeType your entry will show up for all file " -"types." -msgstr "" -".ডেক্সটপ টার্গেটের MimeType ফাইলের " -"ধরণ নির্ধারন করে দেয় যার জন্য প্রেরণ করুন মেনুতে " -"অ্যাকশনটি থাকতে হয়। উদাহরণস্বরূপ, আপনি Flickr আপলোডার টুলের জন্য একটি ভুক্তি যোগ " -"করতে চান, তখন নির্বাচিত অংশে JPEG ফাইল (অন্যান্য ফাইল ফরমেট Flickr সমর্থিত " -"নয়) থাকলেই কেবল ভুক্তটি প্রদর্শিত হবে এবং সেজন্য আপনাকে " -"MimeType=image/jpeg; লাইনটি যোগ করতে হবে। আপনি যদি কোনো " -"MimeType নির্দিষ্ট করতে না পারেন তবে ভুক্তিটি সব ধরনের " -"ফাইলের জন্যই প্রদর্শিত হবে।" - -# snigdha -#: Thunar.xml:1004(para) -msgid "" -"A complete example using the postr application is " -"shown below:" -msgstr "" -"postr অ্যাপ্লিকেশন ব্যবহার করে একটি সম্পূর্ন " -"উদাহরণ নিচে দেখানো হল:" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -# snigdha -#: Thunar.xml:1021(para) -msgid "" -"If you install this file to ~/.local/share/" -"Thunar/sendto/ (create the folder if it does not exist yet), the " -"Send To menu for JPEG files will show the new entry " -"Flickr, which can be used to upload JPEG images to " -"Flickr." -msgstr "" -"আপনি যদি ~/.local/share/Thunar/sendto/ " -"(ফোল্ডার না থাকলে তৈরি করুন) এ ফাইল ইন্সটল করেন তবে, JPEG ফাইলের " -"প্রেরণ করুন মেনু নতুন ভুক্তি " -"Flickr প্রদর্শন করবে, যা Flickr এ JPEG ছবি আপলোড করতে " -"ব্যবহার করা যেতে পারে।" - -# snigdha -#: Thunar.xml:1027(para) -msgid "" -"The Thunar Project Wiki contains additional examples of " -"useful targets for the Send To menu. Feel free to " -"extend the Wiki page with new examples." -msgstr "" -"Thunar প্রকল্প উইকিপ্রেরণ করুন " -"মেনুর কার্যকরী লক্ষ্যের কিছু বাড়তি উদাহরণ থাকে। নিঃসংকোচে নতুন নতুন উদাহরণ " -"দিয়ে উইকি পেজ সম্প্রসারন করুন।" - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "থাম্বনেইলারস" - -#: Thunar.xml:1038(para) -msgid "" -"Thunar uses small utilities to create thumbnails of certain file types and " -"displays the thumbnails as preview of the file content. These small tools " -"are called thumbnailers. Thunar ships with thumbnailers for image and font " -"files, and makes use of the installed thumbnailers from GNOME automatically " -"if it was installed with support for gconf. Users may " -"however dynamically extend this basic functionality with thumbnailers for " -"additional file types." -msgstr "" -"নির্দষ্ট কিছু ফাইল টাইপের থাম্বনেইল তৈরি করতে Thunar কিছু ছোট উপযোগিতা " -"ব্যবহার করে এবং ফাইল কন্টেন্টের প্রাকদর্শন আকারে থাম্বনেইল প্রদর্শন করে। এই " -"ছোট টুলগুলোকে থাম্বনেইলার বলা হয়। Thunar ছবি এবং ফন্ট ফাইল থাম্বনেইলারে " -"প্রেরণ করে, GNOME থেকে স্বয়ংক্রিয়ভাবে ইন্সটল করা থাম্বনেইলার " - -# snigdha -#: Thunar.xml:1045(para) -msgid "" -"If you plan to write a custom thumbnailers, you need to start with a program " -"that accepts atleast two command line parameters, the input file, which is " -"of the file type you plan to support and the output file, which is a PNG " -"file that complies with the format specified by the Thumbnail " -"Management Standard. Additionally your program may also accept the " -"desired size of the thumbnail, which is optional but highly recommended. If " -"you write the output file at an arbitrary image size, Thunar will afterwards " -"scale it to the desired size, which might produce a less optimal result than " -"generating the thumbnail with the requested dimensions." -msgstr "" -"আপনি যদি একটি পছন্দনীসই থাম্বনেইলার লেখার পরিকল্পনা করে থাকেন তবে এমন একটি " -"প্রোগ্রাম দিয়ে শুরু করা উচিৎ যা নূন্যতম দুটি কমান্ড লাইন প্যারামিটার গ্রহন " -"করে, একটি হল ইনপুট ফাইল যেটি হল সেই ধরনের ফাইল যা আপনি সমর্থন করার পরিকল্পনা " -"করেছেন এবং অন্যটি আউটপুট ফাইল যা একটি PNG ফাইল এবং থাম্বনেইল " -"ম্যানেজমেন্ট স্টান্ডার্ড দ্বারা নির্দিষ্টকৃত বিন্যাস মেনে চলে। " -"উপরন্তু, আপনার প্রোগ্রাম থাম্বনেইলের প্রত্যাশিত আকারও গ্রহন করতে পারে, যা " -"ঐচ্ছিক কিন্তু উচ্চমাত্রায় সুপারিশকৃত। আপনি যদি একটি এলমেলো আকারের ছবির ভেতর " -"আউটপুট ফাইলটি লিখতে চান তবে Thunar একে আপনার প্রত্যাশিত আকারে এনে দিবে " -"কিন্তু তা অনুরোধকৃত মাত্রার থাম্বনেইলের চেয়ে কিছুটা কম সঠিক মাত্রার হতে " -"পারে।" - -# snigdha -#: Thunar.xml:1054(para) -msgid "" -"Once your utility to generate the thumbnails is done, you will need to " -"register your thumbnailer, so Thunar is able to locate and use it. Therefore " -"all you need to do is to install a description file for the thumbnailer (a " -".desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want " -"to register the thumbnailer for your user account only, you can install the " -"file into the folder ~/.local/share/" -"thumbnailers/. The .desktop for thumbnailers " -"has the following format." -msgstr "" -"একবার যদি থাম্বনেইল তৈরির উপযোগিতা শেষ হয়ে যায় তবে আপনাকে থাম্বনেইলার " -"রেজিস্টার করতে হবে যাতে Thunar এর অবস্থান চিহ্নিত করে ব্যবহার করতে পারে। " -"অতএব, আপনাকে থাম্বনেইলের $XDG_DATA_DIRS/thumbnailers/ পাথে একটি বর্ণনা " -"ফাইল (একটি .desktop ফাইল) ইন্সটল করতে হবে। যেমন, আপনি " -"যদি শুধু নিজের অ্যাকাউন্টের জন্য থাম্বনেইলার রেজিস্টার করতে চান তবে " -"~/.local/share/thumbnailers/ ফোল্ডারে " -"ফাইলটি ইন্সটল করতে পারেন। .desktop এর থাম্বনেইলারের " -"জন্য নিম্নোক্ত ফরম্যাট রয়েছে।" - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "থাম্বনেইলার ফাইলের ধরণ" - -# snigdha -#: Thunar.xml:1065(para) -msgid "" -"Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new " -"field codes. Basically, a thumbnailer description file has the following " -"format." -msgstr "" -"থাম্বনেইলার বর্ণনা ফাইল X-Thumbnailer এর বিশেষ " -"টাইপ সহ ডেক্সটপ " -"ভুক্তি ফরম্যাট এবং নতুন ক্ষেত্র কোড সহ বিশেষ ক্ষেত্রX" -"-Thumbnailer-Exec এর যথাযথভাবে ব্যবহার করে। মূলত, থাম্বনেইলার " -"বর্ণনা ফাইলের নিম্নোক্ত বিন্যাস থাকে।" - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n[Desktop " -"Entry]\nVersion=1.0\nEncoding=UTF-8\nType=X-Thumbnailer\nName=Your " -"Thumbnailer\nMimeType=your-supported/mime-type;\nX-Thumbnailer-Exec=your-" -"thumbnailer %i %o %s" - -# snigdha -#: Thunar.xml:1080(para) -msgid "" -"The Version and Encoding are mandated " -"by the Desktop Entry Specification, just use the values shown in the example " -"above. The Type field must have the special value " -"X-Thumbnailer, otherwise your thumbnailer will not be " -"recognized. The Name value describes your thumbnailer." -msgstr "" -"সংস্করণ এবং এনকোডিং ডেক্সটপ ভুক্তি " -"সুনির্দিষ্টকরণের অধিভুক্ত, কেবল উপরোক্ত উদাহরণের মানগুলো ব্যবহার করুন। " -"টাইপক্ষেত্রের বিশেষ মান X-Thumbnailer " -"থাকা উচিৎ, অন্যথায় আপনার থাম্বনেইলারকে সনাক্ত করা যাবে না। " -"নাম মানটি আপনার থাম্বনেইলারের বর্ণনা দেয়।" - -# snigdha -#: Thunar.xml:1086(para) -msgid "" -"The X-Thumbnailer-Exec field contains the command to run " -"your thumbnailer, and supports certain field codes that will be substituted " -"when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" -"X-Thumbnailer-Exec ক্ষেত্রে আপনার থাম্বনেইলার চালানোর " -"কমান্ড থাকে, এবং কিছু ক্ষেত্রের কোড সমর্থন করে যা থাম্বনেইলার চালানোর সময় " -"প্রতিস্থাপিত হয়ে যাবে। সনাক্তকৃত ক্ষেত্রের কোডসমুহ নিম্নলিখিত:" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "%i" - -# snigdha -#: Thunar.xml:1095(para) -msgid "" -"The local path to the input file for which to create a thumbnail. May be " -"either a path relative to the directory from which the thumbnailer was " -"invoked or an absolute path." -msgstr "" -"যে ইনপুট ফাইলটির জন্য থাম্বনেইল তৈরি করতে হবে তার স্থানীয় পাথ। থাম্বনেইলার " -"যেরকম চায় তেমন ডিরেক্টরি সম্পর্কিত পাথ অথবা শুধু একটি পাথও হতে পারে।" - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "%o" - -# snigdha -#: Thunar.xml:1103(para) -msgid "" -"The local path to the output file where to store the generated thumbnail. " -"The output file must be written as valid PNG file according to the thumbnail " -"standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" -"আউটপুট ফাইলের স্থানীয় পাথ যেখানে তৈরীকৃত থাম্বনেইল সংরক্ষন করা হয়। থাম্বনেইল " -"স্টান্ডার্ড (উপরে দেখুন) অনুসারে আউটপুট ফাইলটি PNG ফাইল আকারে লেখা হবে। " -"লক্ষ্য রাখুন, পাথটি যাতে .png এ শেষ না হয়ে যায় কারন আপনি " -"যদি তৃতীয় পক্ষের টুল চেয়ে থাকেন তবে তা এখানে প্রভাব ফেলবে।" - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "%s" - -# snigdha -#: Thunar.xml:1112(para) -msgid "" -"The desired size of the generated thumbnail in pixels. This parameter is " -"optional." -msgstr "" -"তৈরি হওয়া থাম্বনেইলের প্রত্যাশিত আকার পিক্সেলে থাকে। এই প্যারামিটারটি " -"ঐচ্ছিক।" - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "%u" - -# snighda -#: Thunar.xml:1119(para) -msgid "" -"Similar to %i, but substituted with the URI of the file, " -"rather than the path. This was added for compatibility with GNOME." -msgstr "" -"%i এর মতই, কিন্তু পাথ দ্বারা প্রতিস্থাপিত না হয়ে URI " -"দ্বারা প্রতিস্থাপিত হয়। GNOME এর সাথে সুসংগতির বজায় রাখার জন্যই একে যোগ করা " -"হয়।" - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "%%" - -# snigdha -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "একক % দ্বারা প্রতিস্থাপিত হবে।" - -# snigdha -#: Thunar.xml:1132(para) -msgid "" -"You need to include atleast %o and %i " -"or %u, otherwise your thumbnailer will be useless." -msgstr "" -"আপনার নূন্যতম %o এবং %i অথবা " -"%u কে সংযুক্ত করা প্রয়োজন, নতুবা আপনার থাম্বনেইলার অকার্যকরী হয়ে " -"পরবে।" - -# snigdha -#: Thunar.xml:1137(para) -msgid "" -"The MimeType lists the MIME types - separated by " -"semicolon - for which your thumbnailer is able to create previews." -msgstr "" -"MimeType MIME টাইপের তালিকা তৈরি করে - যা সেমিকোলন দ্বারা " -"পৃথক করা থাকে - যার মাধ্যমে থাম্বনেইলার প্রিভিউ তৈরি করতে পারে।" - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "উদাহরণ EPS থাম্বনেইলার" - -# snigdha -#: Thunar.xml:1145(para) -msgid "" -"This example demonstrates how to write and install a new thumbnailer for " -".eps files, which uses the convert " -"utility that ships as part of ImageMagick. First, we start with a simple " -"script that invokes convert to generate a thumbnail at " -"the requested size." -msgstr "" -"এই উদাহরণটি .eps ফাইলের জন্য নতুন থাম্বনেইলার কিভাবে " -"লিখতে হয় এবং ইন্সটল করতে হয় তা বর্ণনা করে যা রূপান্তর " -"করুন উপযোগীতা ব্যবহার করে ImageMagick এর অংশ হিসাবে চলে। প্রথমে " -"আমরা একটি সহজ স্ক্রিপ্ট দিয়ে শুরু করি যা রূপান্তর করুনএ " -"অনুরোধকৃত আকারে থাম্বনেইল তৈরী করতে সাহায্য করে।" - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -# snigdha -#: Thunar.xml:1167(para) -msgid "" -"Save this script above to a file eps-thumbnailer, make " -"sure the file is executable and install it to /" -"usr/local/bin." -msgstr "" -"eps-থাম্বনেইলার এ উপরের স্ক্রিপ্ট সংরক্ষণ করুন, ফাইলটি " -"কার্যকরী কিনা তা নিশ্চিত হয়ে নিন এবং /usr/local/bin এ ফাইলটি ইন্সটল করুন।" - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -# snigdha -#: Thunar.xml:1176(para) -msgid "" -"Next we need to create the thumbnail description file eps-" -"thumbnailer.desktop, which looks like this:" -msgstr "" -"পরবর্তীতে আমাদের থাম্বনেইল বিস্তারিত ফাইল eps-" -"thumbnailer.desktop তৈরি করতে হবে, যা নিম্নরূপ:" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -# snigdha -#: Thunar.xml:1190(para) -msgid "" -"This file must be installed to /usr/local/share/" -"thumbnailers (create the folder if it does not exists)." -msgstr "" -"এই ফাইলটি /usr/local/share/thumbnailers এ ইন্সটল করতে হবে " -"(ফোল্ডার না থাকলে তৈরি করতে হবে)।" - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -# snigdha -#: Thunar.xml:1199(para) -msgid "" -"The eps-thumbnailer.desktop file uses the special key " -"TryExec, which, if specified, names a command that must " -"be present on the system for the thumbnailer to be useful. In this case, our " -"script is useless if the convert utility is not present." -msgstr "" -"eps-থাম্বনেইলার.ডেক্সটপ ফাইল TryExec " -"বিশেষ কী ব্যবহার করে যা নির্দিষ্ট করা থাকলে থাম্বনেইলারকে কার্যকর করার জন্য " -"সিস্টেমে আছে এমন একটি কমান্ড উল্লেখ করে। এই ক্ষেত্রে, যদি রূপান্তর " -"করা উপযোগীতা না থাকে তবে আমাদের স্ক্রিপ্ট অকার্যকর হয়ে পড়ে।" - -#: Thunar.xml:1205(para) -msgid "" -"The last step is to regenerate the thumbnailer cache, so Thunar will pick up " -"our thumbnailer. The thumbnailer cache is located at " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by " -"your or your system administrator, the $XDG_CACHE_HOME " -"points to the folder ~/.cache/). The " -"thumbnailers cache is regenerated periodically by Thunar, but you can force " -"to regenerate it by invoking the thunar-vfs-update-thumbnailers-" -"cache-1 utility, that ships as part of Thunar. This utility is " -"usually installed in the libexec " -"subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in " -"/usr, invoke the utility as follows:" -msgstr "" -"শেষ ধাপ হল থাম্বনেইলার ক্যাশ পুনঃনির্মাণ করা, সুতারাং Thunar আমাদের " -"থাম্বনেইলারটি বেছে নিবে। থাম্বনেইলার ক্যাশ " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (আপনি বা " -"আপনার সিস্টেম প্রশাসক ওভাররাইড না করা পর্যন্ত " -"$XDG_CACHE_HOME, ফোল্ডার ~/.cache/ কে নির্দেশ করে) এ অবস্থিত। Thunar " -"থাম্বনেইলার ক্যাশকে পুনঃনির্মাণ করে, কিন্তু আপনি thunar-vfs-" -"update-thumbnailers-cache-1 ব্যবহার করে যা Thuanr এর অংশ হিসাবে " -"চলে, এটি পুনঃনির্মাণ করতে পারেন। সাধারণত আপনার ইন্সটলেশন প্রীফিক্স " -"(ডেবিয়ান/উবুন্ট এsbin) এর সাবফোল্ডার " -"libexec এ ইউটিলিটি ইন্সটল করা থাকে। " -"সুতরাং, উদাহরণস্বরূপ, thunar যদি /usr " -"এ ইন্সটল করা থাকে তবে নিম্নরূপে ইউটিলিটি চায়:" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml:1218(para) -msgid "" -"But make sure you run the program from your user account, not the superuser " -"account, since the thumbnailers cache is stored in your home folder, rather " -"than a system wide location." -msgstr "" -"নিশ্চিত হয়ে নিন যে আপনি প্রোগ্রামটি ইউজার অ্যাকাউন্ট থেকেই চালাচ্ছেন, সুপার " -"ইউজার অ্যাকাউন্ট থেকে নয়, কারণ থাম্বনেইলার ক্যাশ পুরো সিস্টেম জুড়ে জমা না " -"থেকে আপনার হোম ফোল্ডারে জমা থাকে।" - -# snigdha -#: Thunar.xml:1223(para) -msgid "" -"Now, if Thunar is compiled with support for file alteration monitoring " -"(using the FAM or Gamin services), it will automatically pick up the new " -"thumbnailers cache within a few seconds and afterwards be able to generate " -"thumbnails using your custom thumbnailers. Otherwise you might need to " -"completely restart Thunar to apply the changes, using" -msgstr "" -"এখন যদি Thunar ফাইল বদল পর্যবেক্ষন (FAM অথবা Gamin সেবাসমুহ ব্যবহার করে) " -"সমর্থন করে, তবে কিছুক্ষনের মধ্যেই এটি স্বয়ংক্রিয়ভাবে মধ্যেই নতুন থাম্বনেইলার " -"ক্যাশ খুঁজে বের করবে এবং স্বনির্ধারিত থাম্বনেইলার ব্যবহার করে থাম্বনেইল " -"তৈরি করবে। অন্যথায়, পরিবর্তনসমূহ প্রয়োগ করতে Thunar পুনরায় শুরু করতে হবে," - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -# snigdha -#: Thunar.xml:1231(para) -msgid "" -"to terminate any running instance, and afterwards restart it from your " -"launcher." -msgstr "" -"যেকোনো চলমান মূহুর্তে বন্ধ করার জন্য এবং পরে লঞ্চার থেকে পুনরায় চালু করার " -"জন্য।" - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "থাম্বনেইল মুছে ফেলা হচ্ছে" - -# snigdha -#: Thunar.xml:1239(para) -msgid "" -"The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management " -"Standard. While testing a new thumbnailer, it might help to clean up " -"the thumbnail cache using" -msgstr "" -"তৈরি হওয়া থাম্বনেইল থাম্বনেইল ম্যানেজমেন্ট স্ট্যান্ডার্ড এর সাথে যুক্ত " -" ~/.thumbnails/ ফোল্ডারে জমা হয়। নতুন " -"কোনো থাম্বনেইলার পরীক্ষা করার সময় থাম্বনেইল ক্যাশ পরিস্কার করতে" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -# snigdha -#: Thunar.xml:1247(para) -msgid "" -"which will also give you some free space in your home folder. Since all the " -"information stored within this folder was automatically generated from files " -"in your file system, you will not loose any sensitive data." -msgstr "" -"যা আপনার হোম ফোল্ডারে কিছু খালি জায়গা রাখবে। কারন, এই ফোল্ডারে জমা রাখা " -"তথ্যসমুহ আপনার ফাইল সিস্টেমের ফাইল থেকে স্বয়ংক্রিয়ভাবে তৈরি হয়, ফলে আপনি " -"কোনো সংবেদনশীল ডাটাও হারাবেন না।" - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "উচ্চ পর্যায়ের বিষয়" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "বাল্কে ফাইলগুলো পুনরায় নামকরণ করুন" - -# snigdha -#: Thunar.xml:1263(para) -msgid "" -"To bulk rename files means to rename multiple files at " -"once using some criterion, that applies to atleast one of the files. " -"Thunar includes a bulk renamer, which can be run " -"separately using the command Thunar -B or from within " -"Thunar by selecting two or more files in the main " -"area and pressing F2 or choosing " -"EditRename... from the main menu." -msgstr "" -"ফাইল বাল্ক পুনরায় নামকরণ করুন বলতে বুঝায় কিছু শর্তাবলী " -"মেনে একাধিক ফাইলের পুনরায় নামকরণ করা, যা অন্তত একটি ফাইলে প্রয়োগ করা যায়। " -"Thunar এ বাল্ক পুনঃনামকারক থাকে যা " -"Thunar -B কমান্ড ব্যবহার করে পৃথকভাবে চালানে যায় অথবা " -"Thunar এর মধ্যে মেইন এরিয়ায় দুই বা ততোধিক ফাইল " -"নির্বাচন করে F2 চেপে মেইন মেনু থেকে " -"সম্পাদন করুনপুনরায় নামকরণ " -"করুন... বাছাই করেও চালানো যায়।" - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "বাল্ক পুনরায় নামকরণ ফাইল" - -# snigdha -#: Thunar.xml:1283(para) -msgid "" -"The Bulk Renamers can be applied to the name of the " -"files, the suffix of the files or both to the name and the suffix of the " -"files. Thunar currently supports the following " -"Bulk Renamers:" -msgstr "" -"বাল্ক পুনরায় নামকরণকারী ফাইলের নামে, সাফিক্সে অথবা " -"দুইখানেই প্রয়োগ করা যেতে পারে। বর্তমানে Thunar " -"নিম্নলিখিত বাল্ক পুনরায় নামকরণকারী কে সমর্থন করে:" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "অক্ষর মুছে ফেলুন।" - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "সংখ্যায়িত ফাইল।" - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "তারিখ বা সময় দিন।" - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "অক্ষর প্রবেশ বা উপরিলিখন করুন।" - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "অক্ষর অনুসন্ধান এবং প্রতিস্থাপন" - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "বড় হাতের, ছোট হাতের অথবা যান্ত্রিক অক্ষরে রূপান্তর করে নিন।" - -# snigdha -#: Thunar.xml:1298(para) -msgid "" -"Additional Bulk Renamers may be installed as plugins " -"for Thunar. Check the Thunar Plugins website for " -"currently available extensions. The Thunar Project Wiki " -"contains further details about this feature. Feel free to add more " -"information to the Wiki." -msgstr "" -"Thunar এর জন্য প্লাগিং হিসাবে অতিরিক্ত " -"বাল্ক পুনরায় নামকরনকারী ইন্সটল করা যেতে পারে। বর্তমানে " -"বিদ্যমান বর্ধিতাংশের জন্য Thunar প্লাগ‌ইন ওয়েবসাইটটি " -"দেখুন। Thunar " -"প্রজেক্ট উইকি তে এই ফিচার সম্পর্কে বিস্তারিত তথ্য আছে। নিশ্চিন্তে " -"উইকিতে আরও তথ্য সংযুক্ত করুন।" - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "ইউনিক্স ফাইল সিস্টেম" - -# snigdha -#: Thunar.xml:1310(para) -msgid "" -"While the Thunar file manager does a good job at abstracting the details of " -"the underlying file system, so the user does not need to care about them, it " -"is sometimes useful to understand the basic concepts to get the whole " -"picture. This section tries to give a brief introduction to the concepts of " -"the UNIX file system, which is used today by all incarnations of UNIX, " -"including Linux." -msgstr "" -"Thunar ফাইল ব্যবস্থাপক মূল ফাইল সিস্টেমের বিস্তারিত বিষয়াবলীকে যথার্থভাবে " -"সংক্ষেপ করতে পারে, সুতরাং ব্যবহারকারীকে এটা নিয়ে ভাবতে হয় না, কখনও কখনও পুরো " -"ব্যাপারটাকে জানতে মূল ধারণাটি বুঝতে পারা বেশ কার্যকর। এই অংশটি UNIX ফাইল " -"সিস্টেমের সংক্ষিপ্ত পরিচিতিমূলক ধারণা দেয় যা বর্তমানে লিনাক্সসহ UNIX এর সকল " -"প্রতিনিধিত্বকারীই ব্যবহার করে।" - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "ফোল্ডার এবং পাথ" - -# snigdha -#: Thunar.xml:1320(para) -msgid "" -"In a UNIX file system all folders are arranged in a simple inverted tree " -"structure descending and branching down from a single top level folder, " -"which is called the root directory (the term " -"directory is often used instead of folder) and displayed as File System in Thunar. This " -"means that you can get from any folder to any other by going up the tree " -"until you reach a common point, then down the tree through the appropriate " -"subfolders until you reach your target." -msgstr "" -"UNIX ফাইল সিস্টেমে ফোল্ডারগুলো একটি উল্টানো ট্রী এর মত করে সাজানো থাকে " -"যেখানে একটি শীর্ষ ফোল্ডার থেকে অন্যান্য ফোল্ডার শাখার মত থাকে, যা " -"রুট ডিরেক্টরি (ফোল্ডার এর বদলে " -"ডিরেক্টরি টার্মটি ব্যবহৃত হয়) নামে পরিচিত এবং Thunar এ " -"ফাইল সিস্টেম আকারে প্রদর্শিত হয়। অর্থাৎ আপনি ট্রীর " -"সাহায্যে একটি সাধারন বিন্দুতে পৌছানো পর্যন্ত যেকোনো ফোল্ডার থেকে অন্য " -"ফোল্ডারে যেতে পারেন এবং ট্রীর নিচের দিকে এসে সঠিক সাবফোল্ডারের মাধ্যমে " -"লক্ষ্যে পৌছাতে পারেন।" - -# snigdha -#: Thunar.xml:1329(para) -msgid "" -"The position of any file or folder in the tree can be described by its " -"path. The path is the list of folders you would have to " -"descend through to get to the target folder or file, starting from the top " -"level folder. For example /home/luke " -"is the subfolder luke of the " -"subfolder home of the top level " -"folder, and /home/luke/myfile.txt is the file " -"myfile.txt in that subfolder. The leading / in these paths represents the top level " -"folder." -msgstr "" -"ট্রীতে অবস্থিত যেকোনো ফাইল বা ফোল্ডারের অবস্থান তার পাথ " -"থেকে বর্ণনা করা যায়। পাথ হল গন্তব্য ফোল্ডার বা ফাইল বের করার জন্য সবচেয়ে " -"উপরের ফোল্ডার থেকে শুরু করে নীচ পর্যন্ত ফোল্ডারের তালিকা। যেমন, /home/luke হল শীর্ষস্তর ফোল্ডারের home সাবফোল্ডারের luke সাবফোল্ডার এবং " -"/home/luke/myfile.txt হল ওই সাবফোল্ডারের " -"myfile.txt ফাইল। এই পাথের প্রথম অংশ / দ্বারা শীর্ষস্তরের ফোল্ডারকে বোঝায়।" - -# snigdha -#: Thunar.xml:1338(para) -msgid "" -"Every user has their own folder to hold their personal files and settings. " -"This folder is called the home directory and is " -"displayed in Thunar as special icon with the users login name. The folder is " -"similar to the My Files folder known from Windows. The " -"home directories of the various users in a system are " -"usually located below the /home " -"folder. For example /home/luke would " -"be the home directory of the user with the login name luke, while /home/" -"jane would be the home directory for the user with the login name " -"jane." -msgstr "" -"প্রত্যেক ব্যবহারকারীর নিজস্ব ফোল্ডার আছে যেখানে সে তার ব্যক্তিগত ফাইল ও " -"সেটিংসমূহ রাখতে পারে। এই ফোল্ডারকে প্রধান ডিরেক্টরি বলা " -"হয় এবং ব্যবহারকারীর নাম লগিং করতেই বিশেষ আইকন আকারে Thunar এ প্রদর্শিত হয়। " -"ফোল্ডারটি উইন্ডোর আমার ফাইল ফোল্ডারের অনুরূপ। সিস্টেমে " -"বিভিন্ন ব্যবহারকারীর প্রধান ডিরেক্টরি সাধারণত /home ফোল্ডারের নিচে থাকে। যেমন,/home/luke, ব্যবহারকারীর লগিং নাম luke এর প্রধান ডিরেক্টরি হবে এবং /home/jane, ব্যবহারকারীর লগিং নাম jane এর প্রধান ডিরেক্টরি হবে।" - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "ফাইলের ধরণ" - -# snigdha -#: Thunar.xml:1352(para) -msgid "" -"You may have already heard that everything is a file in UNIX. This is true " -"for most objects present in UNIX systems today. In fact even devices are " -"represented as a special files. While this may not make sense at first " -"sight, it is one of the strengths of UNIX and its derivates, and has helped " -"it to maintain a simple core over the years where other operating systems " -"had to introduce new concepts for every new technology." -msgstr "" -"আপনি ইতোমধ্যেই শুনে থাকবেন যে সবগুলো UNIX এর ফাইল। আজকাল UNIX সিস্টেমের সব " -"অবজেক্টের জন্যই এটা প্রযোজ্য। প্রকৃতপক্ষে, ডিভাইসকেও বিশেষ ফাইল আকারে দেখানো " -"হয়। প্রথমে এটাকে দেখে অর্থহীনও মনে হতে পারে, কিন্তু UNIX এবং এর ডিরাইভেটের " -"এটি একটি ক্ষমতা এবং এটি সহজ একটি মূল বিষয় মেনে চলে যেখানে অন্য অপারেটিং " -"সিস্টেমগুলোতে প্রতিটি নতুন প্রযুক্তির সাথে নতুন ধারণা যোগ করতে হয়।" - -# snigdha -#: Thunar.xml:1359(para) -msgid "" -"These are the four most important types of files in the UNIX file system." -msgstr "এগুলো UNIX ফাইল সিস্টেমের চারটি সবচেয়ে গুরুত্বপূর্ন ফাইল।" - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "সাধারণ ফাইল" - -# snigdha -#: Thunar.xml:1366(para) -msgid "" -"An ordinary file may contain text, a program or other data. This includes " -"image files, audio files, office documents and video files. The term " -"file is often used to refer to an ordinary file." -msgstr "" -"একটি সাধারন ফাইলে টেক্সট, প্রোগ্রাম অথবা অন্যান্য ডাটা থাকতে পারে। এগুলোতে " -"ছবি ফাইল, অডিও ফাইল, অফিস ডকুমেন্ট এবং ভিডিও ফাইল যুক্ত থাকে। সাধারণ ফাইল " -"বোঝাতে ফাইল টার্মটি ব্যবহার করা হয়।" - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "ফোল্ডার ফাইল" - -#: Thunar.xml:1375(para) -msgid "" -"Folders are also files in the UNIX file system. To be exact a folder is a " -"special file, which contains a mapping of file names to file references for " -"every file contained within this folder." -msgstr "UNIX ফাইল সিস্টেমে ফোল্ডার ফাইল আকারে থাকে। প্রকৃতপক্ষে ফোল্ডার হল এ" - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "প্রতীকি লিংক ফাইল" - -# snigdha -#: Thunar.xml:1384(para) -msgid "" -"A Symbolic link (often called a symlink) is a special " -"file that contains a path to another file in the file system. Symbolic link " -"files therefore do not contain any useful information themselves, but just " -"refer to other files." -msgstr "" -"প্রতীকি লিঙ্ক (প্রায়ই সিমলিঙ্ক বলা হয়) হল একটি বিশেষ " -"ফাইল যেখানে ফাইল সিস্টেমের অন্য একটি ফাইলের পাথ থাকে। অতএব, প্রতীকি লিঙ্ক " -"ফাইলে কোনো কার্যকরী তথ্য থাকেনা, কিন্তু অন্য ফাইলে আছে তা উল্লেখ করে দেয়।" - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "ডিভাইস ফাইল" - -# snigdha -#: Thunar.xml:1394(para) -msgid "" -"As mentioned earlier (most) devices are also accessed through the file " -"system. These special device files are usually located in the /dev folder. For example the special file " -"/dev/hda represents the first IDE disk on Linux." -msgstr "" -"পূর্বে উল্লেখানুসারে, পূর্ববর্তী (বেশীরভাগ) ডিভাইসসমূহ ফাইল সিস্টেমের " -"সাহায্যে চালু হয়। এই বিশেষ ডিভাইস ফাইলগুলো সাধারনত /dev ফোল্ডারেই থাকে। যেমন, বিশেষ ফাইল " -"/dev/hda লিনাক্সে IDE ডিস্ককেই বোঝায়।" - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "যেসব প্রশ্ন প্রায়ই জিজ্ঞাসা করা হয়" - -# snigdha -#: Thunar.xml:1408(para) -msgid "" -"The intent of this section is to collect the quite numerous frequently asked " -"questions that relate to working with Thunar. If you know of a question that " -"is missing from this page, please file a request." -msgstr "" -"এই বিভাগের উদ্দেশ্য হল Thunar এ কাজ প্রসঙ্গে কিছু সংখ্যক প্রায়ই জিজ্ঞাসিত " -"প্রশ্ন সংগ্রহ করা। আপনি যদি এমন কোনো প্রশ্ন জানেন যেটা এই পৃষ্ঠায় নাই ,তবে " -"একটি অনুরোধ ফাইল করুন দেখুন।" - -# snigdha -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Thunar কার্যকরী হিসাবে চিহ্নিত ফাইলকে কার্যকর করে না কেন?" - -#: Thunar.xml:1419(para) -msgid "" -"For security reasons Thunar only executes files of type application/" -"x-desktop, application/x-executable and " -"application/x-shellscript. For desktop files the " -"execution feature will only be enabled if the desktop file is of type " -"Application and a valid Exec line is " -"given or of type Link and a valid URL " -"is given. For the other types the feature is available if the file is marked " -"executable for the current user." -msgstr "" -"নিরাপত্তার জন্য Thunar কেবল application/x-desktop, " -"application/x-executable এবং " -"application/x-shellscript ফাইলগুলোকেই কার্যকর করে। " -"ডেক্সটপ ফাইলের জন্য কার্যকরী ফিচার সক্রিয় হবে না যদি ফাইলটি " -"Application টাইপের হয় ও একটি কার্যকরী লাইন " -"Exec দেয়া থাকে অথবা Link টাইপের হয় ও " -"একটি কার্যকরী লাইন URL দেয়া থাকে দেয়া থাকে। অন্যান্য " -"টাইপের জন্য ফিচারটি পাওয়া যায় যদি ফাইলটি বর্তমান ব্যবহারকারীর কাছ" - -# snigdha -#: Thunar.xml:1428(para) -msgid "" -"Also note that for application/x-executable and " -"application/x-shellscript, the types of the file don't " -"really need to match these types exactly, but it is suffice if the detected " -"type has a parent that matches one of the two types listed above, or if the " -"MIME-type is an alias for one of the above." -msgstr "" -"আরও লক্ষ করুন যে application/x-executable এবং " -"application/x-shellscript এর সাথে এই ধরণের ফাইলের মিল " -"হওয়ার কোনো দরকার নাই, নির্বাচিত ফাইল টাইপের যদি প্যারেন্ট থাকে যা উপরোক্ত " -"তালিকার সাথে মিলে যায় অথবা MIME-টাইপ উপনাম হিসাবে ব্যবহার করা হয়, তাই " -"যথেষ্ট।" - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Thunar ফাইলের সাথে সংযুক্ত মেটাডাটা কোথায় জমা রাখে?" - -# snigdha -#: Thunar.xml:1439(para) -msgid "" -"Thunar associates various settings with files/folders, which we call " -"metadata. This metadata for all files is stored in tdb database file, which " -"is called the metafile. The database file is stored in " -"$XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the " -"tdbtool, which is part of the Thunar distribution " -"(located in the tdb/ subdirectory)." -msgstr "" -"Thunar ফাইল/ফোল্ডারের বিভিন্ন সেটিং এর সাথে সম্পর্কিত, যাকে মেটাডাটা বলা হয়। " -"সব ফাইলের মেটাডাটা tdb ডাটাবেস ফাইলে জমা থাকে, যাকে মেটাফাইল বলা হয়। " -"ডাটাবেস ফাইলটি $XDG_CACHE_HOME/Thunar/metafile.tdb এ " -"জমা থাকে এবং tdbtool ব্যবহার করে পরীক্ষা করা যায় যা " -"Thunar বন্টনের অংশ (tdb/ " -"সাব-ডিরেক্টরিতে অবস্থিত)।" - -# snighda -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Thunar এর পছন্দসমুহ কোথায় জমা থাকে?" - -# snigdha -#: Thunar.xml:1452(para) -msgid "" -"Thunar stores the user configurable preferences (and hidden settings) in an " -".ini file, which is located at " -"$XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text " -"editor. See docs/README.thunarrc for an overview of the " -"various preferences." -msgstr "" -"Thunar ব্যবহারকারীর কনফিগারেবল পছন্দসমূহকে (এবং আড়াল করা সেটিংসমূহ) " -".ini ফাইলে জমা রাখে, যা " -"$XDG_CONFIG_HOME/Thunar/thunarrc এ অবস্থিত এবং টেক্সট " -"সম্পাদক দিয়ে পরীক্ষা করা যায়। বিভিন্ন পছন্দসমূহের সারসংক্ষেপের জন্য " -"docs/README.thunarrc দেখুন।" - -# snigdha -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Thunar এ কিভাবে মাউস ভঙ্গিমা ব্যবহার করতে হয়?" - -# snigdha -#: Thunar.xml:1464(para) -msgid "" -"Thunar currently features basic support for so called mouse " -"gestures in its icon view. You can use these mouse " -"gestures by holding down the middle mouse button (usually the " -"mouse wheel) while the mouse pointer is on the background area of the icon " -"view component (any area that is not covered by an icon or a text). Now you " -"can move the cursor into four directions to perform certain actions, which " -"are described below." -msgstr "" -"Thunar বর্তমানে এর আইকন ভিউতে মাউস ভঙ্গিমা এর জন্য মূল " -"সমর্থন দেয়। যখন আইকন ভিউ কম্পোনেন্টের (আইকন অথবা টেক্সট দ্বারা ঢেকে নেই এমন) " -"মাউস পয়েন্টার পটভূমিতে থাকে তখন মাউসের মধ্যবর্তী বোতাম (সাধারণত মাউস হুইল) " -" ধরে রেখে আপনি মাউস ভঙ্গিমা ব্যবহার করতে পারেন । এখন " -"আপনি নিম্নোক্ত কাজ করার জন্য কারসার চতুর্দিকে নাড়াতে পারবেন।" - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "বাম" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr " - পূর্বে পরিদর্শিত ফোল্ডার খোলে" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "উপরে" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr "- প্যারেন্ট ফোল্ডার খোলে" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "ডান" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr " - পরবর্তী ফোল্ডার খোলে" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "নীচে" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr " - বর্তমান ফোল্ডার রিলোড করে" - -# snigdha -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "আমি কিভাবে কিবোর্ডের বিভিন্ন শর্টকাট বরাদ্দ করবো?" - -# snigdha -#: Thunar.xml:1484(para) -msgid "" -"If you want to rebind a shortcut, Thunar supports the standard GTK+ way of " -"changing shortcuts: simply hover over the menu option with the mouse pointer " -"and press the keyboard shortcut you want to rebind it to." -msgstr "" -"আপনি যদি শর্টকাটটি পুনরায় যোগ করতে চান তবে Thunar শর্টকাট বদলের উপায় হিসাবে " -"আদর্শ GTK+ সমর্থন করে: মাউস পয়েন্টার দিয়ে মেনু অপশনের উপর দিয়ে ঘুরে আসুন এবং " -"যেটি যোগ করতে চান সেই কীবোর্ড শর্টকাটটি চাপুন।" - -# snigdha -#: Thunar.xml:1490(para) -msgid "" -"To delete a keyboard assignment, press the Backspace key " -"while you are on the menu entry." -msgstr "" -"কীবোর্ড এসাইনমেন্ট অপসারণ করতে চাইলে আপনি যখন মেনু ভুক্তিতে থাকেন তখন " -"Backspace কী চাপুন।" - -# snigdha -#: Thunar.xml:1495(para) -msgid "" -"If the shortcut doesn't change, then you need to enable the feature in GTK+. " -"This can be achieved in 3 ways:" -msgstr "" -"শর্টকাট যদি না বদলাতে চান তবে আপনি ফিচারটি GTK+ এ সক্রিয় করুন। তিনটি উপায়ে " -"এটি করা যায়:" - -# snigdha -#: Thunar.xml:1502(para) -msgid "" -"If you are running Xfce 4.3 or above then you can enable Editable " -"menu accelerators in the User Interface Preferences dialog." -msgstr "" -"আপনি যদি Xfce 4.3 বা তার পরবর্তী সংস্করন চালান তবে ব্যবহারকারী " -"ইন্টারফেস পছন্দসমূহ ডায়ালগে সম্পাদনীয় মেনু " -"অ্যাক্সিলেটরসমূহ সক্রিয় করতে পারেন।" - -# snigdha -#: Thunar.xml:1510(para) -msgid "" -"If you are running GNOME then you can enable Editable menu " -"accelerators in the Menu and Toolbars " -"control center dialog." -msgstr "" -"যদি আপনি GNOME চালান তবে মেনু এবং টুলবার নিয়ন্ত্রন " -"কেন্দ্র ডায়ালগে সম্পাদনীয় মেনু অ্যাক্সিলেটর সক্রিয় " -"করুন।" - -# snigdha -#: Thunar.xml:1518(para) -msgid "" -"Otherwise put the following in your ~/.gtkrc-2.0 file " -"(create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" -"অন্যথায় ~/.gtkrc-2.0 ফাইল (যদি না থাকে ফাইলটি তৈরি " -"করুন): gtk-can-change-accels=1 এ নিম্নোক্তটি যোগ করুন" - -# snigdha -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Thunar কীবোর্ড শর্টকাট কোথায় জমা রাখে?" - -# snigdha -#: Thunar.xml:1529(para) -msgid "" -"The custom keyboard shortcuts are stored in the standard GTK+ accel map " -"format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK" -"+ documentation for details about the file format." -msgstr "" -"স্বনির্ধারিত কীবোর্ড শর্টকাট আদর্শ GTK+ এক্সেল ম্যাপ ফরম্যাট ফাইলে জমা থাকে " -"যা $XDG_CONFIG_HOME/Thunar/accels.scm এ অবস্থিত। " -"; দিয়ে শুরু হওয়া লাইনগুলো হল মন্তব্য। ফাইল ফরম্যাট " -"বিস্তারিত জানার জন্য GTK+ ডকুমেন্টেশন দেখুন।" - -#: Thunar.xml:1536(para) -msgid "" -"If you are a packager or a system administrator and want to provide a system " -"wide default for the keyboard shortcuts, that is different from the default " -"shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if " -"/etc/xdg is part of " -"$XDG_CONFIG_DIRS (the default for most Linux distributions), you can " -"install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" -"আপনি যদি প্যাকেজকারক বা সিস্টেম প্রশাসক হন এবং কীবোর্ড শর্টকাটের জন্য পুরো " -"সিস্টেম জুড়ে ডিফল্ট করতে চান তবে সেটা হবে Thunar এর ডিফল্ট শর্টকাট থেকে " -"আলাদা, আপনি $XDG_CONFIG_DIRS এ একটি ফাইল " -"Thunar/accels.scm তৈরি করতে পারেন। যেমন, /etc/xdg যদি $XDG_CONFIG_DIRS " -"(বেশিরভাগ লিনাক্স বন্টনের ডিফল্ট হিসাবে থাকে) এর অংশ হয় তবে আপনি " -"/etc/xdg/Thunar/accels.scm এ পুরো সিস্টেমের জন্য ডিফল্ট " -"ইনস্টল করতে পারেন। Thunar তখন প্রথম থেকেই এই ফাইল থেকে শর্টকাট লোড করে নেয়।" - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "সাপোর্ট" - -# snigdha -#: Thunar.xml:1551(para) -msgid "" -"To report a bug or to make a suggestion regarding this application or this " -"manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a " -"useful bug report has two qualities:" -msgstr "" -"বাগ রিপোর্ট করতে অথবা এই অ্যাপ্লিকেশন বা ম্যানুয়েল সম্পর্কে কোনো পরামর্শ " -"দিতে, http://bugzilla.xfce.org/ এ বাগ ট্র্যাকিং পদ্ধতি " -"ব্যবহার করুন। মনে রাখুন, যে রিপোর্টে বাগ নির্দিষ্ট থাকে সেটাই কার্যকর বাগ " -"রিপোর্ট, সুতরাং কার্যকর বাগ রিপোর্টের দুটো গুনাবলী থাকে:" - -# snigdha -#: Thunar.xml:1559(para) -msgid "" -"Reproducible. If the developer cannot see " -"the bug himself to prove that it exists, he will most probably not be able " -"to fix it at all. Every detail you can provide helps." -msgstr "" -"পুনরুদ্ধারযোগ্য. ডেভেলপার যদি বাগটি নিজে " -"দেখতে না পান তবে বাগটি সংশোধন করতে পারবেনা। প্রতিটি বিবরনের মাধ্যমে আপনি " -"তাকে সাহায্য করতে পারেন।" - -# snigdha -#: Thunar.xml:1566(para) -msgid "" -"Specific. The quicker the developer can " -"isolate the problem to a specific area, the more likely he will expediently " -"fix it." -msgstr "" -"সুনির্দিষ্ট. যত দ্রুত ডেভেলপার একটি " -"নির্দিষ্ট এরিয়ার সমস্যা বের করতে পারবে, তত দ্রুত এটা সমাধান করা যাবে।" - -# snigdha -# -#: Thunar.xml:1573(para) -msgid "" -"In case you want to request a new feature, please make clear why you " -"consider it a worth addition for the application. It is more likely that a " -"new feature gets added if you provide good arguments for the feature. It " -"will increase the chance of addition even more if you provide a patch that " -"implements the requested feature, but make sure that you read the file " -"HACKING - especially the section labeled Coding " -"Style - before you start hacking up the source." -msgstr "" -"আপনি যদি নতুন কোনো বৈশিষ্ট্যের জন্য অনুরোধ করতে চান সেই ক্ষেত্রে, এই " -"অ্যাপ্লিকেশনে সেটি যোগ করা কেন ভাল হবে তা উল্লেখ করুন। আপনি যখন কোনো " -"বৈশিষ্ট্য যোগ করতে চান তখন তার পক্ষে উপযুক্ত যুক্তি উপস্থাপন করুন।অনুরোধকৃত " -"বৈশিষ্ট্য বাস্তবায়ন করে এমন প্যাচ উল্লেখ করলে বৈশিষ্টটি যোগ করা বেশী সহজ হয়, " -"কিন্ত উৎসকে হ্যাকিং আপ করার পূর্বে HACKING " -"ফাইলটি বিশেষ করে কোডিং শৈলী অবশ্যই পড়ে নিন।" - -# snigdha -#: Thunar.xml:1583(para) -msgid "" -"Else, if you have questions about the use or installation of this software, " -"please ask on the thunar-dev mailing list or point your IRC " -"client to irc.freenode.net, join the " -"channel #thunar and ask for help." -msgstr "" -"অন্যথায়, সফটওয়্যার ইন্সটল ও ব্যবহার করা নিয়ে কোনো সমস্যা হলে, অনুগ্রহ করে " -"thunar-dev মেইল তালিকা এ জিজ্ঞাসা করুন অথবা আপনার IRC ক্লায়েন্টকে " -"irc.freenode.net এ পয়েন্ট করুন, #thunar চ্যানেলে যুক্ত হন এবং সহায়তা চান।" - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ সম্পর্কে" - -# snigdha -#: Thunar.xml:1594(para) -msgid "" -"@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" -"Benedikt Meurer (benny@xfce.org) @PACKAGE_NAME@ লিখেছেন। আরও " -"তথ্য জানার জন্য Thunar " -"ওয়েবসাইট দেখুন।" - -# snigdha -#: Thunar.xml:1599(para) -msgid "" -"This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the " -"Thunar website." -msgstr "" -"Benedikt Meurer (benny@xfce.org) এই ডকুমেন্টেশনটি লিখেছেন। এই " -"ডকুমেন্টের সর্বশেষ সংস্করনটি সবসময় Thunar ওয়েবসাইট এ পাওয়া যায়।" - -# snigdha -#: Thunar.xml:1605(para) -msgid "" -"This software is distributed 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." -msgstr "" -"মুক্ত সফটওয়্যার ফাউন্ডেশন থেকে প্রকাশিত GNU পাবলিক লাইসেন্সসের সংস্করণ ২ বা " -"পরবর্তী অন্য কোনো সংস্করণ (ইচ্ছামত) এর শর্তমতে সফটওয়্যারটির বন্টন করা হয়।" - -# snigdha -#: Thunar.xml:1611(para) -msgid "" -"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." -msgstr "" -"আপনি প্রোগ্রামসহ GNU পাবলিক লাইসেন্সসের একটি অনুলিপি পেয়ে থাকবেন; যদি না পান " -"তবে মুক্ত সফটওয়্যার ফাউন্ডেশন, Inc., 59 Temple Place - Suite 330, Boston, " -"MA 02111-1307, USA এ লিখে পাঠান।" - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "" -"ইসরাত জাহান (Israt Jahan) , 2010‌‌‌‌\nউম্মে সালমা " -", ২০১০" diff -Nru thunar-1.2.3/docs/manual/po/ca.po thunar-1.6.10/docs/manual/po/ca.po --- thunar-1.2.3/docs/manual/po/ca.po 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/ca.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,2775 +0,0 @@ -# Catalan translations for Thunar package -# Traduccions al català del paquet «Thunar». -# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the -# Thunar package. -# -# Carles Muñoz Gorriz , 2009-2010. -# -msgid "" -msgstr "" -"Project-Id-Version: Thunar\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-01-03 22:41+0100\n" -"Last-Translator: Carles Muñoz Gorriz \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-Poedit-Language: Catalan\n" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" -msgstr "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" -msgstr "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" -msgstr "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "" -"@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "" -"@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Gestor de fitxers Thunar" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml:25(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License, Version 1.1 or any later " -"version published by the Free Software Foundation; with no Invariant " -"Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The " -"complete license text is available from the Free Software Foundation." -msgstr "" -"Teniu el dret de còpia, distribució i/o modificació d'aquest document segons " -"els termes de la llicència «GNU Free Documentation», versió 1.1 o qualsevol " -"posterior publicada per la Free Software Foundation; sense seccions " -"invariables, sense textos de portada i sense textos de contraportada («with " -"no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts»). El " -"text complert de la llicència està disponible a Free Software Foundation." - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "Desenvolupador de programari" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "Desenvolupament de sistemes" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Aquest manual descriu la versió @PACKAGE_VERSION@ de @PACKAGE_NAME@." - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Introducció a @PACKAGE_NAME@" - -#: Thunar.xml:56(para) -msgid "" -"Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar " -"has been designed from the ground up to be fast and easy-to-use. Its user " -"interface is clean and intuitive, and does not include any confusing or " -"useless options by default. Thunar is fast and responsive with a good start " -"up time and folder load time." -msgstr "" -"Thunar és un nou gestor de fitxers per l'entorn d'escriptori de Xfce. Thunar " -"s'ha dissenyat des de zero per ser ràpid i fàcil d'usar. La seva interfície " -"d'usuari és neta i intuïtiva, i no inclou per defecte cap opció confusa o de " -"poca utilitat. Thunar és ràpid i de resposta ràpida amb un curt temps " -"d'arrancada i de càrrega de carpetes." - -#: Thunar.xml:62(para) -msgid "" -"The Thunar file manager thereby provides an integrated access point to your " -"files and applications. You can use the file manager to do the following:" -msgstr "" -"D'aquesta manera el gestor de finestres Thunar us proveeix amb un punt " -"d'accés integrat als vostres fitxers i aplicacions. Podeu emprar el gestor " -"de fitxers per fer el següent:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "Crear carpetes i documents." - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "Mostrar-vos fitxers i carpetes." - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "Gestionar els vostres fitxers i carpetes." - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "Executar i gestionar accions personalitzades." - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "Accedir a mitjans extraïbles." - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "La finestra del gestor de fitxers" - -#: Thunar.xml:80(para) -msgid "" -"By default the file manager window consists of a shortcut pane on the left " -"side, the main area on the right and a pathbar above the main area." -msgstr "" -"Per defecte la finestra del gestor de fitxers consisteix en una subfinestra " -"de dreceres al costat esquerre, de l'àrea principal a la dreta, i d'una " -"barra de camins sobre l'àrea principal." - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "Finestra del gestor de fitxers" - -#: Thunar.xml:97(para) -msgid "" -"The Shortcut Pane provides shortcuts to different " -"folders on your system. The first shortcut will lead to your Home " -"Folder, the folder you store all your personal data, and will " -"therefore have the name of the current user. The second shortcut will take " -"you to the trash bin, which stores deleted files that can be recovered " -"later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the " -"desktop. The fourth shortcut will take you to the root of your file system - " -"you may want to explore it a bit, even though it may be confusing to you if " -"you are new to Linux/Unix. Just click on the different folders and see what " -"is inside." -msgstr "" -"La Subfinestra de dreceres us mostra dreceres a vàries " -"carpetes del vostre sistema. La primera drecera us portarà a " -"lacarpeta d'usuari, on podeu emmagatzemar totes les " -"vostres dades personals, i que per tant te el nom de l'usuari actual. La " -"segona drecera us portarà a la paperera, on es desen el fitxers esborrats i " -"que es poden recuperar més endavant. La tercera drecera us portarà a la " -"carpeta de l'escriptori, que conté els fitxers i " -"carpetes que es mostren a l'escriptori. La quarta drecera us portarà a la " -"rel del vostre sistema —pot ser que la voleu explorar una mica tot i que si " -"sou nouvinguts a sistemes Linux/Unix pot resultar una mica confusa—. Feu " -"clic a les diferents carpetes per veure que hi ha a dins." - -#: Thunar.xml:108(para) -msgid "" -"Below the File System shortcut, the removable drives " -"and media will be displayed. In the screenshot above, you can see a " -"Floppy Drive shortcut. Click on these shortcuts to " -"access the data stored on the removable drives and media. See for further details." -msgstr "" -"A sota la drecera Sistema de fitxers/emphasis>, es mostren els " -"dispositius i mitjans extraïbles. En la captura següent, podeu veure una " -"Disquetera. Feu clic en aquestes dreceres per accedir-" -"hi a les dades dels dispositius i mitjans extraïbles. Veieu per més detalls." - -#: Thunar.xml:115(para) -msgid "" -"The remaining shortcuts are user defined. Add your own shortcuts by simply " -"dragging folders to the Shortcuts Pane. This will allow " -"you to access important folders instantly. To remove a previously added " -"shortcut, right-click on the shortcut and choose Remove " -"Shortcut. To rename a previously added shortcut, right-click " -"on the shortcut and choose Rename Shortcut. Note " -"that these actions affect only the shortcut, not the folder referenced by " -"the shortcuts." -msgstr "" -"La resta de dreceres són les definides per l'usuari. Afegiu les vostres " -"pròpies dreceres simplement arrossegant a la Subfinestra de " -"dreceres. Això us permetrà accedir a carpetes importants " -"instantàniament. Per treure una drecera prèviament afegida, feu clic-dret " -"sobre la drecera i seleccioneu Suprimeix la drecera. Per canviar de nom una drecera, feu clic-dret sobre la drecera " -"i seleccioneu Canvia el nom a la drecera. Tingueu " -"en compte que aquestes accions només afecten a la drecera i no a la carpeta " -"referenciada per la drecera." - -#: Thunar.xml:123(para) -msgid "" -"The main area will always display the contents of the " -"current folder. Double click on folders to enter them, and right-click on " -"files or folders to get a context-menu offering some choices of what to do " -"with it. Select multiple files by dragging a rectangle over them with the " -"mouse. Alternatively, select one file, hold down the Shift " -"key, and increase or decrease the selection using the arrow keys." -msgstr "" -"L'àrea principal us mostrarà el contingut de la carpeta " -"actual. Si feu doble-clic a les carpetes entrareu a veure el seu contingut, " -"i si feu clic-dret en fitxers o carpetes s'us mostrarà un menú contextual " -"que us oferirà diverses accions que se'ls hi pot fer. Es pot seleccionar " -"múltiples fitxers arrossegant un rectangle amb el ratolí sobre ells. " -"Alternativament, si seleccioneu un fitxer, pitgeu la tecla Shift i la manteniu pitjada mentre augmenteu o disminuïu la selecció amb " -"les tecles del cursor." - -#: Thunar.xml:131(para) -msgid "" -"The pathbar will always show the path you took to get " -"to the folder you are currently at. You can click on any pathbar button to " -"change to the folder it represents. Right-click on a pathbar button to bring " -"up a context-menu with some options." -msgstr "" -"La barra de camins us mostrarà el camí fins a la " -"carpeta on hi sou actualment. Podeu fer clic a qualsevol botó de la barra de " -"camins per canviar a la carpeta que representa. Un clic-dret en un botó de " -"la barra de camins us mostrarà un menú contextual amb algunes opcions." - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "Personalització de l'aparença" - -#: Thunar.xml:141(para) -msgid "" -"There are many ways to customize the appearance of the file manager windows. " -"In case you do not like the way the icons are displayed, choose " -"ViewView as Detailed List from the main menu to have the contents of the " -"current folder displayed as a list." -msgstr "" -"Hi han molts mitjans per personalitzar l'aparença de la finestra del gestor " -"de fitxers. Si no us agrada la forma en que es mostren les icones trieu en " -"el menú principal VisualitzaVisualitza com un llistat detallat per veure con una llista detallada el contingut de la carpeta " -"actual." - -#: Thunar.xml:147(para) -msgid "" -"You can have the file manager windows display a location bar instead of the " -"pathbar by choosing ViewLocation " -"SelectorToolbar Style " -"from the main menu." -msgstr "" -"Podeu fer que la finestra del gestor de fitxers us mostri una barra de " -"localització en lloc de la barra de camins si seleccioneu en el menú " -"principal VisualitzaSeleccionador d'ubicacióEstil de barra d'eines." - -#: Thunar.xml:153(para) -msgid "" -"In case you prefer a treeview in the left pane, choose " -"ViewSide PaneTree from the main menu." -msgstr "" -"Si preferiu una vista d'arbre a la subfinestra esquerra, seleccioneu en el " -"menú principal VisualitzaBarres " -"lateralsArbre." - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Columnes visibles a la vista de llistat detallat" - -#: Thunar.xml:162(para) -msgid "" -"If you prefer to display the contents of the folder as a list, using the " -"Detailed List View, you can customize the columns " -"displayed in the list view. To customize the visible columns, choose " -"ViewConfigure Columns... from the main menu." -msgstr "" -"Si preferiu veure el contingut de la carpeta en forma de llistat, emprant " -"Visualitza com a llistat detallat, podeu personalitzar " -"les columnes que es mostren a la vista de llistat. Per personalitzar les " -"columnes visibles seleccioneu en el menú principal " -"VisualitzaConfigura columnes…." - -#: Thunar.xml:175(phrase) Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "Columnes visibles" - -#: Thunar.xml:184(para) -msgid "" -"Select the columns you want to be displayed from the list of available " -"columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" -"Seleccioneu les columnes que voleu veure entre el llistat de columnes " -"disponibles. Feu clic a Puja or Baixa per canviar l'ordre de les columnes. Feu clic a Empra " -"valors per defecte per anular els canvis." - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "Mida de les columnes" - -#: Thunar.xml:195(para) -msgid "" -"Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the " -"needed to ensure the text is fully visible." -msgstr "" -"Seleccioneu l'opció Expandeix les columnes automàticament si cal si voleu que la llista de columnes s'expandeixi automàticament " -"per garantir que tot els text sigui visible." - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "Fitxers i carpetes" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "Obertura de fitxers" - -#: Thunar.xml:214(para) -msgid "" -"When you open a file, the file manager performs the default action for that " -"file type. For example, opening a text file will display it in the default " -"text editor, while opening an image file will display the image in the " -"default image viewer." -msgstr "" -"Quan obriu un fitxer, el gestor de fitxers fa l'acció per defecte segons el " -"tipus de fitxer. Per exemple, si s'obre un fitxer de text es mostrarà en " -"l'editor de text per defecte, mentre que si s'obre una fitxer d'imatge " -"aquesta es mostrarà en el visor d'imatges per defecte." - -#: Thunar.xml:220(para) -msgid "" -"The file manager checks the extension of a file to determine the type of a " -"file. If the file has no known extension, the file manager examines the " -"contents of the file." -msgstr "" -"El gestor de fitxers comprova l'extensió del fitxer per determinar de quin " -"tipus de fitxer es tracta. Si el fitxer te una extensió desconeguda, el " -"gestor de fitxers examinarà el contingut del fitxer." - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "Execució de l'acció per defecte" - -#: Thunar.xml:228(para) -msgid "" -"To execute the default for a file, double-click on the file. For example, " -"the default action for audio files is to play the it with the default music " -"playing application. In this case, you can double-click on the file to open " -"the file in the music player." -msgstr "" -"Per executar l'acció per defecte d'un fitxer feu doble-clic al fitxer. Per " -"exemple, l'acció per defecte dels fitxers de so és reproduir-lo amb " -"l'aplicació per defecte de reproducció de música. En aquest cas, podeu fer " -"doble-clic en el fitxer per reproduir-lo en el reproductor de música." - -#: Thunar.xml:234(para) -msgid "" -"You can set Thunar preferences so that you click " -"once on a file to execute the default action. For information, see ." -msgstr "" -"Podeu ajustar les preferències de Thunar per a " -"que un únic clic en un fitxer executi l'acció per defecte. Per més " -"informació veieu ." - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "Execució d'altres accions" - -#: Thunar.xml:243(para) -msgid "" -"To execute actions other than the default action for a file, select the file " -"that you want to perform an action on. Choose the desired action from the " -"Open With choices available in File " -"menu or an Open With submenu." -msgstr "" -"Per executar accions diferents a la que hi hagi per defecte per un fitxer, " -"seleccioneu el fitxer al que voleu executar l'acció. Seleccioneu l'acció " -"desitjada les opcions Obre amb disponibles en el menú " -"Fitxer o en els sub-menús Obre amb." - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "Addició d'accions" - -#: Thunar.xml:253(para) -msgid "" -"To add actions associated with a file type, perform the following steps:" -msgstr "" -"Per afegir accions associades a un tipus de fitxer, seguiu els següents " -"passos:" - -#: Thunar.xml:259(para) -msgid "" -"In the main area, select a file of the type to which you want to add an " -"action." -msgstr "" -"A l'àrea principal, seleccioneu un fitxer del tipus al que li voleu afegir " -"l'acció." - -#: Thunar.xml:264(para) -msgid "" -"Choose FileOpen With Other " -"Application... from the main menu." -msgstr "" -"Seleccioneu al menú principal FitxerObre amb una altra aplicació…." - -#: Thunar.xml:270(para) -msgid "" -"Either choose an application in the Open With dialog or " -"select Use a custom command and browse to the program " -"with which you wish to open this type." -msgstr "" -"O be trieu una aplicació en el diàleg Obre amb o " -"seleccioneu Usa una ordre personalitzada i navegueu " -"fins el programa que voleu emprar per obrir aquest tipus de fitxer." - -#: Thunar.xml:277(para) -msgid "" -"The action you have chosen is now added to the list of actions for that " -"particular file type. If you enabled the Use as default for this " -"kind of file option or there was no prior action associated with " -"the type, the newly added action is the default." -msgstr "" -"L'acció que heu triat s'afegeix a la llista d'accions per aquest tipus " -"concret de fitxer. Si heu habilitat l'opció Utilitza per defecta " -"per aquest tipus de fitxer o no hi ha cap acció prèvia associada " -"amb aquest tipus, l'acció afegida serà l'acció per defecte." - -#: Thunar.xml:283(para) -msgid "" -"You may also add actions using the Open With button " -"under FileProperties...." -msgstr "" -"També podeu afegir accions mitjançant la llista desplegable de " -"Obre amb que hi ha a la finestra que s'obre via " -"FitxerPropietats." - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "Modificació d'accions" - -#: Thunar.xml:292(para) -msgid "" -"To modify the actions associated with a file or file type, perform the " -"following steps:" -msgstr "" -"Per modificar accions associades a un tipus de fitxer, seguiu els següents " -"passos:" - -#: Thunar.xml:298(para) -msgid "" -"In the main area, select a file of the type for which you want to modify the " -"action." -msgstr "" -"A l'àrea principal, seleccioneu un fitxer del tipus al que li voleu " -"modificar l'acció." - -#: Thunar.xml:303(para) Thunar.xml:383(para) -msgid "" -"Choose FileProperties... from the main menu." -msgstr "" -"Seleccioneu FitxerPropeietats al menú principal." - -#: Thunar.xml:308(para) -msgid "" -"Select the new default action using the Open With " -"button or add a new action by choosing Open With Other " -"Application... from the drop down menu." -msgstr "" -"Seleccioneu la nova acció per defecte emprant la llista desplegable " -"Obre amb o afegiu una nova acció seleccionant " -"Altres aplicacions…." - -#: Thunar.xml:315(para) -msgid "" -"To remove a previously added action for a file type, bring up the " -"Open With dialog as described above, right-click the " -"action you want to remove and choose Remove Launcher." -msgstr "" -"Per treure una acció afegida a un tipus de fitxer, aneu al diàleg " -"Open With con s'ha descrit anteriorment, clic-dret a " -"l'acció que voleu treure i seleccioneu Suprimeix llançador." - -#: Thunar.xml:324(title) Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "Propietats de fitxer" - -#: Thunar.xml:326(para) -msgid "" -"The file properties window shows more information about any file or folder " -"in the file manager. With this window, you can also do the following:" -msgstr "" -"La finestra de propietats de fitxer és on es mostra més informació respecte " -"al fitxer o carpeta. En aquesta finestra podeu fer el següent:" - -#: Thunar.xml:333(para) -msgid "" -"Change the icon for special files, such as application launchers and URL " -"links." -msgstr "" -"Canviar la icona dels fitxers especial, com els llançadors d'aplicacions i " -"els enllaços URL." - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "Afegir o Treure emblemes d'un fitxer o carpeta." - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "Canviar el permisos UNIX d'un fitxer o carpeta." - -#: Thunar.xml:348(para) -msgid "" -"Choose which application is used to open a file and other files of the same " -"type." -msgstr "" -"Seleccionar quina aplicació s'emprarà per obrir un fitxer o qualsevol altre " -"del mateix tipus." - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "" -"Per obrir la finestra de propietats de fitxer, seguiu els següents passos:" - -#: Thunar.xml:372(para) -msgid "" -"Select the file or folder whose properties you want to examine or change. " -"You cannot select multiple items at once and display the properties that are " -"in common to all items currently." -msgstr "" -"Seleccioneu el fitxer o carpeta al que li voleu veure o canviar les " -"propietats. No podeu seleccionar més d'un element a la vegada per mostrar " -"les propietats comunes a tots ells." - -#: Thunar.xml:386(para) -msgid "" -"Right-click the selected item and choose Properties... from the context menu." -msgstr "" -"Feu clic-dret a l'element seleccionat i trieu Propietats del menú contextual." - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "" -"Pitgeu AltRetorn." - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "Feu un dels següents: " - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "Ús de mitjans extraïbles" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "Accés a mitjans extraïbles" - -#: Thunar.xml:405(para) -msgid "" -"Thunar supports removable media if it was built with support for HAL, or " -"if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is " -"suggested to use HAL rather than the native support provided by Thunar." -msgstr "" -"Thunar és compatible amb els mitjans extraïbles si ha estat muntat amb " -"compatibilitat amb HAL, o si empreu FreeBSD. Tingueu en compte en tot cas que, en " -"FreeBSD 6.0 o superior, és recomanable emprar HAL abans que la " -"compatibilitat nativa que proporciona Thunar." - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "Muntatge de mitjans" - -#: Thunar.xml:414(para) -msgid "" -"To mount media is to make the file system of the media " -"available for access. When you mount media, the file system of the media is " -"attached as a subdirectory to your file system." -msgstr "" -"Per muntar «mount» mitjans és fer que el sistema de " -"fitxers del mitjà estigui disponible per accedir-hi. Quan munteu un mitjà, " -"el sistema de fitxers del mitjà s'adjunta com un subdirectori del vostre " -"sistema de fitxers." - -#: Thunar.xml:419(para) -msgid "" -"To access media, insert the media in the appropriate device, or connect the " -"new device to your computer (i.e. connect an USB stick to one of your USB " -"ports). An object that represents the media is added to the side pane of the " -"file manager. If xfdesktop is running and " -"configured to display File/launcher icons this object " -"will also be added to your desktop." -msgstr "" -"Per accedir al mitjà, inseriu-lo en el dispositiu corresponent o connecteu " -"el nou dispositiu a l'ordinador (e.g. connectant un llapis USB al un dels " -"vostres ports USB). Un objecta que representa el mitja s'afegirà a la " -"subfinestra lateral del gestor de fitxers. Si s'està executant " -"xfdesktop i està configurat per mostrar " -"Fitxer/icones llançadores, aquest objecte també es " -"mostrarà a l'escriptori." - -#: Thunar.xml:426(para) -msgid "" -"To actually mount the media, click on the object that represents the media. " -"For example, to mount a floppy diskette, click on the Floppy " -"Drive object in the side pane. The file manager will now add the " -"file system of the media to your file system hierarchy and display the " -"contents of the floppy diskette in the main area." -msgstr "" -"Per muntar el mitjà, feu clic a l'objecte que representa al mitjà. Per " -"exemple, per muntar un disquet feu clic en l'objecte Disquet de la subfinestra lateral. El gestor de fitxers afegirà el sistema " -"de fitxers del mitjà a la vostra estructura de fitxers del sistema i " -"mostrarà el contingut del disquet a l'àrea principal." - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "Extracció de mitjans" - -#: Thunar.xml:436(para) -msgid "" -"If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-" -"click on the media object in the side pane or on the desktop and choose " -"Eject Volume. The media is ejected from the drive after " -"a few seconds. If the drive for the media is not motorized (i.e. a floppy " -"drive or an USB stick), right-click on the media object and choose " -"Unmount Volume. After a short period of time, a " -"notification will appear to inform you that it is now safe to remove the " -"media or disconnect the drive from the computer." -msgstr "" -"Si el dispositiu del mitjà és un dispositiu motoritzat (e.g. un dispositiu " -"CD-ROM), feu clic-dret en l'objecte del dispositiu a la subfinestra lateral " -"o en l'escriptori i seleccioneu Extreu el volum. El " -"mitjà serà expulsat del dispositiu en pocs segons. Si el dispositiu del " -"mitjà no és motoritzat (e.g.: una disquetera o un llapis USB), feu clic-dret " -"en l'objecte del mitjà i seleccioneu Desmunta el volum. " -"Després d'un curt període de temps, es mostrarà una notificació informant-" -"vos que ja és segur treure el mitjà o desconnectar el dispositiu de " -"l'ordinador." - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "Notificació de desmuntat" - -#: Thunar.xml:456(para) -msgid "" -"However this notification will only be displayed if support for " -"libnotify is enabled, and you have installed a " -"notification daemon. A notification daemon for Xfce is available from the " -"Xfce Goodies Project. If notification " -"support is not available, wait until the context menu disappears before you " -"remove the media or disconnect the drive." -msgstr "" -"En tot cas, aquesta notificació només es mostrarà si la compatibilitat amb " -"libnotify està habilitada i s'ha instaŀlat un " -"dimoni de notificacions. Hi ha un dimoni de Xfce disponible a Projecte Goodies de Xfce. Si no està habilitat la " -"compatibilitat de notificació, espereu fins que el menú contextual " -"desaparegui abans d'extreure el mitjà o desconnectar el dispositiu." - -#: Thunar.xml:464(para) -msgid "" -"Be aware that you cannot eject or unmount media that is still in use by one " -"or more applications. Therefore if the file manager refuses to eject media, " -"make sure you close all applications that were accessing the media, and be " -"sure to also check command line applications running in " -"Terminal windows." -msgstr "" -"Aneu amb compte amb el fet de que no podeu extreure o desmuntar mitjans que " -"encara els estigui emprant alguna aplicació. Per tant, si el gestor de " -"fitxers rebutja l'extracció del mitjà, comproveu que tanqueu totes les " -"aplicacions que estiguin accedint al mitjà, i comproveu les ordres executant-" -"se en una finestra de Terminal." - -#: Thunar.xml:470(para) -msgid "" -"Make sure to unmount removable media before ejecting. Do not eject a " -"diskette from the floppy drive before your unmount the diskette. Do not " -"remove an USB stick before you unmount the flash drive. If you do not " -"unmount the media first you might lose data or cause your system to crash." -msgstr "" -"Assegureu-vos de desmuntar els mitjans extraïbles abans d'expulsar-los. No " -"expulseu un disquet d'una unitat de disquets abans de desmuntar-lo. No " -"traieu un llapis USB abans de desmuntar el dispositiu flaix. Si no desmunteu " -"primer el mitjà podeu perdre informació o fer que el sistema faci fallida." - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "Gestió de dispositius i mitjans extraïbles" - -#: Thunar.xml:481(para) -msgid "" -"Thunar is also able to automatically manage removable drives and media if " -"the thunar-volman package is installed on " -"your system. Note however that this feature requires HAL support." -msgstr "" -"Thunar pot gestionar automàticament els dispositius i mitjans extraïbles si " -"el paquet thunar-volman està instaŀlat al " -"sistema. Tingueu en compte que per aquesta funcionalitat necessitareu HAL." - -#: Thunar.xml:487(para) -msgid "" -"Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the " -"Volume Management feature of Thunar. Therefore, open " -"the file manager preferences, go to the Advanced page " -"and check the Enable Volume Management button." -msgstr "" -"Ara, si la compatibilitat amb HAL està disponible i thunar-" -"volman està instaŀlat al sistema, podeu habilitar la " -"funcionalitat de Thunar de Gestió de volums. Per fer-" -"ho, obriu les preferències del gestor de fitxers i aneu a la pàgina " -"Avançat i marqueu Habilita el gestor de " -"volums." - -#: Thunar.xml:494(para) -msgid "" -"The next step is to customize the management of removable drives and media " -"to your needs. Click on the Configure link in the " -"Volume Management section, right below the button. The " -"Removable Drives and Media configuration dialog will be " -"displayed." -msgstr "" -"El següent pas és configurar a les vostres necessitats la gestió dels " -"dispositius i mitjans extraïbles. Feu clic a l'enllaç Configureu de la secció Gestió de volums. Tot seguit es " -"mostrarà el diàleg de configuració Dispositius i mitjans " -"extraïbles" - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "Dispositius i mitjans extraïbles" - -#: Thunar.xml:512(para) -msgid "" -"If you have used the gnome-volume-manager " -"previously, you should feel right at home, because it was designed to look " -"and behave similar to gnome-volume-manager. The " -"preferences are divided by device categories to make it easy to locate the " -"option for you specific device." -msgstr "" -"Si heu emprat anteriorment el gnome-volume-manager us sentireu com a casa, ja que s'ha dissenyat per semblar-se i " -"per comportar-se de forma similar al gnome-volume-manager. Les preferències es divideixen per categories de dispositius " -"per que sigui més fàcil trobar les opcions del vostres dispositius en " -"concret. " - -#: Thunar.xml:519(para) -msgid "" -"The Storage page contains the most important options. " -"As the name suggests these options apply only to storage devices like " -"external harddisk drives, USB sticks and CD-ROMs. The Removable " -"Storage options are described in detail below." -msgstr "" -"La pàgina Emmagatzematge te les opcions més importants. " -"Com el nom suggereix, aquestes opcions s'apliquen només a dispositius " -"d'emmagatzematge, com poden ser dispositius de disc dur, llapis USBs i CD-" -"ROMs. Les opcions Emmagatzemament extraïble es " -"descriuen a continuació." - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Muntatge de dispositius extraïbles quan es connecten" - -#: Thunar.xml:529(para) -msgid "" -"Enable this option to automatically mount file systems on removable drives " -"(i.e. external harddisk drives or USB sticks) when such drives are plugged " -"into the computer." -msgstr "" -"Habiliteu aquesta opció per muntar automàticament els sistemes de fitxers de " -"dispositius extraïbles (e.g. discs durs externs o llapis USBs) quan aquests " -"es connecten a l'ordinador." - -#: Thunar.xml:533(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable drives. For example, if you disable this option, certain kinds of " -"portable music players cannot be detected any more and so, even if you " -"enabled the Play music files when connected option on " -"the Multimedia page, the specified command will not be " -"run when you hot-plug your portable music player." -msgstr "" -"Aquesta opció s'ha d'habilitar si es vol que algunes altres opcions " -"funcionin amb els dispositius extraïbles. Per exemple, si deshabiliteu " -"aquesta opció, alguns tipus de reproductors portàtils de música no es podran " -"detectar més, inclús si habiliteu l'opció Reprodueix els fitxers " -"de música quan es connectin en la pàgina Multimèdia, l'ordre específica no s'executarà al connectar el reproductor " -"portàtil de música." - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Munta els mitjans extraïbles quan s'insereixin" - -#: Thunar.xml:546(para) -msgid "" -"Enable this option to automatically mount file systems on removable media (i." -"e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" -"Habiliteu aquesta opció per muntar automàticament els sistemes de fitxers " -"dels mitjans extraïbles (e.g. CD-ROMs o DVDs) quan els inseriu en el " -"dispositiu." - -#: Thunar.xml:550(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable media. For example, if you disable this option, it is impossible " -"to detect whether the removable media has auto-run capabilities, and so the " -"Auto-run programs on new drives and media option has no " -"effect for removable media." -msgstr "" -"Aquesta opció s'ha d'habilitar si es vol que algunes altres opcions " -"funcionin amb els mitjans extraïbles. Per exemple, si deshabiliteu aquesta " -"opció, quan s'insereix un mitjà extraïble no es podrà detectar si aquest te " -"capacitat d'execució automàtica i, per tant, l'opció Executa " -"automàticament programes en dispositius o mitjans nous no tindrà " -"cap efecte en mitjans extraïbles." - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Navegació en mitjans extraïbles quan s'insereixin" - -#: Thunar.xml:562(para) -msgid "" -"Enable this option to automatically display the content of newly inserted " -"media in the file manager. Note however, that the contents will only be " -"displayed if no other action was possible or you choose to ignore the other " -"possible actions. For example, if you insert a CD-ROM with auto-run " -"capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow " -"or ignore the auto-run. If you choose to ignore the auto-run the contents " -"will be displayed in the file manager." -msgstr "" -"Habiliteu aquesta opció per mostrar automàticament el contingut dels mitjans " -"inserits en el gestor de fitxers. Tingueu en compte en tot cas que el " -"contingut només es mostraran si no hi ha cap altra acció possible o si heu " -"triar ignorar el reste d'accions possibles. Per exemple, si inseriu un CD-" -"ROM amb capacitat d'execució automàtica i l'opció Executa " -"automàticament programes en dispositius o mitjans nous està " -"habilitada, s'us demanarà si voleu permetre o no l'execució automàtica. Si " -"trieu ignorar l'execució automàtica el contingut es mostrarà en el gestor de " -"fitxers." - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Execució automàtica de programes en nous dispositius o mitjans" - -#: Thunar.xml:576(para) -msgid "" -"Enable this option to make use of auto-run capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-run mechanism. To " -"enhance security, you will always be prompted to confirm the auto-run." -msgstr "" -"Habiliteu aquesta opció per assegurar-vos d'emprar les capacitats d'execució " -"automàtica d'alguns dispositius i mitjans. Veieu Desktop Application Autostart Specification per més detalls sobre " -"el mecanisme d'execució automàtica. Per millorar la seguretat, sempre s'us " -"demanarà confirmació abans d'executar automàticament cap programa." - -#: Thunar.xml:582(para) -msgid "" -"If the Windows emulator WINE is installed on your system, the auto-run mechanism will " -"also try to run autorun.exe files using WINE." -msgstr "" -"Si l'emulador de Windows WINE està instaŀlat al vostre sistema, el mecanisme d'execució " -"automàtica també intentarà executar els fitxers autorun.exe emprant WINE." - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "Obertura de fitxers en nous dispositius i mitjans" - -#: Thunar.xml:592(para) -msgid "" -"Enable this option to make of auto-open capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-open mechanism. " -"To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" -"Habiliteu aquesta opció per emprar les capacitat d'obertura automàtica de " -"certs dispositius i mitjans. Veieu Desktop " -"Application Autostart Specification per detalls referents al " -"mecanisme d'obertura automàtica. Per millorar la seguretat, sempre s'us " -"demanarà confirmació abans d'obrir automàticament cap fitxer." - -#: Thunar.xml:602(para) -msgid "" -"The remaining options allow you to specify a command to run when a certain " -"kind of media is inserted into a drive or a certain kind of external device " -"is connected. The command can use three special variables, that will be " -"substituted when the command is run:" -msgstr "" -"La resta d'opcions us permeten fixar una ordre a executar-se quan certs " -"tipus de mitjans s'insereixin en un dispositiu o certs tipus de dispositius " -"externs es connectin. L'ordre pot emprar tres variables especials que es " -"substituiran quan l'ordre s'executi:" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml:612(para) -msgid "" -"Each appearance of %d in the command will be substituted " -"with the device file path of the newly added device. For example, if you " -"have plugged in an USB stick, the device file path will be /dev/" -"da0s1 or /dev/sda1." -msgstr "" -"Cada aparició del literal %d en l'ordre es substituirà " -"amb el camí al fitxer de dispositiu afegit. Per exemple, si heu connectat un " -"llapis USB, el camí al fitxer de dispositiu serà /dev/da0s1 o /dev/sda1." - -#: Thunar.xml:617(para) -msgid "" -"If no device file is associated with the device or the device file could not " -"be found for some reason, the variable %d will be " -"substituted with the empty string." -msgstr "" -"Si no hi ha cap fitxer de dispositiu associat al dispositiu o no es pot " -"trobar el fitxer de dispositiu, la variable %d es " -"substituirà per una cadena buida." - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml:627(para) -msgid "" -"Each appearance of %h in the command will be substituted " -"with the HAL UDI of the newly added device." -msgstr "" -"Cada aparició del literal %h en l'ordre es substituirà " -"amb el UDI HAL del dispositiu afegit." - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml:637(para) -msgid "" -"Each appearance of %m in the command will be substituted " -"with the mount point where the newly added device was mounted. If the device " -"cannot be mounted (for example printers or keyboards) or if the automatic " -"mounting was disabled, %m will be substituted with the " -"empty string." -msgstr "" -"Cada aparició del literal %m en l'ordre es substituirà " -"amb el punt de muntatge on s'ha muntat el dispositu afegit. Si no es pot " -"muntar el dispositiu (e.g: impressores o teclats) o si el muntatge automàtic " -"no està habilitat, el %m es substituirà per una cadena " -"buida." - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "Problemes amb el gestor de volums" - -#: Thunar.xml:650(para) -msgid "" -"Useful tips to trouble shoot the volume manager in case it does not work as " -"expected." -msgstr "" -"Consells útils per configurar el gestor de volums en cas de que no funcioni " -"com espereu." - -#: Thunar.xml:656(para) -msgid "" -"Make sure Thunar is running as daemon. The volume " -"manager depends on this, as it is not a daemon by itself. By default, Xfce " -"automatically spawns Thunar as daemon on startup. " -"If it got killed for some reason, open the Run program " -"(using the keyboard shortcut AltF2 or right-click on the desktop and choose Run " -"Program... from the desktop menu), enter Thunar --" -"daemon and click Run." -msgstr "" -"Comproveu que Thunar s'estigui executant com a " -"dimoni. El gestor de volums depèn d'això, ja que no és un dimoni en sí " -"mateix. Per defecte, Xfce al iniciar-se llança Thunar com a dimoni. Si s'ha mort per algun motiu, obriu " -"Executa (emprant la drecera de teclat " -"AltF2 o fent clic-" -"dret a l'escriptori i seleccionant Executa… del menú de " -"l'escriptori), introduïu Thunar --daemon i feu clic en " -"Executa." - -#: Thunar.xml:668(para) -msgid "" -"Try running thunar-volman from a " -"Terminal window after hot-plugging the drive or " -"inserting the media. First, you need to figure out the HAL UDI of the new " -"device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-" -"added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" -"Intenteu executar thunar-volman en una finestra " -"de Terminal després d'haver connectat el " -"dispositiu o d'haver inserit el mitjà. Primer us caldrà endevinar l'UDI HAL " -"del nou dispositiu emprant lshal o " -"hal-device. Un cop sabeu l'UDI, executeu " -"thunar-volman --device-added <UDI-del-dispositiu> " -"en una finestra de Terminal i veieu la sortida " -"per trobar errors o advertències." - -#: Thunar.xml:678(para) -msgid "" -"If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing " -"list for help." -msgstr "" -"Si encara no vol funcionar, podeu preguntar al Fòrum Xfce o a la llista de correu " -"thunar-dev." - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "Preferències del gestor de fitxers" - -#: Thunar.xml:691(para) -msgid "" -"Use the File Manager Preferences dialog to set your " -"Thunar file manager preferences. To open the " -"preferences dialog, choose EditPreferences... from the menu " -"bar, or click on the File Manager button in the Xfce " -"Settings Manager." -msgstr "" -"Empreu el diàleg Preferències del gestor de fitxers per " -"fixar les preferències del gestor de fitxers Thunar. Per obrir el diàleg de preferències, seleccioneu " -"EditaPreferències… a la barra de menú, o feu clic al botó de " -"Gestor de fitxers en el gestor d'ajustaments de Xfce." - -#: Thunar.xml:697(para) -msgid "" -"The File Manager Preferences dialog is divided into " -"four pages with different options, each described in a separate section " -"below. Basically you can set preferences in the following categories:" -msgstr "" -"El diàleg de Preferències del gestor de fitxers es " -"divideix en quatre pàgines, cadascuna de les quals te mostra diferents " -"opcions que es descriuen en seccions separades més endavant. Bàsicament " -"podeu fixar les preferències de les següents categories:" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "Els paràmetres per defecte de visualització." - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "Els paràmetres per defecte de la subfinestra lateral." - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "El comportament de les finestres del gestor de fitxers." - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "Els opcions avançades del gestor de fitxers." - -#: Thunar.xml:709(para) -msgid "" -"Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but " -"are not included in the preferences in order to keep the preferences dialog " -"simple. The README.thunarrc " -"file that is included with the Thunar distribution describes all available " -"options in detail." -msgstr "" -"Thunar també permet un bon grapat de les anomenades Opcions " -"amagades, que controlen un bon nombre de funcionalitats avançades " -"del gestor de fitxers, però que no s'han inclòs en les preferències per " -"mantenir aquest diàleg simple. El fitxer README." -"thunarrc que es distribueix amb Thunar descriu totes " -"aquestes opcions amagades en detall." - -#: Thunar.xml:718(title) Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "Preferències de visualització" - -#: Thunar.xml:720(para) -msgid "" -"You can specify a default view, select sort options and display options. You " -"can also specify whether thumbnails should be displayed for file types that " -"support this." -msgstr "" -"Podeu especificar el tipus de vista per defecte, seleccionar opcions " -"d'ordenació i de visualització. També podeu especificar si es mostraran " -"miniatures pels tipus de fitxers que ho permetin." - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "Visualització de directoris nous" - -#: Thunar.xml:742(para) -msgid "" -"Select the default view for folders. When you open a new window, the is " -"displayed in the view that you select. This can be either the icon view, the " -"compact list view or the detailed list view. You can also select " -"Last Active View here to use the view you used for the " -"last active window." -msgstr "" -"Selecciona la visualització per defecte de les carpetes. Quan obriu una " -"finestra nova, el contingut es mostrarà amb el tipus de visualització que " -"hageu seleccionat. Aquesta pot ser vista d'icones, la vista de llistat " -"detallat o la vista de llistat compacte. També podeu seleccionar " -"Darrera vista activa per emprar el mateix tipus de " -"visualització que veu emprar en la darrera finestra activa." - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "Situar les carpetes abans que els fitxers" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "" -"Seleccioneu aquesta opció per llistar les carpetes abans que els fitxers al " -"ordenar una carpeta." - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "Mostrar miniatures" - -#: Thunar.xml:763(para) -msgid "" -"Select this option to show thumbnails of image files and other supported " -"files. The file manager stores the thumbnail files for each folder in the " -"hidden .thumbnails directory in the " -"user's Home Folder." -msgstr "" -"Seleccioneu aquesta opció per mostrar les miniatures dels fitxers d'imatges " -"així com els d'altres tipus que ho suportin. El gestor de fitxers desa la " -"miniatura de cada fitxer en un directori ocult ." -"thumbnails en la carpeta arrel de l'usuari." - -#: Thunar.xml:768(para) -msgid "" -"See if you want to extend the basic " -"thumbnail functionality provided by Thunar with " -"support for additional file types." -msgstr "" -"Veieu si voleu ampliar la funcionalitat " -"bàsica que dona Thunar per més tipus de fitxers." - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "Text al costat de les icones" - -#: Thunar.xml:779(para) -msgid "" -"Select this options to place the icon captions for items in the icon view " -"beside the icon rather than under the icon." -msgstr "" -"Seleccioneu aquesta opció si voleu que el text de la icona dels elements en " -"la vista d'icones es vegi al costat de la icona en lloc de sota seu." - -#: Thunar.xml:790(title) Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "Subfinestra lateral" - -#: Thunar.xml:792(para) -msgid "" -"You can select display options for the shortcuts pane and the tree pane." -msgstr "" -"Podeu seleccionar les opcions de la subfinestra de dreceres i la de la " -"subfinestra en arbre" - -#: Thunar.xml:808(para) -msgid "" -"The side pane can either display a list of shortcuts for folders in your " -"file system, which is the default, or a tree view of your file system. This " -"page allows you to select the size of the icons for the shortcuts and the " -"tree pane. You can also specify whether emblems should be displayed." -msgstr "" -"La subfinestra lateral pot mostrar tant la llista de dreceres a les carpetes " -"del vostre sistema de fitxers, l'opció per defecte, com una vista en arbre " -"del vostre sistema de fitxers. Aquesta pàgina us permet seleccionar la mida " -"de les icones per les dreceres i l'arbre. També podeu indicar si es " -"mostraran els distintius." - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "Mida d'icones" - -#: Thunar.xml:819(para) -msgid "" -"The size of the icons displayed in the side, ranging from Very " -"Small (around 16x16 pixels) to Very Large " -"(around 128x128 pixels)." -msgstr "" -"La mida de les icones mostrades a la subfinestra, el rang va de " -"Molt petita (al voltat de 16x16 píxels) fins a " -"Molt gran (al voltat de 128x128 píxels)." - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "Mostrar les icones de distintius" - -#: Thunar.xml:829(para) -msgid "" -"Select this option to display emblems for folders in the side pane. You can " -"assign emblems to folders in the Properties dialog. " -"Select a folder in the main area and choose FileProperties... from the main " -"menu, or right-click the folder and select " -"Properties... from the " -"context menu." -msgstr "" -"Seleccioneu aquesta opció per mostrar els distintius de les carpetes a la " -"subfinestra lateral. Podeu assignar distintius en el diàleg " -"Propietats. Seleccioneu una carpeta a l'àrea principal " -"i seleccioneu al menú principal FitxerPropietats…, o feu clic-dret " -"a la carpeta i seleccioneu Propietats… al menú contextual." - -#: Thunar.xml:843(title) Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "Preferències de comportament" - -#: Thunar.xml:845(para) -msgid "" -"You can select the preferred behavior to interact with the file manager." -msgstr "" -"Podeu seleccionar el comportament del gestor de fitxers amb el que preferiu " -"interactuar." - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "Només un clic per activar els elements" - -#: Thunar.xml:865(para) -msgid "" -"Select this option to perform the default action for an item when you click " -"on the item. When this option is selected, and you point to an item, the " -"title of the item is underlined and the item will be selected automatically " -"after a short delay." -msgstr "" -"Seleccioneu aquesta opció per executar l'acció per defecte d'un element quan " -"es cliqui. Quan aquesta opció està seleccionada, i apunteu a un element, el " -"títol de l'element quedarà subratllat i es seleccionarà automàticament " -"després d'un curt període de temps." - -#: Thunar.xml:871(para) -msgid "" -"This delay can be configured below the option. You can also disable the " -"automatic selection of items by moving the selector to the left-most " -"position." -msgstr "" -"El retard es pot configurar a sota de l'opció. També podeu deshabilitar la " -"selecció automàtica d'element si moveu el selector a la posició de més a " -"l'esquerra." - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "Doble-clic per activa elements" - -#: Thunar.xml:882(para) -msgid "" -"Select this option to perform the default action for an item when you double " -"click on the item, and select the item with a single click." -msgstr "" -"Seleccioneu aquesta opció per fer l'acció per defecte d'un element quan feu " -"doble-clic en ell, i per seleccionar-lo fent només un clic." - -#: Thunar.xml:893(title) Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "Preferències avançades" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "Podeu controlar les opcions avançades del gestor de fitxers." - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "Permisos de les carpetes" - -#: Thunar.xml:915(para) -msgid "" -"Choose the action that should be performed when you change the permissions " -"of a folder in the Properties dialog. You can choose to " -"let Thunar ask everytime when you change folder " -"permissions, tell it to default to applying the new permissions to the " -"folder only or to apply them recursively to the folder contents as well." -msgstr "" -"Seleccioneu l'acció que s'executarà quan canvieu els permisos d'una carpeta " -"en el diàleg de Propietats. Podeu seleccionar que " -"Thunar us ho pregunti cada cop que canvieu els " -"permisos d'una carpeta, fixar els permisos per defecte només a la carpeta o " -"fixar-los a la carpeta i al seu contingut." - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "Gestió de volums" - -#: Thunar.xml:927(para) -msgid "" -"If Thunar was installed with support for HAL and " -"the thunar-volman package is also installed, you " -"can enable the integrated volume manager. See for details about this feature." -msgstr "" -"Si Thunar s'ha instaŀlat amb compatibilitat per " -"HAL i el paquet thunar-volman està instaŀlat, " -"podeu habilitar la gestió de volums integrada. Veieu pels detalls sobre aquesta " -"funcionalitat." - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "Parametrització de Thunar" - -#: Thunar.xml:942(para) -msgid "" -"This chapter describes how to customize certain parts of the file manager to " -"your own needs." -msgstr "" -"Aquest capítol mostra com ajustar certes parts del gestor de fitxers a les " -"vostres necessitats." - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "El menú «Envia a»" - -#: Thunar.xml:950(para) -msgid "" -"Thunar includes a Send To menu, which provides possible " -"targets where files and folders can be sent to. To access the Send " -"To menu, choose FileSend To from the main menu, " -"or right-click on a file or folder and choose Send " -"To." -msgstr "" -"Thunar té un menú Envia a i que is ofereix destinataris " -"on es poden enviar fitxers i carpetes. Per accedir al menú Envia " -"a, seleccioneu al menú principal FitxerEnvia a, o feu clic-dret " -"sobre un fitxer o carpeta i seleccioneu Envia a." - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "Menú «Envia a»" - -#: Thunar.xml:969(para) -msgid "" -"By default, the Send To menu includes an entry named " -"Desktop (Create Link) for all files and folders, which " -"simply creates a link on the desktop for each selected file. In addition, if " -"the Shortcuts Pane is active, the menu also includes an " -"entry called Side Pane (Create Shortcut) for folders, " -"which allows users to add new shortcuts to the side pane. Following these " -"entries, Thunar lists the removable drives " -"currently plugged into the computer. In the screenshot above, the " -"Floppy Drive represents a possible target where files " -"can be sent to. Note that the device is mounted automatically once selected " -"from the Send To menu, so you do not need to manually " -"mount it." -msgstr "" -"Per defecte, el menú Envia a inclou una entrada " -"anomenada Escriptori (crea enllaç), per a tots els " -"fitxers i carpetes, i que tant sols crea un enllaç a l'escriptori per cada " -"fitxer seleccionat. A més a més, si la subfinestra de dreceres està activa, el menú també té una entrada anomenada " -"Subfinestra lateral (afegeix drecera) per les carpetes, " -"i que us permet afegir noves dreceres a la subfinestra lateral. A " -"continuació d'aquestes entrades, Thunar mostra " -"els dispositius extractables connectats a l'ordinador. En la captura " -"anterior, Disquetera representa un destinatari possible " -"on enviar fitxers. Tingueu present que el dispositiu es munta automàticament " -"quan seleccioneu en el menú Envia a, d'aquesta manera " -"no caldrà que ho feu manualment." - -#: Thunar.xml:979(para) -msgid "" -"In addition Thunar also ships the " -"thunar-sendto-email plugin, which adds the entry " -"Mail Recipient to the menu, that opens the mail " -"composer with the selected files attach to the new email. If the selection " -"contains atleast one folder, the selected items are added to a ZIP archive " -"before attaching them to the email. Otherwise, if the selection contains " -"multiple files, or a single file, which is larger than 200Kib, the user will " -"be prompted whether to pack the files into a ZIP archive, and send the ZIP " -"archive." -msgstr "" -"A més a més, Thunar també té el connector " -"thunar-sendto-email, que afegeix l'entrada " -"Destinatari de correu al menú, i que obre el programa " -"per escriure correus amb el fitxer seleccionat adjunt en el nou correu. Si " -"la selecció conté almenys una carpeta, els elements seleccionats s'afegeixen " -"comprimits en un arxiu (ZIP) abans d'adjuntar-los al correu. En la resta de " -"casos, si la selecció conté més d'un fitxer, o un però més gran de 200Kib, " -"se li preguntarà a l'usuari si vol empaquetar-los en un arxiu (ZIP), i " -"enviar l'arxiu." - -#: Thunar.xml:987(para) -msgid "" -"Like most other features of Thunar, the " -"Send to menu can be easily extended by users and " -"application developers with new targets, using standard desktop entry files. These files must be installed into one of " -"the $XDG_DATA_DIRS/Thunar/sendto/ " -"folders (see the XDG Base Directory Specification for " -"details about the $XDG_DATA_DIRS variable)." -msgstr "" -"Com moltes altres funcionalitats de Thunar, el " -"menú Envia a és fàcilment configurable per l'usuari i " -"desenvolupadors d'aplicacions amb nous destinataris, emprant l'estàndard " -"fitxers d'entrada d'escriptori. " -"Aquests fitxers s'han d'instaŀlar dins d'alguna de les carpetes $XDG_DATA_DIRS/Thunar/sendto/ (veieu Especificació de directoris base XDG per detalls sobre la " -"variable $XDG_DATA_DIRS)." - -#: Thunar.xml:996(para) -msgid "" -"The MimeType of the target .desktop " -"specifies the types of files for which this action should be available in " -"the Send To menu. For example, say you want to add " -"entry for a Flickr " -"uploader tool, then this entry should only show up if the selection contains " -"JPEG files (other file formats are not supported by Flickr) and so you " -"should add a line MimeType=image/jpeg;. If you do not " -"specify any MimeType your entry will show up for all file " -"types." -msgstr "" -"El MimeType del destinatari de .desktop indica el tipus de fitxer per al que aquesta acció estarà " -"disponible en el menú Envia a. Per exemple, suposem que " -"voleu afegir una entrada per la utilitat de pujada d'imatges Flickr, per tant aquesta entrada " -"només s'hauria de mostrar pels fitxers JPEG (altres formats de fitxers no " -"funcionan a Flickr) i per tant hauríeu d'afegir la línia " -"MimeType=image/jpeg;. Si no especifiqueu cap " -"MimeType l'entrada es mostrarà per tots els tipus de " -"fitxers." - -#: Thunar.xml:1004(para) -msgid "" -"A complete example using the postr application is " -"shown below:" -msgstr "" -"A continuació es mostra un exemple per postr:" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"Name[ca]=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml:1021(para) -msgid "" -"If you install this file to ~/.local/share/" -"Thunar/sendto/ (create the folder if it does not exist yet), the " -"Send To menu for JPEG files will show the new entry " -"Flickr, which can be used to upload JPEG images to " -"Flickr." -msgstr "" -"Si instaŀleu aquest fitxer a ~/.local/share/" -"Thunar/sendto/ (creeu la carpeta si aquesta no existeix), el menú " -"Envia a pels fitxers JPEG mostrarà la nova entrada " -"Flickr, que es pot emprar per pujar fotos a Flickr." - -#: Thunar.xml:1027(para) -msgid "" -"The Thunar Project Wiki contains additional examples of " -"useful targets for the Send To menu. Feel free to " -"extend the Wiki page with new examples." -msgstr "" -"La wiki del projecte Thunar té més exemples de " -"destinataris pel menú Envia a. No us reprimiu d'afegir " -"més exemples a la pàgina de la wiki." - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "Miniaturitzadors" - -#: Thunar.xml:1038(para) -msgid "" -"Thunar uses small utilities to create thumbnails of certain file types and " -"displays the thumbnails as preview of the file content. These small tools " -"are called thumbnailers. Thunar ships with thumbnailers for image and font " -"files, and makes use of the installed thumbnailers from GNOME automatically " -"if it was installed with support for gconf. Users may " -"however dynamically extend this basic functionality with thumbnailers for " -"additional file types." -msgstr "" -"Thunar empra algunes petites utilitats per crear les miniatures d'alguns " -"tipus de fitxer, així com per mostrar la miniatura com una vista prèvia del " -"contingut del fitxer. Aquestes petites utilitats les anomenem " -"miniaturitzadors. Thunar ve amb miniaturitzadors per imatges i fitxers de " -"tipus de lletra, també empra els miniaturitzadors de GNOME de forma " -"automàtica si aquests s'han instaŀlat amb compatibilitat gconf. En qualsevol cas, es pot ampliar dinàmicament aquesta " -"funcionalitat per altres tipus de fitxer." - -#: Thunar.xml:1045(para) -msgid "" -"If you plan to write a custom thumbnailers, you need to start with a program " -"that accepts atleast two command line parameters, the input file, which is " -"of the file type you plan to support and the output file, which is a PNG " -"file that complies with the format specified by the Thumbnail " -"Management Standard. Additionally your program may also accept the " -"desired size of the thumbnail, which is optional but highly recommended. If " -"you write the output file at an arbitrary image size, Thunar will afterwards " -"scale it to the desired size, which might produce a less optimal result than " -"generating the thumbnail with the requested dimensions." -msgstr "" -"Si voleu escriure un miniaturitzador personalitzat, us caldrà començar amb " -"un programa que permeti almenys dos paràmetres de línia d'ordres, el fitxer " -"d'entrada, que és el tipus de fitxer al que voleu afegir aquesta " -"funcionalitat i el fitxer de sortida, que és un fitxer PNG que compleix amb " -"el format definit en aquest estàndard de ges.A més a més, " -"cal que el programe accepti la mida desitjada de la miniatura (és opcional " -"però molt recomanable). Si la mida de la imatge és d'una mida diferent a la " -"prevista, Thunar l'haurà d'escalar a la mida correcta i, això, por produir " -"un resultat pitjor que si s'hagués general la miniatura amb la mida " -"requerida." - -#: Thunar.xml:1054(para) -msgid "" -"Once your utility to generate the thumbnails is done, you will need to " -"register your thumbnailer, so Thunar is able to locate and use it. Therefore " -"all you need to do is to install a description file for the thumbnailer (a " -".desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want " -"to register the thumbnailer for your user account only, you can install the " -"file into the folder ~/.local/share/" -"thumbnailers/. The .desktop for thumbnailers " -"has the following format." -msgstr "" -"Un com heu fet la vostra utilitat per crear miniatures, haureu de registrar " -"el vostre miniaturitzador, perquè d'aquesta manera Thunar sigui capaç " -"d'emprar-la. A partir d'aquí l'únic que us cal fer és instaŀlar una " -"descripció del fitxer al miniaturitzador (un fitxer .desktop) en algun dels directoris " -"$XDG_DATA_DIRS/thumbnailers/. Per exemple, si voleu registrar el " -"miniaturitzador només per el vostre compte d'usuari, el podeu instaŀlar a la " -"carpeta ~/.local/share/thumbnailers/. El fitxer .desktop per les miniatures té el " -"següent format." - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "Format de fitxers de descripció de miniaturitzadors" - -#: Thunar.xml:1065(para) -msgid "" -"Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new " -"field codes. Basically, a thumbnailer description file has the following " -"format." -msgstr "" -"El fitxer de descripció de miniaturitzador empra aquest format " -"de registre d'escriptori amb un tipus «Type» " -"especial amb el valor X-Thumbnailer i amb un altre camp " -"especial amb els codis dels fitxers X-Thumbnailer-Exec. " -"Bàsicament, un fitxer de descripció de miniaturitzador t'e el següent format." - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"Name[ca]=El vostre miniaturitzador\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" - -#: Thunar.xml:1080(para) -msgid "" -"The Version and Encoding are mandated " -"by the Desktop Entry Specification, just use the values shown in the example " -"above. The Type field must have the special value " -"X-Thumbnailer, otherwise your thumbnailer will not be " -"recognized. The Name value describes your thumbnailer." -msgstr "" -"Version i Encoding són obligatoris " -"segons l'especificació del format de registre d'escriptori i, per tant, " -"empreu els valors de l'exemple anterior. El camp Type ha " -"de tenir el valor especial X-Thumbnailer i, en qualsevol " -"altre cal, el vostre miniaturitzador no serà reconegut. El valor de " -"Name descriu el vostre miniaturitzador." - -#: Thunar.xml:1086(para) -msgid "" -"The X-Thumbnailer-Exec field contains the command to run " -"your thumbnailer, and supports certain field codes that will be substituted " -"when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" -"El camp X-Thumbnailer-Exec té l'ordre que executarà el " -"miniaturitzador, i és compatible amb diversos codis que seran substituïts " -"quan s'executi el miniaturitzador. Els codis són els següents:" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml:1095(para) -msgid "" -"The local path to the input file for which to create a thumbnail. May be " -"either a path relative to the directory from which the thumbnailer was " -"invoked or an absolute path." -msgstr "" -"El camí local al fitxer d'entrada al que se li crearà la miniatura. Pot ser " -"tant un camí relatiu al directori en el que roman el miniaturitzador com un " -"camí absolut." - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml:1103(para) -msgid "" -"The local path to the output file where to store the generated thumbnail. " -"The output file must be written as valid PNG file according to the thumbnail " -"standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" -"El camí local al fitxer de sortida on es desarà la miniatura generada. El " -"fitxer de sortida s'ha d'escriure en un fitxer PNG vàlid i d'acord amb " -"l'estàndard de miniatures (veieu més a dalt). Heu de tenir en compte que el " -"camí no ha d'acabar amb .png, ja que això pot ser " -"important si llanceu algunes utilitats de terceres parts." - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml:1112(para) -msgid "" -"The desired size of the generated thumbnail in pixels. This parameter is " -"optional." -msgstr "" -"La mida desitjada i en píxels de la miniatura que es generarà. Aquest " -"paràmetre és opcional." - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml:1119(para) -msgid "" -"Similar to %i, but substituted with the URI of the file, " -"rather than the path. This was added for compatibility with GNOME." -msgstr "" -"Similar a %i, però amb la URI del fitxer en lloc del " -"camí. Això es va afegir per compatibilitat amb GNOME." - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "Es substituirà per un únic %." - -#: Thunar.xml:1132(para) -msgid "" -"You need to include atleast %o and %i " -"or %u, otherwise your thumbnailer will be useless." -msgstr "" -"Com mínim heu d'incloure %o i %i o " -"%u, en cas contrari el vostre miniaturitzador no serà " -"d'utilitat." - -#: Thunar.xml:1137(para) -msgid "" -"The MimeType lists the MIME types - separated by " -"semicolon - for which your thumbnailer is able to create previews." -msgstr "" -"La llista de MimeType és el llistat de tipus MIME —" -"separat per comes— pel qual els vostre miniaturitzador serà capaç de crear " -"vistes prèvies." - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "Exemple de miniaturitzador EPS" - -#: Thunar.xml:1145(para) -msgid "" -"This example demonstrates how to write and install a new thumbnailer for " -".eps files, which uses the convert " -"utility that ships as part of ImageMagick. First, we start with a simple " -"script that invokes convert to generate a thumbnail at " -"the requested size." -msgstr "" -"Aquest exemple demostra com es pot escriure i instaŀlar un nou " -"miniaturitzador per fitxers .eps i que empra l'ordre " -"convert la qual forma par de ImageMagick. Primer, creem " -"un script que crida a convert per generar una miniatura " -"de la mida que ens cal." - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Exemple d'script de miniaturització per fitxers EPS.\n" -"#\n" -"# Ús: esp-thumbnailer FITXER-EPS FITXER-PNG MIDA\n" -"#\n" -"\n" -"# paràmetres de la línia d'ordres\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# crida a convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml:1167(para) -msgid "" -"Save this script above to a file eps-thumbnailer, make " -"sure the file is executable and install it to /" -"usr/local/bin." -msgstr "" -"Deseu aquest script com eps-thumbnailer, comproveu que " -"sigui executable i instaŀleu-lo a /usr/local/" -"bin." - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml:1176(para) -msgid "" -"Next we need to create the thumbnail description file eps-" -"thumbnailer.desktop, which looks like this:" -msgstr "" -"El següent que us cal és crear el fitxer de descripció del miniaturitzador " -"eps-thumbnailer.desktop, que serà com:" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"Name[ca]=Miniaturitzador EPS\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml:1190(para) -msgid "" -"This file must be installed to /usr/local/share/" -"thumbnailers (create the folder if it does not exists)." -msgstr "" -"Aquest fitxer s'ha d'instaŀlar a /usr/local/" -"share/thumbnailers (creeu la carpeta si aquesta no existeix)." - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml:1199(para) -msgid "" -"The eps-thumbnailer.desktop file uses the special key " -"TryExec, which, if specified, names a command that must " -"be present on the system for the thumbnailer to be useful. In this case, our " -"script is useless if the convert utility is not present." -msgstr "" -"El fitxer eps-thumbnailer.desktop empra la clau " -"especial TryExec, la qual, si s'especifica, anomena una " -"ordre que haurà d'estar present en el vostre sistema per a que el " -"miniaturitzador funcioni. En aquest cas, un script no té cap utilitat si " -"l'ordre convert no està en el sistema." - -#: Thunar.xml:1205(para) -msgid "" -"The last step is to regenerate the thumbnailer cache, so Thunar will pick up " -"our thumbnailer. The thumbnailer cache is located at " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by " -"your or your system administrator, the $XDG_CACHE_HOME " -"points to the folder ~/.cache/). The " -"thumbnailers cache is regenerated periodically by Thunar, but you can force " -"to regenerate it by invoking the thunar-vfs-update-thumbnailers-" -"cache-1 utility, that ships as part of Thunar. This utility is " -"usually installed in the libexec " -"subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in " -"/usr, invoke the utility as follows:" -msgstr "" -"El darrer pas és generar la memòria cau del miniaturitzador i, així, Thunar " -"mostrarà les miniatures. La memòria cau del miniaturitzador es troba a " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (a no ser que " -"vostè o l'administrador del sistema hageu sobreesrcit, " -"$XDG_CACHE_HOME apunta a la carpeta ~/.cache/). La memòria cau del miniaturitzador la genera " -"periòdicament Thunar, però podeu forçar la seva regeneració mitjançant " -"l'ordre thunar-vfs-update-thumbnailers-cache-1 i que és " -"part de Thunar. Aquesta utilitat generalment la trobareu a la sub-carpeta " -"libexec del prefixe de la vostra " -"instaŀlació (sbin a Debian/Ubuntu). " -"Per exemple, si Thunar s'ha instaŀlat a /usr, crideu-la de la següent manera:" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml:1218(para) -msgid "" -"But make sure you run the program from your user account, not the superuser " -"account, since the thumbnailers cache is stored in your home folder, rather " -"than a system wide location." -msgstr "" -"Però comproveu que l'executeu des de el vostre compte d'usuari i no des de " -"el del super-usuari, ja que la memòria cau dels miniaturitzadors es desen en " -"la vostra carpeta i no en una del sistema." - -#: Thunar.xml:1223(para) -msgid "" -"Now, if Thunar is compiled with support for file alteration monitoring " -"(using the FAM or Gamin services), it will automatically pick up the new " -"thumbnailers cache within a few seconds and afterwards be able to generate " -"thumbnails using your custom thumbnailers. Otherwise you might need to " -"completely restart Thunar to apply the changes, using" -msgstr "" -"Ara, si Thunar s'ha compilat amb compatibilitat per fer el seguiment de les " -"alteracions de fitxers (ja sigui emprant els serveis de FAM o de Gamin), " -"agafarà de forma automàtica la memòria cau dels nous moniaturitzadors en uns " -"pocs segons i, després, serà capaç de generar miniatures emprant els vostres " -"miniaturitzadors personalitzats. En cas contrari, caldrà que reinicieu " -"Thunar per aplicar els canvis emprant" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml:1231(para) -msgid "" -"to terminate any running instance, and afterwards restart it from your " -"launcher." -msgstr "" -"per finalitzar qualsevol instància que s'estigui executat i, així, reiniciar-" -"lo des del llançador." - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Neteja de miniatures" - -#: Thunar.xml:1239(para) -msgid "" -"The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management " -"Standard. While testing a new thumbnailer, it might help to clean up " -"the thumbnail cache using" -msgstr "" -"Les miniatures generades es desen a la carpeta ~/.thumbnails/ en compliment amb aquest estàndard de gestió " -"de miniatures. Quan es prova un miniaturitzador nou pot ser útil " -"netejar la memòria cau de miniatures emprant" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml:1247(para) -msgid "" -"which will also give you some free space in your home folder. Since all the " -"information stored within this folder was automatically generated from files " -"in your file system, you will not loose any sensitive data." -msgstr "" -"que us alliberarà una mica d'espai lliure en la vostra carpeta d'usuari. " -"Degut a que tota la informació desada en aquesta carpeta es genera " -"automàticament a partir de fitxers del vostre sistema, no perdreu cap " -"informació important." - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "Temes avançats" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "Per canviar els noms de fitxers en bloc" - -#: Thunar.xml:1263(para) -msgid "" -"To bulk rename files means to rename multiple files at " -"once using some criterion, that applies to atleast one of the files. " -"Thunar includes a bulk renamer, which can be run " -"separately using the command Thunar -B or from within " -"Thunar by selecting two or more files in the main " -"area and pressing F2 or choosing " -"EditRename... from the main menu." -msgstr "" -"Canviar de nom els fitxers vol dir canviar de nom " -"diversos fitxers alhora emprant algun criteri que s'aplica a almenys un dels " -"fitxers. Thunar inclou un canviador de nom en " -"bloc, el qual es pot executar de forma separada mitjançant l'ordre " -"Thunar -B o, des de Thunar, " -"seleccionant dos o més fitxers a l'àrea principal i pitjant " -"F2 o seleccionant " -"menuchoice>EditaCanvia de nom…" -" en la barra de menús." - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "Canvi de noms en bloc" - -#: Thunar.xml:1283(para) -msgid "" -"The Bulk Renamers can be applied to the name of the " -"files, the suffix of the files or both to the name and the suffix of the " -"files. Thunar currently supports the following " -"Bulk Renamers:" -msgstr "" -"El canvi de nom en bloc es pot aplicar tant als noms de " -"fitxers, com als sufixos dels fitxers o a ambdós. Thunar actualment permet els següents canvis de noms en " -"bloc:" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "Supressió de caràcters." - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "Numeració de fitxers." - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "Inserció de data o hora." - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "Inserció o reemplaçament de caràcters." - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "Cerca i substitució de caràcters." - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "Conversió a majúscules, minúscules o inicials em majúscules." - -#: Thunar.xml:1298(para) -msgid "" -"Additional Bulk Renamers may be installed as plugins " -"for Thunar. Check the Thunar Plugins website for " -"currently available extensions. The Thunar Project Wiki " -"contains further details about this feature. Feel free to add more " -"information to the Wiki." -msgstr "" -"Altres canvis de nom en bloc addicionals es poden " -"instaŀlar com a connectors de Thunar. Comproveu a " -"la pàgina web de connectors de Thunar per les extensions disponibles. El " -"wiki del projecte Thunar té més detalls sobre aquesta " -"funcionalitat. Podeu afegir més informació al wiki si voleu." - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "El sistema de fitxers d'UNIX" - -#: Thunar.xml:1310(para) -msgid "" -"While the Thunar file manager does a good job at abstracting the details of " -"the underlying file system, so the user does not need to care about them, it " -"is sometimes useful to understand the basic concepts to get the whole " -"picture. This section tries to give a brief introduction to the concepts of " -"the UNIX file system, which is used today by all incarnations of UNIX, " -"including Linux." -msgstr "" -"Mentre que el gestor de fitxers Thunar fa una bona feina abstraient els " -"detalls del sistema de fitxers, i que així l'usuari final no li calgui " -"preocupar-se respecte a aquest, de vegades és útil saber els conceptes " -"bàsics per entendre el el marc general. Aquesta secció intentarà donar-vos " -"una breu introducció als sistema de fitxers d'UNIX, el qual és emprat a dia " -"d'avui per tot tipus d'UNIX, incloent Linux." - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "Carpetes i camins" - -#: Thunar.xml:1320(para) -msgid "" -"In a UNIX file system all folders are arranged in a simple inverted tree " -"structure descending and branching down from a single top level folder, " -"which is called the root directory (the term " -"directory is often used instead of folder) and displayed as File System in Thunar. This " -"means that you can get from any folder to any other by going up the tree " -"until you reach a common point, then down the tree through the appropriate " -"subfolders until you reach your target." -msgstr "" -"Al sistema de fitxers d'UNIX totes les carpetes s'ordenen en un arbre " -"invertit, simple, descendent i ramificat des de una única carpeta inicial, " -"la qual es coneix com a directori arrel (el terme " -"directori s'empra sovint en lloc de carpeta) i que Thunar mostra com «Sistema de fitxers». " -"Això vol dir que us podeu moure des de qualsevol carpeta a una altra movent-" -"vos cap enrere en l'arbre fins que trobeu un punt comú i, després, movent-" -"vos cap endavant per les subcarpetes apropiades fins que arribeu a la " -"carpeta desitjada." - -#: Thunar.xml:1329(para) -msgid "" -"The position of any file or folder in the tree can be described by its " -"path. The path is the list of folders you would have to " -"descend through to get to the target folder or file, starting from the top " -"level folder. For example /home/luke " -"is the subfolder luke of the " -"subfolder home of the top level " -"folder, and /home/luke/myfile.txt is the file " -"myfile.txt in that subfolder. The leading / in these paths represents the top level " -"folder." -msgstr "" -"La posició de qualsevol fitxer o carpeta en l'arbre de directoris es pot " -"descriure com a camí. El camí és la llista de carpetes " -"per les que us heu de moure per arribar a la carpeta o fitxer desitjat; això " -"entenent que iniciu el camí des de el directori arrel. Per exemple, " -"/home/luke és la subcarpeta " -"luke de la subcarpeta home del directori arrel, i /home/luke/" -"myfile.txt és el fitxer myfile.txt d'aquella " -"subcarpeta. El «/» en aquests camins " -"representa el directori arrel." - -#: Thunar.xml:1338(para) -msgid "" -"Every user has their own folder to hold their personal files and settings. " -"This folder is called the home directory and is " -"displayed in Thunar as special icon with the users login name. The folder is " -"similar to the My Files folder known from Windows. The " -"home directories of the various users in a system are " -"usually located below the /home " -"folder. For example /home/luke would " -"be the home directory of the user with the login name luke, while /home/" -"jane would be the home directory for the user with the login name " -"jane." -msgstr "" -"Cada usuari té la seva carpeta per tenir-hi els seus fitxers personals així " -"com els seus ajustaments. Aquesta carpeta s'anomena directori de " -"l'usuari i es mostra a Thunar amb una icona especial amb el nom " -"d'entrada de l'usuari. Aquesta carpeta és similar a la coneguda com " -"«My Files» en sistemes Windows. Els directoris " -"d'usuaris dels diversos usuaris del sistema sovint els trobareu " -"dins de la carpeta /home. Per " -"exemple, /home/luke hauria de ser el " -"directori de l'usuari que té luke " -"com a nom d'entrada al sistema, mentre que /" -"home/jane hauria de ser el directori de l'usuari que té jane com a nom d'entrada al sistema." - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "Tipus de fitxers" - -#: Thunar.xml:1352(para) -msgid "" -"You may have already heard that everything is a file in UNIX. This is true " -"for most objects present in UNIX systems today. In fact even devices are " -"represented as a special files. While this may not make sense at first " -"sight, it is one of the strengths of UNIX and its derivates, and has helped " -"it to maintain a simple core over the years where other operating systems " -"had to introduce new concepts for every new technology." -msgstr "" -"Pot ser que ja hageu sentit dir que tot és un fitxer en entorns UNIX. Això " -"és cert per la majoria d'objectes que es poden trobat en els sistemes UNIX " -"actuals. De fet, inclús els dispositius es representen com fitxers " -"especials. Tot i que això pot no tenir sentit d'entrada, és un dels punts " -"forts d'UNIX i dels seus derivats, i és una gran ajuda alhora de mantenir un " -"nucli simple al llarg dels anys i on altres sistemes operatius es veuen " -"forçats a afegir conceptes nous per cada nova tecnologia." - -#: Thunar.xml:1359(para) -msgid "" -"These are the four most important types of files in the UNIX file system." -msgstr "" -"Aquests són els quatre tipus de fitxers més important en els sistemes de " -"fitxers UNIX." - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "Fitxers ordinaris" - -#: Thunar.xml:1366(para) -msgid "" -"An ordinary file may contain text, a program or other data. This includes " -"image files, audio files, office documents and video files. The term " -"file is often used to refer to an ordinary file." -msgstr "" -"Un fitxer ordinari pot tenir text, un programa o qualsevol tipus de dades. " -"Això inclou fitxers d'imatges, d'àudio, documents d'aplicacions ofimàtiques " -"i fitxers de vídeo. El terme fitxer s'empra sovint per " -"referir-se a fitxers ordinaris." - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "fitxers carpetes" - -#: Thunar.xml:1375(para) -msgid "" -"Folders are also files in the UNIX file system. To be exact a folder is a " -"special file, which contains a mapping of file names to file references for " -"every file contained within this folder." -msgstr "" -"Les carpetes també són fitxers en els sistemes de fitxers UNIX. Per ser " -"exacte una carpeta és un cas especial de fitxer, i que conté un mapa de " -"referències de noms de fitxers a fitxers per cada fitxer que hi ha a la " -"carpeta." - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "Fitxers d'enllaç simbòlic" - -#: Thunar.xml:1384(para) -msgid "" -"A Symbolic link (often called a symlink) is a special " -"file that contains a path to another file in the file system. Symbolic link " -"files therefore do not contain any useful information themselves, but just " -"refer to other files." -msgstr "" -"Un enllaç simbòlic —que sovint s'abrevia com a symlink " -"pel seu origen anglès «Symbolic Link») és un fitxer especial que té un camí " -"fins un altre fitxer del sistema de fitxers. Per tant, l'enllaç simbòlic no " -"té informació valuosa per sí mateix i tant sols referencia un altre fitxer." - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "Fitxers de dispositius" - -#: Thunar.xml:1394(para) -msgid "" -"As mentioned earlier (most) devices are also accessed through the file " -"system. These special device files are usually located in the /dev folder. For example the special file " -"/dev/hda represents the first IDE disk on Linux." -msgstr "" -"Com hem dit anteriorment a la majoria de dispositius es pot accedir via el " -"sistema de fitxers. Aquest fitxers de dispositius especials els trobareu " -"sovint en la carpeta /dev. Per " -"exemple, el fitxer especial /dev/hda representa el " -"primer disc IDE en sistemes Linux." - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "Preguntes freqüents" - -#: Thunar.xml:1408(para) -msgid "" -"The intent of this section is to collect the quite numerous frequently asked " -"questions that relate to working with Thunar. If you know of a question that " -"is missing from this page, please file a request." -msgstr "" -"En aquesta secció s'intenta fer un llistat de les nombroses preguntes " -"relacionades amb Thunar que se'ns han fet. Si sabeu d'alguna altra pregunta " -"que no hi aparegui en aquesta pàgina, si us plau, ompliu una soŀlicitud." - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Perquè el Thunar no executa els fitxers amb la marca d'executables?" - -#: Thunar.xml:1419(para) -msgid "" -"For security reasons Thunar only executes files of type application/" -"x-desktop, application/x-executable and " -"application/x-shellscript. For desktop files the " -"execution feature will only be enabled if the desktop file is of type " -"Application and a valid Exec line is " -"given or of type Link and a valid URL " -"is given. For the other types the feature is available if the file is marked " -"executable for the current user." -msgstr "" -"Per raons de seguretat Thunar només executa els fitxers de tipus " -"application/x-desktop, application/x-executable i application/x-shellscript. Els fitxers " -"d'escriptori només s'executen si el fitxer d'escriptori és de tipus " -"Application i hi ha una línia vàlida Exec o els de tipus Link i hi ha una URL vàlida. Per la resta de tipus només està disponible si el fitxer " -"està marcat com executable per l'usuari actual." - -#: Thunar.xml:1428(para) -msgid "" -"Also note that for application/x-executable and " -"application/x-shellscript, the types of the file don't " -"really need to match these types exactly, but it is suffice if the detected " -"type has a parent that matches one of the two types listed above, or if the " -"MIME-type is an alias for one of the above." -msgstr "" -"Tingueu en compte que per application/x-executable i " -"application/x-shellscript, el tipus de fitxer no té per " -"que ser exactament aquest, n'hi ha prou amb que el tipus detectat tingui un " -"pare d'aquest tipus o que el tipus MIME sigui un àlies d'algun d'ells." - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "On desa Tunar les metadates associades als fitxers?" - -#: Thunar.xml:1439(para) -msgid "" -"Thunar associates various settings with files/folders, which we call " -"metadata. This metadata for all files is stored in tdb database file, which " -"is called the metafile. The database file is stored in " -"$XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the " -"tdbtool, which is part of the Thunar distribution " -"(located in the tdb/ subdirectory)." -msgstr "" -"El Thunar associa diversa informació amb fitxers i carpetes, a això és al " -"que anomenem metadades. Aquestes metadades de tots els fitxers es desa en un " -"fitxer de base de dades «tdb», al qual anomenem el metafitxer. El fitxer es " -"desa a $XDG_CACHE_HOME/Thunar/metafile.tdb i es pot " -"examinat mitjançant l'ordre tdbtool i que es distribueix " -"amb Thunar (es troba al subdirectori tdb/)." - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "On desa Thunar les seves preferències?" - -#: Thunar.xml:1452(para) -msgid "" -"Thunar stores the user configurable preferences (and hidden settings) in an " -".ini file, which is located at " -"$XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text " -"editor. See docs/README.thunarrc for an overview of the " -"various preferences." -msgstr "" -"Thunar desa les preferències d'usuari, així com les opcions ocultes, en un " -"fitxer .ini que es triba a $XDG_CONFIG_HOME/" -"Thunar/thunarrc i que es pot examinar emprant qualsevol editor de " -"text. Veieu docs/README.thunarrc per una informació " -"detallada de les diverses preferències." - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Com puc emprar gestos de ratolí («mouse gestures») amb Thunar?" - -#: Thunar.xml:1464(para) -msgid "" -"Thunar currently features basic support for so called mouse " -"gestures in its icon view. You can use these mouse " -"gestures by holding down the middle mouse button (usually the " -"mouse wheel) while the mouse pointer is on the background area of the icon " -"view component (any area that is not covered by an icon or a text). Now you " -"can move the cursor into four directions to perform certain actions, which " -"are described below." -msgstr "" -"Actualment Thunar permet un ús bàsic a la vista d'icones dels anomenats " -"gestos de ratolí. Podeu emprar gestos de " -"ratolí mantenit pitjat el botó del mig del ratolí (normalment la " -"rodeta del ratolí) mentre que el punter del ratolí es troba sobre l'àrea de " -"fons del component de vista d'icones (qualsevol àrea no coberta per un text " -"o una icona). En aquest moment podeu moure el punter del ratolí en qualsevol " -"de les quatre direccions per realitzar algunes accions que us descrivim a " -"continuació." - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "Esquerra" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr " - obra la darrera carpeta que s'hagi visitat" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "Amunt" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr " - obra la carpeta pare" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "Dreta" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr " - obra la següent carpeta que s'ha visitat" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "Avall" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr " - torna a carregar la carpeta actual" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "Com puc assignar dreceres de teclat?" - -#: Thunar.xml:1484(para) -msgid "" -"If you want to rebind a shortcut, Thunar supports the standard GTK+ way of " -"changing shortcuts: simply hover over the menu option with the mouse pointer " -"and press the keyboard shortcut you want to rebind it to." -msgstr "" -"Si voleu tornar a fixar una drecera, Thunar admet la forma estàndard de GTK+ " -"per canviar dreceres: simplement passeu per sobre de l'opció de menú amb el " -"ratolí i polseu la drecera de teclat que li voleu fixar." - -#: Thunar.xml:1490(para) -msgid "" -"To delete a keyboard assignment, press the Backspace key " -"while you are on the menu entry." -msgstr "" -"Per esborrar una assignació de tecles, polseu la tecla de retrocés quan sigueu sobre l'entrada de menú." - -#: Thunar.xml:1495(para) -msgid "" -"If the shortcut doesn't change, then you need to enable the feature in GTK+. " -"This can be achieved in 3 ways:" -msgstr "" -"Si la drecera no canvia caldrà que habiliteu aquesta funcionalitat al GTK+. " -"Això es pot fer de tres maneres:" - -#: Thunar.xml:1502(para) -msgid "" -"If you are running Xfce 4.3 or above then you can enable Editable " -"menu accelerators in the User Interface Preferences dialog." -msgstr "" -"Si esteu executant Xfce 4.3 o superior, ho podeu habilitar-ho mitjançant " -"dreceres de menú editables en el diàleg " -"Preferències de la interfície d'usuari." - -#: Thunar.xml:1510(para) -msgid "" -"If you are running GNOME then you can enable Editable menu " -"accelerators in the Menu and Toolbars " -"control center dialog." -msgstr "" -"Si executeu GNOME podeu habilitar-ho mitjançant dreceres de menú " -"editables en Menú i Eines del diàleg del " -"centre de control." - -#: Thunar.xml:1518(para) -msgid "" -"Otherwise put the following in your ~/.gtkrc-2.0 file " -"(create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" -"En qualsevol altre cas, poseu en el vostre fitxer ~/.gtkrc-2.0 (creeu-lo si no existeix): gtk-can-change-accels=1" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "On desa Thunar les dreceres de teclat?" - -#: Thunar.xml:1529(para) -msgid "" -"The custom keyboard shortcuts are stored in the standard GTK+ accel map " -"format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK" -"+ documentation for details about the file format." -msgstr "" -"Les dreceres de teclat personalitzades es desen amb l'estàndard de mapa de " -"dreceres de GTK+ en un fitxer a $XDG_CONFIG_HOME/Thunar/accels." -"scm. Les línies d'aquest fitxer que comencen per ; són comentaris. Veieu la documentació de GTK+ per saber més " -"informació respecte a aquest format de fitxer." - -#: Thunar.xml:1536(para) -msgid "" -"If you are a packager or a system administrator and want to provide a system " -"wide default for the keyboard shortcuts, that is different from the default " -"shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if " -"/etc/xdg is part of " -"$XDG_CONFIG_DIRS (the default for most Linux distributions), you can " -"install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" -"Si sou un empaquetador o un administrador de sistemes que voleu crear uns " -"valors per defecte per les dreceres de teclat, lo que no és el mateix que " -"les dreceres per defecte de Thunar, podeu creat un fitxer anomenat " -"Thunar/accels.scm en algun dels directoris " -"$XDG_CONFIG_DIRS. Per exemple, si /etc/" -"xdg és part de $XDG_CONFIG_DIRS (el que acostuma a " -"ser el valor per defecte a moltes distribucions Linux), podeu instaŀlar els " -"vostres valors per defecte i que afectaran a tot el sistema i usuaris a " -"/etc/xdg/Thunar/accels.scm. Thunar carregarà els valors " -"d'aquest fitxer a la seva propera engegada." - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "Suport" - -#: Thunar.xml:1551(para) -msgid "" -"To report a bug or to make a suggestion regarding this application or this " -"manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a " -"useful bug report has two qualities:" -msgstr "" -"Per comunicar una errada o per fer un suggeriment referents a aquesta " -"aplicació o a aquest manual, empreu el sistema de notificacions d'errades " -"http://bugzilla.xfce.org/. Recordeu que les " -"notificacions d'errades útils són aquelles que es solucionen i que per a que " -"sigui útil ha de complir aquestes dues qualitats:" - -#: Thunar.xml:1559(para) -msgid "" -"Reproducible. If the developer cannot see " -"the bug himself to prove that it exists, he will most probably not be able " -"to fix it at all. Every detail you can provide helps." -msgstr "" -"Reproduïble.. Si un desenvolupador no pot " -"veure aquesta errada per comprovar que existeix, és molt probable que tampoc " -"la pugui solucionar de cap manera. Qualssevol detall pot ser-li d'ajuda." - -#: Thunar.xml:1566(para) -msgid "" -"Specific. The quicker the developer can " -"isolate the problem to a specific area, the more likely he will expediently " -"fix it." -msgstr "" -"Specific. Entre més ràpid pugui el " -"desenvolupador identificar el problema dins d'una àrea més possible serà que " -"trobi la solució oportuna." - -#: Thunar.xml:1573(para) -msgid "" -"In case you want to request a new feature, please make clear why you " -"consider it a worth addition for the application. It is more likely that a " -"new feature gets added if you provide good arguments for the feature. It " -"will increase the chance of addition even more if you provide a patch that " -"implements the requested feature, but make sure that you read the file " -"HACKING - especially the section labeled Coding " -"Style - before you start hacking up the source." -msgstr "" -"Si voleu demanar alguna funcionalitat nova, indiqueu de forma clara perquè " -"la considereu valuosa per l'aplicació. És molt més possible que s'afegeixi " -"una nova funcionalitat si doneu bons arguments en favor d'aquesta " -"funcionalitat. Encara incrementarà més les possibilitats de que s'afegeixi " -"si afegiu un pedaç que implementi aquesta funcionalitat que voleu. Assegureu-" -"vos que heu llegit el fitxer HACKING —especialment la secció " -"titulada «Coding Style»— abans de que comenceu a tocar " -"el codi." - -#: Thunar.xml:1583(para) -msgid "" -"Else, if you have questions about the use or installation of this software, " -"please ask on the thunar-dev mailing list or point your IRC " -"client to irc.freenode.net, join the " -"channel #thunar and ask for help." -msgstr "" -"En qualsevol cas, si teniu alguna pregunta sobre l'ús o instaŀlació d'aquest " -"programari, podeu preguntar-la a la llista de correu thunar-dev o mitjançant el vostre client d'IRC en irc." -"freenode.net, unint-vos al canal #thunar i demanant ajuda." - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "Quant a @PACKAGE_NAME@" - -#: Thunar.xml:1594(para) -msgid "" -"@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" -"@PACKAGE_NAME@ ha estat escrit per Benedikt Meurer (benny@xfce.org). Veieu la pàgina web de Thunar per més informació." - -#: Thunar.xml:1599(para) -msgid "" -"This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the " -"Thunar website." -msgstr "" -"Aquest document ha estat escrit per Benedikt Meurer (benny@xfce.org). La darrera versió d'aquest document està disponible a la pàgina web de Thunar." - -#: Thunar.xml:1605(para) -msgid "" -"This software is distributed 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." -msgstr "" -"Aquest programa es distribueix amb els termes de la llicència «GNU General " -"Public License» tal i com la va publicar la Free Software Foundation; ja " -"sigui la versió 2 de la llicència o, si ho preferiu, qualsevol versió " -"posterior." - -#: Thunar.xml:1611(para) -msgid "" -"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." -msgstr "" -"Hauríeu d'haver rebut una còpia de la llicència «GNU General Public License» " -"juntament amb aquest programa; en cas contrari, escriviu a la Free Software " -"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111‐1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "Carles Muñoz Gorriz , 2009-2010." - -#~ msgid ".png" -#~ msgstr ".png" - -#~ msgid "%" -#~ msgstr "%" diff -Nru thunar-1.2.3/docs/manual/po/da.po thunar-1.6.10/docs/manual/po/da.po --- thunar-1.2.3/docs/manual/po/da.po 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/da.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1341 +0,0 @@ -# translation of Thunar documentation to danish -# Lars Christian Jensen , 2008, 2009. -# Per Kongstad , 2009. -msgid "" -msgstr "" -"Project-Id-Version: Thunar 1.0.1 documentation\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-02-03 10:09+0100\n" -"Last-Translator: Per Kongstad \n" -"Language-Team: dansk@dansk-gruppen.dk \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"X-Poedit-Language: Danish\n" -"X-Poedit-Country: DENMARK\n" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Thunar filhåndtering" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml:25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "Der gives hermed lov til kopiere, distribuere og/eller ændre dette dokument under betingelserne af GNU Free Documentation License, Version 1.1 eller enhver senere version udgivet af Free Software Foundation, med ingen ufravigelige dele; ingen forsidetekst, og ingen bagsidetekst. Hele licensteksten er til rådighed på Free Software Foundation." - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "Softwareudvikler" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "Systemudvikling" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Denne manual beskriver version @PACKAGE_VERSION@ af @PACKAGE_NAME@." - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Introduktion til @PACKAGE_NAME@" - -#: Thunar.xml:56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar er en ny moderne filhåndtering til skrivebordsmiljøet Xfce. Thunar er designet fra bunden af til at være hurtig og nem at bruge. Dens brugerflade er stilrent og intuitivt, og inkluderer ikke nogen forvirrende eller ubrugelige indstillinger som standard. Thunar er hurtig og responsiv, med en hurtig opstartstid og indlæsningstid af mapper." - -#: Thunar.xml:62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "Thunar filhåndtering sørger derved for et integreret tilgangspunkt til dine filer og programmer. Du kan bruge filhåndteringen til følgende:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "Oprette mapper og dokumenter." - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "Vise dine filer og mapper." - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "Håndtere dine filer og mapper." - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "Køre og håndtere brugertilpassede handlinger." - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "Tilgå flytbare medier." - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "Filhåndteringsvinduet" - -#: Thunar.xml:80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "Som standard består filhåndteringsvinduet af et genvejspanel til venstre, hovedområdet til højre og en stilinje over hovedområdet." - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "Filhåndteringsvindue" - -#: Thunar.xml:97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "Genvejspanelet tilbyder genveje til forskellige mapper på dit system. Den første genvej vil føre dig til din Hjemmemappe, mappen hvor du opbevarer alle dine personlige data, og vil derfor have det samme navn som den nuværende bruger. Den anden genvej vil tage dig til papirkurven, som opbevarer alle slettede filer, der så kan genskabes senere. Den tredje genvej tager dig til din Skrivebordsmappe som indeholder de filer og mapper, der er vist på dit skrivebord. Den fjerde genvej vil tage dig til roden af dit filsystem - her vil du måske gå lidt på opdagelse, selvom det kan være lidt forvirrende, hvis du er ny til Linux/Unix. Klik bare rundt i de forskellige mapper og se, hvad der er inden i dem." - -#: Thunar.xml:108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "Under Filsystemgenvejen, vil de flytbare drev og medier være vist. I det ovenstående skærmbillede kan du se en genvej til et floppydrev. Klik på disse genveje for at tilgå de data der er opbevaret på de flytbare drev og medier. Se for flere detaljer." - -#: Thunar.xml:115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "De resterende genveje er brugertilpassede. Tilføj dine egne genveje ved simpelthen at trække mapper hen til genvejspanelet. Dette vil gøre dig i stand til at tilgå dine vigtige mapper øjeblikkeligt. For at fjerne en tilføjet genvej, højreklikker du på genvejen og vælger Fjern genvej. For at omdøbe en tidligere tilføjet genvej, højreklikker du på genvejen og vælger Omdøb genvej. Bemærk at disse handlinger kun påvirker genvejen og ikke mappen som genvejen henviser til." - -#: Thunar.xml:123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "Hovedområdet vil altid vise indholdet af den nuværende mappe. Dobbeltklik på mapper for at tilgå dem, og højreklik på filer eller mapper for at se en kontekstmenu, der tilbyder forskellige muligheder for anvendelse. Vælg flere filer ved at trække en rektangel over dem med musen. Alternativt kan du vælge en fil, hold Skift knappen nede og forøg eller formindsk det markerede ved at bruge piletasterne." - -#: Thunar.xml:131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "Stilinjen vil altid vise den sti du tog for at komme hen til den mappe du er i. Du kan klikke på enhver stilinjeknap for at skifte til den mappe den repræsenterer. Højreklik på en stilinje for at få en kontekstmenu frem med nogle valgmuligheder." - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "Tilpasning af udseendet" - -#: Thunar.xml:141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "Der er flere måder at tilpasse udseendet af filhåndteringsvinduet på. Hvis du ikke kan lide den måde ikonerne er vist på, så vælg VisVis som liste fra hovedmenuen for at få indholdet af den nuværende mappe vist som en detaljeret liste." - -#: Thunar.xml:147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "Du kan få filhåndteringsvinduet til at vise en stedlinje istedet for en stilinje ved at vælge VisStedvælgerVærktøjslinjestil fra hovedmenuen." - -#: Thunar.xml:153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "Hvis du foretrækker trævisning i det venstre panel, så vælg VisSidepanelTræstruktur fra hovedmenuen." - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Synlige kolonner i detaljeret listevisning" - -#: Thunar.xml:162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "Hvis du foretrækker at vise indholdet af en mappe som en liste ved brug af Detaljeret listevisning, kan du tilpasse de synlige kolonner i detaljeret listevisning. Vælg ViewIndstil kolonner fra hovedmenuen, for at tilpasse de synlige kolonner." - -#: Thunar.xml:175(phrase) -#: Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "Synlige kolonner" - -#: Thunar.xml:184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "Vælg de kolonner du vil have vist, ud fra listen af kolonner der er til rådighed. Klik på Flyt op eller Flyt ned for at ændre rækkefølgen af kolonnerne. Klik på Brug standard for at vende tilbage til de oprindelige indstillinger." - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "Kolonnesjustering" - -#: Thunar.xml:195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "Vælg punktet Udvid kolonner automatisk efter behov, hvis du vil have kolonnerne i listevisning til at udvide automatisk efter behov. Så er du sikker på at teksten er helt synlig." - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "Arbejde med filer og mapper" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "Åbner filer" - -#: Thunar.xml:214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "Når du åbner en fil, vil filhåndteringen udføre standardhandlingen for den filtype. F.eks. ved åbning af en tekstfil vil den vise den i det tekstbehandlingsprogram der er sat som standard, mens åbning af en billedfil vil vise den i den billedfremviser der er sat som standard." - -#: Thunar.xml:220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "Filhåndteringen undersøger filendelsen på en fil for at fastslå hvilken type fil det er. Hvis filen ingen endelse har, vil filhåndteringen undersøge indholdet af filen." - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "Udfører standardhandlingen" - -#: Thunar.xml:228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "For at udføre standardhandlingen for en fil, så dobbeltklik på den. F.eks. er standardhandlingen for lydfiler, at afspille dem i den musikafspiller der er sat som standard. I dette tilfælde kan du dobbeltklikke på filen for at åbne den i musikafspilleren." - -#: Thunar.xml:234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "Du kan indstille Thunar således at du kan nøjes med at klikke en enkelt gang på en fil for at udføre standardhandlingen, se ." - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "Udfører ikke-standardhandlinger" - -#: Thunar.xml:243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "For at udføre handlinger, udover standardhandlingen for en fil, så vælg den fil du vil udføre en handling med. Vælg den ønskede handling fraÅbn med valgmulighederne i Fil menuen eller med Åbn med undermenuen." - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "Tilføjer handlinger" - -#: Thunar.xml:253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "Gør følgende for at tilføje handlinger til en bestemt filtype:" - -#: Thunar.xml:259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "Vælg en fil i hovedområdet af den filtype du vil tilføje en handling til." - -#: Thunar.xml:264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "Vælg FilÅbn med andet program... fra hovedområdet." - -#: Thunar.xml:270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "Enten vælg et program i Åbn med-dialogvinduet eller vælg Brug tilpasset kommando og vælg stien til det program, du ønsker at åbne denne filtype med." - -#: Thunar.xml:277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "Den handling du har valgt er nu tilføjet til listen over tidligere tilknyttede handlinger for lige den filtype. Hvis du har aktiveret Brug som standard for denne type filer eller der ikke er nogen tidligere handlinger med denne filtype, er den nylig tilføjede handling nu standard." - -#: Thunar.xml:283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "Du kan også tilføje handlinger ved brug af Åbn med knappen under FilEgenskaber...." - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "Ændrer handlinger" - -#: Thunar.xml:292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "Gør følgende for at ændre de tilknyttede handlinger til en fil eller filtype:" - -#: Thunar.xml:298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "Vælg en fil i hovedområdet af den filtype du vil ændre en handling for." - -#: Thunar.xml:303(para) -#: Thunar.xml:383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "Vælg FilEgenskaber... fra hovedmenuen." - -#: Thunar.xml:308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "Vælg den nye standardhandling ved brug af Åbn med-knappen eller tilføj en ny handling ved at vælge Åbn med andet program... fra rullegardinmenuen." - -#: Thunar.xml:315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "For at fjerne en tidligere tilføjet handling for en filtype, skal du åbne Åbn med-dialogen som beskrevet ovenfor, højreklik på den handling du vil fjerne og vælg Fjern starter." - -#: Thunar.xml:324(title) -#: Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "Filegenskaber" - -#: Thunar.xml:326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "Filegenskabsvinduet viser mere information om enhver fil eller mappe i filhåndteringen. Med dette vindue, kan du også gøre følgende:" - -#: Thunar.xml:333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "Ændre ikonet for særlige filer, som f.eks. programstartere og URL-henvisninger." - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "Tilføje eller fjerne emblemer for en fil eller mappe." - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "Ændre UNIX-filtilladelser for en fil eller mappe." - -#: Thunar.xml:348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "Vælge hvilket program der skal bruges til at åbne en fil og andre filer af den samme type." - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "For at åbne filegenskabsvinduet, skal du udføre følgende trin:" - -#: Thunar.xml:372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "Vælg en fil eller mappe, hvis egenskaber du vil undersøge eller ændre. Du kan ikke vælge flere elementer ad gangen og få vist de egenskaber, de har tilsammen i øjeblikket." - -#: Thunar.xml:386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "Højreklik på det markerede element og vælg Egenskaber... fra genvejsmenuen." - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "Tryk på AltRetur." - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "Udfør en af følgende handlinger: " - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "Tilgang af flytbart medie" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "Tilgår flytbart medie" - -#: Thunar.xml:405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "Thunar undersøtter flytbare medier, hvis den er bygget med understøttelse af HAL, eller hvis du bruger FreeBSD. Bemærk dog at på FreeBSD 6.0 eller nyere, er det anbefalet at bruge HAL istedet for den standardunderstøttelse som Thunar tilbyder." - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "Montering af medie" - -#: Thunar.xml:414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "Montering af medie, er at gøre filsystemet på mediet tilgængeligt. Når du monterer medie, vil filsystemet på mediet, blive tilføjet som et underkatalog på dit filsystem." - -#: Thunar.xml:419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "For at tilgå medie, indsæt da mediet i den korrekte enhed, eller forbind den nye enhed til din computer (forbind f.eks. en USB-stang til en af dine USB-porte). Et objekt der repræsenterer mediet, er tilføjet i sidepanelet af filhåndteringen. Hvis xfdesktop kører og er indstillet til at vise Fil/starter ikoner, vil dette objekt også blive tilføjet på dit skrivebord." - -#: Thunar.xml:426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "Klik på det objekt der repræsenterer mediet, for rent faktisk at montere det. F.eks. for at montere en floppydiskette skal du klikke på floppy-drevobjektet i sidepanel. Filhåndteringen vil så tilføje mediets filsystem til dit filsystems hierarki og vise indeholdet af floppydisketten i hovedområdet." - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "Skubbe medie ud" - -#: Thunar.xml:436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "Hvis mediets drev er et motoriseret drev (f.eks. et cd-romdrev), så højreklik på medieobjektet i sidepanelet eller på skrivebordet og vælg Skub arkiv ud. Mediet er skubbet ud af drevet efter nogle få sekunder. Hvis mediets drev ikke er motoriseret (f.eks. et floppydrev eller en USB-stang), så højreklik på medieobjektet og vælg Afmontér arkiv. Efter et kort stykke tid, vil en påmindelse fremkomme, der informerer dig om at det nu er sikkert at fjerne mediet, eller at afkoble drevet fra computeren." - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "Påmindelse om afmontering" - -#: Thunar.xml:456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "Denne påmindelse vil dog kun kunne blive vist hvis understøttelsen af libnotify er aktiveret, og du har installeret en påmindelsestjeneste. En påmindelsestjeneste til Xfce er tilrådighed fra Xfce Goodies Projektet. Hvis understøttelse af påmindelser ikke er tilrådighed, så vent indtil kontekstmenuen forsvinder, før du fjerner mediet eller afkobler drevet." - -#: Thunar.xml:464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "Vær opmærksom på at du ikke kan afmontere eller skubbe medier ud, der stadig er i brug af et eller flere programmer. Derfor, hvis filhåndteringen nægter at skubbe medie ud, skal du være sikker på at du lukker alle de programmer der har tilgået mediet. Vær også sikker på at kommandolinjeprogramer der kører i Terminal vinduer, er lukket." - -#: Thunar.xml:470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "Vær sikker på at du afmonterer flytbare medier før du skubber dem ud. Skub ikke en diskette ud fra floppydrevet før du har afmonteret disketten. Fjern ikke en USB-stang før du har afmonteret flashdrevet. Hvis du ikke afmonterer mediet først, vil du måske miste nogle data, eller få dit system til at bryde ned." - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "Håndtering af flytbare drev og medier" - -#: Thunar.xml:481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "Thunar er også istand til automatisk at håndtere flytbare drev og medier, hvis thunar-volman pakken er installeret på dit system. Bemærk dog at denne funktion kræver HAL-understøttelse." - -#: Thunar.xml:487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "Hvis nu HAL-understøttelse er tilrådighed og thunar-volman er installeret på dit system, kan du vælge at aktivere Arkivhåndtering funktionen i Thunar. Dette gøres ved at åbne filhåndteringsegenskaber, gå til Avanceret-siden og markér Aktivér arkivhåndterings-knappen." - -#: Thunar.xml:494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "Det næste skridt er at tilpasse håndteringen af flytbare drev og medier til dine behov. Klik på Indstil-henvisningen i sektionen Arkivhåndtering , lige under knappen. Flytbare drev og medier indstillingsdialogen vil nu blive vist." - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "Flytbare drev og medier" - -#: Thunar.xml:512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "Hvis du før har brugt gnome-volume-manager, vil du føle dig helt hjemme, da den var designet til at se ud som og opføre sig som gnome-volume-manager. Egenskaberne er delt op i enhedskategorier, for at gøre det nemt at finde indstillingen til din specifikke enhed." - -#: Thunar.xml:519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "Siden til Opbevaring indeholder de mest vigtige valgmuligheder. Som navnet antyder, gælder disse indstillinger kun for opbevaringsenheder såsom eksterne harddiskdrev, USB-stang og cd-rom'er." - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Montér flytbare medier der bliver tilsluttet" - -#: Thunar.xml:529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "Anvend denne valgmulighed for, automatisk at montere filsystemer på flybare drev (f.eks. eksterne harddiskdrev eller USB-stænger), når sådanne bliver tilsluttet computeren." - -#: Thunar.xml:533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "Denne indstilling skal slås til for at bestemte andre funktioner virker med flytbare drev. Hvis du f.eks. slår denne indstilling fra, vil bestemte bærbare musikafspillere ikke længere blive fundet, selvom du har slået Spil musikfiler ved tilslutning indstillingen til på Multimedie -siden, vil den specifikke kommando ikke blive kørt når du tilslutter din bærbare musikafspiller." - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Montér flytbare medie der tilsluttes" - -#: Thunar.xml:546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "Brug denne indstilling for, automatisk at montere filsystemer på flytbare medier (f.eks. cd-rom'er eller dvd'er),når du indsætter mediet i drevet." - -#: Thunar.xml:550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "Denne indstilling skal slås til for at bestemte andre funktioner virker med flytbare drev. Hvis du f.eks. slår denne valgmulighed fra, vil det blive umuligt at finde ud af om det flytbare medie har auto-kør egenskaber, og derfor vil indstillingen auto-kør programmer på nye drev og medier ikke have nogen effekt på flytbare medier." - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Gennemse flytbare medier der bliver tilsluttet" - -#: Thunar.xml:562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "Brug denne indstilling for, automatisk at vise indholdet af det nyligt indsatte medie i filhåndteringen. Bemærk dog, at indholdet vil kun blive vist hvis ingen anden handling var mulig eller du valgte at ignorere de andre mulige handlinger. Hvis du f.eks. indsætter en cd-rom med auto-kør egenskaber og auto-kørprogrammer på nye drev og medier indstillingen er slået til, vil du blive spurgt om du vil tillade, eller ignorere auto-kør-funktionen. Hvis du vælger at ignorere auto-kør-funktionen, vil indholdet blive vist i filhåndteringen." - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Auto-kør programmer på nye drev og medier" - -#: Thunar.xml:576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "Brug denne funktion for at gøre bruge af auto-kør muligheden på bestemte flytbare drev og medier. Se Desktop Application Autostart Specification for deltajer om auto-kør mekanismen. For at forbedre sikkerheden, vil du altid blive spurgt om at bekræfte auto-kør funktionen." - -# Fejlmeldt til xfce4-dev@xfce.org -#: Thunar.xml:582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "Hvis Windows emulatoren WINE er installeret på dit system, vil auto-kør-mekanismen også forsøge at køre autorun.exe filer ved brug af WINE." - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "Auto-åbning af filer på nye drev og medier" - -#: Thunar.xml:592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "Brug denne funktion for at gøre bruge af auto-åbn-muligheden på bestemte flytbare drev og medier. Se Desktop Application Autostart Specification for deltajer om auto-åbn mekanismen. For at forbedre sikkerheden, vil du altid blive spurgt om at bekræfte auto-åbn-funktionen." - -#: Thunar.xml:602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "De tilbageværende indstillinger vil tillade dig af specificere en kommando, der skal køres når en bestemt type medie er indsat i drevet, eller når en bestemt type ekstern enhed er tilsluttet. Kommandoen kan bruge tre særlige variabler, der vil blive erstattet når kommandoen er udført:" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml:612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "Hver forekomst af %d i kommandoen vil blive erstattet af enhedens filsti på nylige tilføjede enheder. F.eks. hvis du har forbundet en USB-stang, vil enhedens filsti være /dev/da0s1 eller /dev/sda1." - -#: Thunar.xml:617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "Hvis ingen enhedsfil er tilknyttet enheden eller enhedsfilen, af en eller anden grund ikke kan findes, vil variablen %d blive erstattet med den tomme streng." - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml:627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "Hver forekomst af %h i kommandoen vil blive erstattet med HAL-UDI'en på den nyligt tilføjetde enhed." - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml:637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "Hver forekomst af %m i kommandoen vil blive erstattet af det monteringspunkt, hvor den nyligt tilføjede enhed blev monteret. Hvis enheden ikke kan monteres (f.eks. printere eller tastaturer) eller hvis automatisk montering er slået fra, vil %m blive erstattet med den tomme streng." - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "Fejlfinding til arkivhåndteringen" - -#: Thunar.xml:650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "Nyttige råd til fejlfinding til arkivhåndteringen, i det tilfælde at den ikke virker som forventet." - -#: Thunar.xml:656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "Vær sikker på at Thunar kører som en tjeneste. Arkivhåndteringen afhænger af dette, da den ikke er en tjeneste i sig selv. Som standard, vil Xfce automatisk starte Thunar op som en tjeneste under opstart. Hvis den blev dræbt af en eller anden grund, så åbn Kør program (ved brug af tastaturgenvejen AltF2 eller højreklik på skrivebordet og vælg Kør program... fra skrivebordsmenuen), indtast Thunar --daemon og klik på Kør." - -#: Thunar.xml:668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "Prøv at køre thunar-volman fra et Terminal-vindue efter at have tilsluttet drevet eller indsat mediet. Først skal du finde ud af, hvad den nye enheds HAL-UDI er, ved at bruge lshal eller hal-device. Når du først kender enhedens UDI, skal du køre thunar-volman --device-added<din-enheds-udi> i et Terminal-vindue og efterse uddataen for fejl eller advarsler." - -#: Thunar.xml:678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "Hvis det stadigvæk ikke vil virke, så spørg på Xfce Forum eller thunar-dev mailliste for hjælp." - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "Indstillinger til filhåndtering" - -#: Thunar.xml:691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "Brug dialogen, Indstilling af filhåndtering for at indstille dine Thunar-filhåndteringsindstillinger. For at åbne indstillingsdialogen, skal du vælge RedigérIndstillinger... fra menulinjen, eller klik på Filhåndteringsknappen i indstillingshåndteringen til Xfce." - -#: Thunar.xml:697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "Filhåndteringsindstillingerne er delt i fire sider med forskellige indstillinger, der er beskrevet i hvert sit afsnit nedenunder. Grundlæggende kan du indstille i følgende kategorier:" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "Standardindstillingen til visninger." - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "Standardindstillinger til sidepanelet." - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "Filhåndteringenvinduets opførsel." - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "Filhåndteringens avancerede egenskaber." - -#: Thunar.xml:709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "Thunar understøtter også en stak af de såkaldte skjulte indstillinger, som styrer flere af de avancerede egenskaber i filhåndteringen, men er ikke inkluderet indstillingerne for at holde indstillingsdialogen som simpel som mulig. Filen README.thunarrc der er leveret sammen med Thunar, beskriver alle indstillinger i detaljer." - -#: Thunar.xml:718(title) -#: Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "Indstillinger til visning" - -#: Thunar.xml:720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "Du kan angive en standardvisning samt vælge sorterings- og visningsindstillinger. Du kan også indstille om miniaturevisning skal anvendes for filtyper der understøtter dette." - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "Vis ny mappe ved at bruge" - -# Fejlmeldt til xfce4-dev@xfce.org -#: Thunar.xml:742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "Vælg standardvisningen for mapper. Når du åbner et nyt vindue, vil kompakt listevisning blive vist i den visning som du vælger. Dette kan enten være ikonvisning, listevisning, eller detaljeret listevisning. Du kan også vælge Sidste aktive visning her for at vælge den visning der er anvendt på det sidste aktive vindue." - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "Sortér mapper før filer" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "Vælg denne indstilling for at vise mapper før filer, når du sorterer en mappe." - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "Vis miniaturer" - -#: Thunar.xml:763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "Vælg denne indstilling for at vise miniaturer af billedfiler og andre filer der er understøttet. Filhåndteringen gemmer miniaturebilleder for hver mappe i den skjulte .thumbnails mappe i brugerens hjemmemappe." - -#: Thunar.xml:768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "Se hvis du vil udvide den grundlæggende miniature funktionalitet, stillet til rådighed af Thunar med understøttelse for yderligere filtyper." - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "Tekst ved siden af ikoner" - -# Fejlmeldt til xfce4-dev@xfce.org -#: Thunar.xml:779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "Vælg denne indstilling, for at placere ikonteksten for elementer i ikonvisning, ved siden af ikonet i stedet for under det." - -#: Thunar.xml:790(title) -#: Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "Indstillinger til sidepanelet" - -#: Thunar.xml:792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "Du kan vælge visningsmulighder til genvejs- og træstrukturpanelet." - -#: Thunar.xml:808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "Sidepanelet kan enten vise en liste af genveje til mapper i dit filsystem, som er standardindstillingen, eller som en trævisning af dit filsystem. Denne side tillader dig at vælge størrelsen på ikoner til genvejs- og træpanelet. Du kan også angive hvilke emblemer der skal vises." - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "Ikonstørrelse" - -#: Thunar.xml:819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "Størrelsen på ikonerne vist i siden, går fra Meget små (omkring 16x16 pixels) til Meget store (omkring 128x128 pixels)." - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "Vis ikonemblemer" - -#: Thunar.xml:829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "Vælg denne indstilling for at vise symboler for mapper i sidepanelet. Du kan tildele emblemer til mapper i Egenskaber-dialogvinduet. Vælg en mappe i hovedområdet og vælg FilEgenskaber... fra hovedmenuen, eller højreklik på mappen og vælg Egenskaber... fra kontekstmenuen." - -#: Thunar.xml:843(title) -#: Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "Opførselsindstillinger" - -#: Thunar.xml:845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "Du kan vælge den foretrukne opførsel til at påvirke filhåndteringen." - -# Fejlmeldt til xfce4-dev@xfce.org -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "Enkeltklik for at aktivere elementer" - -#: Thunar.xml:865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "Vælge denne for at udføre standardhandlingen for et element når du klikker på det. Når denne indstilling er valgt, og du peger på et element, vil titlen på elementet blive understreget og automatisk blive valgt, efter en kort forsinkelse." - -#: Thunar.xml:871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "Forsinkelsen kan angives under indstillingen. Den automatiske markering af elementer kan du også slå fra ved at rykke markøren til den yderste venstre position." - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "Dobbeltklik for at aktivere elementer" - -#: Thunar.xml:882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "Vælg denne indstilling for at udføre standardhandlingen for et element når du dobbeltklikker på det, og markér elementer med et enkelt klik." - -#: Thunar.xml:893(title) -#: Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "Avanceret indstillinger" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "Du kan styre filhåndteringens avancerede funktioner." - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "Mappetilladelser" - -#: Thunar.xml:915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "Vælg den handling der skal udføres når du ændrer på en mappes tilladelser i Egenskaber-dialogen. Du kan vælge at lade Thunar spørge hver gang du ændrer mappetilladelser, få den til at bruge standarden for de nye tilladelser kun på mappen eller til også at bruge den rekursivt på mappens indhold." - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "Arkivhåndtering" - -#: Thunar.xml:927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "Hvis Thunar blev installeret med understøtttelse af HAL og thunar-volman-pakken også er installeret, kan du slå den integrerede arkivhåndtering til. Se for detaljer om denne funktkion." - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "Tilpasning af Thunar" - -#: Thunar.xml:942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "Dette kapitel beskriver hvordan du ændrer bestemte dele af filhåndteringen for tilpasse den til dit behov." - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "\"Send til\"-menuen" - -#: Thunar.xml:950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "Thunar inkluderer en Send til-menu, der tilbyder mulige destinationer som filer og mapper kan sendes til. For at tilgå Send til-menuen, skal du vælge FilSend til fra hovedmenuen, eller højreklik på en fil eller mappe og vælg Send til." - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "\"Send til\"-menu" - -#: Thunar.xml:969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "Som standard indeholder Send til-menuen, et punkt der hedder Skrivebord (opret henvisning) til alle filer og mapper, som simpelthen opretter en henvisning til den valgte fil på skrivebordet. Derudover hvis Genvejspanelet er aktivt, vil menuen også inkludere et punkt der hedder Sidepanel (opret henvisning) til mapper, der tillader brugere at tilføje nye genveje til sidepanelet. Efter disse punkter vil Thunar vise flytbare drev der for øjeblikket, er tilsluttet computeren. I det ovenstående skærmbillede repræsenterer Floppydrevet en mulig destination for hvor filerne kan sendes til. Bemærk at enheden vil automatisk blive monteret når først det er valgt fra Send til-menuen, så du behøver ikke manuelt at montere den." - -#: Thunar.xml:979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "Derudover bliver Thunar også leveret med thunar-sendto-email-udvidelsesmodulet, der tilføjer punktet E-postmodtager til menuen, som så åbner e-postprogrammet med den valgte fil vedhæftet meddelelsen. Hvis markeringen indeholder mindst en mappe, vil de valgte elementer blive pakket ned i en ZIP-fil før de er vedhæftet meddelelsen. Modsat, hvis markeringen indeholder flere filer, eller en enkelt fil som er større end 200Kib, vil brugeren blive spurgt om filerne skal pakkes ned i og sendes som en ZIP-fil." - -#: Thunar.xml:987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "Ligesom de fleste funktioner i Thunar, kan Send til-menuen nemt udvides af brugere og programudviklere med nye destinationer, ved at bruge desktop entry files. Disse filer skal installeres i en af $XDG_DATA_DIRS/Thunar/sendto/ mapperne (see the XDG Base Directory Specification for detaljer om $XDG_DATA_DIRS variable)." - -#: Thunar.xml:996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "Destinationens MIME-type> .desktop angiver hvilke type filer der skal være til rådighed i Send til-menuen. F.eks. hvis du vil tilføje et punkt for et Flickr overførselsværktøj, så vil dette punkt kun vises hvis markeringen indeholder JPEG-filer (andre filformater er ikke understøttet af Flickr) og du ville så skulle tilføje en linie som MimeType=image/jpeg;. Hvis du ikke angiver nogen MimeType vil punktet blive vist for alle filtyper." - -#: Thunar.xml:1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "Et komplet eksempel ved brug af postr-progammet, er vist forneden:" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Integrér postr i\n" -"# \"Send til\"-menuen.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml:1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "Hvis du installerer denne fil i ~/.local/share/Thunar/sendto/ (opret mappen hvis den endnu ikke findes) Send til-menuen for JPEG-filer vil vise det nye punkt, Flickr, som kan bruges til at overføre JPEG-billeder til Flickr." - -#: Thunar.xml:1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "Thunar projektets Wiki indeholder forskellige eksempler på brugbare destinationer til Send til-menuen. Du er velkommen til at udvide Wikisiden med nye eksempler." - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "Miniaturegenererer" - -#: Thunar.xml:1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "Thunar bruger små værktøjer til at oprette miniaturer af bestemte filtyper og viser miniaturerne som forhåndsvisning af filindholdet. Disse små værktøjer bliver kaldt miniaturegenererer. Thunar bliver leveret med miniaturegenererer for billed- og skrifttypefiler, og gør automatisk brug af de installerede miniaturegenererer fra GNOME, hvis den er installeret med understøttelse af gconf. Brugere kan løbende udvide denne grundlæggende funktionalitet med miniaturegenererer til andre filtyper." - -#: Thunar.xml:1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "Hvis du planlægger at skrive en brugerdefineret miniaturegenerer, skal du starte med et program der accepterer mindst to kommandolinjeparametre, inddatafilen, som er af den filtype du vil understøtte og uddatafilen, som er en PNG-fil der oversættes med det format angivet af Standard for miniaturehåndtering. Derudover må dit program også acceptere den ønskede størrelse på miniaturen, som er valgfri men højt anbefalet. Hvis du skriver uddatafilen til en vilkårlig billedstørrelse, vil Thunar derefter skalere det til den ønskede størrelse, hvilket muligvis gør at der bliver produceret et mindre optimalt resultat end hvis miniaturen var oprettet med de anmodede mål." - -#: Thunar.xml:1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "Når først dit værktøj til at generere miniaturer er færdigt, skal du registrere din miniaturegenererer, så Thunar kan finde og bruge det. Derfor, alt du skal gøre er at installere en beskrivelsesfil til miniaturegenereren (en .desktop fil) i en de $XDG_DATA_DIRS/thumbnailers/ stier. F.eks. hvis du kun vil registrere miniaturegenereren til din brugerkonto, kan du installere filen i denne mappe ~/.local/share/thumbnailers/. .desktop for miniaturegenererer har det følgende format." - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "Filformatbeskrivelse til miniaturegenererer" - -#: Thunar.xml:1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "Miniaturegenerererbeskrivelsesfiler bruger Desktop Entry Formatet med en særlig type af X-miniaturegenererer og et særligt felt,X-Thumbnailer-Exec med nye feltkoder. Grundlæggende har en miniaturegenerererbeskrivelsesfil, det følgende format." - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Din-miniaturegenererer\n" -"MimeType=din-understøttede/MIME-type;\n" -"X-Thumbnailer-Exec=din-miniaturegenererer %i %o %s" - -#: Thunar.xml:1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "Versionen og indkodning er foreskrevet af Desktop Entry specifikationen, brug blot de værdier der er vist i det ovenstående eksempel. Typefeltet skal have den bestemte værdi X-Thumbnailer, ellers vil din miniature ikke blive genkendt. Navneværdien beskriver din miniature." - -#: Thunar.xml:1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "X-Thumbnailer-Exec feltet indeholder kommandoen til at køre din miniature, og understøtter særlige feltkoder der bliver erstattet når miniaturen køres. De genkendte feltkoder er følgende:" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml:1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "Den lokale sti til inddatafilen til oprettelsen af miniaturevisning, kan entet være en sti relativ til mappen hvor miniaturegenereren blev kørt, eller en fuld sti." - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml:1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "Den lokale sti til uddatafilen, hvor den oprettede miniature skal gemmes. Uddatafilen skal gemmes som en gyldig PNG-fil i overensstemmelse med miniaturestandarden. (se ovenstående). Bemærk at stien ikke må ende med .png, som har en betydning, hvis du kører særlige tredjepartsprogrammer." - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml:1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "Den ønskede størrelse på den generede miniature i pixels. Den parameter er valgfri." - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml:1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "Ligesom %i, men erstattet med URI'en af filen, fremfor stien. Dette blev tilføjet for at gøre det mere kompatibelt med GNOME." - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "Vil blive erstattet med et enkelt %." - -#: Thunar.xml:1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "Du skal inkludere mindst %o og %i eller %u, ellers vil din miniaturegenererer være ubrugelig." - -#: Thunar.xml:1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "MIME-Typen viser MIME-typerne - adskilt af et semikolon - for hvilke din miniaturegenerator er i stand til at vise forhåndsvisninger." - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "EPS miniaturegenererer-eksempel" - -#: Thunar.xml:1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "Dette eksempel demonsterer hvordan man skriver og installerer en ny miniaturegenererer til .eps-filer, som bruger convert-værktøjet der bliver leveret som en del af ImageMagick. Vi begynder først med et simpelt skript der kører convert for at generere en miniature i den ønskede størrelse." - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Eksempel på miniaturegenerererskript for EPS-filer.\n" -"#\n" -"# Anvendelse: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# kør convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml:1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "Gem det ovenstående skript til filen eps-thumbnailer, vær sikker på at den kan køres, og installér den i /usr/local/bin." - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thum" - -#: Thunar.xml:1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "Derefter skal vi oprette miniaturegenerererbeskrivelsesfilen eps-thumbnailer.desktop, der ser således ud:" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml:1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "Denne fil skal installeres i /usr/local/share/thumbnailers (opret mappen hvis den ikke eksisterer)." - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml:1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "Filen eps-thumbnailer.desktop bruger den særlige knap TryExec, som, hvis angivet, navngiver en kommando der skal være tilstede på systemet for at miniaturegeneratoren er brugbar. I dette tilfælde er vores skript ubrugeligt hvis programmet convert ikke er til stede." - -#: Thunar.xml:1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "Det sidste skridt er at regenere mellemlageret til miniaturegenereren så Thunar kan bruge din miniaturegenererer. Mellemlageret til miniaturegenererer er lokaliseret i $XDG_CACHE_HOME/Thunar/thumbnailers.cache (med mindre den er overskrevet af dig eller systemadministratoren, vil $XDG_CACHE_HOME pege på mappen ~/.cache/). Mellemlageret til miniaturegenereren er periodisk regenereret af Thunar, men du kan tvinge den til at regenerere det ved at køre thunar-vfs-update-thumbnailers-cache-1-værktøjet, der bliver leveret som en del af Thunar. Dette værktøj er som regel installeret i libexec i din installationssti (sbin på Debian/Ubuntu). Så f.eks. hvis Thunar er installeret i /usr, skal du køre værktøjet således:" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml:1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "Men vær sikker på at du kører programmet fra din brugerkonto, og ikke superbrugerkontoen, da mellemlageret til miniaturegenereren er gemt i din hjemmemappe, fremfor på selve systemet." - -#: Thunar.xml:1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "Hvis Thunar nu er oversat med understøttelse for filændringsovervågning (ved at bruge FAM- eller Gamin tjenester, vil den automatisk bruge det nye miniaturemellemlager inden for få sekunder, og er derefter istand til at oprette miniaturevisninger ved at bruge dine egne miniaturegenererer. Ellers kan du være nødt til at genstarte Thunar ved at bruge" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml:1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "for at lukke alle kørende udgaver, for derefter at starte den op igen fra din programstarter." - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Oprydning af miniaturevisninger" - -#: Thunar.xml:1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "De oprettede miniaturevisninger er gemt i mappen, ~/.thumbnails/ i overenstemmelse med Miniaturevisningsstandarden. Det kan være hjælpsomt at rydde op i mellemlageret for miniaturevisninger hvis du tester en ny miniaturevisning, ved at bruge" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml:1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "hvilket også vil give dig noget ledigt plads i din hjemmemappe. Da alle informationer i denne mappe, automatisk blev genereret fra filerne i dit system, vil du ikke miste følsomme data." - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "Avancerede emner" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "At masseomdøbe filer" - -#: Thunar.xml:1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "At masseomdøbe filer, betyder at omdøbe flere filer på samme tid ved at bruge et eller andet kriterie, der gælder for mindst af en af filerne. Thunar indeholder en masseomdøber, som kan køres separat ved at bruge Thunar -B eller indefra Thunar ved at vælge to eller flere filer i hovedområdet og trykke på F2 eller ved at vælge RedigérOmdøb... i hovedmenuen." - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "Masseomdøb filer" - -#: Thunar.xml:1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "Masseomdøberne kan bruges til ændre navnet på filerne, endelsen på filerne, eller både på navnet og filendelsen på filerne." - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "Fjern tegn." - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "Numerere filer." - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "Indsæt dato eller tidspunkt." - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "Indsæt eller overskriv tegn." - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "Søg og erstat tegn." - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "Konvertér til store bogstaver, små bogstaver eller camelcase." - -#: Thunar.xml:1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "Yderligere masseomdøbere kan være installeret som udvidelsesmoduler til Thunar. Se hjemmesiden forThunar udvidelsesmoduler for at se mulige udvidelser. The Thunar Projektets Wiki indeholder flere detaljer om denne funktion. Du er velkommen til at tilføje yderligere information til wikien." - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "UNIX filsystemet" - -#: Thunar.xml:1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "Selvom Thunar filhåndtering gør det godt ved at skjule detaljerne om det underliggende filsystem, så brugeren ikke skal bekymre sig om dem, er det nogen gange en god idé at forstå de grundlæggende begreber for at se hele billedet. Dette kapitel vil forsøge at give dig en kort introduktion til begreberne på UNIX filsystemet , som idag bliver brugt i alle udgaver af UNIX, inklusiv Linux." - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "Mapper og stier" - -#: Thunar.xml:1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "I et UNIX filsystem er alle mappe arrangeret i en simpel inverteret faldende træstruktur, der udvider sig fra en hovedmappe, som hedder rod-kataloget (udtrykket katalog er ofte brugt istedet for mappe) og vist som Filsystem i Thunar. Dette betyder at du kan komme fra en mappe til en anden, ved at gå op i træet indtil du når et fælles punkt, og så ned i træet igen igennem de rette undermapper indtil du når din destination." - -#: Thunar.xml:1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "Placeringen af enhver fil eller mappe i træet kan beskrives af dens sti. Stien er de mapper, du oppefra, skal gå igennem for at nå til målets mappe eller fil. F.eks. er /home/luke undermappen af luke af undermappen home af hovedmappen, og /home/luke/myfile.txt er filnavnet i myfile.txt i den undermappe. Det første / i disse stier repræsenterer hovedmappen." - -#: Thunar.xml:1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "Hver bruger har sin egen mappe til at opbevare personlige filer og indstillinger. Mappen hedder hjemmekataloget og er vist i Thunar som et særligt ikon med brugerens logindnavn. Mappen er ligesom Dokumenter fra Windows. De forskellige brugereres Hjemmekataloger i systemet er som regel lokaliseret under /home-mappen. F.eks. ville /home/luke være hjemmekataloget for brugeren af brugeren med logindnavnet luke, mens /home/jane ville være hjemmekataloget for brugeren med logindnavnet jane." - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "Filtyper" - -#: Thunar.xml:1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "Du har måske allerde hørt at alting er en fil i UNIX. Dette er sandt for de fleste elementer i UNIX systemer idag. Faktisk er selv enheder repræsenteret som særlige filer. Selvom det måske ikke giver mening til at begynde med, er det en af fordelene i UNIX og dets efterfølgere og har hjulpet med at opretholde en enkel kerne gennem årene, mens andre styresystemer er nødt til at indføre nye begreber for hver ny teknologi." - -#: Thunar.xml:1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "Dette er de fire vigtigste filtyper i UNIX-filsystemet." - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "Almindelige filer" - -#: Thunar.xml:1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "En almindelig fil kan indeholde tekst, et program eller anden data. Dette inkluderer billedfiler, lydfiler, kontordokumenter og videofiler. Begrebet fil er ofte brugt som henvisning til en almindelig fil." - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "Mappefiler" - -#: Thunar.xml:1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "Mapper er også filer i UNIX filsystemet. For at være nøjagtig er mapper en særlig fil, der indeholder en kortlægning af filnavne til filreferencer for hver enkelt fil der er inden i denne mappe." - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "Symbolske henvisningsfiler" - -#: Thunar.xml:1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "En symbolsk henvisning (ofte kaldt en symlink er en særlig fil der indeholder en sti til en anden fil i filsystemet. Symbolske henvisningsfiler indeholder derfor ikke nogen brugbar information i sig selv, men henviser bare til andre filer." - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "Enhedsfiler" - -#: Thunar.xml:1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "Som nævnt tidligere tilgås enheder (de fleste) også gennem filsystemet. Disse særlige enhedsfiler er som regel lokaliseret i /dev mappen. F.eks. repræsenterer den specielle fil /dev/hda den første IDE-disk på Linux." - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "Ofte Stillede Spørgsmål" - -#: Thunar.xml:1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "Meningen med dette kapitel er at samle de ret ofte stillede spørgsmål i forbindelse med arbejdet i Thunar. Hvis du kender til et spørgsmål der mangler fra denne side så indsend venligst en anmodning." - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Hvorfor kører Thunar ikke filer der er markeret som kørbare?" - -#: Thunar.xml:1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "Af sikkerhedsårsager vil Thunar kun køre filer af typen application/x-desktop, application/x-executable og application/x-shellscript. For skrivebordsfiler gælder det at kørselsfunktionen kun virker hvis filen er af typen Application og en gyldig Exec linje er indtastet eller af typen Link og en gyldig URL er angivet. For andre typer, er funktionen til rådighed hvis filen er markeret som kørbar, for den gældende bruger." - -#: Thunar.xml:1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "Bemærk også at for application/x-executable og application/x-shellscript gælder det at filernes typer ikke behøver at passe nøjagtigt med disse typer, men det er nok hvis typen har en oprindelse der passer med en af de to ovenstående. Eller hvis MIME-typen er et alias for en at de ovenstående." - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Hvor gemmer Thunar filernes metadata?" - -#: Thunar.xml:1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "Thunar tilknytter forskellige indstillinger med filer/mapper, som vi kalder metadata. Alle filers metadata er gemt i en tdb-databasefil, der også er kendt som metafilen. Databasefilen er gemt i $XDG_CACHE_HOME/Thunar/metafile.tdb og kan ses ved at bruge tdbtool, som er en del af Thunar (lokaliseret i tdb/ underkataloget)." - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Hvor bliver indstillingerne til Thunar gemt?" - -#: Thunar.xml:1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "Thunar gemmer brugerjusterede indstillinger (samt skjulte indstillinger) i en .ini-fil, som er lokaliseret i $XDG_CONFIG_HOME/Thunar/thunarrc og kan ses ved brug af et tekstbehandlingsprogram. Se docs/README.thunarrc for en oversigt over diverse indstillinger." - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Hvordan skal man bruge musebevægelser i Thunar?" - -#: Thunar.xml:1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "Thunar understøtter for øjeblikket grundlæggende understøttelse af såkaldte musebevægelser i ikonvisning. Du kan bruge disse musebevægelser ved at holde den midterste knap (som regel musehjulet) nede, mens musemarkøren er i baggrundsområdet af det element der er vist i ikonvisning (ethvert område der ikke er dækket af et ikon eller tekst). Nu kan du bevæge markøren i fire retninger for at udføre bestemte handlinger, som er beskrevet herunder." - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "Venstre" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr " - åbner den sidste anvendte mappe" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "Op" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr " - åbner den forrige mappe" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "Højre" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr " - åbner den næste anvendte mapppe" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "Ned" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr " - opdaterer den nuværende mappe" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "Hvordan tildeler jeg forskellige tastaturgenveje?" - -#: Thunar.xml:1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "Hvis du vil gentildele en genvej, understøtter Thunar standard-GTK+ måden at ændre genveje på: simpelthen svæv over menupunktet med musemarkøren og tryk på den tastaturgenvej du vil gentildele den til." - -#: Thunar.xml:1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "For at slette en tastaturtildeling, tryk da på Backspace-knappen men du er på menupunktet." - -#: Thunar.xml:1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "Hvis genvejen ikke ændrer sig, skal du slå den funktion til i GTK+. Dette kan gøres på 3 måder:" - -#: Thunar.xml:1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "Hvis du kører Xfce 4.3 eller derover kan du slå Redigérbare menuacceleratorer til i Brugerfladeindstillinger-dialogen." - -#: Thunar.xml:1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "Hvis du kører GNOME kan du slå Redigérbare menuacceleratorer til i Menu og værktøjslinjer kontrolcenterdialogen." - -#: Thunar.xml:1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "Ellers, indsæt følgende i din ~/.gtkrc-2.0 fil (opret filen, hvis den ikke eksisterer):gtk-can-change-accels=1" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Hvor gemmer Thunar dens tastaturgenveje?" - -#: Thunar.xml:1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "De tilpassede tastaturgenveje er gemt i standard-GTK+ accel map formatet i en fil, lokaliseret, i $XDG_CONFIG_HOME/Thunar/accels.scm. Linjer der starter med ; er kommentarer. Se dokumentationen til GTK+ for detaljer om filformatet." - -#: Thunar.xml:1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "Hvis du er en pakker eller en systemadministrator og du vil anvende en standard for tastaturgenveje på hele systemet, der er anerledes end de standardgenje der er i Thunar, kan du oprette en fil Thunar/accels.scm i en af $XDG_CONFIG_DIRS. F.eks. hvis /etc/xdg er en del af $XDG_CONFIG_DIRS (standarden på de fleste Linux distributioner), kan du installere en standard der gælder for hele systemet til /etc/xdg/Thunar/accels.scm. Thunar vil så indlæse genveje fra denne fil ved den første opstart." - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "Brugerhjælp" - -#: Thunar.xml:1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "For at indrapportere en fejl eller lave et forslag vedr. dette program eller denne manual, skal du bruge fejlrapporteringssytemet på http://bugzilla.xfce.org/. Husk på at brugbare fejlrapporter er dem der får rettet fejl, en brugbar rapport har derfor to egenskaber:" - -#: Thunar.xml:1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "Genskabbare. Hvis udvikleren ikke selv kan se fejlen, og derfor bevise at den eksisterer, vil han overhovedet ikke være istand til at rette den. Hver eneste detalje du kan tilbyde hjælper." - -#: Thunar.xml:1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "Specific. Jo hurtigere udvikleren kan isolere problemet til et bestemt område, jo større sandsynlighed er der for at han specifikt vil ordne det." - -#: Thunar.xml:1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "I det tilfælde at du ønsker at anmode om en ny funktion, så gør det venligst klart hvorfor du anser det som en forbedring af programmet. Det er mere sandsynligt at en ny funktion bliver tilføjet hvis du tilbyder nogle gode argumenter for den nye funktion. Chancerne for at den bliver tilføjet er endnu større hvis du medsender en programrettelse med den anmodede funktion, integreret i programmet. Vær dog sikker på at du får læst filen HACKING - før du begynder at omskrive kildekoden." - -#: Thunar.xml:1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "Derudover hvis du har spørgsmål om brugen eller installation af dette programmel, så spørg venligst på thunar-dev postliste eller indstil din IRC client til irc.freenode.net, tilslut dig kanalen #thunar og spørg efter hjælp." - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "Om @PACKAGE_NAME@" - -#: Thunar.xml:1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ er skrevet af Benedikt Meurer (benny@xfce.org). Se Thunar hjemmesiden for mere information." - -#: Thunar.xml:1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "Denne dokumentation er skrevet af Benedikt Meurer(benny@xfce.org). Den seneste udgave af dette dokument er altid tilrådighed på Thunar's hjemmesiden." - -#: Thunar.xml:1605(para) -msgid "This software is distributed 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." -msgstr "Dette programmel er udgivet under de samme betingelser som GNU General Public License, udgivet af Free Software Foundation; enten version 2, eller (op til dig) enhver senere udgave af licensen." - -#: Thunar.xml:1611(para) -msgid "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." -msgstr "Du burde have modtaget en kopi af GNU General Public License sammen med dette program; hvis ikke så skriv til Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "" -"Lars Christian Jensen \n" -"\n" -"Dansk-gruppen \n" -"Mere info: http://www.dansk-gruppen.dk" - -#~ msgid ".png" -#~ msgstr ".png" -#~ msgid "%" -#~ msgstr "%" - diff -Nru thunar-1.2.3/docs/manual/po/el.po thunar-1.6.10/docs/manual/po/el.po --- thunar-1.2.3/docs/manual/po/el.po 2011-01-08 14:08:54.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/el.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1275 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: thunar\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: \n" -"Last-Translator: George Vasilakos \n" -"Language-Team: Greek \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\n" -"X-Poedit-Language: Greek\n" -"X-Poedit-Country: GREECE\n" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "" - -#: Thunar.xml:25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "" - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "" - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "" - -#: Thunar.xml:56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "" - -#: Thunar.xml:62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "" - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "" - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "" - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "" - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "" - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "" - -#: Thunar.xml:80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "" - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "" - -#: Thunar.xml:97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "" - -#: Thunar.xml:108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "" - -#: Thunar.xml:115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "" - -#: Thunar.xml:123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "" - -#: Thunar.xml:131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "" - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "" - -#: Thunar.xml:141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "" - -#: Thunar.xml:147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "" - -#: Thunar.xml:153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "" - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "" - -#: Thunar.xml:162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "" - -#: Thunar.xml:175(phrase) -#: Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "" - -#: Thunar.xml:184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "" - -#: Thunar.xml:195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "" - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "" - -#: Thunar.xml:214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "" - -#: Thunar.xml:220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "" - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "" - -#: Thunar.xml:228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "" - -#: Thunar.xml:234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "" - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "" - -#: Thunar.xml:243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "" - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "" - -#: Thunar.xml:253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "" - -#: Thunar.xml:259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "" - -#: Thunar.xml:264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "" - -#: Thunar.xml:270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "" - -#: Thunar.xml:277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "" - -#: Thunar.xml:283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "" - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "" - -#: Thunar.xml:292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "" - -#: Thunar.xml:298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "" - -#: Thunar.xml:303(para) -#: Thunar.xml:383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "" - -#: Thunar.xml:308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "" - -#: Thunar.xml:315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "" - -#: Thunar.xml:324(title) -#: Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "" - -#: Thunar.xml:326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "" - -#: Thunar.xml:333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "" - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "" - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "" - -#: Thunar.xml:348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "" - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "" - -#: Thunar.xml:372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "" - -#: Thunar.xml:386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "" - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "" - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "" - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "" - -#: Thunar.xml:405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "" - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "" - -#: Thunar.xml:414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "" - -#: Thunar.xml:419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "" - -#: Thunar.xml:426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "" - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "" - -#: Thunar.xml:436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "" - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "" - -#: Thunar.xml:456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "" - -#: Thunar.xml:464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "" - -#: Thunar.xml:470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "" - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "" - -#: Thunar.xml:481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "" - -#: Thunar.xml:487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "" - -#: Thunar.xml:494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "" - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "" - -#: Thunar.xml:512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "" - -#: Thunar.xml:519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "" - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "" - -#: Thunar.xml:529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "" - -#: Thunar.xml:533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "" - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "" - -#: Thunar.xml:546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" - -#: Thunar.xml:550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "" - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "" - -#: Thunar.xml:562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "" - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "" - -#: Thunar.xml:576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "" - -#: Thunar.xml:582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "" - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "" - -#: Thunar.xml:592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" - -#: Thunar.xml:602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "" - -#: Thunar.xml:612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "" - -#: Thunar.xml:617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "" - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "" - -#: Thunar.xml:627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "" - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "" - -#: Thunar.xml:637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "" - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "" - -#: Thunar.xml:650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "" - -#: Thunar.xml:656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "" - -#: Thunar.xml:668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" - -#: Thunar.xml:678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "" - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "" - -#: Thunar.xml:691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "" - -#: Thunar.xml:697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "" - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "" - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "" - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "" - -#: Thunar.xml:709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "" - -#: Thunar.xml:718(title) -#: Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "" - -#: Thunar.xml:720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "" - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "" - -#: Thunar.xml:742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "" - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "" - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "" - -#: Thunar.xml:763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "" - -#: Thunar.xml:768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "" - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "" - -#: Thunar.xml:779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "" - -#: Thunar.xml:790(title) -#: Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "" - -#: Thunar.xml:792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "" - -#: Thunar.xml:808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "" - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "" - -#: Thunar.xml:819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "" - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "" - -#: Thunar.xml:829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "" - -#: Thunar.xml:843(title) -#: Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "" - -#: Thunar.xml:845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "" - -#: Thunar.xml:865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "" - -#: Thunar.xml:871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "" - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "" - -#: Thunar.xml:882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "" - -#: Thunar.xml:893(title) -#: Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "" - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "" - -#: Thunar.xml:915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "" - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "" - -#: Thunar.xml:927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "" - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "" - -#: Thunar.xml:942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "" - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "" - -#: Thunar.xml:950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "" - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "" - -#: Thunar.xml:969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "" - -#: Thunar.xml:979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "" - -#: Thunar.xml:987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "" - -#: Thunar.xml:996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "" - -#: Thunar.xml:1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" - -#: Thunar.xml:1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "" - -#: Thunar.xml:1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "" - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "" - -#: Thunar.xml:1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "" - -#: Thunar.xml:1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "" - -#: Thunar.xml:1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "" - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "" - -#: Thunar.xml:1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "" - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "" - -#: Thunar.xml:1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "" - -#: Thunar.xml:1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "" - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "" - -#: Thunar.xml:1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "" - -#: Thunar.xml:1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "" - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "" - -#: Thunar.xml:1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "" - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "" - -#: Thunar.xml:1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "" - -#: Thunar.xml:1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "" - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "" - -#: Thunar.xml:1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "" - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" - -#: Thunar.xml:1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "" - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" - -#: Thunar.xml:1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "" - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" - -#: Thunar.xml:1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "" - -#: Thunar.xml:1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "" - -#: Thunar.xml:1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "" - -#: Thunar.xml:1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "" - -#: Thunar.xml:1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "" - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "" - -#: Thunar.xml:1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "" - -#: Thunar.xml:1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "" - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "" - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "" - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "" - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "" - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "" - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "" - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "" - -#: Thunar.xml:1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "" - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "" - -#: Thunar.xml:1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "" - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "" - -#: Thunar.xml:1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "" - -#: Thunar.xml:1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "" - -#: Thunar.xml:1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "" - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "" - -#: Thunar.xml:1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "" - -#: Thunar.xml:1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "" - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "" - -#: Thunar.xml:1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "" - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "" - -#: Thunar.xml:1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "" - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "" - -#: Thunar.xml:1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "" - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "" - -#: Thunar.xml:1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "" - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "" - -#: Thunar.xml:1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "" - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "" - -#: Thunar.xml:1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "" - -#: Thunar.xml:1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "" - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "" - -#: Thunar.xml:1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "" - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "" - -#: Thunar.xml:1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "" - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "" - -#: Thunar.xml:1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "" - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr "" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr "" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr "" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr "" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "" - -#: Thunar.xml:1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "" - -#: Thunar.xml:1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "" - -#: Thunar.xml:1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "" - -#: Thunar.xml:1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "" - -#: Thunar.xml:1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "" - -#: Thunar.xml:1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "" - -#: Thunar.xml:1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "" - -#: Thunar.xml:1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "" - -#: Thunar.xml:1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "" - -#: Thunar.xml:1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "" - -#: Thunar.xml:1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "" - -#: Thunar.xml:1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "" - -#: Thunar.xml:1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "" - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "" - -#: Thunar.xml:1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" - -#: Thunar.xml:1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "" - -#: Thunar.xml:1605(para) -msgid "This software is distributed 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." -msgstr "" - -#: Thunar.xml:1611(para) -msgid "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." -msgstr "" - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "" - diff -Nru thunar-1.2.3/docs/manual/po/es.po thunar-1.6.10/docs/manual/po/es.po --- thunar-1.2.3/docs/manual/po/es.po 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/es.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1285 +0,0 @@ -# Spanish translations for Thunar package. -# Copyright (C) 2004-2006 Benedikt Meurer. -# This file is distributed under the same license as the Thunar package. -# josem , 2006. -# Javier Sánchez , 2009 -# -msgid "" -msgstr "" -"Project-Id-Version: Thunar 0.5.0rc2\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-03-30 14:05+0100\n" -"Last-Translator: Abel Martín \n" -"Language-Team: Spanish/ES \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml12(title) -msgid "Thunar File Manager" -msgstr "Administrador de archivos Thunar" - -#: Thunar.xml17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "La copia, distribución y/o modificación de este documento está permitida bajos los términos de la GNU Free Documentation License, Versión 1.1 o posterior publicada por la Free Software Foundation; sin Secciones Invariantes, sin textos de la cubierda delantera y sin textos de la cubierta trasera. La licencia completa está disponible en la Free Software Foundation." - -#: Thunar.xml37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml40(jobtitle) -msgid "Software developer" -msgstr "Desarrollador del software" - -#: Thunar.xml41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml42(orgdiv) -msgid "System development" -msgstr "Desarrollo del sistema" - -#: Thunar.xml43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Este manual describe la versión @PACKAGE_VERSION@ de @PACKAGE_NAME@" - -#: Thunar.xml54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Introdución a @PACKAGE_NAME@" - -#: Thunar.xml56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar es un nuevo y moderno administrador de archivos para el entorno de escritorio Xfce. Thunar ha sido diseñado para ser rápido y fácil de usar. Su interfaz de usuario es clara e intuitiva, y no incluye ninguna opción confusa o inútil de forma predeterminada. Thunar es rápido y fiable, con una buena velocidad de inicio y de carga de directorio." - -#: Thunar.xml62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "El gestor de archivos Thunar proporciona un punto de acceso integrado a tus archivos y aplicaciones. Puede usar el gestor de archivos para lo siguiente:" - -#: Thunar.xml68(para) -msgid "Create folders and documents." -msgstr "Crear directorios y documentos." - -#: Thunar.xml69(para) -msgid "Display your files and folders." -msgstr "Mostrar sus archivos y directorios." - -#: Thunar.xml70(para) -msgid "Manage your files and folders." -msgstr "Manipular sus archivos y directorios" - -#: Thunar.xml71(para) -msgid "Run and manage custom actions." -msgstr "Ejecutar y manejar actiones personalizadas." - -#: Thunar.xml72(para) -msgid "Access Removable Media." -msgstr "Acceder a medios extraíbles." - -#: Thunar.xml78(title) -msgid "The File Manager Window" -msgstr "Administrador de archivos Thunar" - -#: Thunar.xml80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "Por defecto, la ventana del administrador de archivo consiste en un panel de atajos en el lado izquierdo, el área principal a la derecha y una barra de lugares encima del área principal." - -#: Thunar.xml92(phrase) -msgid "File Manager Window" -msgstr "Administrador de archivos Thunar" - -#: Thunar.xml97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "El panel de atajos proporciona atajos a diferentes carpetas de su sistema. El primer atajo le llevará a su carpeta personal, la carpeta en la que almacena toda su información personal, y que por lo tanto tendrá el nombre del usuario actual. El segundo atajo le llevará a la papelera, la cual almacena archivos borrados que pueden ser recuperados posteriormente. El tercer atajo le lleva a la carpeta de escritorio, que contiene los archivos y carpetas que aparecen en el escritorio. El cuarto atajo le llevará al directorio raíz de sus sistema de archivos: quizá desee examinarlo un poco, aunque puede resultarle confuso si es nuevo en Linux/UNIX. Sólo tiene que hacer clic en las diferentes carpetas para ver qué hay dentro." - -#: Thunar.xml108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "Debajo del atajo para el sistema de archivos, se mostrarán los dispositivos y soportes extraíbles. En la imagen de arriba, puede ver un atajo a la unidad de disquete. Haga clic en estos atajos para acceder a los datos almacenados en dispositivos y soportes extraíbles. Consulte para más detalles." - -#: Thunar.xml115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "Los restantes enlaces directos son definidos por el usuario. Añada sus propios enlaces simplemente arrastrando directorios al Panel de atajos. Ellos permiten acceder instantáneamente a directorios importanes. Para borrar un enlace previamente añadido, haga clic derecho en el atajo y seleccione Eliminar acceso directo. Para renombrar un enlace previamente añadido, haga clic derecho en el enlace y elija Renombrar enlace directo. Tenga en cuenta que esta acción solo afecta al enlace, no a los directorios referenciados por ellos." - -#: Thunar.xml123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "El area principal siempre mostrará los contenidos del directorio actual. Haga doble clic en directorios para entrar en ellos y clic derecho en archivos o directorios para ver un menú contextual que ofrece algunas opciones para hacer con ellos. Seleccione varios archivos dibujando un rectángulo sobre ellos con el ratón. Alternativamente, seleccione un archivo, mantenga pulsada la tecla Shift, e incremente o decremente la selección usando las teclas de flecha." - -#: Thunar.xml131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "La barra de direcciones siempre mostrará la ruta del directorio en que actualmente se encuentre. Usted puede hacer clic en cualquier boton de la barra para cambiar al directorio que represente. Un clic derecho sobre un boton mostrará un menú contextual con algunas opciones. " - -#: Thunar.xml139(title) -msgid "Customizing the Appearance" -msgstr "Personalizar el aspecto" - -#: Thunar.xml141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "Hay varias formas para personalizar la apariencia de las ventanas del gestor de ficheros. En caso de que no le gusten el modo en que se muestran los iconos, elija VerVer como lista detallada desde el menú principal para ver los contenidos del directorio actual como una lista." - -#: Thunar.xml147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "Usted puede poner una barra de herramientas en lugar de una de direcciones seleccionando VerSelector de lugarEstilo de la barra de herramientas en el menú principal." - -#: Thunar.xml153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "En el caso de que prefiera una vista de árbol en el panel izquierdo, seleccione VerPanel lateralÁrbol en el menú principal." - -#: Thunar.xml160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Columnas visibles en vista detallada" - -#: Thunar.xml162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "Si prefiere ver los contenidos del directorio como una lista, usando Ver como lista detallada, usted puede personalizar las columnas visibles en este modo. Para personalizar las columnas visibles, seleccione VerConfigurar columnas... en el menú principal." - -#: Thunar.xml175(phrase) Thunar.xml182(guilabel) -msgid "Visible Columns" -msgstr "Columnas Visibles" - -#: Thunar.xml184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "Seleccione las columnas que quiera ver de la lista de columnas disponibles. Haga clic Subir o Bajar para cambiar el orden de las columnas. Haga clic para Usar predeterminado deshacer los cambios." - -#: Thunar.xml193(guilabel) -msgid "Column Sizing" -msgstr "Tamaño de columna" - -#: Thunar.xml195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "Seleccione la opción Expandir automáticamente las columnas según se necesite si quiere que las columnas se expandan automáticamente si es encesario para que el texto se visualize completamente." - -#: Thunar.xml208(title) -msgid "Working with Files and Folders" -msgstr "Trabajar con archivos y directorios" - -#: Thunar.xml212(title) -msgid "Opening Files" -msgstr "Abriendo archivos" - -#: Thunar.xml214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "Cuando abre un fichero, el gestor de ficheros realiza la acción predeterminada para ese tipo de fichero. Por ejemplo, abriendo un fichero de texto mostrará éste con el editor de texto predeterminado, mientras que abriendo una imagen la mostrará abriendo el visor de imágenes predeterminado." - -#: Thunar.xml220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "El gestor de ficheros comprueba la extensión del archivo para determinar su tipo. Si un archivo no tiene una extensión conocida, el gestor examina su contenido." - -#: Thunar.xml226(title) -msgid "Executing the Default Action" -msgstr "Ejecutar la acción por defecto" - -#: Thunar.xml228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "Para ejecutar la acción por defecto en un archivo, haga doble clic en él. Por ejemplo, la acción predeterminada en los archivos de audio es reproducirlos con el reproductor predeterminado. En este caso, usted puede hacer doble clic en el archivo para abrir el reproductor." - -#: Thunar.xml234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "Usted puede configurar Thunar para que ejecute la acción predeterminada con un solo clic. Para información, consulte ." - -#: Thunar.xml241(title) -msgid "Executing Non-Default Actions" -msgstr "Ejecutando acciones no predeterminadas" - -#: Thunar.xml243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "Para ejecutar otras acciones en lugar de las predeterminadas en un archivo, seleccione el archivo en el que desee realizar la acción. Seleccione la acción que desee de las disponibles en Abrir con en el menú Archivo o en el submenú." - -#: Thunar.xml251(title) -msgid "Adding Actions" -msgstr "Añadiendo acciones" - -#: Thunar.xml253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "Para añadir acciones asociadas a un tipo de fichero, realize los siguientes pasos:" - -#: Thunar.xml259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "En el area principal, seleccione el fichero del tipo que desee añadir una acción." - -#: Thunar.xml264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "Seleccione ArchivoAbrir con otra aplicación... desde el menú principal." - -#: Thunar.xml270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "Elija una aplicación en el cuadro de diálogo Abrir con o seleccione Usar un comando personalizado y busque el programa con que quiere abrir este tipo de archivos." - -#: Thunar.xml277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "La acción que ha elegido está ahora añadida a la lista de acciones para ese tipo particular. Si activa la opción Usar como predeterminado para este tipo de archivo o no había ninguna acción anteriormente asociada para este tipo, la recién añadida es ahora la predeterminada." - -#: Thunar.xml283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "También puede añadir acciones usando el botón Abrir con bajo ArchivoPropiedades...." - -#: Thunar.xml290(title) -msgid "Modifying Actions" -msgstr "Modificanado acciones" - -#: Thunar.xml292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "Para modificar acciones asociadas con un archivo un tipo de archivo, realize los siguientes pasos:" - -#: Thunar.xml298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "En el area principal, seleccione el archivo del tipo que desee modificar la acción." - -#: Thunar.xml303(para) Thunar.xml383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "Elija ArchivoPropiedades... desde el menú principal." - -#: Thunar.xml308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "Seleccione la nueva acción por defecto utilizando el botón Abrir con o añada una nueva acción seleccionando Otra aplicación... del menú." - -#: Thunar.xml315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "Para eliminar una acción añadida anteriormente para un tipo de archivo, vaya hasta el cuadro de diaĺogo Abrir con descrito anteriormente, haga clic derecho en la acción que desee remover y elija Eliminar lanzador." - -#: Thunar.xml324(title) Thunar.xml361(phrase) -msgid "File Properties" -msgstr "Propiedades de archivo" - -#: Thunar.xml326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "La ventana de propiedades de archivo muestra más información sobre cualquier archivo o directorio en el gestor de archivos. Con esta ventana, usted puede realizar lo siguiente:" - -#: Thunar.xml333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "Cambiar el icono para archivos especiales, como lanzadores de aplicaciones o direcciones URL." - -#: Thunar.xml338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "Añadir o eliminar emblemas para un archivo o directorio." - -#: Thunar.xml343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "Cambiar los permisos UNIX de un archivo o directorio." - -#: Thunar.xml348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "Selecciona que aplicación usar para abrir un fichero y otros del mismo tipo." - -#: Thunar.xml366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "Para abrir la ventana de propiedades, realiza los siguientes pasos:" - -#: Thunar.xml372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "Selecciona el archivo o directorio cuyas propiedades quieres examinar o cambiar. Actualmente no se puede seleccionar varios objetos a la vez y ver las propiedades que tienen en común." - -#: Thunar.xml386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "Click-derecho en el objeto elegido y selecciona Propiedades... del menú contextual." - -#: Thunar.xml389(para) -msgid "Press AltReturn." -msgstr "Presione AltReturn." - -#: Thunar.xml379(para) -msgid "Do one of the following: " -msgstr "Realize una de las siguientes: " - -#: Thunar.xml400(title) -msgid "Using Removable Media" -msgstr "Usar soportes extraíbles." - -#: Thunar.xml403(title) -msgid "Accessing Removable Media" -msgstr "Acceder a soportes extraíbles." - -#: Thunar.xml405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "Thunar soporta soportes extraíbles si fue compilado con soporte para HAL, o usted utiliza FreeBSD. Sin embargo en FreeBSD 6.0 o más recientes, es recomendable usar HAL antes que el soporte nativo proporcionado por Thunar." - -#: Thunar.xml412(title) -msgid "To Mount Media" -msgstr "Montar dispositivo" - -#: Thunar.xml414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "Montar soportes extraibles es hacer el sistema de ficheros de éste accesible. Cuando se monta un soporte, el sistema de ficheros de esté es asociado a un subdirectorio de su sistema de ficheros." - -#: Thunar.xml419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "Para acceder al soporte, insertelo en el dispositivo apropiado o conéctelo a su ordenador (por ejemplo, conecte un pendrive USB en uno de sus puertos USB). Un objeto que representa al dispositivo se añadirá al panel lateral del administrador de archivos. Si xfdesktop está ejecutándose y configurado para mostrar Iconos de archivo/lanzador este objeto se añadirá también a su escritorio." - -#: Thunar.xml426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "Para montar el soporte, haga clic en el objeto que lo representa. Por ejemplo, para montar un disquete, haga clic en el objeto Unidad de disquete en el panel lateral. El gestor de archivos añadirá ahora el sistema de ficheros del soporte a la jerarquía de su sistema y mostrará los contenidos del disquete en el area principal." - -#: Thunar.xml434(title) -msgid "To Eject Media" -msgstr "Para expulsar soportes" - -#: Thunar.xml436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "Si el dispositivo del soporte es motoroziado (por ejemplo, una unidad de CD-ROM), haga clic derecho en el objeto del soporte en el panel lateral o en el escritorio y seleccione Expulsar volumen. El soporte será expulsado del dispositivo en pocos segundos. Si el dispositivo no es motorizado (por ejemplo, un disquete o una unidad USB), haga clic derecho en el objeto del soporte y elija Desmontar volumen. Después de un corto periodo de tiempo, una notificación aparecerá para informarle de que puede retirar de forma segura el soporte o desconectar el dispositivo de la computadora." - -#: Thunar.xml451(phrase) -msgid "Unmount notification" -msgstr "Notificación de desmontado" - -#: Thunar.xml456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "Sin embargo esta notificación solo aparecerá si el soporte para libnotify está activado, y usted tiene instalado un servicio de notificaciones. Un servicio de notificaciones para Xfce está disponible desde Xfce Goodies Project. Si el soporte para notificaciones no está disponible, espere hasta que el menú contextual desaparezca antes de retirar el soporte o desconectar el dispositivo." - -#: Thunar.xml464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "Tenga en cuenta que no puede expulsar o desmontar soportes que estén en uso por una o más aplicaciones. Por tanto, si el gestor de archivos rehúsa expulsar el soporte, asegúrese de que cierra todas las aplicaciones que estén accediendo al soporte, y también de las aplicaciones que se ejecuten en ventanas de terminal." - -#: Thunar.xml470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "Asegúrese de desmontar los soportes removibles antes de expulsarlos. No extraiga un un disquete de la disquetera antes de haberlo desmontado. No desconecte una memoria USB antes de desmontarla. Si extrae cualquier soporte antes de desmontarlo puede ocasionar pérdida de información o destruir el sistema de ficheros. " - -#: Thunar.xml479(title) -msgid "Management of Removable Drives and Media" -msgstr "Administración de unidades y soportes extraíbles" - -#: Thunar.xml481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "Thunar también es capaz de controlar automáticamente dispositivos removibles y soportes si el paquete thunar-volman está instalado en su sistema. Esta funcionalidad requiere soporte para HAL." - -#: Thunar.xml487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "Ahora, si el soporte para HAL está disponible y thunar-volman está instalado en su sistema, usted puede activar el Gestor de volúmenes de Thunar. Para ello, abra las preferencias del gestor de archivos, vaya a la página Avanzado y seleccione el botón Activar gestión de volúmenes ." - -#: Thunar.xml494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "El siguiente paso es personalizar la administración de los soportes y los dispositivos removibles a sus necesidades. Haga clic en el enlace Configurar en la sección de Gestor de volúmenes, debajo del botón. El diálogo de configuración del Removable Drives and Media será mostrado." - -#: Thunar.xml507(phrase) -msgid "Removable Drives and Media" -msgstr "Unidades y soportes extraíbles." - -#: Thunar.xml512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "Si usted ha usado gnome-volume-manager previamente, debería sentirse cómodo, porque ha sido diseñada para parecerse y comportarse de forma similar a gnome-volume-manager. Las preferencias se dividen por categorías de dispositivos para facilitar la localización de la opción para su dispositivo específico." - -#: Thunar.xml519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "La página Almacenamiento contiene las opciones más importantes. Como su nombre sugiere, estas opciones aplican solo a dispositivos de almacenamiento como discos externos, lápices USB y CD-ROMs. Las opciones de Almacenamiento extraíble se describen en detalle más abajo." - -#: Thunar.xml527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Montar dispositivos extraíbles al conectar en caliente" - -#: Thunar.xml529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "Active esta opción para montar automáticamente sistemas de archivos en dispositivos extraíbles (por ejemplo, discos duros o lápices USB) cuando dichos dispositivos se conectan al ordenador." - -#: Thunar.xml533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "Esta opción debe ser activada para determinadas funciones necesarias para trabajar con dispositivos extraíbles. Por ejemplo, si desactiva esta opción, algunos tipos de reproductores de música portátiles podrían dejar de ser detectados y por tanto, aunque active la opción Reproducir archivos de música al conectar en la página Multimedia, el comando especificado no se ejecutará cuando conecte su reproductor de música portátil." - -#: Thunar.xml544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Montar soportes extraíbles al insertar" - -#: Thunar.xml546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "Active esta opción para montar automáticamente sistemas de archivos en soportes extraíbles (por ejemplo, CD-ROMs o DVDs) cuando los inserte en la unidad." - -#: Thunar.xml550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "Esta opción se debe activar para determinadas funciones necesarias para operar con soportes extraíbles. Por ejemplo, si desactiva esta opción, será imposible detectar si el soporte extraíble tiene capacidades de auto-ejecución, y por tanto la opción Auto-ejecutar programas en nuevas unidades y soportes no tiene efecto para soportes extraíbles." - -#: Thunar.xml560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Examinar soporte extraíble al ser insertado" - -#: Thunar.xml562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "" - -#: Thunar.xml574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Arrancar automáticamente programas en nuevos discos y dispositivos." - -#: Thunar.xml576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "" - -#: Thunar.xml582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "" - -#: Thunar.xml590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "" - -#: Thunar.xml592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" - -#: Thunar.xml602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "Las siguientes opciones permiten especificar un comando para ejecutar cuando cierto tipo de soporte es insertado o se conecta algún dispositivo externo. El comando puede utilizar tres variables especiales que se sustituirán cuando el comando se ejecute:" - -#: Thunar.xml610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "Cada aparición de %d en el comando se sustituirá con la ruta del dispositivo nuevo añadido. Por ejemplo, si inserta una memoria USB, la ruta del archivo del dispositivo será /dev/da0s1 o /dev/sda1." - -#: Thunar.xml617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "Si ningún archivo de dispositivo es asociado con el dispositivo o el dispositivo no se puede encontrar por alguna razón, la variable %d se sustituirá con una cadena vacía." - -#: Thunar.xml625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "Cada aparición del %h en el comando se sustituirá con la HAL UDI del nuevo dispositivo añadido." - -#: Thunar.xml635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "Cada aparición de %m en el comando se sustituirá con el punto de montaje donde el nuevo disposistivo ha sido montado. Si el dispositivo no puede ser montado (por ejemplo impresoras o teclados) o el montaje automático está deshabilitado, %m se sustituirá con la cadena vacía." - -#: Thunar.xml648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "" - -#: Thunar.xml650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "" - -#: Thunar.xml656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "" - -#: Thunar.xml668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" - -#: Thunar.xml678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "" - -#: Thunar.xml689(title) -msgid "File Management Preferences" -msgstr "Preferencias del administrador de archivos" - -#: Thunar.xml691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "Use el diálogo de Preferencias del administrador de archivos para configurar las preferencias del administrador de archivos Thunar. " - -#: Thunar.xml697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "El diálogo Preferencias del administrador de archivos se divide en cuatro páginas con diferentes opciones, cada una se describe abajo en secciones separadas. Básicamente puede configurar las preferencias en las siguientes categorías:" - -#: Thunar.xml703(para) -msgid "The default settings for the views." -msgstr "La configuración predeterminada para las vistas." - -#: Thunar.xml704(para) -msgid "The default settings for the side pane." -msgstr "La configuración por defecto para el panel lateral." - -#: Thunar.xml705(para) -msgid "The behavior of the file manager windows." -msgstr "El comportamiento de las ventanas del administrador de archivos." - -#: Thunar.xml706(para) -msgid "Advanced features of the file manager." -msgstr "Características avanzandas del administrador de archivos." - -#: Thunar.xml709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "Thunar también soporta un grupo de autodenominadas Hidden Options, que controlan varias caracterísitcas avanzadas del administrador de archivos pero no son incluídas para mantener el diálogo de preferencias simple. El archivo README.thunarrc que viene incluído en Thunar describe todas las opciones con detalle." - -#: Thunar.xml718(title) Thunar.xml733(phrase) -msgid "Views Preferences" -msgstr "Preferencias de vista" - -#: Thunar.xml720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "Puede especificar una vista por defecto, seleccionar opciones de ordenación y de visualización. También puede espeficiar donde se mostrarán las miniaturas para los tipos que estén soportados." - -#: Thunar.xml740(guilabel) -msgid "View new folder using" -msgstr "Ver las nuevas carpetas usando" - -#: Thunar.xml742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "Seleccione la vista predeterminada para las carpetas. Cuando abra un nuevo directorio será mostrado con la vista que haya elegido. Esta puede ser vista de icono, en lista compacta o en lista detallada. También puede seleccionar Última vista activa aquí para usar la vista que configuró en la última ventana activa." - -#: Thunar.xml752(guilabel) -msgid "Sort folders before files" -msgstr "Ordenar las carpetas antes que los archivos" - -#: Thunar.xml754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "Seleccione esta opción para listar las carpetas antes que los archivos cuando ordene un directorio." - -#: Thunar.xml761(guilabel) -msgid "Show thumbnails" -msgstr "Mostrar miniaturas" - -#: Thunar.xml763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "Selecione esta opción para mostrar miniaturas de las imágenes y otros archivos soportados. El gestor de archivos guarda los archivos miniatura de cada directorio en el directorio oculto .thumbnails en la carpeta Home del usuario." - -#: Thunar.xml768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "Consulte si quiere extender el funcionamiento básico proporciando por Thunar con soporte para tipos de fichero adicionales." - -#: Thunar.xml777(guilabel) -msgid "Text beside icons" -msgstr "Texto al lado de los iconos" - -#: Thunar.xml779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "Seleccione esta opción para colocar el texto de los iconos a su lado en lugar de bajo ellos." - -#: Thunar.xml790(title) Thunar.xml803(phrase) -msgid "Side Pane Preferences" -msgstr "Preferiencias del panel lateral" - -#: Thunar.xml792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "Usted puede seleccionar opciones de visualización para los accesos directos del panel y el panel en árbol." - -#: Thunar.xml808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "El panel lateral puede tanto mostrar una lista de enlaces directos en su sistema de ficheros, que es lo preterminado, como mostrar una vista de árbol de su sistema. Esta página le permite seleccionar el tamaño de los iconos para los enlaces y el árbol. También puede especificar que emblemas deben ser mostrados." - -#: Thunar.xml817(guilabel) -msgid "Icon Size" -msgstr "Tamaño de icono" - -#: Thunar.xml819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "El tamaño de los iconos mostrados en el lateral, variando desde Muy pequeño (unos 16x16 píxeles) hasta Muy grande (unos 128x128 píxeles)." - -#: Thunar.xml827(guilabel) -msgid "Show Icon Emblems" -msgstr "Mostrar emblemas de los iconos" - -#: Thunar.xml829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "Seleccione esta opción para mostrar emblemas de las carpetas en el panel lateral. Puede assignar emblemas a las carpetas en el diálogo Propiedades. Seleccione una carpeta en el área principal y elija ArchivoPropiedades... en el menú principal, o haga clic derecho en la carpeta y seleccione Propiedades... en el menú contextual." - -#: Thunar.xml843(title) Thunar.xml856(phrase) -msgid "Behavior Preferences" -msgstr "Preferencias de comportamiento" - -#: Thunar.xml845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "Puede seleccionar el comportamiento preferido para interactuar con el administrador de archivos." - -#: Thunar.xml863(guilabel) -msgid "Single click to active items" -msgstr "Haga clic para activar elementos" - -#: Thunar.xml865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "Seleccione esta opción para realizar la acción por defecto en un objeto cuando haga clic en él. Cuando esta opción está activada y usted apunte a un objeto, el título del objeto se subraya y es seleccionado automáticamente después de una corta espera." - -#: Thunar.xml871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "Esta espera puede ser configurada con la opción de abajo. También puede desactivar la selección automática de objetos moviendo el selector al extremo izquierdo." - -#: Thunar.xml880(guilabel) -msgid "Double click to activate items" -msgstr "Haga doble clic para activar elementos" - -#: Thunar.xml882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "Seleccione esta opción para realizar la acción por defecto cuando realize doble clic en un objeto y seleccionar los objetos con un simple clic. " - -#: Thunar.xml893(title) Thunar.xml906(phrase) -msgid "Advanced Preferences" -msgstr "Preferencias avanzadas." - -#: Thunar.xml895(para) -msgid "You can control advanced features of the file manager." -msgstr "Puede controlar las características avanzadas del administrador de archivos." - -#: Thunar.xml913(guilabel) -msgid "Folder Permissions" -msgstr "Permisos de la carpeta" - -#: Thunar.xml915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "Seleccione la acción que debería ser ejecutada cuando cambie los permisos de una carpeta en el diálogo de Propiedades. Puede permitir a Thunar preguntar cada vez que cambie los permisos de una carpeta, decirle que aplique los nuevos permisos sólo a la carpeta seleccionada o aplicarlos también de forma recursiva a todos los contenidos ." - -#: Thunar.xml925(guilabel) -msgid "Volume Management" -msgstr "Gestor de volúmenes" - -#: Thunar.xml927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "Si Thunar fue instalado con soporte para HAL y el paquete thunar-volman también está instalado, puede activar el administrador de volúmenes integrado. Consulte para más detalles sobre esta característica." - -#: Thunar.xml940(title) -msgid "Customizing Thunar" -msgstr "Personalizar Thunar" - -#: Thunar.xml942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "Este capítulo explica cómo personalizar ciertas partes del administrador de archivos a sus propias necesidades." - -#: Thunar.xml948(title) -msgid "The \"Send To\" Menu" -msgstr "El menú \"Enviar a\"" - -#: Thunar.xml950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "Thunar incluye un menú Enviar a, que proporciona posibes destinos donde los archivos y carpetas pueden ser enviados. Para acceder al menú Enviar a, seleccione ArchivoEnviar a en el menú principal, o haga clic derecho en un fichero o carpeta y seleccione Enviar a." - -#: Thunar.xml964(phrase) -msgid "\"Send To\" Menu" -msgstr "El menú \"Enviar a\" " - -#: Thunar.xml969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "" - -#: Thunar.xml979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "" - -#: Thunar.xml987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "" - -#: Thunar.xml996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "" - -#: Thunar.xml1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "" - -#: Thunar.xml1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" - -#: Thunar.xml1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "" - -#: Thunar.xml1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "" - -#: Thunar.xml1036(title) -msgid "Thumbnailers" -msgstr "" - -#: Thunar.xml1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "" - -#: Thunar.xml1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "" - -#: Thunar.xml1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "" - -#: Thunar.xml1063(title) -msgid "Thumbnailer Description File Format" -msgstr "" - -#: Thunar.xml1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "" - -#: Thunar.xml1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "" - -#: Thunar.xml1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" - -#: Thunar.xml1093(varname) -msgid "%i" -msgstr "" - -#: Thunar.xml1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "" - -#: Thunar.xml1101(varname) -msgid "%o" -msgstr "" - -#: Thunar.xml1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" - -#: Thunar.xml1110(varname) -msgid "%s" -msgstr "" - -#: Thunar.xml1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "" - -#: Thunar.xml1117(varname) -msgid "%u" -msgstr "" - -#: Thunar.xml1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "" - -#: Thunar.xml1125(varname) -msgid "%%" -msgstr "" - -#: Thunar.xml1127(para) -msgid "Will be substituted with a single %." -msgstr "" - -#: Thunar.xml1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "" - -#: Thunar.xml1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "" - -#: Thunar.xml1143(title) -msgid "Example EPS Thumbnailer" -msgstr "" - -#: Thunar.xml1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "" - -#: Thunar.xml1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" - -#: Thunar.xml1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "" - -#: Thunar.xml1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" - -#: Thunar.xml1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "" - -#: Thunar.xml1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "" - -#: Thunar.xml1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" - -#: Thunar.xml1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "" - -#: Thunar.xml1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "" - -#: Thunar.xml1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "" - -#: Thunar.xml1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "" - -#: Thunar.xml1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "" - -#: Thunar.xml1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "" - -#: Thunar.xml1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Limpiar miniaturas" - -#: Thunar.xml1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "Las miniaturas generadas estan guardadas en el directorio ~/.thumbnails/ cumpliendo con el Thumbnail Management Standard. Cuando se testea un nuevo gestor de miniaturas, puede ayudar limpiar la caché usada" - -#: Thunar.xml1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "lo que además te dará algo de espacio libre en tu directorio home. Como toda la información guardada en este directorio es generada automaticamente con archivos de tu sistema, no perderás ningún dato importante." - -#: Thunar.xml1257(title) -msgid "Advanced Topics" -msgstr "Acciones avanzadas." - -#: Thunar.xml1261(title) -msgid "To Bulk Rename Files" -msgstr "Renombrar masivamente archivos" - -#: Thunar.xml1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "El renombrado masivo de archivos significa renombrar varios archivos a la vez usando algún criterio, que se aplica al menos a uno de estos archivos. Thunar incluye un renombrador masivo, que puede funcionar independientemente usando el comandoThunar -B o dentro de Thunar seleccionando dos o más archivos en el area principal y presionando F2 o seleccionando EditarRenombrar... desde el menu principal." - -#: Thunar.xml1278(phrase) -msgid "Bulk Rename Files" -msgstr "Renombrar masivamente archivos" - -#: Thunar.xml1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" - -#: Thunar.xml1290(para) -msgid "Remove characters." -msgstr "Borrar carácteres." - -#: Thunar.xml1291(para) -msgid "Numbering files." -msgstr "Numerando archivos." - -#: Thunar.xml1292(para) -msgid "Insert Date or Time." -msgstr "Insertar fecha o hora." - -#: Thunar.xml1293(para) -msgid "Insert or overwrite characters." -msgstr "Insertar o sobreescribir carácteres." - -#: Thunar.xml1294(para) -msgid "Search and replace characters." -msgstr "Buscar y reemplazar carácteres." - -#: Thunar.xml1295(para) -#, fuzzy -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "Convertir a mayúsculas, minúsculas o mayúsculas/minúsculas (camlcase)." - -#: Thunar.xml1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "Optimizadores del sistema adicionales pueden ser instalados como complementos para Thunar. Comprueba la página Thunar Plugins para ver las extensiones disponibles actualmente. El Thunar Project Wiki contiene más detalles sobre esta característica. Sientete libre para añadir más información al Wiki." - -#: Thunar.xml1308(title) -msgid "The UNIX File System" -msgstr "El Sistema de Archivos UNIX" - -#: Thunar.xml1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "Aunque que el gestor de archivos Thunar hace un buen trabajo en la abstracción de los detalles del sistema de archivos subyacentes, de modo que el susuario no tiene que preocuparse de ellos, es, a veces útil entender los conceptos básicos para entender el cuadro completo. Esta sección intenta dar una introducción a los conceptos del sistema de archivos UNIX, el cual es usado hoy en día por todas las encarnaciones de UNIX, incluyendo Linux." - -#: Thunar.xml1318(title) -msgid "Folders and Paths" -msgstr "Directorios y rutas" - -#: Thunar.xml1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "En un sistema de archivos UNIX todos los directorios se ordenan en una estructura de árbol invertido que se ramifica hacia abajo desde un direcotrio único superior, llamado directorio raíz (root) (el término directorio es usuado a menudo en ligar de carpeta) y mostrado como Sistema de Archivos en Thunar. Esto significa que puede llegar desde un directorio a otro cualquiera recorriendo el árbol hacia arriba hasta encontrar un punto comúm, y después bajar por el árbol a través de los apropiados subdirectorios hasta alcanzar su objetivo." - -#: Thunar.xml1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "La posición de cualquier archivo o arpeta en el árbol puede ser descrit por su path o ruta. El path es la lista de las carpetas que tendrías que recorrer descendiendo desde el directorio raíz para llegar al archivo o carpeta de destino. Por ejemplo, /home/luke es la subcarpeta luke de la subcarpeta home del directorio raíz, y /home/luke/myfile.txt es el archivo myfile.txt en esa subcarpeta. The leading / en estas rutas representa la carpeta raíz." - -#: Thunar.xml1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "Cada usuario tiene su propia carpeta para guardar su configuración y archivos personales. Esta carpeta se llama carpeta personal y es mostrada en Thunar como un icono especian con el nombre de conexión de los usuarios. Esta carpeta es simila a la conocida Mis Documentos en Windows. Las carpeta personal de los usuarios en un sistema están usualmente localizadas en el directorio /home. Por ejemplo, /home/luke sería la carpeta personal del usuario de nombre de conexión luke, mientras que /home/jane sería la carpeta personal del usuarion con nombre de conexión jane." - -#: Thunar.xml1350(title) -msgid "File Types" -msgstr "Tipos de archivo" - -#: Thunar.xml1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "Puede que haya oído que todo es un archivo en UNIX. Esto es verdadero para la mayoría de los objetos presentes un sistema de archivos UNIX de hoy en día. De hecho, incluso los dispositivos de hardware están representados como archivis especiales. Aunque puede que esto no tenga sentido a primera vista, es uno de los putos fuertes de UNIX y sus derivados, y ha ayudado a mantener un simple motor a lo largo de los años donde otros sistemas operativos han tenido que introducir nuevos conceptos para cada nueva tecnología." - -#: Thunar.xml1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "Estas son los cuatro tipos de archivos más importantes en un sistema de archivos UNIX." - -#: Thunar.xml1364(title) -msgid "Ordinary Files" -msgstr "Arvhicos corrientes" - -#: Thunar.xml1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "Un archivo corriente puede contener texto, un programa, u otros datos, esto incluye imágenes, archivos de audio, documentos de oficina y archivos de vídeo. El término archivo es a menudo usado para referirse a un archivo ordinario." - -#: Thunar.xml1373(title) -msgid "Folder Files" -msgstr "Archivos de directorio" - -#: Thunar.xml1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "Las carpetas son también archivos en un sitema de archivos UNIX. Para ser exactos, una carpeta es un archivo especial, que contiene un mapa con el nombre y una referencia de cada archivo contenido dentro de esta carpeta." - -#: Thunar.xml1382(title) -msgid "Symbolic Link Files" -msgstr "Enlaces simbólicos" - -#: Thunar.xml1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "Un enlace simbólico (a menudo llamado symlink) es un archivi especial que contiene una ruta a otro archivo en el sistema de archivos. Por lo tanto, los enlaces simbólicos no contienen información útil, sólo apuntan a otro archivo." - -#: Thunar.xml1392(title) -msgid "Device Files" -msgstr "Archivos de Dispositivos" - -#: Thunar.xml1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "Como mencionamos anteriormente, a la mayoría de los disposistivos de hardware, también se accede a través del sistema de archivos. Estos archivos especiales de disposistivos están usualmente localizados en el directorio /devename>. Por ejemplo, el archivo especial /dev/hda representa el primer disco IDE disk en Linux." - -#: Thunar.xml1406(title) -msgid "Frequently Asked Questions" -msgstr "Preguntas frecuentes" - -#: Thunar.xml1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "Esta sección intenta reunir las numerasosas preguntas frecuentes que tienen que ver con el trabajo con Thunar. Si conoce alguna pregunta que no está en esta página, por favor archive una petición." - -#: Thunar.xml1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "¿Por qué Thunar no ejecuta los archivos marcado como ejecutables?" - -#: Thunar.xml1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "Por razones de seguridad, Thunar solo ejecuta archivos del tipo application/x-desktop, application/x-executable y application/x-shellscript. Para archivos del escritorio, su ejecución será solo permitida si el archivo es del tipo Application y una línea Exec válida es dada, o de tipo Link una una línea URL válida es dada. Para otros tipos esta característica está disponible si el archivo está marcado como ejecutable para el usuario actual." - -#: Thunar.xml1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "Fíjese en que para para application/x-executable y application/x-shellscript, lo tipos de los archivos no necesitan coincidir realmente con estos tipos exactamente, pero es suficiente si el tipo detectado tiene un padre coincide con uno de los dos tipos listados arriba, o si su MIME-type es un alias de uno de los de arriba" - -#: Thunar.xml1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "¿Dónde almacena Thunar los metadatos asociados con los archivos?" - -#: Thunar.xml1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "Thunar asocia varios parámetros con archivos/carpetas, a las cuales llamamamos metadatos. Estos metadatos para todos los archivos se alamacenan en archivo de base de datos, que es llamado el metaarchivo. La base de datos está almacenada en $XDG_CACHE_HOME/Thunar/metafile.tdb y puede examinarse usando tdbtool, que es parte de la distribución de Thunar (localizada en tdb/)." - -#: Thunar.xml1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "¿Dónde almacena Thunar ls preferencias?" - -#: Thunar.xml1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "Thunar almacena las preferencias configurables de usuario (y los parámetros ocultos) en un archivo .ini, que está localizado en $XDG_CONFIG_HOME/Thunar/thunarrc, y que puede ser examinado usando un editor de texto. Vea docs/README.thunarrc para una descripción de varias preferencias." - -#: Thunar.xml1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "¿Cómo usar los gestos de ratón en Thunar?" - -#: Thunar.xml1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "Thunar ofrece un soporte básico para los gestos de ratón en su vista de iconos. Puede usar estos gestos de ratón pulsando el botón del medio (generalmente el de la rueda scroll) mietras que el puntero está en el área del fondo de la vista de iconos (cualquier área que no está cubierta por un icono o texto). Ahora puede mover el cursor en cuatro direcciones para realizar algunas acciones descritas abajo." - -#: Thunar.xml1474(guilabel) -msgid "Left" -msgstr "Izquierda" - -#: Thunar.xml1474(member) -msgid " - opens the previous visited folder" -msgstr " - abre la carpeta visitada anteriormente" - -#: Thunar.xml1475(guilabel) -msgid "Up" -msgstr "Arriba" - -#: Thunar.xml1475(member) -msgid " - opens the parent folder" -msgstr " - abre la carpeta padre" - -#: Thunar.xml1476(guilabel) -msgid "Right" -msgstr "Derecha" - -#: Thunar.xml1476(member) -msgid " - opens the next visited folder" -msgstr " - abre la siguiente carpeta visitada" - -#: Thunar.xml1477(guilabel) -msgid "Down" -msgstr "Abajo" - -#: Thunar.xml1477(member) -msgid " - reloads the current folder" -msgstr " - recarga la carpeta actual" - -#: Thunar.xml1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "¿Cómo asgino diferentes combinaciones de teclas" - -#: Thunar.xml1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "Si quiere reasignar una combinación, Thunar soporta la forma estándar de GTK+ de cambiar las combinaciones de teclas: Simplemente colóquese en la opción del menú con el putero del ratón y pulse la combinación de teclas que usted quiera asignarle a esa opción del menú." - -#: Thunar.xml1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "Para borrar una combinación asignada, pulse la tecla Backspace mientras que está en la entrada del menú." - -#: Thunar.xml1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "Si la combinación de teclas no cambia, entonces debe habilitar la característica en GTK+. Puede hacerlo de tres formas:" - -#: Thunar.xml1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "Si está usando Xfce 4.3 o superior puede activar Editable menu accelerators en el diálogo Configuración de la interfaz de usuario" - -#: Thunar.xml1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "Si está usando GNOME puede activar Editable menu accelerators el el diálogo Menu and Toolbars del centro de control." - -#: Thunar.xml1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "Otra forma es poner lo siguiente en su archivo ~/.gtkrc-2.0 (cree el archivo si no existe): gtk-can-change-accels=1." - -#: Thunar.xml1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "¿Dónde almacena Thunar las combinaciones teclas" - -#: Thunar.xml1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "Las combinaciones de teclas personalizadas están almacenadas en un formato estándar de combinaciones de teclas de GRK+ en un archivo localizado en $XDG_CONFIG_HOME/Thunar/accels.scm. Las líneas que empiezan con ; son comentarios. Vea la documentación de GTK+ para detalles acerca de este formato." - -#: Thunar.xml1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "Si usted es un administrador de paquetes o del sistema y quiere ofrecer una combinación de teclas para todo el sistema, es diferente que las combinaciones predeterminadas en Thunar, puede crear un archivo Thunar/accels.scm en uno de los in one of the $XDG_CONFIG_DIRS. Por ejemplo, si /etc/xdg es parte de $XDG_CONFIG_DIRS (el predeterminado en la mayoría de distribuciones Linux), puede instalar combinaciones para todo el sistema en /etc/xdg/Thunar/accels.scm. Thunar cargará estas combinaciones de este archivo en su primera ejecución." - -#: Thunar.xml1549(title) -msgid "Support" -msgstr "Soporte" - -#: Thunar.xml1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "To comunicar un fallo o una sugerencia para esta aplicación o para su manual, use el sitema de seguimiento de fallos en http://bugzilla.xfce.org/. Recuerde que los comunicados útiles consiguen que se arreglen tales fallos, así que un comunicado útil de un fallo tiene dos características:" - -#: Thunar.xml1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "Reproductivo. Si el desarrollador no puede ver el fallo por sí mismo para comprobar que existe, lo más probable es que no pueda arreglarlo. Cualquier detalle que de puede ser de ayuda." - -#: Thunar.xml1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "Específico. Cuanto más rápido pueda asociar el problema a un área, más probable es que lo arregle convenientemente." - -#: Thunar.xml1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "En el caso de que quiera solicitar una característica, por favor deje claro por qué considera usted que merece la pena esa característica para la aplicación. Es más probable que una nueva característica sea añadida si ofrece buenos argumentos. Las posibilidades de que se añanda una característica son aún más si proporciona un parche que implemente esa característica, pero asegúrese de leer el archivo HACKING - especialmente la sección Coding Style - antes de que empiece a modificar el código." - -#: Thunar.xml1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "Si tiene preguntas acerca del uso o la instalación de este software, por favor, pregunte en la lista de correo thunar-dev o conecte su cliente IRC a irc.freenode.net, únase al canal #thunar y pida ayuda." - -#: Thunar.xml1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "Acerca de @PACKAGE_NAME@" - -#: Thunar.xml1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ ha sido escrito por Benedikt Meurer (benny@xfce.org). Visite el sitio web de thunar para más información." - -#: Thunar.xml1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "Esta documentación fue escrita por Benedikt Meurer (benny@xfce.org). La última versión de este documento está siempre disponible desde el sitio web de Thunar." - -#: Thunar.xml1605(para) -msgid "This software is distributed 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." -msgstr "Este software está distribuido bajo los términos de la GNU General Public License (Licencia Pública General de GNU) según lo publicado por la Free Software Foundation; en la versión 2 de la licencia o cualquiera posterior." - -#: Thunar.xml1611(para) -msgid "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." -msgstr "Usted debería haber recibido una copia de la GNU General Public License (Licencia Pública General de GNU) con este programa; si no la ha recibido, escriba a la Free Sofware Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 022111-1307, USA" - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml0(None) -msgid "translator-credits" -msgstr "" -"José M (josem88@gmail.com), 2006 \n" -"Javier Sánchez (donoban@gmail.com), 2009" - diff -Nru thunar-1.2.3/docs/manual/po/eu.po thunar-1.6.10/docs/manual/po/eu.po --- thunar-1.2.3/docs/manual/po/eu.po 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/eu.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,2133 +0,0 @@ -# translation of eu.po to librezale -# Piarres Beobide , 2006. -msgid "" -msgstr "" -"Project-Id-Version: eu\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2008-11-23 23:54+0200\n" -"Last-Translator: Piarres Beobide \n" -"Language-Team: librezale \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Pootle 1.2.0\n" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Thunar Fitxategi Kudeatzailea" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml:25(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License, Version 1.1 or any later " -"version published by the Free Software Foundation; with no Invariant " -"Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The " -"complete license text is available from the Free Software Foundation." -msgstr "" -"Baimena ematen da dokumentu gau Free Software Foundation-en argitaratutako " -"GNU Dokumentazio Libre Lizentziaren 1.1 bertsioak edo berriagoek ezarritako " -"terminoetan kopiatu, zabaldu eta/edo eraldatzeko.Lizentzi testu osoa " -"eskuragarri dago Free " -"Software Foundation webgunean." - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "Software garatzailea" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "Sistema garapena" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "" -"Manual honek @PACKAGE_NAME@ -ren @PACKAGE_VERSION@ bertsioa azaltzen du." - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ -ra sarrera" - -#: Thunar.xml:56(para) -msgid "" -"Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar " -"has been designed from the ground up to be fast and easy-to-use. Its user " -"interface is clean and intuitive, and does not include any confusing or " -"useless options by default. Thunar is fast and responsive with a good start " -"up time and folder load time." -msgstr "" -"Thunar Xfce Idazmahai Ingurunearen fitxategi kudeatzaile berria da. Thunar " -"behe mailatik azkarra eta erabilerraza izateko diseinatua izan da. Bere " -"erabiltzaile interfazea garbia eta intuitiboa da, eta ez du lehenespen " -"bezala nahasi dezaketen edo erabilera urriko aukerarik. Thunar azkarra da " -"eta erantzun bizkorra du bai abiaraztean bai karpetak kargatzeko denboran." - -#: Thunar.xml:62(para) -msgid "" -"The Thunar file manager thereby provides an integrated access point to your " -"files and applications. You can use the file manager to do the following:" -msgstr "" -"Thunar fitxategi kudeatzaileak zure fitxategi eta aplikazioetara sarrera " -"integratu bat ematen du. Fitxategi kudeatzailea hurrengoa egiteko erabil " -"dezakezu:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "Karpeta eta dokumentuak sortu." - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "Zure fitxategi eta karpetak bistarazi." - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "Zure fitxategi eta karpetak kudeatu." - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "Ekintza pertsonalizatuak abiarazi eta kudeatu." - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "Sarrera Gailu Aldagarria." - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "Fitxategi kudeatzaile leihoa" - -#: Thunar.xml:80(para) -msgid "" -"By default the file manager window consists of a shortcut pane on the left " -"side, the main area on the right and a pathbar above the main area." -msgstr "" - -#: Thunar.xml:92(phrase) -#, fuzzy -msgid "File Manager Window" -msgstr "Thunar Fitxategi Kudeatzailea" - -#: Thunar.xml:97(para) -msgid "" -"The Shortcut Pane provides shortcuts to different " -"folders on your system. The first shortcut will lead to your Home " -"Folder, the folder you store all your personal data, and will " -"therefore have the name of the current user. The second shortcut will take " -"you to the trash bin, which stores deleted files that can be recovered " -"later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the " -"desktop. The fourth shortcut will take you to the root of your file system - " -"you may want to explore it a bit, even though it may be confusing to you if " -"you are new to Linux/Unix. Just click on the different folders and see what " -"is inside." -msgstr "" - -#: Thunar.xml:108(para) -msgid "" -"Below the File System shortcut, the removable drives " -"and media will be displayed. In the screenshot above, you can see a " -"Floppy Drive shortcut. Click on these shortcuts to " -"access the data stored on the removable drives and media. See for further details." -msgstr "" - -#: Thunar.xml:115(para) -msgid "" -"The remaining shortcuts are user defined. Add your own shortcuts by simply " -"dragging folders to the Shortcuts Pane. This will allow " -"you to access important folders instantly. To remove a previously added " -"shortcut, right-click on the shortcut and choose Remove " -"Shortcut. To rename a previously added shortcut, right-click " -"on the shortcut and choose Rename Shortcut. Note " -"that these actions affect only the shortcut, not the folder referenced by " -"the shortcuts." -msgstr "" - -#: Thunar.xml:123(para) -msgid "" -"The main area will always display the contents of the " -"current folder. Double click on folders to enter them, and right-click on " -"files or folders to get a context-menu offering some choices of what to do " -"with it. Select multiple files by dragging a rectangle over them with the " -"mouse. Alternatively, select one file, hold down the Shift " -"key, and increase or decrease the selection using the arrow keys." -msgstr "" - -#: Thunar.xml:131(para) -msgid "" -"The pathbar will always show the path you took to get " -"to the folder you are currently at. You can click on any pathbar button to " -"change to the folder it represents. Right-click on a pathbar button to bring " -"up a context-menu with some options." -msgstr "" - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "" - -#: Thunar.xml:141(para) -msgid "" -"There are many ways to customize the appearance of the file manager windows. " -"In case you do not like the way the icons are displayed, choose " -"ViewView as Detailed List from the main menu to have the contents of the " -"current folder displayed as a list." -msgstr "" - -#: Thunar.xml:147(para) -msgid "" -"You can have the file manager windows display a location bar instead of the " -"pathbar by choosing ViewLocation " -"SelectorToolbar Style " -"from the main menu." -msgstr "" - -#: Thunar.xml:153(para) -msgid "" -"In case you prefer a treeview in the left pane, choose " -"ViewSide PaneTree from the main menu." -msgstr "" - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "" - -#: Thunar.xml:162(para) -msgid "" -"If you prefer to display the contents of the folder as a list, using the " -"Detailed List View, you can customize the columns " -"displayed in the list view. To customize the visible columns, choose " -"ViewConfigure Columns... from the main menu." -msgstr "" - -#: Thunar.xml:175(phrase) Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "" - -#: Thunar.xml:184(para) -msgid "" -"Select the columns you want to be displayed from the list of available " -"columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "" - -#: Thunar.xml:195(para) -msgid "" -"Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the " -"needed to ensure the text is fully visible." -msgstr "" - -#: Thunar.xml:208(title) -#, fuzzy -msgid "Working with Files and Folders" -msgstr "Zure fitxategi eta karpetak kudeatu." - -#: Thunar.xml:212(title) -#, fuzzy -msgid "Opening Files" -msgstr "Fitxategiak Arruntak" - -#: Thunar.xml:214(para) -msgid "" -"When you open a file, the file manager performs the default action for that " -"file type. For example, opening a text file will display it in the default " -"text editor, while opening an image file will display the image in the " -"default image viewer." -msgstr "" - -#: Thunar.xml:220(para) -msgid "" -"The file manager checks the extension of a file to determine the type of a " -"file. If the file has no known extension, the file manager examines the " -"contents of the file." -msgstr "" - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "" - -#: Thunar.xml:228(para) -msgid "" -"To execute the default for a file, double-click on the file. For example, " -"the default action for audio files is to play the it with the default music " -"playing application. In this case, you can double-click on the file to open " -"the file in the music player." -msgstr "" - -#: Thunar.xml:234(para) -msgid "" -"You can set Thunar preferences so that you click " -"once on a file to execute the default action. For information, see ." -msgstr "" - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "" - -#: Thunar.xml:243(para) -msgid "" -"To execute actions other than the default action for a file, select the file " -"that you want to perform an action on. Choose the desired action from the " -"Open With choices available in File " -"menu or an Open With submenu." -msgstr "" - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "" - -#: Thunar.xml:253(para) -msgid "" -"To add actions associated with a file type, perform the following steps:" -msgstr "" - -#: Thunar.xml:259(para) -msgid "" -"In the main area, select a file of the type to which you want to add an " -"action." -msgstr "" - -#: Thunar.xml:264(para) -msgid "" -"Choose FileOpen With Other " -"Application... from the main menu." -msgstr "" - -#: Thunar.xml:270(para) -msgid "" -"Either choose an application in the Open With dialog or " -"select Use a custom command and browse to the program " -"with which you wish to open this type." -msgstr "" - -#: Thunar.xml:277(para) -msgid "" -"The action you have chosen is now added to the list of actions for that " -"particular file type. If you enabled the Use as default for this " -"kind of file option or there was no prior action associated with " -"the type, the newly added action is the default." -msgstr "" - -#: Thunar.xml:283(para) -msgid "" -"You may also add actions using the Open With button " -"under FileProperties...." -msgstr "" - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "" - -#: Thunar.xml:292(para) -msgid "" -"To modify the actions associated with a file or file type, perform the " -"following steps:" -msgstr "" - -#: Thunar.xml:298(para) -msgid "" -"In the main area, select a file of the type for which you want to modify the " -"action." -msgstr "" - -#: Thunar.xml:303(para) Thunar.xml:383(para) -msgid "" -"Choose FileProperties... from the main menu." -msgstr "" - -#: Thunar.xml:308(para) -msgid "" -"Select the new default action using the Open With " -"button or add a new action by choosing Open With Other " -"Application... from the drop down menu." -msgstr "" - -#: Thunar.xml:315(para) -msgid "" -"To remove a previously added action for a file type, bring up the " -"Open With dialog as described above, right-click the " -"action you want to remove and choose Remove Launcher." -msgstr "" - -#: Thunar.xml:324(title) Thunar.xml:361(phrase) -#, fuzzy -msgid "File Properties" -msgstr "Fitxategi Motak" - -#: Thunar.xml:326(para) -msgid "" -"The file properties window shows more information about any file or folder " -"in the file manager. With this window, you can also do the following:" -msgstr "" - -#: Thunar.xml:333(para) -msgid "" -"Change the icon for special files, such as application launchers and URL " -"links." -msgstr "" - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "" - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "" - -#: Thunar.xml:348(para) -msgid "" -"Choose which application is used to open a file and other files of the same " -"type." -msgstr "" - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "" - -#: Thunar.xml:372(para) -msgid "" -"Select the file or folder whose properties you want to examine or change. " -"You cannot select multiple items at once and display the properties that are " -"in common to all items currently." -msgstr "" - -#: Thunar.xml:386(para) -msgid "" -"Right-click the selected item and choose Properties... from the context menu." -msgstr "" - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "" - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "" - -#: Thunar.xml:400(title) -#, fuzzy -msgid "Using Removable Media" -msgstr "Sarrera Gailu Aldagarria." - -#: Thunar.xml:403(title) -#, fuzzy -msgid "Accessing Removable Media" -msgstr "Sarrera Gailu Aldagarria." - -#: Thunar.xml:405(para) -msgid "" -"Thunar supports removable media if it was built with support for HAL, or " -"if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is " -"suggested to use HAL rather than the native support provided by Thunar." -msgstr "" - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "" - -#: Thunar.xml:414(para) -msgid "" -"To mount media is to make the file system of the media " -"available for access. When you mount media, the file system of the media is " -"attached as a subdirectory to your file system." -msgstr "" - -#: Thunar.xml:419(para) -msgid "" -"To access media, insert the media in the appropriate device, or connect the " -"new device to your computer (i.e. connect an USB stick to one of your USB " -"ports). An object that represents the media is added to the side pane of the " -"file manager. If xfdesktop is running and " -"configured to display File/launcher icons this object " -"will also be added to your desktop." -msgstr "" - -#: Thunar.xml:426(para) -msgid "" -"To actually mount the media, click on the object that represents the media. " -"For example, to mount a floppy diskette, click on the Floppy " -"Drive object in the side pane. The file manager will now add the " -"file system of the media to your file system hierarchy and display the " -"contents of the floppy diskette in the main area." -msgstr "" - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "" - -#: Thunar.xml:436(para) -msgid "" -"If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-" -"click on the media object in the side pane or on the desktop and choose " -"Eject Volume. The media is ejected from the drive after " -"a few seconds. If the drive for the media is not motorized (i.e. a floppy " -"drive or an USB stick), right-click on the media object and choose " -"Unmount Volume. After a short period of time, a " -"notification will appear to inform you that it is now safe to remove the " -"media or disconnect the drive from the computer." -msgstr "" - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "" - -#: Thunar.xml:456(para) -msgid "" -"However this notification will only be displayed if support for " -"libnotify is enabled, and you have installed a " -"notification daemon. A notification daemon for Xfce is available from the " -"Xfce Goodies Project. If notification " -"support is not available, wait until the context menu disappears before you " -"remove the media or disconnect the drive." -msgstr "" - -#: Thunar.xml:464(para) -msgid "" -"Be aware that you cannot eject or unmount media that is still in use by one " -"or more applications. Therefore if the file manager refuses to eject media, " -"make sure you close all applications that were accessing the media, and be " -"sure to also check command line applications running in " -"Terminal windows." -msgstr "" - -#: Thunar.xml:470(para) -msgid "" -"Make sure to unmount removable media before ejecting. Do not eject a " -"diskette from the floppy drive before your unmount the diskette. Do not " -"remove an USB stick before you unmount the flash drive. If you do not " -"unmount the media first you might lose data or cause your system to crash." -msgstr "" - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "" - -#: Thunar.xml:481(para) -msgid "" -"Thunar is also able to automatically manage removable drives and media if " -"the thunar-volman package is installed on " -"your system. Note however that this feature requires HAL support." -msgstr "" - -#: Thunar.xml:487(para) -msgid "" -"Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the " -"Volume Management feature of Thunar. Therefore, open " -"the file manager preferences, go to the Advanced page " -"and check the Enable Volume Management button." -msgstr "" - -#: Thunar.xml:494(para) -msgid "" -"The next step is to customize the management of removable drives and media " -"to your needs. Click on the Configure link in the " -"Volume Management section, right below the button. The " -"Removable Drives and Media configuration dialog will be " -"displayed." -msgstr "" - -#: Thunar.xml:507(phrase) -#, fuzzy -msgid "Removable Drives and Media" -msgstr "Sarrera Gailu Aldagarria." - -#: Thunar.xml:512(para) -msgid "" -"If you have used the gnome-volume-manager " -"previously, you should feel right at home, because it was designed to look " -"and behave similar to gnome-volume-manager. The " -"preferences are divided by device categories to make it easy to locate the " -"option for you specific device." -msgstr "" - -#: Thunar.xml:519(para) -msgid "" -"The Storage page contains the most important options. " -"As the name suggests these options apply only to storage devices like " -"external harddisk drives, USB sticks and CD-ROMs. The Removable " -"Storage options are described in detail below." -msgstr "" - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "" - -#: Thunar.xml:529(para) -msgid "" -"Enable this option to automatically mount file systems on removable drives " -"(i.e. external harddisk drives or USB sticks) when such drives are plugged " -"into the computer." -msgstr "" - -#: Thunar.xml:533(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable drives. For example, if you disable this option, certain kinds of " -"portable music players cannot be detected any more and so, even if you " -"enabled the Play music files when connected option on " -"the Multimedia page, the specified command will not be " -"run when you hot-plug your portable music player." -msgstr "" - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "" - -#: Thunar.xml:546(para) -msgid "" -"Enable this option to automatically mount file systems on removable media (i." -"e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" - -#: Thunar.xml:550(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable media. For example, if you disable this option, it is impossible " -"to detect whether the removable media has auto-run capabilities, and so the " -"Auto-run programs on new drives and media option has no " -"effect for removable media." -msgstr "" - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "" - -#: Thunar.xml:562(para) -msgid "" -"Enable this option to automatically display the content of newly inserted " -"media in the file manager. Note however, that the contents will only be " -"displayed if no other action was possible or you choose to ignore the other " -"possible actions. For example, if you insert a CD-ROM with auto-run " -"capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow " -"or ignore the auto-run. If you choose to ignore the auto-run the contents " -"will be displayed in the file manager." -msgstr "" - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "" - -#: Thunar.xml:576(para) -msgid "" -"Enable this option to make use of auto-run capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-run mechanism. To " -"enhance security, you will always be prompted to confirm the auto-run." -msgstr "" - -#: Thunar.xml:582(para) -msgid "" -"If the Windows emulator WINE is installed on your system, the auto-run mechanism will " -"also try to run autorun.exe files using WINE." -msgstr "" - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "" - -#: Thunar.xml:592(para) -msgid "" -"Enable this option to make of auto-open capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-open mechanism. " -"To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" - -#: Thunar.xml:602(para) -msgid "" -"The remaining options allow you to specify a command to run when a certain " -"kind of media is inserted into a drive or a certain kind of external device " -"is connected. The command can use three special variables, that will be " -"substituted when the command is run:" -msgstr "" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "" - -#: Thunar.xml:612(para) -msgid "" -"Each appearance of %d in the command will be substituted " -"with the device file path of the newly added device. For example, if you " -"have plugged in an USB stick, the device file path will be /dev/" -"da0s1 or /dev/sda1." -msgstr "" - -#: Thunar.xml:617(para) -msgid "" -"If no device file is associated with the device or the device file could not " -"be found for some reason, the variable %d will be " -"substituted with the empty string." -msgstr "" - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "" - -#: Thunar.xml:627(para) -msgid "" -"Each appearance of %h in the command will be substituted " -"with the HAL UDI of the newly added device." -msgstr "" - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "" - -#: Thunar.xml:637(para) -msgid "" -"Each appearance of %m in the command will be substituted " -"with the mount point where the newly added device was mounted. If the device " -"cannot be mounted (for example printers or keyboards) or if the automatic " -"mounting was disabled, %m will be substituted with the " -"empty string." -msgstr "" - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "" - -#: Thunar.xml:650(para) -msgid "" -"Useful tips to trouble shoot the volume manager in case it does not work as " -"expected." -msgstr "" - -#: Thunar.xml:656(para) -msgid "" -"Make sure Thunar is running as daemon. The volume " -"manager depends on this, as it is not a daemon by itself. By default, Xfce " -"automatically spawns Thunar as daemon on startup. " -"If it got killed for some reason, open the Run program " -"(using the keyboard shortcut AltF2 or right-click on the desktop and choose Run " -"Program... from the desktop menu), enter Thunar --" -"daemon and click Run." -msgstr "" - -#: Thunar.xml:668(para) -msgid "" -"Try running thunar-volman from a " -"Terminal window after hot-plugging the drive or " -"inserting the media. First, you need to figure out the HAL UDI of the new " -"device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-" -"added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" - -#: Thunar.xml:678(para) -msgid "" -"If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing " -"list for help." -msgstr "" - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "" - -#: Thunar.xml:691(para) -msgid "" -"Use the File Manager Preferences dialog to set your " -"Thunar file manager preferences. To open the " -"preferences dialog, choose EditPreferences... from the menu " -"bar, or click on the File Manager button in the Xfce " -"Settings Manager." -msgstr "" - -#: Thunar.xml:697(para) -msgid "" -"The File Manager Preferences dialog is divided into " -"four pages with different options, each described in a separate section " -"below. Basically you can set preferences in the following categories:" -msgstr "" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "" - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "" - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "" - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "" - -#: Thunar.xml:709(para) -msgid "" -"Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but " -"are not included in the preferences in order to keep the preferences dialog " -"simple. The README.thunarrc " -"file that is included with the Thunar distribution describes all available " -"options in detail." -msgstr "" - -#: Thunar.xml:718(title) Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "" - -#: Thunar.xml:720(para) -msgid "" -"You can specify a default view, select sort options and display options. You " -"can also specify whether thumbnails should be displayed for file types that " -"support this." -msgstr "" - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "" - -#: Thunar.xml:742(para) -msgid "" -"Select the default view for folders. When you open a new window, the is " -"displayed in the view that you select. This can be either the icon view, the " -"compact list view or the detailed list view. You can also select " -"Last Active View here to use the view you used for the " -"last active window." -msgstr "" - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "" - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "" - -#: Thunar.xml:763(para) -msgid "" -"Select this option to show thumbnails of image files and other supported " -"files. The file manager stores the thumbnail files for each folder in the " -"hidden .thumbnails directory in the " -"user's Home Folder." -msgstr "" - -#: Thunar.xml:768(para) -msgid "" -"See if you want to extend the basic " -"thumbnail functionality provided by Thunar with " -"support for additional file types." -msgstr "" - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "" - -#: Thunar.xml:779(para) -msgid "" -"Select this options to place the icon captions for items in the icon view " -"beside the icon rather than under the icon." -msgstr "" - -#: Thunar.xml:790(title) Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "" - -#: Thunar.xml:792(para) -msgid "" -"You can select display options for the shortcuts pane and the tree pane." -msgstr "" - -#: Thunar.xml:808(para) -msgid "" -"The side pane can either display a list of shortcuts for folders in your " -"file system, which is the default, or a tree view of your file system. This " -"page allows you to select the size of the icons for the shortcuts and the " -"tree pane. You can also specify whether emblems should be displayed." -msgstr "" - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "" - -#: Thunar.xml:819(para) -msgid "" -"The size of the icons displayed in the side, ranging from Very " -"Small (around 16x16 pixels) to Very Large " -"(around 128x128 pixels)." -msgstr "" - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "" - -#: Thunar.xml:829(para) -msgid "" -"Select this option to display emblems for folders in the side pane. You can " -"assign emblems to folders in the Properties dialog. " -"Select a folder in the main area and choose FileProperties... from the main " -"menu, or right-click the folder and select " -"Properties... from the " -"context menu." -msgstr "" - -#: Thunar.xml:843(title) Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "" - -#: Thunar.xml:845(para) -msgid "" -"You can select the preferred behavior to interact with the file manager." -msgstr "" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "" - -#: Thunar.xml:865(para) -msgid "" -"Select this option to perform the default action for an item when you click " -"on the item. When this option is selected, and you point to an item, the " -"title of the item is underlined and the item will be selected automatically " -"after a short delay." -msgstr "" - -#: Thunar.xml:871(para) -msgid "" -"This delay can be configured below the option. You can also disable the " -"automatic selection of items by moving the selector to the left-most " -"position." -msgstr "" - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "" - -#: Thunar.xml:882(para) -msgid "" -"Select this option to perform the default action for an item when you double " -"click on the item, and select the item with a single click." -msgstr "" - -#: Thunar.xml:893(title) Thunar.xml:906(phrase) -#, fuzzy -msgid "Advanced Preferences" -msgstr "Gomendio Aurreratuak" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "" - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "" - -#: Thunar.xml:915(para) -msgid "" -"Choose the action that should be performed when you change the permissions " -"of a folder in the Properties dialog. You can choose to " -"let Thunar ask everytime when you change folder " -"permissions, tell it to default to applying the new permissions to the " -"folder only or to apply them recursively to the folder contents as well." -msgstr "" - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "" - -#: Thunar.xml:927(para) -msgid "" -"If Thunar was installed with support for HAL and " -"the thunar-volman package is also installed, you " -"can enable the integrated volume manager. See for details about this feature." -msgstr "" - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "" - -#: Thunar.xml:942(para) -msgid "" -"This chapter describes how to customize certain parts of the file manager to " -"your own needs." -msgstr "" - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "" - -#: Thunar.xml:950(para) -msgid "" -"Thunar includes a Send To menu, which provides possible " -"targets where files and folders can be sent to. To access the Send " -"To menu, choose FileSend To from the main menu, " -"or right-click on a file or folder and choose Send " -"To." -msgstr "" - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "" - -#: Thunar.xml:969(para) -msgid "" -"By default, the Send To menu includes an entry named " -"Desktop (Create Link) for all files and folders, which " -"simply creates a link on the desktop for each selected file. In addition, if " -"the Shortcuts Pane is active, the menu also includes an " -"entry called Side Pane (Create Shortcut) for folders, " -"which allows users to add new shortcuts to the side pane. Following these " -"entries, Thunar lists the removable drives " -"currently plugged into the computer. In the screenshot above, the " -"Floppy Drive represents a possible target where files " -"can be sent to. Note that the device is mounted automatically once selected " -"from the Send To menu, so you do not need to manually " -"mount it." -msgstr "" - -#: Thunar.xml:979(para) -msgid "" -"In addition Thunar also ships the " -"thunar-sendto-email plugin, which adds the entry " -"Mail Recipient to the menu, that opens the mail " -"composer with the selected files attach to the new email. If the selection " -"contains atleast one folder, the selected items are added to a ZIP archive " -"before attaching them to the email. Otherwise, if the selection contains " -"multiple files, or a single file, which is larger than 200Kib, the user will " -"be prompted whether to pack the files into a ZIP archive, and send the ZIP " -"archive." -msgstr "" - -#: Thunar.xml:987(para) -msgid "" -"Like most other features of Thunar, the " -"Send to menu can be easily extended by users and " -"application developers with new targets, using standard desktop entry files. These files must be installed into one of " -"the $XDG_DATA_DIRS/Thunar/sendto/ " -"folders (see the XDG Base Directory Specification for " -"details about the $XDG_DATA_DIRS variable)." -msgstr "" - -#: Thunar.xml:996(para) -msgid "" -"The MimeType of the target .desktop " -"specifies the types of files for which this action should be available in " -"the Send To menu. For example, say you want to add " -"entry for a Flickr " -"uploader tool, then this entry should only show up if the selection contains " -"JPEG files (other file formats are not supported by Flickr) and so you " -"should add a line MimeType=image/jpeg;. If you do not " -"specify any MimeType your entry will show up for all file " -"types." -msgstr "" - -#: Thunar.xml:1004(para) -msgid "" -"A complete example using the postr application is " -"shown below:" -msgstr "" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" - -#: Thunar.xml:1021(para) -msgid "" -"If you install this file to ~/.local/share/" -"Thunar/sendto/ (create the folder if it does not exist yet), the " -"Send To menu for JPEG files will show the new entry " -"Flickr, which can be used to upload JPEG images to " -"Flickr." -msgstr "" - -#: Thunar.xml:1027(para) -msgid "" -"The Thunar Project Wiki contains additional examples of " -"useful targets for the Send To menu. Feel free to " -"extend the Wiki page with new examples." -msgstr "" - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "" - -#: Thunar.xml:1038(para) -msgid "" -"Thunar uses small utilities to create thumbnails of certain file types and " -"displays the thumbnails as preview of the file content. These small tools " -"are called thumbnailers. Thunar ships with thumbnailers for image and font " -"files, and makes use of the installed thumbnailers from GNOME automatically " -"if it was installed with support for gconf. Users may " -"however dynamically extend this basic functionality with thumbnailers for " -"additional file types." -msgstr "" - -#: Thunar.xml:1045(para) -msgid "" -"If you plan to write a custom thumbnailers, you need to start with a program " -"that accepts atleast two command line parameters, the input file, which is " -"of the file type you plan to support and the output file, which is a PNG " -"file that complies with the format specified by the Thumbnail " -"Management Standard. Additionally your program may also accept the " -"desired size of the thumbnail, which is optional but highly recommended. If " -"you write the output file at an arbitrary image size, Thunar will afterwards " -"scale it to the desired size, which might produce a less optimal result than " -"generating the thumbnail with the requested dimensions." -msgstr "" - -#: Thunar.xml:1054(para) -msgid "" -"Once your utility to generate the thumbnails is done, you will need to " -"register your thumbnailer, so Thunar is able to locate and use it. Therefore " -"all you need to do is to install a description file for the thumbnailer (a " -".desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want " -"to register the thumbnailer for your user account only, you can install the " -"file into the folder ~/.local/share/" -"thumbnailers/. The .desktop for thumbnailers " -"has the following format." -msgstr "" - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "" - -#: Thunar.xml:1065(para) -msgid "" -"Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new " -"field codes. Basically, a thumbnailer description file has the following " -"format." -msgstr "" - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1080(para) -msgid "" -"The Version and Encoding are mandated " -"by the Desktop Entry Specification, just use the values shown in the example " -"above. The Type field must have the special value " -"X-Thumbnailer, otherwise your thumbnailer will not be " -"recognized. The Name value describes your thumbnailer." -msgstr "" - -#: Thunar.xml:1086(para) -msgid "" -"The X-Thumbnailer-Exec field contains the command to run " -"your thumbnailer, and supports certain field codes that will be substituted " -"when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "" - -#: Thunar.xml:1095(para) -msgid "" -"The local path to the input file for which to create a thumbnail. May be " -"either a path relative to the directory from which the thumbnailer was " -"invoked or an absolute path." -msgstr "" - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "" - -#: Thunar.xml:1103(para) -msgid "" -"The local path to the output file where to store the generated thumbnail. " -"The output file must be written as valid PNG file according to the thumbnail " -"standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "" - -#: Thunar.xml:1112(para) -msgid "" -"The desired size of the generated thumbnail in pixels. This parameter is " -"optional." -msgstr "" - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "" - -#: Thunar.xml:1119(para) -msgid "" -"Similar to %i, but substituted with the URI of the file, " -"rather than the path. This was added for compatibility with GNOME." -msgstr "" - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "" - -#: Thunar.xml:1132(para) -msgid "" -"You need to include atleast %o and %i " -"or %u, otherwise your thumbnailer will be useless." -msgstr "" - -#: Thunar.xml:1137(para) -msgid "" -"The MimeType lists the MIME types - separated by " -"semicolon - for which your thumbnailer is able to create previews." -msgstr "" - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "" - -#: Thunar.xml:1145(para) -msgid "" -"This example demonstrates how to write and install a new thumbnailer for " -".eps files, which uses the convert " -"utility that ships as part of ImageMagick. First, we start with a simple " -"script that invokes convert to generate a thumbnail at " -"the requested size." -msgstr "" - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" - -#: Thunar.xml:1167(para) -msgid "" -"Save this script above to a file eps-thumbnailer, make " -"sure the file is executable and install it to /" -"usr/local/bin." -msgstr "" - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" - -#: Thunar.xml:1176(para) -msgid "" -"Next we need to create the thumbnail description file eps-" -"thumbnailer.desktop, which looks like this:" -msgstr "" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1190(para) -msgid "" -"This file must be installed to /usr/local/share/" -"thumbnailers (create the folder if it does not exists)." -msgstr "" - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" - -#: Thunar.xml:1199(para) -msgid "" -"The eps-thumbnailer.desktop file uses the special key " -"TryExec, which, if specified, names a command that must " -"be present on the system for the thumbnailer to be useful. In this case, our " -"script is useless if the convert utility is not present." -msgstr "" - -#: Thunar.xml:1205(para) -msgid "" -"The last step is to regenerate the thumbnailer cache, so Thunar will pick up " -"our thumbnailer. The thumbnailer cache is located at " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by " -"your or your system administrator, the $XDG_CACHE_HOME " -"points to the folder ~/.cache/). The " -"thumbnailers cache is regenerated periodically by Thunar, but you can force " -"to regenerate it by invoking the thunar-vfs-update-thumbnailers-" -"cache-1 utility, that ships as part of Thunar. This utility is " -"usually installed in the libexec " -"subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in " -"/usr, invoke the utility as follows:" -msgstr "" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "" - -#: Thunar.xml:1218(para) -msgid "" -"But make sure you run the program from your user account, not the superuser " -"account, since the thumbnailers cache is stored in your home folder, rather " -"than a system wide location." -msgstr "" - -#: Thunar.xml:1223(para) -msgid "" -"Now, if Thunar is compiled with support for file alteration monitoring " -"(using the FAM or Gamin services), it will automatically pick up the new " -"thumbnailers cache within a few seconds and afterwards be able to generate " -"thumbnails using your custom thumbnailers. Otherwise you might need to " -"completely restart Thunar to apply the changes, using" -msgstr "" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "" - -#: Thunar.xml:1231(para) -msgid "" -"to terminate any running instance, and afterwards restart it from your " -"launcher." -msgstr "" - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "" - -#: Thunar.xml:1239(para) -msgid "" -"The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management " -"Standard. While testing a new thumbnailer, it might help to clean up " -"the thumbnail cache using" -msgstr "" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "" - -#: Thunar.xml:1247(para) -msgid "" -"which will also give you some free space in your home folder. Since all the " -"information stored within this folder was automatically generated from files " -"in your file system, you will not loose any sensitive data." -msgstr "" - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "Gomendio Aurreratuak" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1263(para) -msgid "" -"To bulk rename files means to rename multiple files at " -"once using some criterion, that applies to atleast one of the files. " -"Thunar includes a bulk renamer, which can be run " -"separately using the command Thunar -B or from within " -"Thunar by selecting two or more files in the main " -"area and pressing F2 or choosing " -"EditRename... from the main menu." -msgstr "" - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1283(para) -msgid "" -"The Bulk Renamers can be applied to the name of the " -"files, the suffix of the files or both to the name and the suffix of the " -"files. Thunar currently supports the following " -"Bulk Renamers:" -msgstr "" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "" - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "" - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "" - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "" - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "" - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "" - -#: Thunar.xml:1298(para) -msgid "" -"Additional Bulk Renamers may be installed as plugins " -"for Thunar. Check the Thunar Plugins website for " -"currently available extensions. The Thunar Project Wiki " -"contains further details about this feature. Feel free to add more " -"information to the Wiki." -msgstr "" - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "UNIX Fitxategi Sistema" - -#: Thunar.xml:1310(para) -msgid "" -"While the Thunar file manager does a good job at abstracting the details of " -"the underlying file system, so the user does not need to care about them, it " -"is sometimes useful to understand the basic concepts to get the whole " -"picture. This section tries to give a brief introduction to the concepts of " -"the UNIX file system, which is used today by all incarnations of UNIX, " -"including Linux." -msgstr "" -"Naiz Thunar fitxategi kudeatzaileak lan on bat egiten duenez fitxategi " -"sistemaren xehetasunak abstraitzen, horrela erabiltzailea ez da hauetaz " -"arduratu behar, batzuetan erabilgarri da oinarrizko kontzeptu ulertzea. Atal " -"honek UNIX fitxategi sistemaren kontzeptuetara sarrera labur bat da, hau " -"gaur egungo UNIX antzeko guztiek erabiltzen dutena LINUX barne." - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "Karpetak eta Bideak" - -#: Thunar.xml:1320(para) -msgid "" -"In a UNIX file system all folders are arranged in a simple inverted tree " -"structure descending and branching down from a single top level folder, " -"which is called the root directory (the term " -"directory is often used instead of folder) and displayed as File System in Thunar. This " -"means that you can get from any folder to any other by going up the tree " -"until you reach a common point, then down the tree through the appropriate " -"subfolders until you reach your target." -msgstr "" -"UNIX fitxategi sistema batetan karpeta guztiak erro direktorioa hasten den alderantzizko zuhaitz estruktura batetan kokatzen dira " -"(sarritan directorio terminoa karpeta-ren ordez erabiltzen da) eta thunar-en Fitxategi " -"Sistema bezala bistaratzen dira. Honek karpeta batetik bestera " -"mugitzeko batzen dituen puntu arte zuhaitzean gora igoaz eta gero helburu " -"duzun karpetara sartuaz lor dezakezula." - -#: Thunar.xml:1329(para) -msgid "" -"The position of any file or folder in the tree can be described by its " -"path. The path is the list of folders you would have to " -"descend through to get to the target folder or file, starting from the top " -"level folder. For example /home/luke " -"is the subfolder luke of the " -"subfolder home of the top level " -"folder, and /home/luke/myfile.txt is the file " -"myfile.txt in that subfolder. The leading / in these paths represents the top level " -"folder." -msgstr "" -"Zuhaitzean edozein karpeta edo fitxategiren kokalekua bere " -"bidearen bidez azaldu daiteke. Bidea fitxategi edo " -"karpeta horretara ailatzeko erro direktoriotik jaitsi behar diren karpeten " -"izenek sortzen dute. Adibidez /home/luke home lehen mailako " -"karpetaren lukeazpidirektorioa da, " -"eta /home/luke/myfile.txt karpeta honetako " -"filename>myfile.txt fitxategiaren bidea da. bide hauetako " -"/ nagusiak erro mailako karpeta " -"errepresentatzen du." - -#: Thunar.xml:1338(para) -msgid "" -"Every user has their own folder to hold their personal files and settings. " -"This folder is called the home directory and is " -"displayed in Thunar as special icon with the users login name. The folder is " -"similar to the My Files folder known from Windows. The " -"home directories of the various users in a system are " -"usually located below the /home " -"folder. For example /home/luke would " -"be the home directory of the user with the login name luke, while /home/" -"jane would be the home directory for the user with the login name " -"jane." -msgstr "" -"Erabiltzaile bakoitzak bere karpeta pertsonala du bere fitxategi eta ezarpen " -"pertsonalak mantentzeko. Karpeta honi etxe direktorioa " -"eta Thunar-en erabiltzaile izena et ikono berezi batez bistaratzen da. " -"Karpeta hau Windows-eko Nire Dokumentuak karpetaren " -"antzerakoa da.Erabiltzaile ezberdinen etxe direktorioak " -"/home karpetaren barnean kokatzen " -"dira. Adibidez /home/luke karpeta " -"luke erabiltzailearen etxe " -"direktorioa izan beharko litzateke eta /home/" -"jane karpeta jane " -"erabiltzailearen etxe direktorioa izan beharko litzateke." - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "Fitxategi Motak" - -#: Thunar.xml:1352(para) -msgid "" -"You may have already heard that everything is a file in UNIX. This is true " -"for most objects present in UNIX systems today. In fact even devices are " -"represented as a special files. While this may not make sense at first " -"sight, it is one of the strengths of UNIX and its derivates, and has helped " -"it to maintain a simple core over the years where other operating systems " -"had to introduce new concepts for every new technology." -msgstr "" -"Ziurrenik dagoeneko entzuna duzu UNIX sistemetan dena fitxategi bat dela. " -"Hau UNIX sistematan dauden elementu gehienentzat egoa da. Praktikan gailuak " -"ere fitxategi berezien bidez errepresentatzen dira. Nahiz honek hasiera " -"batetan zentzurik ez duela iruditu UNIX eta aldagaien puntu indartsuenetako " -"bat da eta beste sistema eragileek teknologia berri bakoitzagatik kontzeptu " -"berriak sartu behar dituzten bitartean honek urteen zehar muin sinple bat " -"mantentzen lagundu du." - -#: Thunar.xml:1359(para) -msgid "" -"These are the four most important types of files in the UNIX file system." -msgstr "Hauek dira UNIX fitxategi sistemako 4 fitxategi mota garrantzitsuenak." - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "Fitxategiak Arruntak" - -#: Thunar.xml:1366(para) -msgid "" -"An ordinary file may contain text, a program or other data. This includes " -"image files, audio files, office documents and video files. The term " -"file is often used to refer to an ordinary file." -msgstr "" -"Fitxategi arrunt batek testua, programa bat edo beste datu batzuek izan " -"ditzake, irudi fitxategiak, audio fitxategiak, ofizina dokumentuak eta bideo " -"fitxategiak barne.Fitxategia terminoa fitxategi " -"arruntez aritzeko erabiltzen da." - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "Karpeta Fitxategiak" - -#: Thunar.xml:1375(para) -msgid "" -"Folders are also files in the UNIX file system. To be exact a folder is a " -"special file, which contains a mapping of file names to file references for " -"every file contained within this folder." -msgstr "" -"Karpetak ere fitxategiak dira UNIX sistemetan. Zehazki karpetak fitxategi " -"bereziak dira zeinek karpeta horretako edozein fitxategiren fitxategi " -"erreferentzien fitxategi izenen mapatze bat duen." - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "Lotura Sinboliko Fitxategiak" - -#: Thunar.xml:1384(para) -msgid "" -"A Symbolic link (often called a symlink) is a special " -"file that contains a path to another file in the file system. Symbolic link " -"files therefore do not contain any useful information themselves, but just " -"refer to other files." -msgstr "" -"Lotura sinbolikoa (baita symlink deiturikoak) fitxategi " -"sistemako beste fitxategi batera bidea duen fitxategi berezi bat da. Lotura " -"sinboliko fitxategiek beraz ez dute bere buruaren informazio erabilgarririk " -"baina beste fitxategi batzuei egiten diote erreferentzia." - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "Gailu Fitxategiak" - -#: Thunar.xml:1394(para) -msgid "" -"As mentioned earlier (most) devices are also accessed through the file " -"system. These special device files are usually located in the /dev folder. For example the special file " -"/dev/hda represents the first IDE disk on Linux." -msgstr "" -"Lehen esan dugunez gailuak (gehienak) ere fitxategi sistemaren bidez " -"eskuratzen dira. Fitxategi berezi hauek normalean /dev karpetan gordetzen dira. Adibidez /dev/hda fitxategi bereziak Linux-en lehenengo IDE diskoa adierazten du." - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "Sarri Egindako Galderak" - -#: Thunar.xml:1408(para) -msgid "" -"The intent of this section is to collect the quite numerous frequently asked " -"questions that relate to working with Thunar. If you know of a question that " -"is missing from this page, please file a request." -msgstr "" -"Atal honen helburua Thunar erabiltzaileen arten gehien egiten diren galderen " -"bilduma egitea da. Hemen egon beharko zen eta ez dagoen galdera baten bat " -"ezagutuaz gero , mesedez eskaera bat bete." - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Zergaitik Thunar-ek ez ditu abiarazgarri diren fitxategiak abiarazten?" - -#: Thunar.xml:1419(para) -msgid "" -"For security reasons Thunar only executes files of type application/" -"x-desktop, application/x-executable and " -"application/x-shellscript. For desktop files the " -"execution feature will only be enabled if the desktop file is of type " -"Application and a valid Exec line is " -"given or of type Link and a valid URL " -"is given. For the other types the feature is available if the file is marked " -"executable for the current user." -msgstr "" -"Segurtasun arrazoiak medio Thunar-ek bakarrik application/x-" -"desktop, application/x-executable eta " -"application/x-shellscript motatako fitxategiak abiarazten " -"ditu. Idazmahai fitxategien kasuan abiarazteko gaitasuna bakarrik " -"Application motakoa eta baliozko Exec " -"lerro bat duena edo Loturamotakoa eta baliozko " -"URL bat ematean egongo da aktibaturik. Beste fitxategi " -"motentzat gaitasun hau erabiltzaileak fitxategia abiarazgarri egin badu " -"bakarrik aktibatuko da." - -#: Thunar.xml:1428(para) -msgid "" -"Also note that for application/x-executable and " -"application/x-shellscript, the types of the file don't " -"really need to match these types exactly, but it is suffice if the detected " -"type has a parent that matches one of the two types listed above, or if the " -"MIME-type is an alias for one of the above." -msgstr "" -"Kontutan izan ere application/x-executable eta " -"application/x-shellscript motentzat, fitxategi mota ez " -"dela zehazki mota hauetako izan behar, baina aski da atzemandako motak goian " -"zerrendaturiko bi motako baten azpi mota bat bada, edo MIME-mota bi horien " -"ezizen bat bada." - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Non gordetzen ditu Thunar-ek fitxategiekin loturiko metadatak?" - -#: Thunar.xml:1439(para) -msgid "" -"Thunar associates various settings with files/folders, which we call " -"metadata. This metadata for all files is stored in tdb database file, which " -"is called the metafile. The database file is stored in " -"$XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the " -"tdbtool, which is part of the Thunar distribution " -"(located in the tdb/ subdirectory)." -msgstr "" -"Thunar-ek fitxategi/karpetekin zenbait ezarpen batzen ditu, honi metadata " -"deitzen diogu. Fitxategi guztien metadata hau metafile izeneko tbd datubase " -"batetan gordetzen dira. Datubase hau $XDG_CACHE_HOME/Thunar/" -"metafile.tdb-en gordetzen da eta Thunar banaketaren zati den " -"(tdb/ azpidirektorioan kokatzen da)" -"tdbtool erabiliaz ikusi daiteke." - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Non gordetzen ditu Thunar-ek bere hobespenak?" - -#: Thunar.xml:1452(para) -msgid "" -"Thunar stores the user configurable preferences (and hidden settings) in an " -".ini file, which is located at " -"$XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text " -"editor. See docs/README.thunarrc for an overview of the " -"various preferences." -msgstr "" -"Thunar-ek erabiltzaileak konfiguratu ditzaken ezarpenak (eta ezkutatze " -"ezarpenak) $XDG_CONFIG_HOME/Thunar/thunarrc karpetako " -".ini fitxategi batetan gordetzen ditu eta testu editore " -"bat erabiliaz ikusi daitezke. Irakurri docs/README.thunarrc hobespen ezberdinen ikuspegi bat eskuratzeko." - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Nola erabili sagu keinuak Thunar-en?" - -#: Thunar.xml:1464(para) -msgid "" -"Thunar currently features basic support for so called mouse " -"gestures in its icon view. You can use these mouse " -"gestures by holding down the middle mouse button (usually the " -"mouse wheel) while the mouse pointer is on the background area of the icon " -"view component (any area that is not covered by an icon or a text). Now you " -"can move the cursor into four directions to perform certain actions, which " -"are described below." -msgstr "" -"Thunar-en oinarrizko ezaugarriek sagu keinuak deitzen " -"ditugunak onartzen ditu ikono ikuspegian. Sagu keinu " -"hauek erabiltzeko saguaren markadorean ikono ikuspegiaren atzealdean (testu " -"edo ikono bat ez dagoen edozein eremu) saguaren erdiko botoia (arruntean " -"errubera) sakatua mantendu. Orain sagua mugitu dezakezu lau norabideetan " -"behean zehazten diren zenbait ekintza egiteko." - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "Ezker" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr " aurretik ikusitako karpeta irekitzen du" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "Gora" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr " -guraso karpeta irekitzen du" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "Eskuinera" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr " - hurrengo ikusitako karpeta ireki" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "Behera" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr " - uneko karpeta freskatu" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "Nola ezarri ditzaket lastertekla ezberdinak?" - -#: Thunar.xml:1484(para) -msgid "" -"If you want to rebind a shortcut, Thunar supports the standard GTK+ way of " -"changing shortcuts: simply hover over the menu option with the mouse pointer " -"and press the keyboard shortcut you want to rebind it to." -msgstr "" -"Lastertekla bat berrezarri nahiaz gero, Thunar-ek lasterteklak aldatzeko GTK" -"+ modu estandarra onartzen du: sinpleki menu aukeraren gainean ipini sagu " -"markatzailea eta sakatu berrezarri nahi duzun lastertekla." - -#: Thunar.xml:1490(para) -msgid "" -"To delete a keyboard assignment, press the Backspace key " -"while you are on the menu entry." -msgstr "" -"Teklatu ezarpen bat ezabatu nahiaz gero, sakatu atzera-tekla menu sarreran zaudenean." - -#: Thunar.xml:1495(para) -msgid "" -"If the shortcut doesn't change, then you need to enable the feature in GTK+. " -"This can be achieved in 3 ways:" -msgstr "" -"Lastertekla ez balitz aldatuko, ezaugarri hau gaitu beharko duzu GTK+ -en. " -"Hau hiru modu ezberdinetan egin daiteke:" - -#: Thunar.xml:1502(para) -msgid "" -"If you are running Xfce 4.3 or above then you can enable Editable " -"menu accelerators in the User Interface Preferences dialog." -msgstr "" -"Xfce 4.3 edo berriago bat erabiltzen ari bazara Erabiltzaile " -"Interfaze Hobespenetan Menu azeleradore editagarriak gaitu behar dituzu." - -#: Thunar.xml:1510(para) -msgid "" -"If you are running GNOME then you can enable Editable menu " -"accelerators in the Menu and Toolbars " -"control center dialog." -msgstr "" -"Baldin eta GNOME erabiltzen baduzu Menu eta tersnabarra kontrol gune elkarrizketan Menu azeleradore " -"editagarriak gaitu ditzakezu." - -#: Thunar.xml:1518(para) -msgid "" -"Otherwise put the following in your ~/.gtkrc-2.0 file " -"(create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" -"Bestela ipini hurrengo hau zure ~/.gtkrc-2.0 " -"fitxategian (sortu ez balego):gtk-can-change-accels=1" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Non gordetzen ditu Thunar-ek teklatu laster-markak?" - -#: Thunar.xml:1529(para) -msgid "" -"The custom keyboard shortcuts are stored in the standard GTK+ accel map " -"format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK" -"+ documentation for details about the file format." -msgstr "" -"Laster tekla pertsonalizatuak GTK+ azelearadore mapa formatu estandarrean " -"$XDG_CONFIG_HOME/Thunar/accels.scm fitxategian " -"gordetzen dira. ;-ez hasten diren lerroak iruzkinak dira. " -"Ikusi GTK+ dokumentazioa fitxategi formatuari buruzko xehetasunentzat." - -#: Thunar.xml:1536(para) -msgid "" -"If you are a packager or a system administrator and want to provide a system " -"wide default for the keyboard shortcuts, that is different from the default " -"shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if " -"/etc/xdg is part of " -"$XDG_CONFIG_DIRS (the default for most Linux distributions), you can " -"install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" -"Pakete sortzailea edo sistema kudeatzailea izan eta Thunar-en lehenetsiriko " -"laster teklak ez diren beste batzuk erabili nahi izanez gero, " -"Thunar/accels.scm fitxategia sortu dezakezu " -"$XDG_CONFIG_DIRS-etako batetan. Adibidez, /etc/xdg direktorioa $XDG_CONFIG_DIRS zati bat " -"da (lehenetsia banaketa gehienetan, sistema guztirako laster teklak " -"/etc/xdg/Thunar/accels.scm fitxategian ezarri " -"ditzakezu. Thunar-ek abiaraztean laster teklak fitxategi horretatik " -"irakurriko ditu." - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "Lagundu" - -#: Thunar.xml:1551(para) -msgid "" -"To report a bug or to make a suggestion regarding this application or this " -"manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a " -"useful bug report has two qualities:" -msgstr "" -"Aplikazio hau edo manual honi buruzko arazo baten berri eman edo gomendio " -"bat egiteko http://bugzilla.xfce.org/ arazo " -"kudeaketa sistema erabili. Gogoratu arazo erreporte on bat konponbidea duena " -"dela, beraz arazo erreporte on batek bi kualitate ditu:" - -#: Thunar.xml:1559(para) -msgid "" -"Reproducible. If the developer cannot see " -"the bug himself to prove that it exists, he will most probably not be able " -"to fix it at all. Every detail you can provide helps." -msgstr "" -"Errepikagarria. Garatzaileak ezin badu " -"arazoa benetan dagoela ikusteko berau bere sisteman errepikatu, ziurrenik ez " -"da arazo hori konpontzeko gai izango. Eman dezakezun edozein xehetasun " -"erabilgarria izan daiteke." - -#: Thunar.xml:1566(para) -msgid "" -"Specific. The quicker the developer can " -"isolate the problem to a specific area, the more likely he will expediently " -"fix it." -msgstr "" -"Zehatza. Garatzaileak arazoa eremu jakin " -"batetan kokatzea errazteko, horrela ziurrenik konpontzeko gai izango da." - -#: Thunar.xml:1573(para) -msgid "" -"In case you want to request a new feature, please make clear why you " -"consider it a worth addition for the application. It is more likely that a " -"new feature gets added if you provide good arguments for the feature. It " -"will increase the chance of addition even more if you provide a patch that " -"implements the requested feature, but make sure that you read the file " -"HACKING - especially the section labeled Coding " -"Style - before you start hacking up the source." -msgstr "" -"Ezaugarri berri bat eskatu nahi izanez gero, mesedez argi utzi zergatik zure " -"ustez aplikaziora gehitu behar den. Gehitzeko eskatzean argumentu onak " -"erabiliaz gero errazagoa izango da aurrerantzean ezaugarri hori gehitzea. " -"Errazagoa izango da ere eskatutako ezaugarria gehitzen duen adabakia " -"bidaltzen baduzu, baina ziurtatu zaitez HACKING dokumentua " -"irakurri duzula bereiziki Kodeketa Estiloa atala - " -"kodea hobetzen hasi aurretik." - -#: Thunar.xml:1583(para) -msgid "" -"Else, if you have questions about the use or installation of this software, " -"please ask on the thunar-dev mailing list or point your IRC " -"client to irc.freenode.net, join the " -"channel #thunar and ask for help." -msgstr "" -"Bestela, software hau instalatzeko edo erabiltzeko zalantzak izanez gero " -"mesedez galde itzazu thunar-devposta zerrendan edo joan IRC " -"bezeroan bitarteaz irc.freenode.net " -"sareko #thunar gelara eta laguntza eskatu." - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ -ri buruz" - -#: Thunar.xml:1594(para) -msgid "" -"@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" -"@PACKAGE_NAME@ Benedikt Meurer-ek (benny@xfce.org) idatzia " -"izan da. Thunar " -"webgunea begiratu argibide gehiagorako." - -#: Thunar.xml:1599(para) -msgid "" -"This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the " -"Thunar website." -msgstr "" -"Dokumentazio hau Benedikt Meurer-ek (benny@xfce.org) idatzia " -"da. Dokumentu honen azken bertsioa betiThunar webgunean dago eskuragarri." - -#: Thunar.xml:1605(para) -msgid "" -"This software is distributed 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." -msgstr "" -"Software hau Free Software Foundation-ek kaleratutako GNU Lizentzia Publiko " -"Orokorraren baldintzetan zabaltzen da bai Lizentziaren 2 bertsioan, edo " -"(zure aukeran) berriago den edozeinetan." - -#: Thunar.xml:1611(para) -msgid "" -"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." -msgstr "" -"Programa honekin batera GNU Lizentzia Publiko Orokorraren kopia bat jasoko " -"zenuen; hala ez bada, idatzi hona: Free SoftwareFoundation, Inc., 59 Temple " -"Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "Piarres Beobide 2004, 2006." diff -Nru thunar-1.2.3/docs/manual/po/fr.po thunar-1.6.10/docs/manual/po/fr.po --- thunar-1.2.3/docs/manual/po/fr.po 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/fr.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1337 +0,0 @@ -# French translation of the manual from the thunar package. -# Copyright (C) 2004-2007 Benedikt Meurer. -# This file is distributed under the same license as the Thunar package. -# Maximilian Schleiss , 2007. -# Patrick Douart , 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: Thunar documentation\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2009-10-25 09:29+0100\n" -"Last-Translator: Douart Patrick \n" -"Language-Team: French \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml12(title) -msgid "Thunar File Manager" -msgstr "Gestionnaire de fichiers Thunar" - -#: Thunar.xml17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." - -#: Thunar.xml37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml40(jobtitle) -msgid "Software developer" -msgstr "Développeur logiciel" - -#: Thunar.xml41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml42(orgdiv) -msgid "System development" -msgstr "Développement système" - -#: Thunar.xml43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Ce manuel décrit la version @PACKAGE_VERSION@ de @PACKAGE_NAME@." - -#: Thunar.xml54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Introduction à @PACKAGE_NAME@" - -#: Thunar.xml56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar est un nouveau gestionnaire de fichiers moderne pour l'environnement de bureau Xfce. Thunar a été conçu dès le départ pour être rapide et simple d'utilisation. Son interface, claire et intuitive, ne contient pas d'éléments superflus ou pouvant prêter à confusion. Thunar a un temps de chargement des dossiers très court et son propre temps de chargement l'est tout autant." - -#: Thunar.xml62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "Le gestionnaire de fichiers Thunar fournit un point d'accès centralisé pour vos fichiers et applications. Voici quelques exemples d'utilisation du gestionnaire de fichiers :" - -#: Thunar.xml68(para) -msgid "Create folders and documents." -msgstr "Créer des dossiers et documents." - -#: Thunar.xml69(para) -msgid "Display your files and folders." -msgstr "Afficher vos fichiers et dossiers." - -#: Thunar.xml70(para) -msgid "Manage your files and folders." -msgstr "Gérer vos fichiers et dossiers." - -#: Thunar.xml71(para) -msgid "Run and manage custom actions." -msgstr "Exécuter et gérer des actions personnalisées." - -#: Thunar.xml72(para) -msgid "Access Removable Media." -msgstr "Accéder à vos périphériques amovibles." - -#: Thunar.xml78(title) -msgid "The File Manager Window" -msgstr "La fenêtre du gestionnaire de fichiers" - -#: Thunar.xml80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "Par défaut le gestionnaire de fichiers contient un panneau de raccourcis sur la gauche et une fenêtre principale sur la droite avec une barre de chemin au dessus." - -#: Thunar.xml92(phrase) -msgid "File Manager Window" -msgstr "Fenêtre du gestionnaire de fichiers" - -#: Thunar.xml97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "Le Panneau de raccourcis fournit des raccourcis vers différent dossiers de votre système. Le premier raccourci mène au Dossier personnel, il contient toutes vos données personnelles et prend de ce fait le nom de votre utilisateur actuel. Le second raccourci mène à la corbeille contenant les éléments effacés pouvant être récupérés si nécessaire. Le troisième raccourci est un lien vers le Bureau contenant tous les éléments visibles dessus et le quatrième raccourci vous mène à la base de votre système de fichiers - n'hésitez pas à l'explorer un peu, même s'il vous paraît confus si vous êtes nouveau dans le monde Linux/Unix. Cliquez sur les différents dossiers et regardez ce qui s'y trouve." - -#: Thunar.xml108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "Sous le raccourci Système de fichiers, viendront s'afficher les disques amovibles et autres médias. Sur la capture d'écran ci-dessus, on peut voir le raccourci d'un Lecteur de disquettes. Cliquez sur ces raccourcis pour accéder aux disques amovibles et autres médias. Lire pour plus de détails." - -#: Thunar.xml115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "Le reste des raccourcis peuvent être créés par vous-même. Il suffit pour cela de faire glisser un dossier dans le Panneau des raccourcis. Ces raccourcis permettent d'accéder à des dossiers important en un clin d'oeil. Pour supprimer ou renommer un raccourci créé par vous-même, cliquez avec le bouton droit de la souris et choisissez respectivement Supprimer le raccourci ou Renommer le raccourci. Notez bien que seul le nom du raccourci change et pas celui du dossier en question." - -#: Thunar.xml123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "La partie principale affiche toujours le contenu du dossier actuel. Double-cliquez sur les dossiers pour entrer dedans et cliquez-droit sur les fichiers ou dossiers pour afficher un menu contextuel avec plusieurs actions possibles. Sélectionnez plusieurs fichiers à la fois en maintenant le bouton de la souris enfoncé et en dessinant un rectangle par dessus. Vous pouvez aussi sélectionner un fichier, maintenir la touche shift enfoncée et agrandir ou diminuer le champ de sélection avec les touches directionnelles." - -#: Thunar.xml131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "La Barre de chemin affiche toujours le chemin jusqu'au dossier actuel. Vous pouvez cliquer sur l'un des boutons de la barre de chemin pour accéder au dossier qu'il représente. Un clic-droit sur un bouton affiche un menu contextuel avec des options." - -#: Thunar.xml139(title) -msgid "Customizing the Appearance" -msgstr "Configurer l'apparence" - -#: Thunar.xml141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "Il existe plusieurs moyen de configurer l'apparence de la fenêtre du gestionnaire de fichiers. Si vous n'aimez pas la manière dont sont affichés les icônes, choisissez VueVue en liste détaillée dans le menu principal pour afficher le contenu du dossier actuel sous forme de liste détaillée." - -#: Thunar.xml147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "Le gestionnaire de fichiers peut afficher une barre d'outils avec chemin d'accès au lieu de la barre de chemin, avec ses boutons correspondants aux dossiers, en choisissant VueSélecteur de cheminBarre d'outils dans le menu principal." - -#: Thunar.xml153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "Au cas où vous préféreriez une vue en arborescence dans le panneau latéral, choisissez VuePanneau latéralArborescence dans le menu principal." - -#: Thunar.xml160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Colonnes visibles de la vue en liste détaillée" - -#: Thunar.xml162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "Si vous préférez afficher le contenu des dossiers en liste détaillée, sélectionnez VueVue en liste détaillée. Les colonnes de cette vue peuvent être configurée dans le menu VueConfigurer les colonnes... du menu principal." - -#: Thunar.xml175(phrase) Thunar.xml182(guilabel) -msgid "Visible Columns" -msgstr "Colonnes visibles" - -#: Thunar.xml184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "Dans la liste des colonnes disponibles, sélectionnez celles que vous voulez afficher. La disposition des colonnes peut être changée avec les boutons Monter et Descendre. Appuyez sur le bouton Valeurs par défaut pour remettre la disposition par défaut." - -#: Thunar.xml193(guilabel) -msgid "Column Sizing" -msgstr "Dimensionnement de colonne" - -#: Thunar.xml195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "Cochez la case Élargir automatiquement la taille des colonnes si vous voulez que les colonnes s'ajustent au nom des fichiers." - -#: Thunar.xml208(title) -msgid "Working with Files and Folders" -msgstr "Gérer vos fichiers et dossiers" - -#: Thunar.xml212(title) -msgid "Opening Files" -msgstr "Ouvrir des fichiers" - -#: Thunar.xml214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "Lorsque vous ouvrez un fichier, le gestionnaire de fichiers exécute l'application par défaut liée à ce type de fichier. Par exemple, l'ouverture d'un fichier texte se fera dans l'éditeur de texte alors que l'ouverture d'une image se fera dans un visionneur d'images." - -#: Thunar.xml220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "Le gestionnaire de fichiers vérifie l'extension du fichier pour déterminer à quel type de fichier il a affaire. Au cas où le fichier n'aurait pas d'extension, il examinera le contenu du fichier." - -#: Thunar.xml226(title) -msgid "Executing the Default Action" -msgstr "Exécuter une action par défaut" - -#: Thunar.xml228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "Pour exécuter une action par défaut sur un fichier, il suffit de double-cliquer sur le fichier. Par exemple, l'action par défaut pour les fichiers musicaux est de les écouter dans un lecteur de musique. Il suffit donc de double-cliquer dessus pour l'écouter." - -#: Thunar.xml234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "Vous pouvez configurer Thunar pour ouvrir les fichiers d'un simple clic. Reportez-vous à la section pour de plus amples informations." - -#: Thunar.xml241(title) -msgid "Executing Non-Default Actions" -msgstr "Exécuter des actions spéciales" - -#: Thunar.xml243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "Pour exécuter des actions autres que celles par défaut pour un certain fichier, sélectionnez le fichier et choisissez l'option FichierOuvrir avec ou Ouvrir avecdans le menu contextuel d'un clique droit sur le fichier." - -#: Thunar.xml251(title) -msgid "Adding Actions" -msgstr "Ajouter des actions" - -#: Thunar.xml253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "Pour ajouter des actions à un certain type de fichiers, suivez ces instructions :" - -#: Thunar.xml259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "Dans la partie principale, choisissez un fichier dont vous voulez ajouter une action." - -#: Thunar.xml264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "Choisissez FichierOuvrir avec une autre application... dans le menu principal." - -#: Thunar.xml270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "Choisissez une application dans la liste proposée ou cliquez sur Utiliser une commande personnalisée pour chercher l'application avec laquelle vous aimeriez ouvrir ce type de fichiers." - -#: Thunar.xml277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "L'action choisie est maintenant ajoutée à la liste d'applications pour ce type de fichier. Si vous avez par la même occasion coché la case Utiliser cette action par défaut pour ce type de fichiers, l'action sera utilisée par défaut pour ce type de fichiers." - -#: Thunar.xml283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "Vous pouvez aussi définir une action avec le bouton Ouvrir avec du menu FichierPropriétés...." - -#: Thunar.xml290(title) -msgid "Modifying Actions" -msgstr "Modifier des actions" - -#: Thunar.xml292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "Pour modifier des actions associées à un certain type de fichier, suivez ces instructions :" - -#: Thunar.xml298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "Dans la partie principale, choisissez un fichier dont vous voulez modifier l'action." - -#: Thunar.xml303(para) Thunar.xml383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "Choisissez FichierPropiétés... dans le menu principal." - -#: Thunar.xml308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "Sélectionnez la nouvelle action par défaut avec le bouton Ouvrir avec ou ajoutez une nouvelle action dans le menu déroulant Ouvrir avec une autre application...." - -#: Thunar.xml315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "Pour supprimer une action définie au préalable, cliquez sur Ouvrir avec comme décrit plus haut, cliquez-droit sur l'action en question et choisissez Supprimer le lanceur." - -#: Thunar.xml324(title) Thunar.xml361(phrase) -msgid "File Properties" -msgstr "Propriétés des fichiers" - -#: Thunar.xml326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "La fenêtre propriétés affiche plus d'information à propos du fichier sélectionné. Vous pouvez aussi effectuer les actions suivantes :" - -#: Thunar.xml333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "Changer l'icône pour certains fichiers spéciaux comme des lanceurs d'applications et des liens URL." - -#: Thunar.xml338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "Ajouter ou supprimer des emblèmes pour un fichier ou dossier. " - -#: Thunar.xml343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "Changer les droits UNIX sur les fichiers ou dossiers." - -#: Thunar.xml348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "Choisir une application pour ouvrir des fichiers d'un certain type." - -#: Thunar.xml366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "Pour ouvrir la fenêtre des propriétés d'un fichier, suivez ces instructions :" - -#: Thunar.xml372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "Sélectionnez le fichier ou dossier dont vous voulez consulter les propriétés. Dans l'état actuel de Thunar il n'est pas possible de consulter les propriétés communes à plusieurs fichiers sélectionnés en même temps." - -#: Thunar.xml386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "Cliquez-droit sur le fichier sélectionné et choisissez Propriétés... dans le menu contextuel." - -#: Thunar.xml389(para) -msgid "Press AltReturn." -msgstr "Appuyez sur AltEntrée." - -#: Thunar.xml379(para) -msgid "Do one of the following: " -msgstr "Faites une des actions suivantes : " - -#: Thunar.xml400(title) -msgid "Using Removable Media" -msgstr "Utiliser des périphériques amovibles" - -#: Thunar.xml403(title) -msgid "Accessing Removable Media" -msgstr "Accéder aux périphériques amovibles" - -#: Thunar.xml405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "Thunar permet d'accéder aux périphériques amovibles s'il est compilé avec le support pour HAL ou si vous utilisez le système FreeBSD. Notez bien que si vous utilisez FreeBSD 6.0 ou supérieur, il est conseillé d'utiliser HAL en lieu et place du support interne de Thunar." - -#: Thunar.xml412(title) -msgid "To Mount Media" -msgstr "Pour monter des médias" - -#: Thunar.xml414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "Monter des médias avec la commande mount signifie rendre accessible le système de fichiers du média. Lorsque vous montez un média, son système de fichiers vient s'ajouter en tant que sous-dossier dans votre système de fichier." - -#: Thunar.xml419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "Pour accéder aux médias, insérez le média dans le périphérique prévu à cet effet ou connectez le périphérique à votre ordinateur (e.g. connecter une clef USB à un des port USB). Un objet représentant le média s'ajoute au panneau de raccourcis. Si xfdesktop est utilisé et configuré pour afficher les Fichier/icônes lanceurs, le périphérique sera aussi ajouté sur le bureau." - -#: Thunar.xml426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "Pour monter (mount) le média, cliquez sur l'objet le représentant. Par exemple, pour monter un lecteur de disquettes, cliquez sur l'objet représentant le Lecteur de disquettes dans le panneau latéral. Le gestionnaire de fichier s'occupe d'ajouter le système de fichier du lecteur de disquettes au votre et affiche son contenu dans sa partie principale." - -#: Thunar.xml434(title) -msgid "To Eject Media" -msgstr "Pour éjecter un média" - -#: Thunar.xml436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "Si le lecteur de médias est motorisé (e.g. un lecteur de CD-ROM), cliquez-droit sur le média dans le panneau latéral ou sur le bureau et choisissez Éjecter le périphérique. Le disque est éjecté après quelques secondes. Au cas où le lecteur ne serait pas motorisé (e.g. un lecteur de disquettes ou une clef USB), cliquez-droit sur le média en question et choisissez Éjecter le périphérique. Un message de notification s'affiche pour confirmer que le média peut être retiré en toute sécurité." - -#: Thunar.xml451(phrase) -msgid "Unmount notification" -msgstr "Notification de démontage" - -#: Thunar.xml456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "Cette notification n'apparaîtra que si vous avez activé le support pour libnotify et qu'un démon de notification a été installé. Il existe un démon de notification pour Xfce dont voici le lien Xfce Goodies Project. Si le support opur la notification n'est pas disponible, patientez jusqu'à la disparition du menu contextuel avant de retirer le média ou de déconnecter le disque." - -#: Thunar.xml464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "Notez toutefois qu'il n'est pas possible d'éjecter ou démonter des médias utilisés par une ou plusieurs applications. Si le gestionnaire de fichiers refuse d'éjecter un média, fermez toutes les applications ayant accédé au média et assurez-vous qu'aucune ligne de commande d'un émulateur de Terminal ne pointe dessus." - -#: Thunar.xml470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "Assurez-vous de démonter (unmount) vos périphériques amovibles et médias avant de les éjecter. Ne sortez pas une disquette avant de l'avoir démontée. Ne déconnectez pas une clef USB avant de l'avoir démontée. Si vous ne démontez pas votre média avant de le déconnecter, vous risquez de perdre des données ou rendre votre système instable." - -#: Thunar.xml479(title) -msgid "Management of Removable Drives and Media" -msgstr "Gestion de disques amovibles et de médias" - -#: Thunar.xml481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "Thunar est aussi capable de gérer automatiquement les disques amovibles et les médias pour autant que le paquet thunar-volman soit installé sur votre système. Remarquez que cette fonction requiert le support pour HAL." - -#: Thunar.xml487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "Du moment que le support HAL est disponible et que thunar-volman est installé sur votre système, vous pouvez choisir d'activer l'option Gestionnaire de volume dans Thunar. Pour cela, ouvrez la fenêtre des préférences de Thunar, cliquez sur l'onglet Avancé et cochez la case Activer le gestionnaire de volume." - -#: Thunar.xml494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "L'étape suivante consiste à personnaliser la gestion des disques et médias amovibles. Cliquez sur le lien Configurer de la section Gestionnaire de volume juste en dessous de la case à cocher, pour afficher la fenêtre Disques amovibles et médias." - -#: Thunar.xml507(phrase) -msgid "Removable Drives and Media" -msgstr "Disques amovibles et médias" - -#: Thunar.xml512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "Vous ne devriez pas vous sentir dépaysé si vous avez utilisé gnome-volume-manager auparavant, car le Gestionnaire de volume a été conçu pour réagir de même et lui ressembler. Les préférences sont divisées par catégorie de périphérique pour simplifier la recherche d'options pour votre périphérique spécifique." - -#: Thunar.xml519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "La page Stockage contient les options les plus importantes. Comme son nom l'indique, ces options ne s'appliquent qu'aux périphériques de stockage comme les disques dur externes, clefs USB et CD-ROMs. Les options de la page Stockage amovible sont décrites plus bas." - -#: Thunar.xml527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Monter les disques amovibles à la connexion" - -#: Thunar.xml529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "Activer cette option pour monter les systèmes de fichiers des disques amovibles (e.g. Disques dur externes ou clefs USB) lorsque ce genre de périphériques sont connectés à l'ordinateur." - -#: Thunar.xml533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "Cette option doit être activée pour permettre à d'autres options de fonctionner avec des disques amovibles. Par exemple, en désactivant cette option certains lecteurs de musique portables ne pourraient plus être détectés et l'action d'Écouter la musique à la connexion de la page multimédia ne fonctionnerait pas une fois le périphérique connecté." - -#: Thunar.xml544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Monter les médias amovibles à l'insertion" - -#: Thunar.xml546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "Activez cette option pout monter (mount) les systèmes de fichiers de médias amovibles (e.g. CD-ROMs ou DVDs) automatiquement à l'insertion." - -#: Thunar.xml550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "Cette option doit être activée pour permettre à d'autres options de fonctionner avec des médias amovibles. Par exemple, en désactivant cette option il n'est plus possible de déterminer si le média a la fonction d'auto-exécution, ce qui annule l'option Auto-exécution d'applications pour les nouveaux disques et médias." - -#: Thunar.xml560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Parcourir les médias amovibles à l'insertion" - -#: Thunar.xml562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "Activez cette option pour afficher le contenu, à l'insertion de nouveaux médias, dans le gestionnaire de fichiers. Notez bien que le contenu ne sera affiché que si aucune autre action n'est possible ou que vous choisissiez d'ignorer cette action. Par exemple, si vous insérez un CD-ROM avec fonction d'auto-démarrage et l'option d'Auto-exécution d'applications pour les nouveaux disques et médias est activée, il vous sera demandé si vous voulez permettre ou ignorer l'auto-exécution. Si vous décidez d'ignorer l'auto-exécution, le contenu du disque ou média sera affiché dans le gestionnaire de fichiers." - -#: Thunar.xml574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Auto-exécution d'applications pour les nouveaux disques et médias" - -#: Thunar.xml576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "Activez cette option pour faire usage de la capacité d'auto-exécution de certains lecteurs amovibles et médias. Suivez ce lien Desktop Application Autostart Specification pour de plus amples détails à propos du mécanisme d'auto-exécution. Pour des raisons de sécurité, il vous sera toujours demandé de confirmer l'auto-exécution." - -#: Thunar.xml582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "Si l'émulateur Windows WINE est installé sur votre système, le mécanisme d'auto-exécution essaiera aussi d'exécuter les fichier autorun.exe en utilisant WINE." - -#: Thunar.xml590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "Auto-ouverture de fichiers pour les nouveaux disques et médias" - -#: Thunar.xml592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "Activez cette option pour faire l'usage de la capacité d'auto-ouverture de certains disques amovibles et médias. Suivez ce lien Desktop Application Autostart Specification pour de plus amples détails sur le mécanisme d'auto-ouverture. Pour des raisons de sécurité, il vous sera toujours demandé de confirmer l'auto-ouverture." - -#: Thunar.xml602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "Le reste des options permet de spécifier une commande à exécuter lors de l'insertion de certains médias dans un lecteur ou à la connexion de certains types de lecteurs amovibles. L'on peut substituer trois variables spéciales à la commande à exécuter :" - -#: Thunar.xml610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "Chaque apparition de %d dans la commande se substitue avec le chemin d'accès jusqu'au fichier représentant le nouveau périphérique ajouté. Par exemple, si vous connectez une clef USB, le chemin d'accès jusqu'au fichier représentant le périphérique sera /dev/sda0 ou /dev/sda1." - -#: Thunar.xml617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "Si aucun fichier n'est associé au périphérique ou s'il n'a pas été trouvé pour quelconque raison, la variable %d est substituée par un vide." - -#: Thunar.xml625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "Chaque apparition de %h dans la commande est substitué par l'UDI HAL du périphérique nouvellement ajouté." - -#: Thunar.xml635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "Chaque apparition de %m dans la commande se substitue par le point de montage où le nouveau périphérique a été monté. Au cas où le périphérique ne peut être monté (e.g. imprimantes ou claviers) ou si le montage automatique est désactivé, la variable %m est substituée par un vide." - -#: Thunar.xml648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "Dépanner le Gestionnaire de volumes" - -#: Thunar.xml650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "Quelques conseils pour dépanner le gestionnaire de volumes au cas où il ne fonctionnerait pas comme prévu." - -#: Thunar.xml656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "Assurez-vous que Thunar est en cours d'exécution en mode démon. Le gestionnaire dépend de cela n'étant pas un démon lui-même. Thunar est automatiquement exécuté en mode démon au démarrage Xfce. Si pour une raison ou une autre le démon venait à être stoppé, ouvrez " - -#: Thunar.xml668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "Essayez d'exécuter thunar-volman à partir d'une fenêtre Terminal après la connexion du lecteur ou l'insertion du média. Tout d'abord vous devez connaître l'UDI HAL du nouveau périphérique en utilisant les commandes lshal ou hal-device. Une fois que vous connaissez son UDI, exécutez thunar-volman --device-added <udi-de-votre-périphérique> dans une fenêtre Terminal et vérifiez les messages d'erreurs ou d'avertissements." - -#: Thunar.xml678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "Au cas où cela ne fonctionnerait toujours pas, demandez de l'aide sur le forum Xfce ou sur la liste de distribution thunar-dev." - -#: Thunar.xml689(title) -msgid "File Management Preferences" -msgstr "Préférences du gestionnaire de fichiers" - -#: Thunar.xml691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "Pour ajuster les préférences de Thunar, utilisez le menu ÉditerPréférences... de la barre de menu ou cliquez sur le bouton Gestionnaire de fichiers du Gestionnaire de préférences Xfce." - -#: Thunar.xml697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "La fenêtre des Préférences du gestionnaire de fichiers est divisée en quatres sections contenant différentes options décrites plus bas. Elles se résument ainsi :" - -#: Thunar.xml703(para) -msgid "The default settings for the views." -msgstr "Préférences par défaut pour les vues." - -#: Thunar.xml704(para) -msgid "The default settings for the side pane." -msgstr "Préférences par défaut pour le panneau latéral." - -#: Thunar.xml705(para) -msgid "The behavior of the file manager windows." -msgstr "Le comportement de la partie principale du gestionnaire de fichiers." - -#: Thunar.xml706(para) -msgid "Advanced features of the file manager." -msgstr "Les fonctions avancées du gestionnaire de fichiers." - -#: Thunar.xml709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "Thunar supporte aussi une poignée d'Options cachées qui contrôlent plusieurs fonctionnalités avancées de thunar mais qui n'ont pas trouvé leur place dans le menu des préférences pour garder ce dernier simple et efficace. Le fichier README.thunarrc distribué avec Thunar décrit ces options plus en détail." - -#: Thunar.xml718(title) Thunar.xml733(phrase) -msgid "Views Preferences" -msgstr "Préférences des vues" - -#: Thunar.xml720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "Vous pouvez spécifier une vue par défaut, sélectionner le mode de tri des fichiers et définir des options d'affichage. Vous pouvez aussi définir si des miniatures de certains fichiers qui le supportent doivent être affichés." - -#: Thunar.xml740(guilabel) -msgid "View new folder using" -msgstr "Voir un nouveau dossier en utilisant" - -#: Thunar.xml742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "Sélectionnez la vue par défaut pour les dossiers. Lorsque vous ouvrez un nouveau dossier, il est affiché avec la vue que vous avez choisi. Cette vue peut être soit la vue d'icônes, liste détaillée ou liste compacte. Il est aussi possible d'utiliser la Dernière vue active pour utiliser la vue de la dernière fenêtre active de Thunar." - -#: Thunar.xml752(guilabel) -msgid "Sort folders before files" -msgstr "Trier les dossiers avant les fichiers" - -#: Thunar.xml754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "Sélectionnez cette option pour faire apparaître les dossiers avant les fichiers dans la fenêtre principale." - -#: Thunar.xml761(guilabel) -msgid "Show thumbnails" -msgstr "Afficher les miniatures" - -#: Thunar.xml763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "Sélectionnez cette option pour afficher les miniatures des fichiers qui supportent cette option. Le gestionnaire de fichiers stocke les miniatures dans le dossier caché .thumbnails à l'intérieur du dossier personnel de l'utilisateur." - -#: Thunar.xml768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "Suivez le lien si vous voulez étendre les fonctionnalités basiques de miniatures de Thunar avec d'autres types de fichiers." - -#: Thunar.xml777(guilabel) -msgid "Text beside icons" -msgstr "Texte à côté des icônes" - -#: Thunar.xml779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "Sélectionnez cette option pour placer le texte des icônes à côté de ces derniers plutôt que dessous." - -#: Thunar.xml790(title) Thunar.xml803(phrase) -msgid "Side Pane Preferences" -msgstr "Préférences du panneau latéral" - -#: Thunar.xml792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "Vous pouvez définir des vues différentes pour le panneau latéral et d'arborescence." - -#: Thunar.xml808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "Le panneau latéral peut soit afficher des raccourcis vers certains dossier de votre système de fichiers, ce qui est son comportement par défaut, ou afficher une vue en arborescence. Cette page permet de définir la taille des icônes pour le panneau latéral et principal. Vous pouvez aussi choisir d'afficher ou non les emblèmes de dossier." - -#: Thunar.xml817(guilabel) -msgid "Icon Size" -msgstr "Taille d'icône" - -#: Thunar.xml819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "La taille d'icône affichée dans le panneau latéral ou principal allant de Très petit (autour des 16x16 pixels) à Très grand (autour des 128x128 pixels)." - -#: Thunar.xml827(guilabel) -msgid "Show Icon Emblems" -msgstr "Afficher les emblèmes" - -#: Thunar.xml829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "Sélectionnez cette option pour afficher des emblèmes pour les dossiers. Pour assigner un emblème à un dossier il faut le sélectionner et choisir FichierPropriétés... dans le menu principal ou cliquer dessus à l'aide du bouton droit de la souris et choisir Propriétés... dans le menu contextuel." - -#: Thunar.xml843(title) Thunar.xml856(phrase) -msgid "Behavior Preferences" -msgstr "Préférences de comportement" - -#: Thunar.xml845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "Vous pouvez choisir le comportement préféré lors de l'interaction avec le gestionnaire de fichiers." - -#: Thunar.xml863(guilabel) -msgid "Single click to active items" -msgstr "Simple clic pour activer les éléments" - -#: Thunar.xml865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "Sélectionnez cette option pour accomplir l'action par défaut sur cet élément lors d'un simple clic. Lorsque cette option est sélectionnée et vous pointez la souris sur un élément, le titre de ce dernier se verra souligné et il sera sélectionné automatiquement après un court délai." - -#: Thunar.xml871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "Ce délai peut être défini sous l'option en question. Vous pouvez aussi désactiver la sélection automatique en glissant le curseur vers la position gauche absolue." - -#: Thunar.xml880(guilabel) -msgid "Double click to activate items" -msgstr "Double clic pour activer les éléments" - -#: Thunar.xml882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "Sélectionnez cette option pour accomplir l'action par défaut sur cet élément lors d'un double clic et l'activer lors d'un simple clic." - -#: Thunar.xml893(title) Thunar.xml906(phrase) -msgid "Advanced Preferences" -msgstr "Préférences avancées" - -#: Thunar.xml895(para) -msgid "You can control advanced features of the file manager." -msgstr "Vous pouvez contrôler les préférences avancées du gestionnaire de fichiers." - -#: Thunar.xml913(guilabel) -msgid "Folder Permissions" -msgstr "Permissions de dossiers" - -#: Thunar.xml915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "Choisissez l'action à accomplir lorsque vous changez les permissions d'un dossier dans ses Propriétés. Vous avez le choix entre laisser Thunar vous poser la question à chaque fois que vous changerez les permissions d'un dossier, le laisser appliquer les changements au dossier ou au dossier et son contenu." - -#: Thunar.xml925(guilabel) -msgid "Volume Management" -msgstr "Gestionnaire de volume" - -#: Thunar.xml927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "Si Thunar a été installé avec le support HAL et le paquet thunar-volman est aussi installé, vous pouvez activer le gestionnaire de volume intégré. Voir pour plus de détails à propos de cette particularité." - -#: Thunar.xml940(title) -msgid "Customizing Thunar" -msgstr "Personnaliser Thunar" - -#: Thunar.xml942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "Cette section décrit comment vous pouvez personnaliser certaines parties du gestionnaire de fichiers." - -#: Thunar.xml948(title) -msgid "The \"Send To\" Menu" -msgstr "Le menu \"Envoyer vers\"" - -#: Thunar.xml950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "Thunar inclut un menu Envoyer vers qui permet d'envoyer certains fichiers ou dossiers vers une destination prédéfinie. Pour accéder au menu Envoyer vers, choisissez FichierEnvoyer vers dans le menu principal ou cliquez-droit sur un fichier ou dossier et choisissez Envoyer vers." - -#: Thunar.xml964(phrase) -msgid "\"Send To\" Menu" -msgstr "Menu \"Envoyer vers\"" - -#: Thunar.xml969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "Par défaut le menu Envoyer vers contient un élément Bureau (Créer lien) pour tous les fichiers et dossiers. Cet élément crée un lien sur le bureau vers le fichier ou dossier sélectionné. Si le Panneau des raccourcis est actif, vous trouverez aussi dans le menu un élément Panneau latéral (Créer raccourci) pour les dossiers, ce qui vous permets de créer de nouveaux raccourcis dans le panneau latéral. À la suite de ces éléments du menu Envoyer vers, Thunar vient ajouter à la liste les disques amovibles actuellement branchés à l'ordinateur. Dans la capture d'écran ci-dessus, le Lecteur de disquettes représente une destination possible pour l'envoi de fichiers. Le disque est \"monté\" (mount) automatiquement à la sélection dans le menu Envoyer vers pour que vous n'ayez pas besoin de le faire vous-même." - -#: Thunar.xml979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "Thunar contient d'office un greffon thunar-sendto-email qui ajoute l'élément Destinataire courriel au menu. Ce dernier permet d'envoyer les fichiers ou dossiers sélectionnés, avec le programme de messagerie par défaut. Si la sélection contient au moins un dossier, le tout est ajouté dans une archive ZIP avant d'être attaché au courriel. Le gestionnaire de fichiers demandera à l'utilisateur s'il faut compresser les fichiers avant de les envoyer, dans le cas de fichiers multiples ou dépassant 200Ko." - -#: Thunar.xml987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "Comme la plupart des particularités de Thunar, le menu Envoyer vers peut aisément être personnalisé avec de nouveaux éléments par l'utilisateur ou les développeurs d'applications en utilisant des fichiers standards desktop entry files. Ces fichiers doivent êtres installés dans un des dossiers $XDG_DATA_DIRS/Thunar/sendto/ (suivez le lien XDG Base Directory Specification pour plus de détails à propos de la variable $XDG_DATA_DIRS)." - -#: Thunar.xml996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "Le MimeType de la destination .desktop spécifie le type de fichiers pour lesquels cette action doit apparaître dans le menu Envoyer vers. Par exemple, imaginons un instant que vous vouliez ajouter un élément permettant de télécharger (upload) vers le site Flickr, cet élément ne devrait s'afficher que pour les images au format JPEG (d'autres formats ne sont pas supportés par flickr). Vous devriez donc ajouter la ligne MimeType=image/jpeg; dans les types de votre élément. Si vous ne spécifiez pas de MimeType, votre élément s'affichera pour tous les fichiers." - -#: Thunar.xml1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "Ci-dessous se trouve un exemple complet utilisant l'application postr :" - -#: Thunar.xml1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Intégrer postr dans\n" -"# le menu \"Envoyer vers\".\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "Si vous installez ce fichier dans ~/.local/share/Thunar/sendto/ (créez le dossier s'il n'existe pas encore), le menu Envoyer vers comprendra le nouvel élément Flickr pour tous les fichiers JPEG et pourra être utilisé pour envoyer des images sur le site Flickr." - -#: Thunar.xml1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "Le site Thunar Project Wiki contient d'autres exemples d'éléments utiles pour le menu Envoyer vers. N'hésitez pas à compléter le wiki avec vos suggestions." - -#: Thunar.xml1036(title) -msgid "Thumbnailers" -msgstr "Thumbnailers (Créateurs de miniatures)" - -#: Thunar.xml1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "Thunar utilise de petits utilitaires pour créer les miniatures de certains types de fichiers et affiche ces miniatures comme pré-visualisation du contenu dudit fichier. Ces petits utilitaires sont appelés des \"thumbnailers\". Thunar vient d'office avec plusieurs créateurs de miniatures installés et fait usage des facilités de créations de miniatures offertes par GNOME s'il a été installé avec le support gconf. L'utilisateur peut néanmoins ajouter à ces fonctions de base, tout créateur de miniatures additionnel pour différents types de fichiers." - -#: Thunar.xml1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "Si vous envisagez d'écrire un créateur de miniatures personnalisé, vous devez vous assurer que votre programme supporte au moins deux lignes de commande, le fichier d'entrée, qui serait votre type de fichier à ajouter et le fichier de sortie, qui doit être au format PNG et conforme aux spécifications du Thumbnail Management Standard. En plus, votre programme pourrait accepter les tailles définies de miniatures, ce qui est optionnel mais fortement recommandé. Si vous optez pour ne pas suivre la taille définie de miniature, Thunar viendrait à redimensionner l'image pour lui donner la taille standard et le résultat pourrait être inférieur en qualité qu'un dimensionnement juste dès le départ." - -#: Thunar.xml1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "Une fois votre utilitaire terminé, vous devrez l'enregistrer auprès de Thunar pour qu'il puisse en faire usage. Pour cela il vous suffit d'installer un fichier de description pour votre créateur de miniatures (un fichier .desktop) dans un des dossiers $XDG_DATA_DIRS/thumbnailers/. Par exemple, si vous voulez utiliser le créateur de miniatures uniquement pour votre utilisateur, vous installerez le fichier de description dans le dossier ~/.local/share/thumbnailers/. Le fichier .desktop pour le créations de miniatures a le format suivant." - -#: Thunar.xml1063(title) -msgid "Thumbnailer Description File Format" -msgstr "Fichier de description de création de miniatures" - -#: Thunar.xml1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "Les fichiers de description de créateurs de miniatures utilisent le format Desktop Entry Format avec un Type spécial X-Thumbnailer et de nouveaux codes dans le champ X-Thumbnailer-Exec. D'une certaine manière, un fichier de description d'un créateur de miniatures a le format suivant :" - -#: Thunar.xml1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=votre-créateur-de-miniatures %i %o %s" - -#: Thunar.xml1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "Les champs Version et Encoding sont ordonnés par le \"Desktop Entry Specification\", utilisez les valeurs utilisées dans l'exemple ci-dessus. Le champ Type doit impérativement contenir la valeur X-Thumbnailer faute de quoi le créateur de miniatures ne serait pas reconnu. Le champ Name décrit votre créateur de miniatures." - -#: Thunar.xml1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "Le champ X-Thumbnailer-Exec contient la commande à exécuter pour le créateur de miniatures et supporte certains codes qui se substitueront à l'exécution. Les codes reconnus sont les suivants :" - -#: Thunar.xml1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "Le chemin d'accès jusqu'au fichier pour lequel il faut créer une miniature. Peut être un chemin d'accès partant du dossier d'où est exécuté le créateur de miniatures ou un chemin d'accès complet." - -#: Thunar.xml1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "Le chemin d'accès vers le fichier de sortie où est générée la miniature. Le fichier de sortie doit être de type PNG valide tel que défini par le standard de miniature (voir plus haut). Le chemin vers le fichier ne se termine pas obligatoirement avec .png, ce qui est à prendre en considération avec certaines applications tierces." - -#: Thunar.xml1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "La taille voulue de la miniature en pixels. Ce paramètre est optionnel." - -#: Thunar.xml1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "Similaire à %i mais substitué par l'URI du fichier plutôt qu'à son chemin d'accès. Ceci a été ajouté pour la compatibilité avec GNOME." - -#: Thunar.xml1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml1127(para) -msgid "Will be substituted with a single %." -msgstr "Sera substitué par un unique caractère %." - -#: Thunar.xml1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "Vous devez au moins inclure %o et %i ou %u, sinon votre créateur de miniatures sera inutile." - -#: Thunar.xml1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "Le champ MimeType liste les types MIME - séparés par un point-virgule - pour lesquels votre créateur de miniatures est capable de créer des miniatures." - -#: Thunar.xml1143(title) -msgid "Example EPS Thumbnailer" -msgstr "Exemple d'un créateur de miniatures pour EPS" - -#: Thunar.xml1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "Cet exemple démontre comment écrire et installer un nouveau créateur de miniatures pour les fichiers de type .eps qui utilise la commande convert de la suite ImageMagick. Nous commençons par invoquer la commande convert pour générer une miniature à la taille voulue." - -#: Thunar.xml1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Exemple de script pour la création de miniatures pour les fichiers EPS.\n" -"#\n" -"# Utilisation: esp-thumbnailer fichier-eps fichier-png taille\n" -"#\n" -"\n" -"# paramètres de la ligne de commande\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "Enregistrez le script ci-dessus dans un fichier eps-thumbnailer, assurez-vous qu'il soit bien exécutable et installez le dans /usr/local/bin." - -#: Thunar.xml1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "Ensuite nous allons créer le fichier de description eps-thumbnailer.desktop qui ressemble à cela :" - -#: Thunar.xml1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "Ce fichier doit être installé dans le dossier /usr/local/share/thumbnailers (créez le s'il n'existe pas)." - -#: Thunar.xml1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "Le fichier du créateur de miniatures eps-thumbnailer.desktop utilise la commande spéciale TryExec, qui, si elle est spécifiée, nomme une commande qui doit être présente dans le système pour que le créateur de miniatures soit utile. Le script serait inutile si la commande convert n'était pas disponible." - -#: Thunar.xml1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "La dernière étape est celle de régénérer le cache de créateurs de miniatures pour que Thunar soit au courant que nous lui en avons ajouté un. Le cache se situe dans $XDG_CACHE_HOME/Thunar/thumbnailers.cache (à moins que vous ou votre administrateur système n'ayez changé l'emplacement, $XDG_CACHE_HOME devrait se trouver dans ~/.cache/). Le cache des créateurs de miniatures est automatiquement régénéré périodiquement par Thunar mais vous pouvez forcer ce rafraîchissement en invoquant la commande thunar-vfs-update-thumbnailers-cache-1. Cet utilitaire est installé, la plupart du temps, dans le sous-dossier libexec de votre préfixe d'installation (sbin dans Debian/Ubuntu). Donc, par exemple, si Thunar est installé dans /usr, la commande serait la suivante :" - -#: Thunar.xml1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "Mais soyez certain de bien exécuter la commande depuis votre compte d'utilisateur et non celui du super-utilisateur (root), car votre cache de miniatures se trouve dans votre dossier personnel et non dans un emplacement pour tout le système." - -#: Thunar.xml1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "Maintenant, si Thunar a été compilé avec le support un moniteur de modifications tel que FAM ou GAMIN, il va automatiquement prendre en compte le nouveau créateur de miniatures dans les secondes qui suivent et sera capable de créer des miniatures grâce à lui. Sinon il faudra redémarrer Thunar pour appliquer les changements en utilisant la commande :" - -#: Thunar.xml1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "pour arrêter toute instance de Thunar et le relancer par la suite depuis son lanceur." - -#: Thunar.xml1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Purger les miniatures" - -#: Thunar.xml1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "Les miniatures créés sont stockés dans le dossier ~/.thumbnails/ en concordance avec la norme Thumbnail Management Standard. Lorsque vous testez un nouveau créateur de miniatures, il peut être préférable de d'abord purger les miniatures avec la commande suivante :" - -#: Thunar.xml1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "ce qui vous libérera aussi un peu d'espace dans votre dossier personnel. Les miniatures étant créées à partir de fichiers de votre système, vous ne perdrez pas de données en le vidant." - -#: Thunar.xml1257(title) -msgid "Advanced Topics" -msgstr "Sujets avancés" - -#: Thunar.xml1261(title) -msgid "To Bulk Rename Files" -msgstr "Pour renommer plusieurs fichiers à la fois" - -#: Thunar.xml1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "L'action de renommer en masse des fichiers utilise certains critères qui s'appliquent au moins à un des fichiers. Thunar inclut la fonctionnalité de renommer en masse en sélectionnant deux ou plusieurs fichiers et en choisissant ÉditionRenommer... ou en appuyant sur la touche F2. Cette action peut aussi être exécutée séparément avec la commande Thunar -B." - -#: Thunar.xml1278(phrase) -msgid "Bulk Rename Files" -msgstr "Renommer plusieurs fichiers" - -#: Thunar.xml1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "Renommer plusieurs fichiers change le nom du fichier mais peut aussi changer son extension. ou tous les deux. Thunar supporte les possibilités suivantes pour renommer les fichiers :" - -#: Thunar.xml1290(para) -msgid "Remove characters." -msgstr "Supprimer des caractères." - -#: Thunar.xml1291(para) -msgid "Numbering files." -msgstr "Numéroter les fichiers." - -#: Thunar.xml1292(para) -msgid "Insert Date or Time." -msgstr "Insérer la date ou l'heure" - -#: Thunar.xml1293(para) -msgid "Insert or overwrite characters." -msgstr "Insérer ou écraser des caractères." - -#: Thunar.xml1294(para) -msgid "Search and replace characters." -msgstr "Chercher et remplacer des caractères." - -#: Thunar.xml1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "Convertir en majuscule, minuscule ou 1ère LettreEnMajuscule (CamelCase)" - -#: Thunar.xml1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "D'autres options pour renommer plusieurs fichiers peuvent être installés comme greffons pour Thunar. Visitez le site Web Thunar Plugins pour prendre connaissance des extensions disponibles. Le Thunar Project Wiki contient de plus amples renseignements à ce sujet. Vous pouvez aussi ajouter des informations à ce site." - -#: Thunar.xml1308(title) -msgid "The UNIX File System" -msgstr "Le système de fichiers UNIX" - -#: Thunar.xml1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "Bien que le gestionnaire de fichiers Thunar s'occupe de faire abstraction, pour l'utilisateur, du système de fichiers sous-jacent, il est préférable, dans bien des cas, d'en connaître les bases. Cette section du manuel est une brève introduction au système de fichiers UNIX utilisé de nos jours par toutes ses versions dérivées, dont Linux fait partie." - -#: Thunar.xml1318(title) -msgid "Folders and Paths" -msgstr "Dossiers et chemins d'accès" - -#: Thunar.xml1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "Dans le système de fichiers UNIX, tous les dossiers sont arrangés dans une simple structure d'arborescence inversée où l'on nomme la base le répertoire racine (le terme répertoire est souvent utilisé à la place de dossier) et Thunar s'occupe d'afficher cela comme Systéme de fichiers. Cette arborescence inversée signifie que l'on peut aller d'un dossier à un autre en remontant l'arbre jusqu'à un point commun reliant les deux dossiers, pour redescendre l'arbre à travers les sous-dossiers jusqu'à la destination voulue." - -#: Thunar.xml1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "La position de chaque dossier ou fichier peut être définie par son chemin d'accès. Le chemin d'accès est la liste des dossiers à traverser pour accéder au dossier de destination, en partant depuis la racine. Par exemple, /home/martin est le sous-dossier martin du sous-dossier home du dossier racine et /home/martin/monfichier.txt est le fichier monfichier.txt dans ce sous-dossier. La barre oblique / dans ces chemins d'accès, représente le dossier racine." - -#: Thunar.xml1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "Chaque utilisateur a son propre dossier contenant ses fichiers personnels et ses configurations. Ce dossier est appelé répertoire personnel et s'affiche dans Thunar avec une icône spéciale et le nom de l'utilisateur. Ce dossier pourrait être assimilé au dossier Mes Fichiers de Windows. Les répertoires personnels des différents utilisateurs du système sont, la plupart du temps, situés dans le dossier /home. Par exemple, le dossier personnel /home/martin serait le dossier personnel de l'utilisateur martin, alors que le dossier personnel pour l'utilisatrice marie serait /home/marie." - -#: Thunar.xml1350(title) -msgid "File Types" -msgstr "Types de fichiers" - -#: Thunar.xml1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "Vous avez probablement déjà entendu que tout est un fichier sous UNIX. Ceci est vrai pour la plupart des objets présents dans les systèmes UNIX de nos jours. Même les périphériques sont représentés comme des fichiers spéciaux. Cela peut paraître bizarre mais c'est cette particularité qui a permis à UNIX et ses dérivés de garder un noyau simple à travers les années, là où d'autres systèmes d'opérations ont dû introduire de nouveaux concepts pour chaque nouvelle technologie." - -#: Thunar.xml1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "Il existe quatre types de fichiers importants dans le système de fichier UNIX." - -#: Thunar.xml1364(title) -msgid "Ordinary Files" -msgstr "Les fichiers ordinaires" - -#: Thunar.xml1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "Un fichier ordinaire peut contenir du texte, un programme ou d'autres données. Ceci inclut les fichiers image, fichiers son, documents ou fichiers vidéo. Le terme fichier est souvent utilisé pour faire référence à un fichier ordinaire." - -#: Thunar.xml1373(title) -msgid "Folder Files" -msgstr "Fichiers de dossier" - -#: Thunar.xml1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "Les dossiers sont aussi des fichiers dans le système de fichiers UNIX. Pour être exact, un dossier est un fichier spécial, contenant une liste de noms de fichiers faisant référence aux fichiers contenu dans le dossier." - -#: Thunar.xml1382(title) -msgid "Symbolic Link Files" -msgstr "Fichiers de lien symbolique" - -#: Thunar.xml1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "Un lien symbolique (fréquemment appelé symlink) est aussi un fichier spécial contenant un chemin d'accès vers un autre fichier dans le système de fichiers. De ce fait, les liens symboliques ne contiennent pas d'informations outre celle de la référence à d'autres fichiers." - -#: Thunar.xml1392(title) -msgid "Device Files" -msgstr "Fichiers de périphérique" - -#: Thunar.xml1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "Comme nous l'avons vu auparavant, la plupart des périphériques sont aussi accédés à travers du système de fichiers. Ces fichiers spéciaux de périphériques se trouvent la plupart du temps dans le dossier /dev. Par exemple, le fichier spécial /dev/hda représente le premier disque dur IDE dans les systèmes Linux." - -#: Thunar.xml1406(title) -msgid "Frequently Asked Questions" -msgstr "Questions Fréquemment posées" - -#: Thunar.xml1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "Le but de cette section du manuel est de rassembler les questions en rapport avec Thunar les plus fréquemment posées. Si vous trouvez qu'une question manque à l'appel, n'hésitez pas à nous le faire savoir en remplissant une requête de bogue." - -#: Thunar.xml1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Pourquoi est-ce-que Thunar n'exécute pas les fichiers marqués comme exécutables ?" - -#: Thunar.xml1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "Pour des raisons de sécurité, Thunar n'exécute que les fichiers de type application/x-desktop, application/x-executable et application/x-shellscript. L'exécution de fichiers du bureau n'est possible que si le fichier en question est de type Application et possède un champ Exec valide ou alors de type Link avec un champ URL valide. Pour les autres types de fichiers, seuls fonctionnent ceux marqués exécutables par l'utilisateur." - -#: Thunar.xml1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "Notez bien que pour application/x-executable et application/x-shellscript, il n'est pas nécessaire que le type de fichier corresponde exactement à ces types. Il suffit que le type détecté ait un type parent qui correspond à un des deux types mentionnés plus-haut ou que le type MIME ait un alias vers l'un d'eux." - -#: Thunar.xml1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Où Thunar stocke-t'il les metadatas associés aux fichiers ?" - -#: Thunar.xml1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "Thunar associe divers paramètres avec des fichiers/dossiers, nous les appelons les metadatas. Ces metadatas pour les fichiers sont stockés dans une base de données tdb que l'on nomme metafile. La base de donnée est stockée dans $XDG_CACHE_HOME/Thunar/metafile.tdb et peut être examinée en utilisant la commande tdbtool. Ce dernier fait partie de la distribution Thunar et se trouve dans le dossier tdb/." - -#: Thunar.xml1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Où Thunar stocke-t'il ses paramètres ?" - -#: Thunar.xml1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "Thunar stocke ses paramètres, ainsi que les paramètres cachés, dans un fichier .ini situé dans le dossier $XDG_CONFIG_HOME/Thunar/thunarrc et peut être lu par tout éditeur de texte. Lisez la section docs/README.thunarrc pour une vue d'ensemble des différents paramètres." - -#: Thunar.xml1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Comment utiliser les \"mouse gestures\" dans Thunar ?" - -#: Thunar.xml1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "Thunar a un support de base pour les \"mouse gestures\" (gestes de la souris) dans la vue d'icône. Pour utiliser les mouse gestures, il suffit de se placer sur une partie sans icône de la fenêtre principale de Thunar et maintenir le bouton du milieu de la souris (souvent la molette de la souris) enfoncé en faisant un mouvement dans la direction voulue. Les directions ont les fonctions suivantes :" - -#: Thunar.xml1474(guilabel) -msgid "Left" -msgstr "Gauche" - -#: Thunar.xml1474(member) -msgid " - opens the previous visited folder" -msgstr " - ouvre le dossier précédemment ouvert" - -#: Thunar.xml1475(guilabel) -msgid "Up" -msgstr "Haut" - -#: Thunar.xml1475(member) -msgid " - opens the parent folder" -msgstr " - Ouvre le dossier parent" - -#: Thunar.xml1476(guilabel) -msgid "Right" -msgstr "Droite" - -#: Thunar.xml1476(member) -msgid " - opens the next visited folder" -msgstr " - ouvre le dossier visité suivant" - -#: Thunar.xml1477(guilabel) -msgid "Down" -msgstr "Bas" - -#: Thunar.xml1477(member) -msgid " - reloads the current folder" -msgstr " - Rafraîchit le dossier actuel" - -#: Thunar.xml1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "Comment assigner différents raccourcis clavier ?" - -#: Thunar.xml1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "Si vous voulez assigner un nouveau raccourci ou changer un existant dans Thunar, le mode GTK+ de changement de raccourcis est supporté : simplement placer le pointeur de la souris sur l'option du menu que vous voulez changer et appuyer le raccourci clavier désiré pour l'assigner." - -#: Thunar.xml1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "Pour effacer un raccourci, placez le pointeur de la souris sur l'option du menu et pressez la touche Effacer." - -#: Thunar.xml1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "Au cas où cela ne fonctionnerait pas, vous devez activer l'option dans GTK+ et vous avez trois moyens pour le faire :" - -#: Thunar.xml1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "Si vous utilisez Xfce 4.3 ou supérieur, vous pouvez activer l'option Raccourcis clavier éditables dans les Préférences de l'interface utilisateur." - -#: Thunar.xml1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "Si vous utilisez GNOME, vous pouvez activer les Raccourcis clavier éditables dans la section Menu et barre d'outils du centre de contrôle." - -#: Thunar.xml1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "Vous pouvez aussi ajouter les lignes suivantes dans votre fichier ~/.gtkrc-2.0 (créez le fichier s'il n'existe pas) :gtk-can-change-accels=1" - -#: Thunar.xml1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Où Thunar stocke-t'il ses raccourcis clavier ?" - -#: Thunar.xml1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "Les raccourcis clavier personnalisés sont stockés dans un format de liste standard de GTK+ situé dans $XDG_CONFIG_HOME/Thunar/accels.scm. Les lignes commençant par ; sont des commentaires. Veuillez consulter la documentation de GTK+ à propos de ce format de fichier." - -#: Thunar.xml1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "Si vous êtes un packager ou administrateur système et vous voulez fournir des raccourcis clavier par défaut pour tout le système, différents des raccourcis par défaut de Thunar, vous pouvez créer un fichier Thunar/accels.scm dans un des dossier de $XDG_CONFIG_DIRS. Par exemple, si /etc/xdg fait partie de $XDG_CONFIG_DIRS (par défaut dans la plupart des distributions Linux), vous pouvez installer des paramètres par défaut pour tout le système dans /etc/xdg/Thunar/accels.scm. Thunar lira se fichier de configuration à son premier démarrage." - -#: Thunar.xml1549(title) -msgid "Support" -msgstr "Assistance" - -#: Thunar.xml1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "Pour signaler un bogue ou si vous avez une suggestion à propos de cette application ou manuel, utilisez notre système pour traquer les bogue en suivant ce lien http://bugzilla.xfce.org/. Souvenez-vous que les rapports de bogues utiles sont ceux qui aident à les corriger. Un rapport de bogue utile a donc les deux qualités suivantes :" - -#: Thunar.xml1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "Reproductible. Si le développeur ne peut pas reproduire le bogue, il ne sera probablement pas en mesure de le corriger. Chaque détail que vous pouvez fournir est utile et peut aider." - -#: Thunar.xml1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "Spécifique. Plus le développeur pourra isoler le bogue à une partie spécifique rapidement, plus il sera à même de le fixer dans les plus brefs délais." - -#: Thunar.xml1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "Au cas où vous aimeriez voir une fonctionnalité ajoutée à l'application, expliquez clairement pourquoi vous la considérez comme un plus à l'application. Vous aurez plus de chances de voir cette fonctionnalité ajoutée si vous donnez de bons arguments. Vous aurez encore plus de chance de la voir ajoutée si vous fournissez directement un patch qui implémente cette fonctionnalité mais avant de commencer à modifier le code source, assurez-vous de lire le fichier HACKING avant de soumettre votre patch, surtout la section intitulée Coding Style." - -#: Thunar.xml1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "Par ailleurs, si vous avez des questions à propos de l'installation de ce logiciel, posez les sur la liste de distribution thunar-dev ou rejoignez le canal IRC #thunar sur le serveur irc.freenode.net et demandez de l'aide." - -#: Thunar.xml1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "À propos de @PACKAGE_NAME@" - -#: Thunar.xml1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ a été écrit par Benedikt Meurer (benny@xfce.org). Visitez le site Thunar pour plus d'informations." - -#: Thunar.xml1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "Ce document a été écrit par Benedikt Meurer (benny@xfce.org). La toute dernière version de ce document est toujours disponible sur le site Thunar" - -#: Thunar.xml1605(para) -msgid "This software is distributed 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." -msgstr "This software is distributed 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." - -#: Thunar.xml1611(para) -msgid "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." -msgstr "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." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml0(None) -msgid "translator-credits" -msgstr "Maximilian Schleiss , 2007." - -#~ msgid ".png" -#~ msgstr ".png" - -#~ msgid "%" -#~ msgstr "%" diff -Nru thunar-1.2.3/docs/manual/po/gl.po thunar-1.6.10/docs/manual/po/gl.po --- thunar-1.2.3/docs/manual/po/gl.po 2011-01-23 12:59:17.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/gl.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1352 +0,0 @@ -# Galician translation of thunar-doc -# Copyright (C) 2009 Leandro Regueiro. -# This file is distributed under the same license as the Xfce package. -# -# Leandro Regueiro , 2009. -# -# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas -# colaborar connosco, podes atopar máis información en -# -msgid "" -msgstr "" -"Project-Id-Version: thunar master\n" -"Report-Msgid-Bugs-To: xfce-i18n@xfce.org\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-10-19 18:17+0100\n" -"Last-Translator: Leandro Regueiro \n" -"Language-Team: Galician \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# CAMBIAR!!! -#: Thunar.xml1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml12(title) -msgid "Thunar File Manager" -msgstr "Xestor de ficheiros Thunar" - -#: Thunar.xml17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "Concédese permiso para copiar, distribuír e/ou modificar este documento baixo os termos da GNU Free Documentation License, Versión 1.3 ou calquera versión posterior publicada pola Free Software Foundation; sen as seccións invariantes, sen os textos da portada, e sen os textos da portada posterior. O texto completo da licenza está dispoñible na Free Software Foundation." - -#: Thunar.xml37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml40(jobtitle) -msgid "Software developer" -msgstr "Desenvolvedor de software" - -#: Thunar.xml41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml42(orgdiv) -msgid "System development" -msgstr "Desenvolvemento do sistema" - -#: Thunar.xml43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Este manual describe a versión @PACKAGE_VERSION@ de @PACKAGE_NAME@." - -#: Thunar.xml54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Introducción a @PACKAGE_NAME@" - -#: Thunar.xml56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar é o novo e moderno navegador de ficheiros do Ambiente de escritorio Xfce. Thunar deseñouse dende cero para ser rápido e fácil de usar. A súa interface de usuario é limpa e intuitiva, e de xeito predeterminado non inclúe ningunha opción inútil ou confusa. Thunar é rápido e fiable e ten uns tempos curtos de inicio e carga de cartafoles." - -#: Thunar.xml62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "O navegador de ficheiros Thunar proporciona un punto de acceso integrado aos seus ficheiros e aplicativos. Pode usar o navegador de ficheiros para realizar as seguintes accións:" - -#: Thunar.xml68(para) -msgid "Create folders and documents." -msgstr "Crear cartafoles e documentos." - -#: Thunar.xml69(para) -msgid "Display your files and folders." -msgstr "Mostrar os ficheiros e os cartafoles." - -#: Thunar.xml70(para) -msgid "Manage your files and folders." -msgstr "Xestionar os ficheiros e os cartafoles." - -#: Thunar.xml71(para) -msgid "Run and manage custom actions." -msgstr "Executar e xestionar accións personalizadas." - -#: Thunar.xml72(para) -msgid "Access Removable Media." -msgstr "Acceder a soportes extraíbles." - -#: Thunar.xml78(title) -msgid "The File Manager Window" -msgstr "A xanela do xestor de ficheiros" - -#: Thunar.xml80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "Por defecto a xanela do navegador de ficheiros consiste nun panel de atallos no lado esquerdo, a zona principal á dereita e unha barra de enderezos enriba da zona principal." - -#: Thunar.xml92(phrase) -msgid "File Manager Window" -msgstr "Xanela do xestor de ficheiros" - -#: Thunar.xml97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "O Panel de atallos proporciona atallos aos diferentes cartafoles do sistema. O primeiro atallo lévao ao seu Cartafol persoal, o cartafol onde se almacenan os seus datos persoais, e que polo tanto terá o nome do usuario actual. O segundo atallo levarao ao colector do lixto, onde se almacenan os ficheiros eliminados que se poden recuperar posteriormente. O terceiro atallo lévao ao Cartafol do escritorio, o cal contén os ficheiros e os cartafoles que se mostran no escritorio. O cuarto atallo levarao á raíz do sistema de ficheiros - pode que queira exploralo un pouco, aínda que lle resulte un pouco confuso se acaba de descubrir Linux/Unix. Simplemente prema nos diferentes cartafoles para ver que é o que hai dentro deles." - -#: Thunar.xml108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "Debaixo do atallo Sistema de ficheiros móstranse as unidades e soportes extraíbles. Na captura de pantalla superior pode ver un atallo á Disqueteira. Prema nestes atallos para acceder aos datos almacenados nas unidades e soportes extraíbles. Consulte para obter máis detalles." - -#: Thunar.xml115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "O resto dos atallos son definidos polo usuario. Engada os seus propios atallos simplemente arrastrando cartafoles ao Panel de atallos. Isto permitiralle acceder aos cartafoles importantes de xeito instantáneo. Para eliminar un atallo xa engadido, prema co botón dereito no atallo e seleccione Eliminar o atallo. Para renomear un atallo xa engadido, prema co botón dereito no atallo e seleccione Renomear o atallo. Teña en conta que estas accións só lle afectan ao atallo, e non ao cartafol ao que o atallo fai referencia." - -#: Thunar.xml123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "A zona principal sempre mostrará o contido do cartafol actual. Faga dobre clic nos cartafoles para entrar neles, e prema co botón dereito nos ficheiros ou cartafoles para obter un menú contextual que lle ofrecerá algunhas opcións sobre que facer con eles. Seleccione varios ficheiros arrastrando un rectángulo sobre eles co rato. Tamén pode seleccionar un só ficheiro, mantendo premida a tecla Maiús e aumentando ou diminuíndo a selección usando as teclas das frechas." - -#: Thunar.xml131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "A barra de ruta sempre mostrará a ruta que leva ao cartafol no que está. Pode premer en calquera botón da barra de ruta para ir ao cartafol que representa. Prema co botón dereito nun botón da barra de ruta para mostrar un menú contextual con algunhas opcións." - -#: Thunar.xml139(title) -msgid "Customizing the Appearance" -msgstr "Personalizar a aparencia" - -#: Thunar.xml141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "Hai moitos xeitos de personalizar a aparencia das xanelas do xestor de ficheiros. En caso de que non lle guste a forma na que se mostran as iconas, seleccione VerVer como lista detallada no menú principal para que se mostre o contido do cartafol actual como unha lista." - -#: Thunar.xml147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "Pode facer que se mostre unha barra de enderezos nas xanelas do xestor de ficheiros en vez da barra de ruta seleccionando VerSelector de localizaciónEstilo da barra de ferramentas no menú principal." - -#: Thunar.xml153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "En caso de que prefira unha vista de árbore no panel esquerdo, escolla VerPanel lateralÁrbore no menú principal." - -#: Thunar.xml160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Columnas visibles na vista de lista detallada" - -#: Thunar.xml162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "Se prefire mostrar o contido do cartafol como unha lista, usando a Vista de lista detallada, pode personalizar as columnas que se mostrar na vista de lista. Para personalizar as columnas visibles, seleccione VerConfigurar as columnas... no menú principal." - -#: Thunar.xml175(phrase) Thunar.xml182(guilabel) -msgid "Visible Columns" -msgstr "Columnas visibles" - -#: Thunar.xml184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "Seleccione na lista das columnas dispoñibles as columnas que desexa mostrar. Prema en Subir ou Baixar para cambiar a orde das columnas. Prema en Usar predefinido para reverter os cambios." - -#: Thunar.xml193(guilabel) -msgid "Column Sizing" -msgstr "Redimensionamento das columnas" - -#: Thunar.xml195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "Seleccione a opción Expandir automaticamente as columnas cando sexa necesario se desexa que as columnas da vista de lista se expandan automaticamente se é necesario para asegurar que se ve todo o texto." - -#: Thunar.xml208(title) -msgid "Working with Files and Folders" -msgstr "Traballar con ficheiros e directorios" - -#: Thunar.xml212(title) -msgid "Opening Files" -msgstr "Abrir ficheiros" - -#: Thunar.xml214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "Cando abre un ficheiro o navegador de ficheiros realiza a acción predeterminada para ese tipo de ficheiro. Por exemplo, ao abrir un ficheiro de texto este mostrarase co editor de texto predeterminado, mentres que ao abrir un ficheiro de imaxe se mostrará a imaxe co visor de imaxes predeterminado." - -#: Thunar.xml220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "O navegador de ficheiros comproba a extensión dun ficheiro para determinar o tipo do ficheiro. Se o ficheiro non ten ningunha extensión coñecida, o xestor de ficheiros examina o contido do ficheiro." - -#: Thunar.xml226(title) -msgid "Executing the Default Action" -msgstr "Executar a acción predeterminada" - -#: Thunar.xml228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "Para executar a acción predeterminada para un ficheiro, faga dobre clic no ficheiro. Por exemplo, a acción predeterminada dos ficheiros de son é reproducilos co aplicativo de reprodución de música predeterminado. Neste caso pode facer dobre clic no ficheiro para abrir o ficheiro no reprodutor de música." - -#: Thunar.xml234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "Pode configurar as preferencias de Thunar de xeito que ao premer unha soa vez nun ficheiro se execute a acción predeterminada. Para obter máis información consulte ." - -#: Thunar.xml241(title) -msgid "Executing Non-Default Actions" -msgstr "Executar accións non predeterminadas" - -#: Thunar.xml243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "Para executar accións diferentes á acción predeterminada dun ficheiro, seleccione o ficheiro no que desexa realizar a acción. Seleccione a acción desexada entre as opcións de Abrir con que se pode atopar no menú Ficheiro ou no submenú Abrir con." - -#: Thunar.xml251(title) -msgid "Adding Actions" -msgstr "Engadir accións" - -#: Thunar.xml253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "Para engadir accións asociadas cun tipo de ficheiro siga os seguintes pasos:" - -#: Thunar.xml259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "Vaia á zona principal e seleccione un ficheiro do tipo ao que desexa engadirlle unha acción." - -#: Thunar.xml264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "Seleccione FicheiroAbrir con outro aplicativo... no menú principal." - -#: Thunar.xml270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "Pode escoller un aplicativo no diálogo Abrir con ou seleccionar Usar unha orde personalizada e buscar o programa co que desexa abrir este tipo de ficheiro." - -#: Thunar.xml277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "A acción que seleccionou engadiuse á lista de accións para ese tipo de ficheiro. Se activou a opción Usar como acción predeterminada para este tipo de ficheiro ou se non habia ningunha opción asociada co tipo de ficheiro, a nova acción engadida será a predeterminada." - -#: Thunar.xml283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "Tamén pode engadir accións usando o botón Abrir con en FicheiroPropiedades...." - -#: Thunar.xml290(title) -msgid "Modifying Actions" -msgstr "Modificar as accións" - -#: Thunar.xml292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "Para modificar as accións asociadas cun ficheiro ou tipo de ficheiro, siga os seguintes pasos:" - -#: Thunar.xml298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "Seleccione na zona principal un ficheiro do tipo para o cal desexa modificar a acción." - -#: Thunar.xml303(para) Thunar.xml383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "Seleccione FicheiroPropiedades... no menú principal." - -#: Thunar.xml308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "Seleccione a nova acción predeterminada usando o botón Abrir con ou engada unha nova acción seleccionando Abrir con outro aplicativo... no menú despregable." - -#: Thunar.xml315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "Para eliminar unha acción engadida anteriormente para un tipo de ficheiro, acceda ao diálogo Abrir con como se describe enriba, prema co botón dereito na acción que desexa eliminar e escolla Eliminar o iniciador." - -#: Thunar.xml324(title) Thunar.xml361(phrase) -msgid "File Properties" -msgstr "Propiedades do ficheiro" - -#: Thunar.xml326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "A xanela de propiedades de ficheiro mostra máis información sobre calquera ficheiro ou cartafol do navegador de ficheiros. Nesta xanela tamén se poden realizar as seguintes accións:" - -#: Thunar.xml333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "Cambiar a icona de ficheiros especiais, como iniciadores de aplicativos ou ligazóns URL." - -#: Thunar.xml338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "Engadir ou eliminar emblemas a un ficheiro ou cartafol." - -#: Thunar.xml343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "Cambiar os permisos UNIX dun ficheiro ou dun cartafol." - -#: Thunar.xml348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "Seleccione que aplicativo se vai usar para abrir un ficheiro e outros ficheiros do mesmo tipo." - -#: Thunar.xml366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "Para abrir a xanela de propiedades de ficheiro, siga os seguintes pasos:" - -#: Thunar.xml372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "Seleccione o ficheiro ou cartafol cuxas propiedades desexa examinar ou cambiar. Aínda non se pode seleccionar varios elementos á vez e mostrar as propiedades comúns a tódolos elementos." - -#: Thunar.xml386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "Prema co botón dereito no elemento seleccionado e seleccione Propiedades... no menú contextual." - -#: Thunar.xml389(para) -msgid "Press AltReturn." -msgstr "Prema AltIntro." - -#: Thunar.xml379(para) -msgid "Do one of the following: " -msgstr "Realice unha das seguintes accións: " - -#: Thunar.xml400(title) -msgid "Using Removable Media" -msgstr "Usar soportes extraíbles" - -#: Thunar.xml403(title) -msgid "Accessing Removable Media" -msgstr "Acceder a soportes extraíbles" - -#: Thunar.xml405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "Thunar soporta os soportes extraíbles se se compilou con soporte para HAL, ou se está usando FreeBSD. Aínda así teña en conta que en FreeBSD 6.0 ou posterior se suxire usar HAL en vez do soporte nativo proporcionado por Thunar." - -#: Thunar.xml412(title) -msgid "To Mount Media" -msgstr "Montar soportes" - -#: Thunar.xml414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "Montar un soporte é facer que o sistema de ficheiros do soporte estea dispoñible para acceder a el. Cando monta un soporte, o sistema de ficheiros do soporte únese como un subdirectorio ao sistema de ficheiros do sistema." - -#: Thunar.xml419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "Para acceder a un soporte, insira o soporte no dispositivo axeitado, ou conecte o novo dispositivo ao seu ordenador (p.ex. conecte unha memoria USB a un dos portos USB). Engádese no panel lateral do xestor de ficheiros un obxecto que representa ao soporte. Se se está executando xfdesktop e está configurado para mostrar Iconas de ficheiros/iniciador este obxecto tamén se engadirá ao escritorio." - -#: Thunar.xml426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "Para montar os soportes, prema no obxecto que representa aos soportes. Por exemplo, para montar un disquete, prema no obxecto da Disqueteira no panel lateral. O xestor de ficheiros engadirá o sistema de ficheiros do soporte á xerarquía do sistema e mostrará o contido do disquete na zona principal." - -#: Thunar.xml434(title) -msgid "To Eject Media" -msgstr "Expulsar soportes" - -#: Thunar.xml436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "Se a unidade do soporte é unha unidade con motor (p.ex. unha unidade de CD-ROM), prema co botón dereito no obxecto do soporte no panel lateral ou no escritorio e seleccione Expulsar o volume. O soporte expulsarase da unidade uns poucos segundos despois. Se a unidade do soporte non ten motor (p.ex. unha disqueteira ou unha memoria USB), prema co botón dereito no obxecto do soporte e seleccione Desmontar o volume. Despois dun curto periodo de tempo, aparecerá unha notificación para informarlle de que xa é seguro extraer o soporte ou desconectar a unidade do ordenador." - -#: Thunar.xml451(phrase) -msgid "Unmount notification" -msgstr "Notificación de desmontaxe" - -#: Thunar.xml456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "Aínda así esta notificación só se mostrará se se activou o soporte de libnotify, e se ten instalado un daemon de notificación. Hai un daemon de notificación para Xfce dispoñible no Proxecto de extras (goodies) de Xfce. Se non está dispoñible o soporte de notificación, agarde ata que desapareza o menú contextual antes de extraer o soporte ou a unidade." - -#: Thunar.xml464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "Teña en conta que non pode expulsar ou desmontar soportes que aínda están en uso por un ou máis aplicativos. Polo tanto se o xestor de ficheiros rexeita expulsar os soportes, asegúrese de que pechou todos os aplicativos que estaban accedendo aos soportes, e asegúrese de comprobar tamén os aplicativos de liña de ordes que se executen nas xanelas de Terminal." - -#: Thunar.xml470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "Asegúrese de desmontar os soportes extraíbles antes de expulsalos. Non expulse un disquete da disqueteira antes de desmontar o disquete. Non extraia unha memoria USB antes de desmontala. Se non desmonta os soportes podería perder datos ou facer que o sistema se colgue." - -#: Thunar.xml479(title) -msgid "Management of Removable Drives and Media" -msgstr "Xestión de unidades e soportes extraíbles" - -#: Thunar.xml481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "Thunar tamén é capaz de xestionar automaticamente as unidades e soportes extraíbles se está instalado no seu sistema o paquete thunar-volman. Aínda así teña en conta que esta funcionalidade require soporte de HAL." - -#: Thunar.xml487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "Agora, se está dispoñible o soporte de HAL e se thunar-volman está instalado no sistema, pode escoller activar a funcionalidade de Xestión de volumes de Thunar. Noutro caso abra as preferencias do xestor de ficheiros, vaia á lapela Avanzado e marque o botón Activar a xestión de volumes." - -#: Thunar.xml494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "O seguinte paso é personalizar a xestión das unidades e soportes extraíbles ás súas necesidades. Prema na ligazón Configurar da sección Xestión de volumes, xusto debaixo do botón. Mostrarase o diálogo de configuración de Unidades e soportes extraíbles." - -#: Thunar.xml507(phrase) -msgid "Removable Drives and Media" -msgstr "Unidades e soportes extraíbles" - -#: Thunar.xml512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "Se usou antes gnome-volume-manager, sentirase como na casa, porque foi deseñado para comportarse de xeito semellante a gnome-volume-manager. As preferencias divídense en categorías de dispositivo para facilitar a localización da opción do seu dispositivo específico." - -#: Thunar.xml519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "A páxina Almacenamento contén as opcións máis importantes. Como o nome suxire estas opcións só se aplican aos dispositivos de almacenamento como unidades de disco externo, memorias USB e CD-ROMs. Debaixo descríbense con detalle as opcións de Almacenamento extraíble." - -#: Thunar.xml527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Montar unidades extraíbles ao conectalas en quente" - -#: Thunar.xml529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "Active esta opción para montar automaticamente os sistemas de ficheiros das unidades extraíbles (p.ex. unidades de disco externo ou memorias USB) cando ditas unidades se conectan ao ordenador." - -#: Thunar.xml533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "Esta opción debe estar activada para que algunha outra funcionalidade funcione cas unidades extraíbles. Por exemplo, se desactiva esta opción, certos tipos de reprodutores de música portátiles non se detectarán, aínda que active a opción Reproducir os ficheiros de música ao conectar da páxina Multimedia, a orde especificada non se executará cando conecte o reprodutor de música portátil." - -#: Thunar.xml544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Montar os soportes extraíbles ao inserilos" - -#: Thunar.xml546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "Active esta opción para montar automaticamente os sistemas de ficheiros dos soportes extraíbles (p.ex. CD-ROMs ou DVDs) cando insira o soporte na unidade." - -#: Thunar.xml550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "Esta opción debe estar activada para que outras funcionalidades funcionen cos soportes extraíbles. Por exemplo, se desactiva esta opción, será imposible detectar se os soportes extraíbles teñen a capacidade de execución automática, e polo tanto a opción Executar automaticamente os programas das novas unidades e soportes non ten efecto cos soportes extraíbles." - -#: Thunar.xml560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Examinar os soportes extraíbles ao inserilos" - -#: Thunar.xml562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "Active esta opción para mostrar automaticamente no xestor de ficheiros o contido dos novos soportes inseridos. Aínda así teña en conta que o contido só se mostrará se non hai outra acción posible ou se selecciona ignorar as outras accións posibles. Por exemplo, se insire un CD-ROM ca capacidade de execución automática e estando activada a opción Executar automaticamente os programas das novas unidades e soportes, preguntaraselle se desexa permitir ou ignorar a execución automática. Se escolle ignorar a execución automática mostrarase o contido no xestor de ficheiros." - -#: Thunar.xml574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Executar automaticamente os programas dos soportes e unidades novas" - -#: Thunar.xml576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "Active esta opción para usar as capacidades de execución automática de certas unidades e soportes extraíbles. Consulte Desktop Application Autostart Specification para obter detalles sobre o mecanismo de execución automática. Para mellorar a seguridade, sempre se lle pedirá confirmación antes de executar automaticamente." - -#: Thunar.xml582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "Se o emulador de Windows WINE está instalado no seu sistema, o mecanismo de autoexecución tamén intentará executar os ficheiros autorun.exe usando WINE." - -#: Thunar.xml590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "Abrir automaticamente os ficheiros dos soportes e unidades novas" - -#: Thunar.xml592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" - -#: Thunar.xml602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "As opcións restantes permítenlle especificar unha orde para executar cando certo tipo de soporte se insire nunha unidade ou cando se conecta certo tipo de dispositivo externo. A orde pode usar tres variables especiais, que se substituirán cando se execute a orde:" - -#: Thunar.xml610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "Cada aparición de %d na orde substituirase ca ruta do ficheiro do dispositivo do dispositivo recén engadido. Por exemplo, se conectou unha memoria USB, a ruta do ficheiro de dispositivo será /dev/da0s1 ou /dev/sda1." - -#: Thunar.xml617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "Se non se asocia ningún ficheiro de dispositivo co dispositivo ou se non se pode atopar por algunha razón o ficheiro do dispositivo, a variable %d substituirase cunha cadea baleira." - -#: Thunar.xml625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "Cada aparición de %h na orde substituirase polo UDI de HAL do novo dispositivo engadido." - -#: Thunar.xml635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "Cada aparición de %m na orde substituirase polo punto de montaxe onde se montou o novo dispositivo engadido. Se non se pode montar o dispositivo (por exemplo as impresoras ou os teclados) ou se se desactivou a montaxe automática, %m substituirase por unha cadea baleira." - -#: Thunar.xml648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "Solución de erros do xestor de volumes" - -#: Thunar.xml650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "Consellos útiles para resolver os problemas co xestor de volumes en caso de que non funcione como se agardaba." - -#: Thunar.xml656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "Asegúrese de que Thunar se está executando como un daemon. O xestor de volumes depende disto, xa que non é un daemon. Por defecto, Xfce ao arrincar inicia automaticamente Thunar como un daemon. Se se matou por algunha razón, abra Executar programa (usando o atallo de teclado AltF2 ou premendo co botón dereito no escritorio e seleccionando Executar programa... no menú do escritorio), introduza Thunar --daemon e prema en Executar." - -#: Thunar.xml668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "Intente executar thunar-volman dende unha xanela de Terminal despois de conectar en quente a unidade ou de inserir o soporte. Primeiro ten que descubrir o UDI de HAL do novo dispositivo usando lshal ou hal-device. Unha vez que coñeza o UDI execute thunar-volman --device-added <udi-do-dispositivo> nunha xanela de Terminal e mire se hai erros ou advertencias na saída." - -#: Thunar.xml678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "Se aínda así non funciona, pida axuda no Foro de Xfce ou na rolda de correo thunar-dev." - -#: Thunar.xml689(title) -msgid "File Management Preferences" -msgstr "Preferencias da xestión de ficheiros" - -#: Thunar.xml691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "Use o diálogo de Preferencias do xestor de ficheiros para definir as preferencias do xestor de ficheiros Thunar. Para abrir o diálogo de preferencias seleccione na barra de menús EditarPreferencias..., ou prema no botón Xestor de ficheiros no Xestor de configuración de Xfce." - -#: Thunar.xml697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "O diálogo Preferencias do xestor de ficheiros divídese en catro páxinas con diferentes opcións, cada unha descrita debaixo nunha sección diferente. Basicamente pode definir preferencias nas seguintes categorías:" - -#: Thunar.xml703(para) -msgid "The default settings for the views." -msgstr "Configuración predeterminada para as vistas." - -#: Thunar.xml704(para) -msgid "The default settings for the side pane." -msgstr "Configuración predeterminada do panel lateral." - -#: Thunar.xml705(para) -msgid "The behavior of the file manager windows." -msgstr "Comportamento das xanelas do xestor de ficheiros." - -#: Thunar.xml706(para) -msgid "Advanced features of the file manager." -msgstr "Funcionalidades avanzadas do xestor de ficheiros." - -#: Thunar.xml709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "Thunar tamén soporta un grupo das chamadas Opcións ocultas, as cales controlan varias funcionalidades avanzadas do xestor de ficheiros, pero que non están incluídas nas preferencias para que o diálogo de preferencias siga sendo simple. No ficheiro README.thunarrc que se inclúe na distribución de Thunar descríbense con detalle todas as opcións dispoñibles." - -#: Thunar.xml718(title) Thunar.xml733(phrase) -msgid "Views Preferences" -msgstr "Preferencias das vistas" - -#: Thunar.xml720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "Pode especificar unha vista predeterminada, seleccionar as opcións de ordenación e de visualización. Tamén pode especificar se se mostran ou non miniaturas para os tipos de ficheiros que o soporten." - -#: Thunar.xml740(guilabel) -msgid "View new folder using" -msgstr "Ver os novos directorios usando" - -#: Thunar.xml742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "Seleccione a vista predeterminada para os cartafoles. Cando abre unha nova xanela, mostrarase ca vista seleccionada. Pode ser a vista de iconas, a vista de lista compacta ou a vista de lista detallada. Tamén pode seleccionar aquí a Última vista activa para usar a vista que se usou na última fiestra activa." - -#: Thunar.xml752(guilabel) -msgid "Sort folders before files" -msgstr "Poñer os directorios antes ca os ficheiros" - -#: Thunar.xml754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "Seleccione esta opción para listar os cartafoles antes dos ficheiros ao ordenar un cartafol." - -#: Thunar.xml761(guilabel) -msgid "Show thumbnails" -msgstr "Mostrar as miniaturas" - -#: Thunar.xml763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "Seleccione esta opción para mostrar miniaturas de ficheiros de imaxe e de outros ficheiros soportados. O xestor de ficheiros almacena os ficheiros das miniaturas de cada cartafol no directorio oculto .thumbnails do directorio persoal do usuario." - -#: Thunar.xml768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "Consulte se desexa estender a funcionalidade de miniaturas básica proporcionada por Thunar con soporte para tipos de ficheiros adicionais." - -#: Thunar.xml777(guilabel) -msgid "Text beside icons" -msgstr "Texto a carón das iconas" - -#: Thunar.xml779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "Seleccione esta opción para situar os textos das iconas dos elementos a carón das iconas en vez debaixo delas." - -#: Thunar.xml790(title) Thunar.xml803(phrase) -msgid "Side Pane Preferences" -msgstr "Preferencias do panel lateral" - -#: Thunar.xml792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "Pode seleccionar as opcións de visualización do panel de atallos e o panel de árbore." - -#: Thunar.xml808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "O panel lateral pode mostrar unha lista de atallos de cartafoles do sistema de ficheiros, que é o comportamento predeterminado, ou unha vista de árbore do sistema de ficheiros. Esta páxina permítelle seleccionar o tamaño das iconas dos atallos e do panel de árbore. Tamén pode especificar se se mostran ou non os emblemas." - -#: Thunar.xml817(guilabel) -msgid "Icon Size" -msgstr "Tamaño das iconas" - -#: Thunar.xml819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "O tamaño das iconas que se mostra neste lado vai dende Moi pequeno (16x16 píxels) a Moi grande (128x128 píxels)." - -#: Thunar.xml827(guilabel) -msgid "Show Icon Emblems" -msgstr "Mostrar os emblemas das iconas" - -#: Thunar.xml829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "Seleccione esta opción para mostrar os emblemas dos cartafoles no panel lateral. Pode asignarlle emblemas aos cartafoles co diálogo Propiedades. Seleccione un cartafol na zona principal e escolla FicheiroPropiedades... no menú principal, ou prema co botón dereito e seleccione Propiedades... no menú contextual." - -#: Thunar.xml843(title) Thunar.xml856(phrase) -msgid "Behavior Preferences" -msgstr "Preferencias de comportamento" - -#: Thunar.xml845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "Pode seleccionar o comportamento preferido para interactuar co xestor de ficheiros." - -#: Thunar.xml863(guilabel) -msgid "Single click to active items" -msgstr "Un só clic para activar os elementos" - -#: Thunar.xml865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "Seleccione esta opción para realizar a acción predeterminada dun elemento cando prema no elemento. Cando se selecciona esta opción, e sinala un elemento, o título do elemento aparece subraiado e este seleccionarase automaticamente despois dun breve tempo de espera." - -#: Thunar.xml871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "Este tempo de espera pode configurarse debaixo da opción. Tamén pode desactivar a selección automática de elementos movendo o selector á posición da esquerda de todo." - -#: Thunar.xml880(guilabel) -msgid "Double click to activate items" -msgstr "Dobre clic para activar os elementos" - -#: Thunar.xml882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "Seleccione esta opción para realizar a acción predeterminada dun elemento cando se faga dobre clic nel, e selecionar o elemento cun único clic." - -#: Thunar.xml893(title) Thunar.xml906(phrase) -msgid "Advanced Preferences" -msgstr "Preferencias avanzadas" - -#: Thunar.xml895(para) -msgid "You can control advanced features of the file manager." -msgstr "Pode controlar as funcionalidades avanzadas do navegador de ficheiros." - -#: Thunar.xml913(guilabel) -msgid "Folder Permissions" -msgstr "Permisos do directorio" - -#: Thunar.xml915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "Escolla a acción que se debe realizar cando cambia os permisos dun cartafol no diálogo Propiedades. Pode decidir deixarlle preguntar a Thunar cada vez que cambie os permisos dun cartafol, deixarlle aplicar por defecto os novos permisos só ao cartafol ou que tamén llos aplique de xeito recursivo a todo o contido do cartafol." - -#: Thunar.xml925(guilabel) -msgid "Volume Management" -msgstr "Xestión de volumes" - -#: Thunar.xml927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "Se Thunar se instalou con soporte para HAl e tamén se instalou o paquete thunar-volman, poderá activar o xestor de volumes integrado. Consulte para obter máis detalles sobre esta funcionalidade." - -#: Thunar.xml940(title) -msgid "Customizing Thunar" -msgstr "Personalizar Thunar" - -#: Thunar.xml942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "Este capítulo describe como adaptar ás súas necesidades certas partes do xestor de ficheiros." - -#: Thunar.xml948(title) -msgid "The \"Send To\" Menu" -msgstr "O menú \"Enviar a\"" - -#: Thunar.xml950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "Thunar inclúe un menú Enviar a, o cal proporciona destinos posibles a onde poder enviar os ficheiros e os cartafoles. Para acceder ao menú Enviar a, seleccione FicheiroEnviar a no menú principal, ou prema co botón dereito nun ficheiro ou cartafol e seleccione Enviar a." - -#: Thunar.xml964(phrase) -msgid "\"Send To\" Menu" -msgstr "Menú \"Enviar a\"" - -#: Thunar.xml969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "Por defecto o menú Enviar a inclúe unha entrada chamada Escritorio (Crear ligazón) para todos os ficheiros e cartafoles, que simplemente crea unha ligazón no escritorio por cada ficheiro seleccionado. Ademais se o Panel de atallos está activado, o menú tamén inclúe unha entrada chamada Panel lateral (Crear atallo) para os cartafoles, o cal lle permite aos usuarios engadir novos atallos ao panel lateral. Despois destas entradas, Thunar lista as unidades extraíbles conectadas ao ordenador. Na captura de pantalla de enriba, a Disqueteira representa un destino posible a onde se poden enviar os ficheiros. Teña en conta que o dispositivo se monta automaticamente unha vez que se selecciona no menú Enviar a de forma que non ten que montala a man." - -#: Thunar.xml979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "Ademais Thunar tamén proporciona o engadido thunar-sendto-email, o cal engade a entrada Enviar correo ao menú, a cal abre o cliente de correo electrónico cos ficheiros anexos a unha nova mensaxe. Se a selección contén polo menos un cartafol, os elementos seleccionados engádense a un arquivo ZIP antes de anexalo á mensaxe. Noutro caso, se a selección contén varios ficheiros, ou un só ficheiro, de tamaño maior a 200 Kib, preguntaraselle ao usuario se desexa empaquetar os ficheiros nun arquivo ZIP e enviar o ficheiro ZIP." - -#: Thunar.xml987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "Como con moitas outras funcionalidades de Thunar, os usuarios e dos desenvolvedores de aplicativos pode estender facilmente o menú Enviar a con novos destinos, usando o estándar de Ficheiros de entradas desktop. Estes ficheiros deben estar instalados nun dos cartafoles $XDG_DATA_DIRS/Thunar/sendto/ (consulte a XDG Base Directory Specification para obter detalles sobre a variable $XDG_DATA_DIRS)." - -#: Thunar.xml996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "O Tipo MIME do .desktop destino especifica os tipos de ficheiros para os cales debe estar dispoñible esta acción no menú Enviar a. Por exemplo, digamos que desexa engadir unha entrada para unha ferramenta de suba de ficheiros de Flickr, así que esta entrada só debe mostrarse se a selección contén ficheiros JPEG (Flickr non soporta outros formatos de ficheiro) e polo tanto debe engadir unha liña MimeType=image/jpeg;. Se non especifica ningún Tipo MIME a entrada mostrarase para todos os tipos de ficheiro." - -#: Thunar.xml1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "Debaixo móstrase un exemplo completo usando o aplicativo postr:" - -#: Thunar.xml1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "Se instala este ficheiro en ~/.local/share/Thunar/sendto/ (cree o cartafol se aínda non existe), o menú Enviar a dos ficheiros JPEG mostrará a nova entrada Flickr, a cal se pode usar para subir imaxes JPEG a Flickr." - -#: Thunar.xml1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "A Wiki do proxecto Thunar contén exemplos adicionais de destinos útiles para o menú Enviar a. Vostede é libre de extender a páxina da Wiki con novos exemplos." - -#: Thunar.xml1036(title) -msgid "Thumbnailers" -msgstr "Miniaturizadores" - -#: Thunar.xml1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "Thunar usa pequenas utilidades para crear miniaturas de certos tipos de ficheiros e mostra as miniaturas como vista previa do contido do ficheiro. Estas pequenas ferramentas chámanse miniaturizadores. Thunar publícase con miniaturizadores para imaxes e ficheiros de tipo de letra, e usa automaticamente os miniaturizadores instalados por GNOME se se instalou con soporte para gconf. Aínda así os usuarios poden estender de xeito dinámico esta funcionalidade básica con miniaturizadores para tipos de ficheiros adicionais." - -#: Thunar.xml1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "Se pensa escribir un miniaturizador propio, ten que comezar cun programa que acepte polo menos dous parámetros de liña de ordes, o ficheiro de entrada, que é do tipo de ficheiro que pensa soportar e mailo ficheiro de saída, que é un ficheiro PNG que cumpre o formato especificado no Thumbnail Management Standard. Ademais o seu programa tamén podería aceptar o tamaño desexado da miniatura, que é opcional pero moi recomendable. Se escribe un ficheiro de saída cun tamaño de imaxe arbitrario, Thunar escalarao posteriormente ao tamaño desexado, o que podería producir un resultado menos óptimo do que se obtería xerando unha miniatura das dimensións solicitadas." - -#: Thunar.xml1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "Unha vez que a súa utilidade para xerar miniaturas estea rematada, terá que rexistrar o seu miniaturizador para que Thunar sexa capaz de atopalo e usalo. Polo tanto todo o que ten que facer é instalar un ficheiro de descrición do miniaturizador (un ficheiro .desktop) nunha das rutas $XDG_DATA_DIRS/thumbnailers/. Por exemplo se desexa rexistrar o miniaturizador só para a súa conta de usuario, pode instalar o ficheiro no cartafol ~/.local/share/thumbnailers/. O .desktop dos miniaturizadores ten o seguinte formato." - -#: Thunar.xml1063(title) -msgid "Thumbnailer Description File Format" -msgstr "Formato do ficheiro de descrición do miniaturizador" - -#: Thunar.xml1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "Os ficheiros de descrición de miniaturizadores utilizan o Desktop Entry Format cun Tipo especial X-Thumbnailer o campo especial X-Thumbnailer-Exec con novos códigos de campo. Basicamente un ficheiro de descrición de miniaturizador ten o seguinte formato." - -#: Thunar.xml1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=O seu miniaturizador\n" -"MimeType=tipo-mime-soportado/polo-miniaturizador;\n" -"X-Thumbnailer-Exec=o-seu-miniaturizador %i %o %s" - -#: Thunar.xml1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "Version e Encoding son obrigatorios debido á Desktop Entry Specification, así que use os valores que se mostran no exemplo de enriba. O campo Type debe ter o valor especial X-Thumbnailer, ou senón non se recoñecerá o seu miniaturizador. O valor Name describe o seu miniaturizador." - -#: Thunar.xml1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "O campo X-Thumbnailer-Exec contén a orde para executar o seu miniaturizador, e admite certos códigos de campo que se substituirán cando se execute o miniaturizador. Os códigos de campo recoñecidos son os seguintes:" - -#: Thunar.xml1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "A ruta local do ficheiro de entrada co que se vai crear unha miniatura. Pode ser unha ruta relativa ao directorio dende o que se chamou ao miniaturizador ou unha ruta absoluta." - -#: Thunar.xml1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "A ruta local ao ficheiro de saída onde se vai almacenar a miniatura xerada. O ficheiro de saída debe escribirse como un ficheiro PNG válido que cumpra o estándar de miniaturas (consulte enriba). Teña en conta que a ruta podería non rematar con .png, que é importante se invoca certas ferramentas de terceiros." - -#: Thunar.xml1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "O tamaño desexado en píxels da miniatura xerada. Este parámetro é opcional." - -#: Thunar.xml1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "Semellante a %i, pero substitúese polo URI do ficheiro, en vez de pola súa ruta. Isto engadiuse para ter compatibilidade con GNOME." - -#: Thunar.xml1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml1127(para) -msgid "Will be substituted with a single %." -msgstr "Substituirase cun simple %." - -#: Thunar.xml1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "Ten que incluír polo menos %o e %i ou %u, noutro caso o seu miniaturizador será inútil." - -#: Thunar.xml1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "MimeType lista os tipos MIME - separados por punto e coma - para os cales o seu miniaturizador é capaz de crear previsualizacións." - -#: Thunar.xml1143(title) -msgid "Example EPS Thumbnailer" -msgstr "Exemplo de miniaturizador EPS" - -#: Thunar.xml1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "Este exemplo demostra como escribir e instalar un novo miniaturizador para os ficheiros .eps, o cal usa a utilidade convert que forma parte de ImageMagick. Primeiro comezamos cun simple script que invoca convert para xerar unha miniatura do tamaño solicitado." - -#: Thunar.xml1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Miniaturizador de exemplo para ficheiros EPS.\n" -"#\n" -"# Modo de uso: esp-thumbnailer ficheiro-eps ficheiro-png tamaño\n" -"#\n" -"\n" -"# parámetros de liña de ordes\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invocar convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "Garde o script de enriba nun ficheiro eps-thumbnailer, asegúrese de que o ficheiro é executable e instáleo en /usr/local/bin." - -#: Thunar.xml1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "A continuación haberá que crear o ficheiro de descrición da miniatura eps-thumbnailer.desktop, que é así:" - -#: Thunar.xml1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "Este ficheiro debe instalarse en /usr/local/share/thumbnailers (cree o cartafol se non existe)." - -#: Thunar.xml1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "O ficheiro eps-thumbnailer.desktop usa a clave especial TryExec, a cal se se especifica menciona unha orde que debe estar presente no sistema para que o miniaturizador sexa útil. No noso exemplo o script é inútil se a utilidade convert non está presente." - -#: Thunar.xml1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "O último paso é xerar de novo a caché do miniaturizador, de forma que Thunar detecte ao miniaturizador. A caché do miniaturizador está situada en $XDG_CACHE_HOME/Thunar/thumbnailers.cache (a menos que o administrador do sistema o cambie, $XDG_CACHE_HOME apunta ao cartafol ~/.cache/). Thunar xera de novo a caché dos miniaturizadores periodicamente, pero pode forzar que se xere de novo invocando a utilidade thunar-vfs-update-thumbnailers-cache-1, que se publica como parte de Thunar. Normalmente a utilidade está instalada no subcartafol libexec en do directorio de instalación (sbin en Debian/Ubuntu). Así que se por exemplo Thunar está instalado en /usr, invoque a utilidade do seguinte xeito:" - -#: Thunar.xml1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "Pero asegúrese de que executa o programa ca súa conta de usuario, e non ca conta do superusuario, xa que a caché dos miniaturizadores se almacena no seu cartafol persoal, en vez de nun lugar común para todo o sistema." - -#: Thunar.xml1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "Agora se Thunar se compilou con soporte para a monitorización de alteracións nos ficheiros (mediante os servizos FAM ou Gamin), en poucos segundos collerá automaticamente a nova caché dos miniaturizadores e despois será capaz de xerar miniaturas usando os miniaturizadores personalizados. Noutro caso podería necesitar reiniciar totalmente Thunar para aplicar os cambios, usando" - -#: Thunar.xml1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "para terminar calquera instancia en execución, e posteriormente reiniciala dende o seu iniciador." - -#: Thunar.xml1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Limpar as miniaturas" - -#: Thunar.xml1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "As miniaturas xeradas almacénanse no cartafol ~/.thumbnails/ de acordo co Thumbnail Management Standard. Ao probar un novo miniaturizador, podería ser útil limpar a caché de miniaturas usando" - -#: Thunar.xml1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "que tamén lle dará algún espazo libre no seu cartafol persoal. Xa que toda a información almacenada neste cartafol se xera automaticamente a partir dos ficheiros do sistema de ficheiros, non perderá ningún dato importante." - -#: Thunar.xml1257(title) -msgid "Advanced Topics" -msgstr "Temas avanzados" - -#: Thunar.xml1261(title) -msgid "To Bulk Rename Files" -msgstr "Renomear ficheiros de xeito masivo" - -#: Thunar.xml1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "Renomear de xeito masivo os ficheiros significa renomear varios ficheiros dunha soa vez usando algún criterio, que se aplica a polo menos un dos ficheiros. Thunar inclúe un renomeador masivo, o cal se pode executar indepentemente usando a orde Thunar -B ou tamén dende Thunar seleccionando dous ou máis ficheiros na zona principal e premendo F2 ou seleccionando EditarRenomear... no menú principal." - -#: Thunar.xml1278(phrase) -msgid "Bulk Rename Files" -msgstr "Renomear ficheiros de xeito masivo" - -#: Thunar.xml1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "Os Renomeadores masivos poden usarse para alterar o nomes dos ficheiros, o sufixo dos ficheiros ou tanto o nome como o sufixo dos ficheiros. Na actualidade Thunar soporta os seguintes Renomeadores masivos:" - -#: Thunar.xml1290(para) -msgid "Remove characters." -msgstr "Eliminar caracteres." - -#: Thunar.xml1291(para) -msgid "Numbering files." -msgstr "Numerar os ficheiros." - -#: Thunar.xml1292(para) -msgid "Insert Date or Time." -msgstr "Inserir data ou hora." - -#: Thunar.xml1293(para) -msgid "Insert or overwrite characters." -msgstr "Inserir caracteres ou sobrescribir caracteres." - -#: Thunar.xml1294(para) -msgid "Search and replace characters." -msgstr "Buscar e substituír caracteres." - -#: Thunar.xml1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "" - -#: Thunar.xml1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "Pódense instalar Renomeadores masivos adicionais como engadidos de Thunar. Visite o sitio web de Engadidos de Thunar para consultar as extensións dispoñibles. A Wiki do proxecto Thunar contén detalles adicionais sobre esta funcionalidade. Síntase libre de engadir máis información á wiki." - -#: Thunar.xml1308(title) -msgid "The UNIX File System" -msgstr "O sistema de ficheiros de UNIX" - -#: Thunar.xml1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "Aínda que o xestor de ficheiros Thunar realiza ben o traballo de abstraer os detalles do sistema de ficheiros subxacente, de xeito que o usuario non precisa preocuparse del, a veces é útil comprender os conceptos básicos para ter unha comprensión total. Esta sección intenta dar unha pequena introdución aos conceptos do sistema de ficheiros de UNIX, que usan hoxe en día todas as encarnacións de UNIX, incluíndo Linux." - -#: Thunar.xml1318(title) -msgid "Folders and Paths" -msgstr "Cartafoles e rutas" - -#: Thunar.xml1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "Nun sistema de ficheiros UNIX todos os cartafoles están dispostos nunha sinxela estrutura de árbore invertida que descende e se bifurca dende un único cartafol superior, que se chama directorio raíz (o termo directorio úsase a miúdo en vez de cartafol) e se mostra como Sistema de ficheiros en Thunar. Isto significa que pode chegar dende calquera cartafol a calquera outro subindo pola árbore ata chegar a unha raíz común, e despois baixar pola árbore polos subcartafoles apropiados ata chegar ao destino." - -#: Thunar.xml1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "A posición de calquera ficheiro ou cartafol na árbore pode describirse ca súa ruta. A ruta é a lista de cartafoles polos que ten que descender ata chegar ao cartafol ou ficheiro destino, comezando dende o cartafol superior. Por exemplo /home/xiana é o subcartafol xiana do subcartafol home do cartafol superior, e /home/xiana/omeuficheiro.txté o ficheiro omeuficheiro.txt que está nese cartafol. A / inicial desas rutas representa ao cartafol superior (cartafol raíz)." - -#: Thunar.xml1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "Cada usuario ten o seu propio cartafol para gardar os seus ficheiros e configuracións persoais. Este cartafol chámase directorio persoal e móstrase en Thunar como unha icona especial co nome de usuario do usuario. O cartafol é similar ao cartafol Os meus ficheiros de Windows. Os directorios persoais de varios usuarios do mesmo sistema normalmente están situados no cartafol /home. Por exemplo /home/xiana será o directorio persoal da usuaria que teña o nome de usuario xiana, mentres que /home/brais será o directorio do usuario co nome de usuario brais." - -#: Thunar.xml1350(title) -msgid "File Types" -msgstr "Tipos de ficheiros" - -#: Thunar.xml1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "Pode que escoitara algunha vez que todo é un ficheiro en UNIX. Isto é certo para a maioría dos obxectos presentes nos sistemas UNIX hoxe en día. De feito incluso os dispositivos se representan como ficheiros especiais. Aínda que isto pode non ter sentido ao principio, é unha das grandes vantaxes de UNIX e os seus derivados, e contribuiu a manter un núcleo simple co paso dos anos mentres outros sistemas operativos tiveron que introducir novos conceptos para cada nova tecnoloxía." - -#: Thunar.xml1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "Estes son os catro tipos de ficheiros máis importantes no sistema de ficheiros de UNIX." - -#: Thunar.xml1364(title) -msgid "Ordinary Files" -msgstr "Ficheiros normais" - -#: Thunar.xml1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "Un ficheiro normal pode conter texto, un programa ou outros datos. Isto inclúe ficheiros de imaxe, ficheiros de son, documentos de oficina e ficheiros de vídeo. O termo ficheiro úsase a miúdo para refirirse a un ficheiro normal." - -#: Thunar.xml1373(title) -msgid "Folder Files" -msgstr "Ficheiros de cartafol" - -#: Thunar.xml1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "Os cartafoles tamén son ficheiros no sistema de ficheiros de UNIX. Para ser exactos é un ficheiro especial, que contén unha relación de nomes de ficheiros e referencias de ficheiros por cada ficheiro contido nese cartafol." - -#: Thunar.xml1382(title) -msgid "Symbolic Link Files" -msgstr "Ficheiros de ligazón simbólica" - -#: Thunar.xml1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "Unha Ligazón simbólica (a miúdo chamada symlink) é un ficheiro especial que contén a ruta doutro ficheiro do sistema de ficheiros. As ligazóns simbólicas non conteñen polo tanto ningunha información útil, simplemente apuntan a outros ficheiros." - -#: Thunar.xml1392(title) -msgid "Device Files" -msgstr "Ficheiros de dispositivo" - -#: Thunar.xml1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "Como se mencionou antes á (maioría dos) dispositivos accédese a través do sistema de ficheiros. Estes ficheiros de dispositivo especiais normalmente están situados no cartafol /dev. Por exemplo o ficheiro especial /dev/hda representa ao primeiro disco IDE en Linux." - -#: Thunar.xml1406(title) -msgid "Frequently Asked Questions" -msgstr "Preguntas máis frecuentes (FAQ)" - -#: Thunar.xml1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "A intención desta sección é recoller as preguntas frecuentes bastante numerosas que se relacionan co uso de Thunar. Se sabe dalgunha pregunta que falta nesta páxina, por favor envíe unha solicitude." - -#: Thunar.xml1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Por que Thunar non executa os ficheiros marcados como executables?" - -#: Thunar.xml1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "Por razóns de seguridade Thunar só executa ficheiros de tipo application/x-desktop, application/x-executable e application/x-shellscript. Nos ficheiros desktop a funcionalidade de execución só se activará se o ficheiro desktop é de tipo Application e se proporciona unha liña Exec válida ou se é de tipo Link e se proporciona un URL válido. Para os outros tipos a funcionalidade está dispoñible se o ficheiro está marcado como executable para o usuario actual." - -#: Thunar.xml1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "Teña en conta tamén que para application/x-executable e application/x-shellscript, os tipos do ficheiro realmente non teñen que coincidir exactamente con estes tipos, pero abonda se o tipo detectado ten un pai que coincide con algún destes dous tipos mencionados enriba, ou se o tipo MIME é un alias dalgún dos de enriba." - -#: Thunar.xml1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Onde garda Thunar os metadatos asociados cos ficheiros?" - -#: Thunar.xml1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "Thunar asocia varias opcións cos ficheiros/cartafoles, que chamamos metadatos. Estes metadatos dos ficheiros almacénanse nun ficheiro de base de datos tdb, que se chama metaficheiro. O ficheiro da base de datos almacénase en $XDG_CACHE_HOME/Thunar/metafile.tdb e pode examinarse usando tdbtool, que é parte da distribución de Thunar (situado no subdirectorio tdb/)." - -#: Thunar.xml1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Onde garda Thunar a súa configuración?" - -#: Thunar.xml1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "Thunar almacena as preferencias configurables do usuario (e as opcións ocultas) nun ficheiro .ini, que está situado en $XDG_CONFIG_HOME/Thunar/thunarrc e que se pode examinar usando un editor de texto. Consulte docs/README.thunarrc para obter un resumo das diferentes preferencias." - -#: Thunar.xml1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "" - -#: Thunar.xml1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "" - -#: Thunar.xml1474(guilabel) -msgid "Left" -msgstr "Esquerda" - -#: Thunar.xml1474(member) -msgid " - opens the previous visited folder" -msgstr " - abre o anterior cartafol visitado" - -#: Thunar.xml1475(guilabel) -msgid "Up" -msgstr "Arriba" - -#: Thunar.xml1475(member) -msgid " - opens the parent folder" -msgstr " - abre o cartafol pai" - -#: Thunar.xml1476(guilabel) -msgid "Right" -msgstr "Dereita" - -#: Thunar.xml1476(member) -msgid " - opens the next visited folder" -msgstr " - abre o seguinte cartafol visitado" - -#: Thunar.xml1477(guilabel) -msgid "Down" -msgstr "Abaixo" - -#: Thunar.xml1477(member) -msgid " - reloads the current folder" -msgstr " - recarga o cartafol actual" - -#: Thunar.xml1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "Como podo asignar diferentes atallos de teclado?" - -#: Thunar.xml1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "Se quere reasignar un atallo, Thunar soporta o xeito estándar de GTK+ para cambiar os atallos: simplemente poña o punteiro do rato enriba da opción de menú e prema o novo atallo de teclado que lle desexa asignar." - -#: Thunar.xml1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "Para eliminar unha asignación de teclado, prema a tecla Retroceso mentres está na entrada do menú." - -#: Thunar.xml1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "Se o atallo non cambia entón terá que activar a funcionalidade en GTK+. Isto pode conseguirse de 3 formas:" - -#: Thunar.xml1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "Se está executando Xfce 4.3 ou posterior entón pode activar os Aceleradores de menú editables no diálogo Preferencias de interface de usuario." - -#: Thunar.xml1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "Se está executando GNOME pode activar os Aceleradores de menú editables no diálogo Menús e barras de ferramentas do centro de control." - -#: Thunar.xml1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "Noutro caso poña o seguinte no ficheiro ~/.gtkrc-2.0 (cree o ficheiro se non existe): gtk-can-change-accels=1" - -#: Thunar.xml1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Onde garda Thunar os atallos de teclado?" - -#: Thunar.xml1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "Os atallos de teclado personalizados almacénanse co formato estándar de asignación de aceleradores de GTK+ nun ficheiro situado en $XDG_CONFIG_HOME/Thunar/accels.scm. As liñas que comezan por ; son comentarios. Consulte a documentación de GTK+ para obter detalles sobre o formato do ficheiro." - -#: Thunar.xml1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "Se é un empaquetador ou un administrador de sistemas e desexa proporcionar unha predefinición dos atallos de teclado común para todo o sistema, diferente á dos atallos de teclado predeterminados de Thunar, pode crear un ficheiro Thunar/accels.scm nun de $XDG_CONFIG_DIRS. Por exemplo, se /etc/xdg é parte de $XDG_CONFIG_DIRS (o predeterminado na maioría das distribucións de Linux), pode instalar as predefinicións comúns a todo o sistema en /etc/xdg/Thunar/accels.scm. Thunar cargará entón os atallos dende este ficheiro ao iniciar por primeira vez." - -#: Thunar.xml1549(title) -msgid "Support" -msgstr "Soporte" - -#: Thunar.xml1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "Para comunicar un erro ou para facer unha suxestión referente a este aplicativo ou a este manual, use o sistema de seguemento de erros en http://bugzilla.xfce.org/. Lembre que os informes de erro útiles son aqueles que conseguen resolver os erros, así que un informe de erro ten dúas cualidades:" - -#: Thunar.xml1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "Reproducible. Se o desenvolvedor non pode ver el mesmo o erro para probar que existe, probablemente non sexa capaz de resolvelo. Cada detalle que poida proporcionar axudaralle." - -#: Thunar.xml1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "Específico. Canto antes poida o desenvolvedor illar o problema nunha zona específica, máis probable é que o resolva axeitadamente." - -#: Thunar.xml1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "En caso de que desexe solicitar unha nova funcionalidade, por favor explique claramente por que considera que vale a pena engadila ao aplicativo. É máis probable que unha nova funcionalidade se engada se proporciona bos argumentos en favor da funcionalidade. Incrementará as posibilidades de adición aínda máis se proporciona un parche que implemente a funcionalidade solicitada, pero asegúrese de ler o ficheiro HACKING - especialmente a sección titulada Coding Style - antes de comezar a modificar o código." - -#: Thunar.xml1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "Noutro caso se ten algunha pregunta sobre o uso ou a instalación deste software pregunte na rolda de correo thunar-dev ou conecte o seu cliente de IRC a irc.freenode.net, únase á canle #thunar e solicite axuda (en inglés)." - -#: Thunar.xml1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "Acerca de @PACKAGE_NAME@" - -#: Thunar.xml1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ foi escrito por Benedikt Meurer (benny@xfce.org). Visite o Sitio web de Thunar para obter máis información." - -#: Thunar.xml1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "Esta documentación foi escrita por Benedikt Meurer (benny@xfce.org). A última versión deste documento sempre está dispoñible no Sitio web de Thunar." - -#: Thunar.xml1605(para) -msgid "This software is distributed 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." -msgstr "Este software distribúese baixo os termos da Licenza Pública Xeral de GNU tal como a publica a Free Software Foundation; xa sexa a versión 2 da Licenza, ou (se o desexa) calquera versión posterior." - -#: Thunar.xml1611(para) -msgid "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." -msgstr "Debeu recibir unha copia da Licenza pública xeral GNU xunto con este programa; en caso contrario, escriba á Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml0(None) -msgid "translator-credits" -msgstr "Leandro Regueiro , 2009, 2010." - -#~ msgid ".png" -#~ msgstr ".png" - -#~ msgid "%" -#~ msgstr "%" diff -Nru thunar-1.2.3/docs/manual/po/id.po thunar-1.6.10/docs/manual/po/id.po --- thunar-1.2.3/docs/manual/po/id.po 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/id.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,2224 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: thunar\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-08-23 16:41+0700\n" -"Last-Translator: Andhika Padmawan \n" -"Language-Team: Indonesian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: id\n" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" -msgstr "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" -msgstr "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" -msgstr "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Manajer Berkas Thunar" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml:25(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License, Version 1.1 or any later " -"version published by the Free Software Foundation; with no Invariant " -"Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The " -"complete license text is available from the Free Software Foundation." -msgstr "" - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "Pengembang peranti lunak" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "Penegembangan sistem" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Manual ini menjelaskan versi @PACKAGE_VERSION@ dari @PACKAGE_NAME@." - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Pengantar untuk @PACKAGE_NAME@" - -#: Thunar.xml:56(para) -msgid "" -"Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar " -"has been designed from the ground up to be fast and easy-to-use. Its user " -"interface is clean and intuitive, and does not include any confusing or " -"useless options by default. Thunar is fast and responsive with a good start " -"up time and folder load time." -msgstr "" -"Thunar adalah manajer berkas modern baru untuk Lingkungan Desktop Xfce. " -"Thunar telah didesain dari awal agar cepat dan mudah digunakan. Antarmuka " -"penggunanya bersih dan intuitif, dan tidak menyertakan opsi apapun yang " -"membingungkan atau tidak berguna sebagai standar. Thunar cepat dan responsif " -"dengan waktu hidupkan dan waktu memuat folder yang baik." - -#: Thunar.xml:62(para) -msgid "" -"The Thunar file manager thereby provides an integrated access point to your " -"files and applications. You can use the file manager to do the following:" -msgstr "" -"Maka manajer berkas Thunar menyediakan titik akses yang terintegrasi ke " -"berkas dan aplikasi anda. Anda dapat menggunakan manajer berkas untuk " -"melakukan hal-hal berikut:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "Membuat folder dan dokumen." - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "Menampilkan berkas dan folder anda." - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "Mengatur berkas dan folder anda." - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "Menjalankan dan mengatur aksi suai." - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "Mengakses Media Dapat Dilepas." - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "Jendela Manajer Berkas" - -#: Thunar.xml:80(para) -msgid "" -"By default the file manager window consists of a shortcut pane on the left " -"side, the main area on the right and a pathbar above the main area." -msgstr "" -"Sebagai standar jendela manajer berkas berisi panel jalan pintas di sisi " -"kiri, area utama di sebelah kanan dan batang alamat di atas area utama." - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "Jendela Manajer Berkas" - -#: Thunar.xml:97(para) -msgid "" -"The Shortcut Pane provides shortcuts to different " -"folders on your system. The first shortcut will lead to your Home " -"Folder, the folder you store all your personal data, and will " -"therefore have the name of the current user. The second shortcut will take " -"you to the trash bin, which stores deleted files that can be recovered " -"later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the " -"desktop. The fourth shortcut will take you to the root of your file system - " -"you may want to explore it a bit, even though it may be confusing to you if " -"you are new to Linux/Unix. Just click on the different folders and see what " -"is inside." -msgstr "" -"Panel Jalan Pintas menyediakan jalan pintas ke folder " -"yang berbeda di sistem anda. Jalan pintas pertama akan membawa ke " -"Folder Rumah, folder tempat menyimpan semua data personal anda, " -"sehingga mempunyai nama pengguna saat ini. Jalan pintas kedua akan membawa " -"anda ke kotak sampah, tempat menyimpan berkas terhapus yang dapat " -"dikembalikan nanti. Jalan pintas ketiga membawa anda ke Folder " -"Desktop, yang berisi berkas dan folder yang ditampilkan di " -"desktop. Jalan pintas keempat akan membawa anda ke root sistem berkas anda - " -"anda mungkin ingin sedikit mengeksplorasinya, meskipun dapat memusingkan " -"anda jika anda baru mengenal Linux/Unix. Silakan klik pada folder yang " -"berbeda dan lihat ada apa di dalamnya." - -#: Thunar.xml:108(para) -msgid "" -"Below the File System shortcut, the removable drives " -"and media will be displayed. In the screenshot above, you can see a " -"Floppy Drive shortcut. Click on these shortcuts to " -"access the data stored on the removable drives and media. See for further details." -msgstr "" -"Di bawah jalan pintas Sistem Berkas, penggerak dan " -"media dapat dilepas akan ditampilkan. Dalam cuplikan layar di atas, anda " -"dapat melihat jalan pintas ke Disket. Klik pada jalan " -"pintas tersebut untuk mengakses data yang tersimpan di penggerak dan media " -"dapat dilepas. Lihat untuk " -"informasi lebih lanjut." - -#: Thunar.xml:115(para) -msgid "" -"The remaining shortcuts are user defined. Add your own shortcuts by simply " -"dragging folders to the Shortcuts Pane. This will allow " -"you to access important folders instantly. To remove a previously added " -"shortcut, right-click on the shortcut and choose Remove " -"Shortcut. To rename a previously added shortcut, right-click " -"on the shortcut and choose Rename Shortcut. Note " -"that these actions affect only the shortcut, not the folder referenced by " -"the shortcuts." -msgstr "" -"Jalan pintas yang tersisa ditentukan oleh pengguna. Tambah jalan pintas " -"anda sendiri dengan cara menarik folder ke Panel Jalan Pintas. Ini akan memungkinkan anda untuk mengakses folder penting dengan " -"cepat. Untuk menghapus jalan pintas yang sebelumnya ditambahkan, klik kanan " -"pada jalan pintas lalu pilih Hapus Jalan Pintas. " -"Perlu dicatat bahwa aksi ini hanya mempengaruhi jalan pintas, bukan folder " -"yang yang diwakili oleh jalan pintas." - -#: Thunar.xml:123(para) -msgid "" -"The main area will always display the contents of the " -"current folder. Double click on folders to enter them, and right-click on " -"files or folders to get a context-menu offering some choices of what to do " -"with it. Select multiple files by dragging a rectangle over them with the " -"mouse. Alternatively, select one file, hold down the Shift " -"key, and increase or decrease the selection using the arrow keys." -msgstr "" -"Area utama akan selalu menampilkan isi dari folder saat " -"ini. Klik ganda pada folder untuk masuk ke dalamnya, dan klik kanan pada " -"berkas atau folder untuk mendapatkan menu konteks yang menawarkan beberapa " -"pilihan tentang apa yang harus dilakukan dengannya. Pilih banyak berkas " -"dengan menarik segi empat di atas berkas dengan tetikus. Sebagai alternatif, " -"pilih satu berkas, tahan tombol Shift, dan tambahkan atau " -"kurangi pemilihan dengan menggunakan tombol panah." - -#: Thunar.xml:131(para) -msgid "" -"The pathbar will always show the path you took to get " -"to the folder you are currently at. You can click on any pathbar button to " -"change to the folder it represents. Right-click on a pathbar button to bring " -"up a context-menu with some options." -msgstr "" -"Batang alamat akan selalu menampilkan alamat yang anda " -"tuju dari folder tempat anda berada saat ini. Anda dapat klik di tombol " -"untuk berpindah ke folder tujuan. Klik kanan pada tombol batang alamat untuk " -"menampilkan menu konteks dengan beberapa opsi." - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "Menyesuaikan Tampilan" - -#: Thunar.xml:141(para) -msgid "" -"There are many ways to customize the appearance of the file manager windows. " -"In case you do not like the way the icons are displayed, choose " -"ViewView as Detailed List from the main menu to have the contents of the " -"current folder displayed as a list." -msgstr "" -"Ada beragam cara untuk menyesuaikan tampilan jendela manajer jendela. " -"Dalam hal anda tidak menyukai cara ikon ditampilkan, pilih " -"TampilanTampilkan Sebagai " -"Senarai Detail dari menu utama untuk menampilkan " -"isi dari folder saat ini sebagai senarai." - -#: Thunar.xml:147(para) -msgid "" -"You can have the file manager windows display a location bar instead of the " -"pathbar by choosing ViewLocation " -"SelectorToolbar Style " -"from the main menu." -msgstr "" -"Anda dapat memilih agar jendela manajer berkas menampilkan batang lokasi " -"ketimbang batang alamat dengan memilih TampilanPemilih LokasirGaya Batang " -"Alat dari menu utama." - -#: Thunar.xml:153(para) -msgid "" -"In case you prefer a treeview in the left pane, choose " -"ViewSide PaneTree from the main menu." -msgstr "" -"Jika anda memilih tampilan pohon di sisi kiri, pilih " -"TampilanPanel SisiPohon dari menu utama." - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Kolom Tampak di Tampilan Senarai Detail" - -#: Thunar.xml:162(para) -msgid "" -"If you prefer to display the contents of the folder as a list, using the " -"Detailed List View, you can customize the columns " -"displayed in the list view. To customize the visible columns, choose " -"ViewConfigure Columns... from the main menu." -msgstr "" -"Jika anda memilih untuk menampilkan isi dari folder sebagai senarai, " -"menggunakan Tampilan Senarai Detail, anda dapat " -"menyesuaikan kolom yang ditampilkan di tampilan senarai. Untuk menyesuaikan " -"kolom yang tampak, pilih Tampilan" -"Atur Kolom... dari menu utama." - -#: Thunar.xml:175(phrase) Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "Kolom Tampak" - -#: Thunar.xml:184(para) -msgid "" -"Select the columns you want to be displayed from the list of available " -"columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" -"Pilih kolom yang ingin anda tampilkan dari senarai kolom yang tersedia. Klik " -"" - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "Pengukuran Kolom" - -#: Thunar.xml:195(para) -msgid "" -"Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the " -"needed to ensure the text is fully visible." -msgstr "" -"Pilih opsi Secara otomatis mengembangkan kolom sesuai kebutuhan jika anda ingin agar senarai menampilkan kolom yang mengembang " -"secara otomatis jika diperlukan untuk memastikan teks penuh terlihat." - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "Bekerja dengan Berkas dan Folder" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "Membuka Berkas" - -#: Thunar.xml:214(para) -msgid "" -"When you open a file, the file manager performs the default action for that " -"file type. For example, opening a text file will display it in the default " -"text editor, while opening an image file will display the image in the " -"default image viewer." -msgstr "" -"Ketika anda membuka sebuah berkas, manajer berkas melakukan aksi standar " -"untuk tipe berkas tersebut. Misalnya, membuka berkas teks akan " -"menampilkannya di dalam penyunting teks standar, sedangkan membuka berkas " -"gambar akan menampilkan gambar di dalam penampil gambar standar." - -#: Thunar.xml:220(para) -msgid "" -"The file manager checks the extension of a file to determine the type of a " -"file. If the file has no known extension, the file manager examines the " -"contents of the file." -msgstr "" -"Manajer berkas memeriksa ekstensi berkas untuk menentukan tipe berkas. Jika " -"berkas tidak mempunyai ekstensi yang dikenal, manajer berkas memeriksa isi " -"berkas." - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "Mengeksekusi Aksi Standar" - -#: Thunar.xml:228(para) -msgid "" -"To execute the default for a file, double-click on the file. For example, " -"the default action for audio files is to play the it with the default music " -"playing application. In this case, you can double-click on the file to open " -"the file in the music player." -msgstr "" -"Untuk mengeksekusi standar untuk sebuah berkas, klik ganda pada berkas. " -"Misalnya aksi standar untuk berkas audio adalah memutarnya dengan aplikasi " -"pemutar musik standar. Dalam hal ini, anda dapat klik ganda pada berkas " -"untuk membuka berkas di pemutar musik." - -#: Thunar.xml:234(para) -msgid "" -"You can set Thunar preferences so that you click " -"once on a file to execute the default action. For information, see ." -msgstr "" -"Anda dapat mengatur pengaturan Thunar sehingga " -"anda dapat klik sekali pada berkas untuk mengeksekusi aksi standar. Untuk " -"informasi, lihat ." - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "Mengeksekusi Aksi Non-Standar" - -#: Thunar.xml:243(para) -msgid "" -"To execute actions other than the default action for a file, select the file " -"that you want to perform an action on. Choose the desired action from the " -"Open With choices available in File " -"menu or an Open With submenu." -msgstr "" -"Untuk mengeksekusi aksi selain aksi standar untuk sebuah berkas, klik berkas " -"tempat anda ingin melakukan aksi. Pilih aksi yang diinginkan dari pilihan " -"Buka Dengan yang tersedia di menu Berkas atau submenu Buka Dengan." - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "Menambah Aksi" - -#: Thunar.xml:253(para) -msgid "" -"To add actions associated with a file type, perform the following steps:" -msgstr "" -"Untuk menambah aksi yang diasosiasikan dengan tipe berkas, lakukan langkah " -"berikut:" - -#: Thunar.xml:259(para) -msgid "" -"In the main area, select a file of the type to which you want to add an " -"action." -msgstr "" -"Di area utama, pilih berkas dari tipe yang ingin anda tambahkan sebuah " -"aksi." - -#: Thunar.xml:264(para) -msgid "" -"Choose FileOpen With Other " -"Application... from the main menu." -msgstr "" -"Pilih BerkasBuka Dengan Aplikasi " -"Lain... dari menu utama." - -#: Thunar.xml:270(para) -msgid "" -"Either choose an application in the Open With dialog or " -"select Use a custom command and browse to the program " -"with which you wish to open this type." -msgstr "" -"Baik masukkan sebuah aplikasi di dialog Buka Dengan " -"atau pilih Gunakan perintah suai dan ramban ke program " -"yang ingin anda gunakan untuk membuka tipe ini." - -#: Thunar.xml:277(para) -msgid "" -"The action you have chosen is now added to the list of actions for that " -"particular file type. If you enabled the Use as default for this " -"kind of file option or there was no prior action associated with " -"the type, the newly added action is the default." -msgstr "" -"Aksi yang anda pilih saat ini ditambahkan ke senarai aksi untuk tipe berkas " -"tertentu tersebut. Jika anda mengaktifkan opsi Buka sebagai " -"standar untuk berkas jenis ini atau jika tidak ada aksi tambahan " -"yang diasosiasikan dengan tipe, maka aksi yang baru ditambahkan menjadi " -"standar." - -#: Thunar.xml:283(para) -msgid "" -"You may also add actions using the Open With button " -"under FileProperties...." -msgstr "" -"Anda mungkin juga menambah aksi menggunakan tombol Buka dengan di bawah Berkas" -"Properti...." - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "Memodifikasi Aksi" - -#: Thunar.xml:292(para) -msgid "" -"To modify the actions associated with a file or file type, perform the " -"following steps:" -msgstr "" -"Untuk memodifikasi aksi yang diasosiasikan dengan berkas atau tipe berkas, " -"lakukan langkah berikut:" - -#: Thunar.xml:298(para) -msgid "" -"In the main area, select a file of the type for which you want to modify the " -"action." -msgstr "" -"Di area utama, pilih berkas atau tipe yang ingin anda modifikasi aksinya." - -#: Thunar.xml:303(para) Thunar.xml:383(para) -msgid "" -"Choose FileProperties... from the main menu." -msgstr "" -"Pilih BerkasProperti... dari menu utama." - -#: Thunar.xml:308(para) -msgid "" -"Select the new default action using the Open With " -"button or add a new action by choosing Open With Other " -"Application... from the drop down menu." -msgstr "" -"Pilih aksi standar baru menggunakan tombol Buka Dengan " -"atau tambah aksi baru dengan memilih Buka Dengan Aplikasi " -"Lain... dari menu taruh bawah." - -#: Thunar.xml:315(para) -msgid "" -"To remove a previously added action for a file type, bring up the " -"Open With dialog as described above, right-click the " -"action you want to remove and choose Remove Launcher." -msgstr "" -"Untuk menghapus aksi yang sebelumnya ditambahkan untuk tipe berkas, " -"munculkan dialog Buka Dengan seperti dijelaskan di " -"atas, klik kanan aksi yang anda ingin hapus lalu pilih Hapus " -"Peluncur." - -#: Thunar.xml:324(title) Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "Properti Berkas" - -#: Thunar.xml:326(para) -msgid "" -"The file properties window shows more information about any file or folder " -"in the file manager. With this window, you can also do the following:" -msgstr "" -"Jendela properti berkas menampilkan lebih banyak informasi tentang berkas " -"atau folder apapun di manajer berkas. Dengan jendela ini, anda dapat juga " -"melakukan hal-hal berikut:" - -#: Thunar.xml:333(para) -msgid "" -"Change the icon for special files, such as application launchers and URL " -"links." -msgstr "" -"Mengganti ikon untuk berkas khusus, seperti peluncur aplikasi dan tautan URL." - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "Menambah atau menghapus emblem untuk berkas atau folder." - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "Mengganti hak akses berkas UNIX untuk berkas atau folder." - -#: Thunar.xml:348(para) -msgid "" -"Choose which application is used to open a file and other files of the same " -"type." -msgstr "" -"Pilih aplikasi mana yang digunakan untuk membuka berkas dan berkas lainnya " -"dengan tipe yang sama." - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "Untuk membuka jendela properti berkas, lakukan langkah berikut:" - -#: Thunar.xml:372(para) -msgid "" -"Select the file or folder whose properties you want to examine or change. " -"You cannot select multiple items at once and display the properties that are " -"in common to all items currently." -msgstr "" -"Pilih berkas atau folder yang ingin anda periksa atau ubah propertinya. " -"Anda tak dapat memilih banyak item sekaligus dan menampilkan properti yang " -"sama untuk semua item saat ini." - -#: Thunar.xml:386(para) -msgid "" -"Right-click the selected item and choose Properties... from the context menu." -msgstr "" -"Klik kanan item terpilih lalu pilih Properti... " -"dari menu konteks." - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "Tekan AltEnter." - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "Lakukan salah satu hal berikut: " - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "Menggunakan Media Dapat Dilepas" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "Mengakses Media Dapat Dilepas" - -#: Thunar.xml:405(para) -msgid "" -"Thunar supports removable media if it was built with support for HAL, or " -"if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is " -"suggested to use HAL rather than the native support provided by Thunar." -msgstr "" -"Thunar mendukung media dapat dilepas jika dibangun dengan dukungan untuk " -" HAL" -", atau jika anda menggunakan FreeBSD. Perlu dicatat bahwa pada FreeBSD " -"6.0 atau yang lebih baru, disarankan untuk menggunakan HAL ketimbang " -"dukungan asli yang disediakan oleh Thunar." - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "Untuk Mengaitkan Media" - -#: Thunar.xml:414(para) -msgid "" -"To mount media is to make the file system of the media " -"available for access. When you mount media, the file system of the media is " -"attached as a subdirectory to your file system." -msgstr "" -"Untuk mengaitkan media adalah untuk membuat sistem " -"berkas media tersedia untuk diakses. Jika anda mengaitkan media, sistem " -"berkas media dilampirkan sebagai subdirektori pada sistem berkas anda." - -#: Thunar.xml:419(para) -msgid "" -"To access media, insert the media in the appropriate device, or connect the " -"new device to your computer (i.e. connect an USB stick to one of your USB " -"ports). An object that represents the media is added to the side pane of the " -"file manager. If xfdesktop is running and " -"configured to display File/launcher icons this object " -"will also be added to your desktop." -msgstr "" -"Untuk mengakses media, masukkan media di divais yang sesuai, atau sambung " -"divais baru ke komputer anda (misalnya menyambung flash disk ke salah satu " -"pangkalan USB anda). Sebuah objek yang mewakili media akan ditambahkan ke " -"panel sisi dari manajer berkas. Jika xfdesktop " -"berjalan dan diatur untuk menampilkan Ikon berkas/peluncur objek ini juga akan ditambahkan ke desktop anda." - -#: Thunar.xml:426(para) -msgid "" -"To actually mount the media, click on the object that represents the media. " -"For example, to mount a floppy diskette, click on the Floppy " -"Drive object in the side pane. The file manager will now add the " -"file system of the media to your file system hierarchy and display the " -"contents of the floppy diskette in the main area." -msgstr "" -"Untuk sebenarnya mengaitkan media, klik objek yang mewakili media. Misalnya, " -"untuk mengaitkan disket, klik pada objek Disket di " -"panel sisi. Manajer berkas sekarang akan menambah sistem berkas media ke " -"hirarki sistem berkas anda dan menampilkan isi dari disket di area utama." - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "Untuk Melepas Media" - -#: Thunar.xml:436(para) -msgid "" -"If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-" -"click on the media object in the side pane or on the desktop and choose " -"Eject Volume. The media is ejected from the drive after " -"a few seconds. If the drive for the media is not motorized (i.e. a floppy " -"drive or an USB stick), right-click on the media object and choose " -"Unmount Volume. After a short period of time, a " -"notification will appear to inform you that it is now safe to remove the " -"media or disconnect the drive from the computer." -msgstr "" -"Jika penggerak untuk media adalah peranti bermotor (misalnya peranti " -"CD-ROM), klik kanan objek media di panel sisi atau di desktop lalu pilih " -"Keluarkan Volume Media dikeluarkan dari penggerak " -"setelah beberapa detik. Jika penggerak untuk media tidak bermotor (misalnya " -"disket atau flash disk), klik kanan di objek media lalu pilih " -"Lepas Kaitan Volume. Setelah beberapa saat, notifikasi akan " -"muncul yang menginformasikan kepada anda bahwa telah aman untuk melepas " -"media atau mencabut penggerak dari komputer." - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "Notifikasi kepas kaitan" - -#: Thunar.xml:456(para) -msgid "" -"However this notification will only be displayed if support for " -"libnotify is enabled, and you have installed a " -"notification daemon. A notification daemon for Xfce is available from the " -"Xfce Goodies Project. If notification " -"support is not available, wait until the context menu disappears before you " -"remove the media or disconnect the drive." -msgstr "" -"Akan tetapi notifikasi ini hanya akan ditampilkan jika dukungan untuk " -"libnotify diaktifkan, dan anda telah menginstal " -"jurik notifikasi. Jurik notifikasi untuk Xfce tersedia dari Proyek Goodies Xfce. Jika dukungan " -"notifikasi tidak tersedia, tunggu hingga menu konteks hilang sebelum anda " -"melepas media atau mencabut penggerak." - -#: Thunar.xml:464(para) -msgid "" -"Be aware that you cannot eject or unmount media that is still in use by one " -"or more applications. Therefore if the file manager refuses to eject media, " -"make sure you close all applications that were accessing the media, and be " -"sure to also check command line applications running in " -"Terminal windows." -msgstr "" -"Hati-hati bahwa anda tidak dapat mengeluarkan atau melepas kaitan media yang " -"masih digunakan oleh satu atau lebih aplikasi. Maka jika manajer berkas " -"menolak untuk mengeluarkan media, pastikan anda telah menutup semua aplikasi " -"yang sedang mengakses media, dan pastikan juga untuk memeriksa aplikasi " -"baris perintah yang berjalan di jendela Terminal." - -#: Thunar.xml:470(para) -msgid "" -"Make sure to unmount removable media before ejecting. Do not eject a " -"diskette from the floppy drive before your unmount the diskette. Do not " -"remove an USB stick before you unmount the flash drive. If you do not " -"unmount the media first you might lose data or cause your system to crash." -msgstr "" -"Pastikan untuk melepas kaitan media dapat dilepas sebelum mengeluarkannya. " -"Jangan keluarkan disket dari penggerak disket sebelum melepas kaitan disket. " -"Jangan melepas flash disk sebelum anda melepas kaitan penggerak USB. Jika " -"anda tidak melepas kaitan media terlebih dahulu maka kemungkinan data anda " -"akan hilang atau menyebabkan sistem anda macet." - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "Manajemen Peranti dan Media Dapat Dilepas" - -#: Thunar.xml:481(para) -msgid "" -"Thunar is also able to automatically manage removable drives and media if " -"the thunar-volman package is installed on " -"your system. Note however that this feature requires HAL support." -msgstr "" -"Thunar juga dapat secara otomatis mengatur penggerak dan media dapat dilepas " -"jika paket thunar-volman terinstal di " -"sistem anda. Perlu dicatat bahwa fitur ini memerlukan dukungan HAL." - -#: Thunar.xml:487(para) -msgid "" -"Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the " -"Volume Management feature of Thunar. Therefore, open " -"the file manager preferences, go to the Advanced page " -"and check the Enable Volume Management button." -msgstr "" -"Sekarang, jika dukungan HAL tersedia dan thunar-volman terinstal di sistem anda, anda dapat memilih untuk mengaktifkan " -"fitur Manajemen Volume Thunar. Selanjutnya, buka " -"pengaturan manajer berkas, pergi ke halaman Tingkat Lanjut dan centang tombol Aktifkan Manajemen Volume." - -#: Thunar.xml:494(para) -msgid "" -"The next step is to customize the management of removable drives and media " -"to your needs. Click on the Configure link in the " -"Volume Management section, right below the button. The " -"Removable Drives and Media configuration dialog will be " -"displayed." -msgstr "" -"Langkah berikutnya adalah untuk menyesuaikan manajemen penggerak dan media " -"dapat dilepas sesuai dengan kebutuhan anda. Klik pada tautan Atur di bagian Manajemen Volume, tepat di bawah " -"tombol. Dialog konfigurasi Peranti dan Media Dapat Dilepas akan ditampilkan." - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "Peranti dan Media Dapat Dilepas" - -#: Thunar.xml:512(para) -msgid "" -"If you have used the gnome-volume-manager " -"previously, you should feel right at home, because it was designed to look " -"and behave similar to gnome-volume-manager. The " -"preferences are divided by device categories to make it easy to locate the " -"option for you specific device." -msgstr "" -"Jika anda telah menggunakan gnome-volume-manager " -"sebelumnya, anda akan merasa di rumah sendiri, karena ini didesain untuk " -"terlihat dan berperilaku seperti gnome-volume-manager. Pengaturan dibagi berdasarkan kategori divais untuk membuat " -"mudah untuk mencari opsi untuk divais tertentu anda." - -#: Thunar.xml:519(para) -msgid "" -"The Storage page contains the most important options. " -"As the name suggests these options apply only to storage devices like " -"external harddisk drives, USB sticks and CD-ROMs. The Removable " -"Storage options are described in detail below." -msgstr "" -"Halaman Penyimpanan berisi opsi paling penting. " -"Seperti namanya opsi ini hanya dapat diterapkan terhadap divais penyimpanan " -"seperti penggerak hardisk eksternal, flash disk dan CD-ROM. Opsi " -"Penyimpanan Dapat Dilepas dijelaskan secara detail di bawah." - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Kaitkan penggerak dapat dilepas ketika ditancapkan" - -#: Thunar.xml:529(para) -msgid "" -"Enable this option to automatically mount file systems on removable drives " -"(i.e. external harddisk drives or USB sticks) when such drives are plugged " -"into the computer." -msgstr "" -"Aktifkan opsi ini untuk secara otomatis mengaitkan sistem berkas pada " -"penggerak dapat dilepas (misalnya penggerak hardisk eksternal atau flash " -"disk) jika penggerak tersebut ditancapkan ke dalam komputer." - -#: Thunar.xml:533(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable drives. For example, if you disable this option, certain kinds of " -"portable music players cannot be detected any more and so, even if you " -"enabled the Play music files when connected option on " -"the Multimedia page, the specified command will not be " -"run when you hot-plug your portable music player." -msgstr "" -"Opsi ini harus diaktifkan untuk fitur tertentu lainnya agar bekerja dengan " -"penggerak dapat dilepas. Misalnya, jika anda menonaktifkan opsi ini, tipe " -"tertentu dari pemutar musik portabel tak dapat dideteksi lagi sehingga bila " -"anda mengaktifkan opsi Putar berkas musik jika tersambung di halaman Multimedia, perintah yang " -"ditentukan tidak akan dijalankan ketika anda menancapkan pemutar musik " -"portabel." - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Kaitkan media dapat dilepas ketika dimasukkan" - -#: Thunar.xml:546(para) -msgid "" -"Enable this option to automatically mount file systems on removable media (i." -"e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" -"Aktifkan opsi ini untuk secara otomatis mengaitkan sistem berkas di media " -"dapat dilepas (misalnya CD-ROM atau DVD) ketika anda memasukkan media ke " -"dalam penggerak." - -#: Thunar.xml:550(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable media. For example, if you disable this option, it is impossible " -"to detect whether the removable media has auto-run capabilities, and so the " -"Auto-run programs on new drives and media option has no " -"effect for removable media." -msgstr "" -"Opsi ini harus diaktifkan untuk fitur tertentu lainnya untuk bekerja dengan " -"media dapat dilepas. Misalnya, jika anda menonaktifkan opsi ini, maka tidak " -"mungkin untuk mendeteksi apakah media dapat dilepas mempunyai kapabilitas " -"otomatis berjalan, sehingga opsi Jalankan otomatis program di " -"penggerak dan media baru tidak mempunyai efek untuk media dapat " -"dilepas." - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Ramban media dapat dilepas ketika dimasukkan" - -#: Thunar.xml:562(para) -msgid "" -"Enable this option to automatically display the content of newly inserted " -"media in the file manager. Note however, that the contents will only be " -"displayed if no other action was possible or you choose to ignore the other " -"possible actions. For example, if you insert a CD-ROM with auto-run " -"capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow " -"or ignore the auto-run. If you choose to ignore the auto-run the contents " -"will be displayed in the file manager." -msgstr "" -"Aktifkan opsi ini untuk secara otomatis menampilkan isi dari media yang " -"baru dimasukkan dalam manajer berkas. Namun perlu dicatat, bahwa isi hanya " -"akan ditampilkan jika tidak ada aksi lain yang memungkinkan atau anda " -"memilih untuk mengabaikan aksi yang mungkin lainnya. Misalnya, jika anda " -"memasukkan CD-ROM dengan kapabilitas otomatis berjalan diaktifkan, anda " -"akan ditanyakan apakah ingin mengizinkan atau mengabaikan otomatis berjalan. " -"Jika anda memilih untuk mengabaikan otomatis berjalan maka isi akan " -"ditampilkan di manajer berkas." - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Program otomatis berjalan di penggerak dan media baru" - -#: Thunar.xml:576(para) -msgid "" -"Enable this option to make use of auto-run capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-run mechanism. To " -"enhance security, you will always be prompted to confirm the auto-run." -msgstr "" -"Aktifkan opsi ini untuk memastikan penggunaan kapabilitas peranti dan media " -"dapat dilepas tertentu. Lihat Spesifikasi Start " -"Otomatis Aplikasi Desktop untuk detail tentang mekanisme menjalankan " -"otomatis. Untuk meningkatkan keamanan, anda akan selalu ditanyakan untuk " -"mengonfirmasi menjalankan otomatis." - -#: Thunar.xml:582(para) -msgid "" -"If the Windows emulator WINE is installed on your system, the auto-run mechanism will " -"also try to run autorun.exe files using WINE." -msgstr "" -"Jika emulator Windows WINE terinstal di sistem anda, mekanisme menjalankan otomatis " -"akan mencoba menjalankan berkas autorun.exe " -"menggunakan WINE." - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "Buka otomatis berkas di peranti dan media baru" - -#: Thunar.xml:592(para) -msgid "" -"Enable this option to make of auto-open capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-open mechanism. " -"To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" -"Aktifkan opsi ini untuk membuat kapabilitas buka otomatis dari peranti dan " -"media dapat dilepas tertentu. Lihat " -"Spesifikasi Start Otomatis Aplikasi Desktop untuk detail tentang " -"mekanisme membuka otomatis. Untuk meningkatkan keamanan, anda akan selalu " -"ditanyakan untuk mengonfirmasi membuka otomatis." - -#: Thunar.xml:602(para) -msgid "" -"The remaining options allow you to specify a command to run when a certain " -"kind of media is inserted into a drive or a certain kind of external device " -"is connected. The command can use three special variables, that will be " -"substituted when the command is run:" -msgstr "" -"Opsi yang tersisa memungkinkan anda untuk menentukan sebuah perintah untuk " -"dijalankan ketika media jenis tertentu dimasukkan ke dalam peranti atau " -"divais eksternal jenis tertentu tersambung. Perintah dapat menggunakan tiga " -"variabel khusus, yang akan digantikan ketika perintah dijalankan:" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml:612(para) -msgid "" -"Each appearance of %d in the command will be substituted " -"with the device file path of the newly added device. For example, if you " -"have plugged in an USB stick, the device file path will be /dev/" -"da0s1 or /dev/sda1." -msgstr "" -"Tiap tampilan %d dalam perintah akan digantikan dengan " -"alamat berkas divais dari divais yang baru ditambahkan. Misalnya, jika anda " -"menancapkan sebuah Flash Disk, alamat berkas divais akan berupa " -"/dev/da0s1 atau /dev/sda1." - -#: Thunar.xml:617(para) -msgid "" -"If no device file is associated with the device or the device file could not " -"be found for some reason, the variable %d will be " -"substituted with the empty string." -msgstr "" -"Jika tidak ada berkas divais yang diasosiasikan dengan divais atau berkas " -"divais tidak dapat ditemukan karena beberapa alasan, variabel %d" -" akan digantikan dengan benang kosong." - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml:627(para) -msgid "" -"Each appearance of %h in the command will be substituted " -"with the HAL UDI of the newly added device." -msgstr "" -"Tiap tampilan %h di perintah akan digantikan dengan UDI " -"HAl dari divais yang baru ditambahkan." - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml:637(para) -msgid "" -"Each appearance of %m in the command will be substituted " -"with the mount point where the newly added device was mounted. If the device " -"cannot be mounted (for example printers or keyboards) or if the automatic " -"mounting was disabled, %m will be substituted with the " -"empty string." -msgstr "" -"Tiap tampilan %m di perintah akan digantikan dengan titik " -"kait tempat divais yang baru ditambahkan dikaitkan. Jika divais tak dapat " -"dikatikan (misalnya pencetak atau papan ketik) atau jika pengaitan otomatis " -"dinonaktifkan, %m akan digantikan dengan benang kosong." - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "" - -#: Thunar.xml:650(para) -msgid "" -"Useful tips to trouble shoot the volume manager in case it does not work as " -"expected." -msgstr "" - -#: Thunar.xml:656(para) -msgid "" -"Make sure Thunar is running as daemon. The volume " -"manager depends on this, as it is not a daemon by itself. By default, Xfce " -"automatically spawns Thunar as daemon on startup. " -"If it got killed for some reason, open the Run program " -"(using the keyboard shortcut AltF2 or right-click on the desktop and choose Run " -"Program... from the desktop menu), enter Thunar --" -"daemon and click Run." -msgstr "" - -#: Thunar.xml:668(para) -msgid "" -"Try running thunar-volman from a " -"Terminal window after hot-plugging the drive or " -"inserting the media. First, you need to figure out the HAL UDI of the new " -"device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-" -"added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" - -#: Thunar.xml:678(para) -msgid "" -"If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing " -"list for help." -msgstr "" - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "" - -#: Thunar.xml:691(para) -msgid "" -"Use the File Manager Preferences dialog to set your " -"Thunar file manager preferences. To open the " -"preferences dialog, choose EditPreferences... from the menu " -"bar, or click on the File Manager button in the Xfce " -"Settings Manager." -msgstr "" - -#: Thunar.xml:697(para) -msgid "" -"The File Manager Preferences dialog is divided into " -"four pages with different options, each described in a separate section " -"below. Basically you can set preferences in the following categories:" -msgstr "" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "" - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "" - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "" - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "" - -#: Thunar.xml:709(para) -msgid "" -"Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but " -"are not included in the preferences in order to keep the preferences dialog " -"simple. The README.thunarrc " -"file that is included with the Thunar distribution describes all available " -"options in detail." -msgstr "" - -#: Thunar.xml:718(title) Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "" - -#: Thunar.xml:720(para) -msgid "" -"You can specify a default view, select sort options and display options. You " -"can also specify whether thumbnails should be displayed for file types that " -"support this." -msgstr "" - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "" - -#: Thunar.xml:742(para) -msgid "" -"Select the default view for folders. When you open a new window, the is " -"displayed in the view that you select. This can be either the icon view, the " -"compact list view or the detailed list view. You can also select " -"Last Active View here to use the view you used for the " -"last active window." -msgstr "" - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "" - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "" - -#: Thunar.xml:763(para) -msgid "" -"Select this option to show thumbnails of image files and other supported " -"files. The file manager stores the thumbnail files for each folder in the " -"hidden .thumbnails directory in the " -"user's Home Folder." -msgstr "" - -#: Thunar.xml:768(para) -msgid "" -"See if you want to extend the basic " -"thumbnail functionality provided by Thunar with " -"support for additional file types." -msgstr "" - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "" - -#: Thunar.xml:779(para) -msgid "" -"Select this options to place the icon captions for items in the icon view " -"beside the icon rather than under the icon." -msgstr "" - -#: Thunar.xml:790(title) Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "" - -#: Thunar.xml:792(para) -msgid "" -"You can select display options for the shortcuts pane and the tree pane." -msgstr "" - -#: Thunar.xml:808(para) -msgid "" -"The side pane can either display a list of shortcuts for folders in your " -"file system, which is the default, or a tree view of your file system. This " -"page allows you to select the size of the icons for the shortcuts and the " -"tree pane. You can also specify whether emblems should be displayed." -msgstr "" - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "" - -#: Thunar.xml:819(para) -msgid "" -"The size of the icons displayed in the side, ranging from Very " -"Small (around 16x16 pixels) to Very Large " -"(around 128x128 pixels)." -msgstr "" - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "" - -#: Thunar.xml:829(para) -msgid "" -"Select this option to display emblems for folders in the side pane. You can " -"assign emblems to folders in the Properties dialog. " -"Select a folder in the main area and choose FileProperties... from the main " -"menu, or right-click the folder and select " -"Properties... from the " -"context menu." -msgstr "" - -#: Thunar.xml:843(title) Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "" - -#: Thunar.xml:845(para) -msgid "" -"You can select the preferred behavior to interact with the file manager." -msgstr "" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "" - -#: Thunar.xml:865(para) -msgid "" -"Select this option to perform the default action for an item when you click " -"on the item. When this option is selected, and you point to an item, the " -"title of the item is underlined and the item will be selected automatically " -"after a short delay." -msgstr "" - -#: Thunar.xml:871(para) -msgid "" -"This delay can be configured below the option. You can also disable the " -"automatic selection of items by moving the selector to the left-most " -"position." -msgstr "" - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "" - -#: Thunar.xml:882(para) -msgid "" -"Select this option to perform the default action for an item when you double " -"click on the item, and select the item with a single click." -msgstr "" - -#: Thunar.xml:893(title) Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "" - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "" - -#: Thunar.xml:915(para) -msgid "" -"Choose the action that should be performed when you change the permissions " -"of a folder in the Properties dialog. You can choose to " -"let Thunar ask everytime when you change folder " -"permissions, tell it to default to applying the new permissions to the " -"folder only or to apply them recursively to the folder contents as well." -msgstr "" - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "" - -#: Thunar.xml:927(para) -msgid "" -"If Thunar was installed with support for HAL and " -"the thunar-volman package is also installed, you " -"can enable the integrated volume manager. See for details about this feature." -msgstr "" - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "" - -#: Thunar.xml:942(para) -msgid "" -"This chapter describes how to customize certain parts of the file manager to " -"your own needs." -msgstr "" - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "" - -#: Thunar.xml:950(para) -msgid "" -"Thunar includes a Send To menu, which provides possible " -"targets where files and folders can be sent to. To access the Send " -"To menu, choose FileSend To from the main menu, " -"or right-click on a file or folder and choose Send " -"To." -msgstr "" - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "" - -#: Thunar.xml:969(para) -msgid "" -"By default, the Send To menu includes an entry named " -"Desktop (Create Link) for all files and folders, which " -"simply creates a link on the desktop for each selected file. In addition, if " -"the Shortcuts Pane is active, the menu also includes an " -"entry called Side Pane (Create Shortcut) for folders, " -"which allows users to add new shortcuts to the side pane. Following these " -"entries, Thunar lists the removable drives " -"currently plugged into the computer. In the screenshot above, the " -"Floppy Drive represents a possible target where files " -"can be sent to. Note that the device is mounted automatically once selected " -"from the Send To menu, so you do not need to manually " -"mount it." -msgstr "" - -#: Thunar.xml:979(para) -msgid "" -"In addition Thunar also ships the " -"thunar-sendto-email plugin, which adds the entry " -"Mail Recipient to the menu, that opens the mail " -"composer with the selected files attach to the new email. If the selection " -"contains atleast one folder, the selected items are added to a ZIP archive " -"before attaching them to the email. Otherwise, if the selection contains " -"multiple files, or a single file, which is larger than 200Kib, the user will " -"be prompted whether to pack the files into a ZIP archive, and send the ZIP " -"archive." -msgstr "" - -#: Thunar.xml:987(para) -msgid "" -"Like most other features of Thunar, the " -"Send to menu can be easily extended by users and " -"application developers with new targets, using standard desktop entry files. These files must be installed into one of " -"the $XDG_DATA_DIRS/Thunar/sendto/ " -"folders (see the XDG Base Directory Specification for " -"details about the $XDG_DATA_DIRS variable)." -msgstr "" - -#: Thunar.xml:996(para) -msgid "" -"The MimeType of the target .desktop " -"specifies the types of files for which this action should be available in " -"the Send To menu. For example, say you want to add " -"entry for a Flickr " -"uploader tool, then this entry should only show up if the selection contains " -"JPEG files (other file formats are not supported by Flickr) and so you " -"should add a line MimeType=image/jpeg;. If you do not " -"specify any MimeType your entry will show up for all file " -"types." -msgstr "" - -#: Thunar.xml:1004(para) -msgid "" -"A complete example using the postr application is " -"shown below:" -msgstr "" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" - -#: Thunar.xml:1021(para) -msgid "" -"If you install this file to ~/.local/share/" -"Thunar/sendto/ (create the folder if it does not exist yet), the " -"Send To menu for JPEG files will show the new entry " -"Flickr, which can be used to upload JPEG images to " -"Flickr." -msgstr "" - -#: Thunar.xml:1027(para) -msgid "" -"The Thunar Project Wiki contains additional examples of " -"useful targets for the Send To menu. Feel free to " -"extend the Wiki page with new examples." -msgstr "" - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "" - -#: Thunar.xml:1038(para) -msgid "" -"Thunar uses small utilities to create thumbnails of certain file types and " -"displays the thumbnails as preview of the file content. These small tools " -"are called thumbnailers. Thunar ships with thumbnailers for image and font " -"files, and makes use of the installed thumbnailers from GNOME automatically " -"if it was installed with support for gconf. Users may " -"however dynamically extend this basic functionality with thumbnailers for " -"additional file types." -msgstr "" - -#: Thunar.xml:1045(para) -msgid "" -"If you plan to write a custom thumbnailers, you need to start with a program " -"that accepts atleast two command line parameters, the input file, which is " -"of the file type you plan to support and the output file, which is a PNG " -"file that complies with the format specified by the Thumbnail " -"Management Standard. Additionally your program may also accept the " -"desired size of the thumbnail, which is optional but highly recommended. If " -"you write the output file at an arbitrary image size, Thunar will afterwards " -"scale it to the desired size, which might produce a less optimal result than " -"generating the thumbnail with the requested dimensions." -msgstr "" - -#: Thunar.xml:1054(para) -msgid "" -"Once your utility to generate the thumbnails is done, you will need to " -"register your thumbnailer, so Thunar is able to locate and use it. Therefore " -"all you need to do is to install a description file for the thumbnailer (a " -".desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want " -"to register the thumbnailer for your user account only, you can install the " -"file into the folder ~/.local/share/" -"thumbnailers/. The .desktop for thumbnailers " -"has the following format." -msgstr "" - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "" - -#: Thunar.xml:1065(para) -msgid "" -"Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new " -"field codes. Basically, a thumbnailer description file has the following " -"format." -msgstr "" - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1080(para) -msgid "" -"The Version and Encoding are mandated " -"by the Desktop Entry Specification, just use the values shown in the example " -"above. The Type field must have the special value " -"X-Thumbnailer, otherwise your thumbnailer will not be " -"recognized. The Name value describes your thumbnailer." -msgstr "" - -#: Thunar.xml:1086(para) -msgid "" -"The X-Thumbnailer-Exec field contains the command to run " -"your thumbnailer, and supports certain field codes that will be substituted " -"when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "" - -#: Thunar.xml:1095(para) -msgid "" -"The local path to the input file for which to create a thumbnail. May be " -"either a path relative to the directory from which the thumbnailer was " -"invoked or an absolute path." -msgstr "" - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "" - -#: Thunar.xml:1103(para) -msgid "" -"The local path to the output file where to store the generated thumbnail. " -"The output file must be written as valid PNG file according to the thumbnail " -"standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "" - -#: Thunar.xml:1112(para) -msgid "" -"The desired size of the generated thumbnail in pixels. This parameter is " -"optional." -msgstr "" - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "" - -#: Thunar.xml:1119(para) -msgid "" -"Similar to %i, but substituted with the URI of the file, " -"rather than the path. This was added for compatibility with GNOME." -msgstr "" - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "" - -#: Thunar.xml:1132(para) -msgid "" -"You need to include atleast %o and %i " -"or %u, otherwise your thumbnailer will be useless." -msgstr "" - -#: Thunar.xml:1137(para) -msgid "" -"The MimeType lists the MIME types - separated by " -"semicolon - for which your thumbnailer is able to create previews." -msgstr "" - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "" - -#: Thunar.xml:1145(para) -msgid "" -"This example demonstrates how to write and install a new thumbnailer for " -".eps files, which uses the convert " -"utility that ships as part of ImageMagick. First, we start with a simple " -"script that invokes convert to generate a thumbnail at " -"the requested size." -msgstr "" - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" - -#: Thunar.xml:1167(para) -msgid "" -"Save this script above to a file eps-thumbnailer, make " -"sure the file is executable and install it to /" -"usr/local/bin." -msgstr "" - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" - -#: Thunar.xml:1176(para) -msgid "" -"Next we need to create the thumbnail description file eps-" -"thumbnailer.desktop, which looks like this:" -msgstr "" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1190(para) -msgid "" -"This file must be installed to /usr/local/share/" -"thumbnailers (create the folder if it does not exists)." -msgstr "" - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" - -#: Thunar.xml:1199(para) -msgid "" -"The eps-thumbnailer.desktop file uses the special key " -"TryExec, which, if specified, names a command that must " -"be present on the system for the thumbnailer to be useful. In this case, our " -"script is useless if the convert utility is not present." -msgstr "" - -#: Thunar.xml:1205(para) -msgid "" -"The last step is to regenerate the thumbnailer cache, so Thunar will pick up " -"our thumbnailer. The thumbnailer cache is located at " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by " -"your or your system administrator, the $XDG_CACHE_HOME " -"points to the folder ~/.cache/). The " -"thumbnailers cache is regenerated periodically by Thunar, but you can force " -"to regenerate it by invoking the thunar-vfs-update-thumbnailers-" -"cache-1 utility, that ships as part of Thunar. This utility is " -"usually installed in the libexec " -"subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in " -"/usr, invoke the utility as follows:" -msgstr "" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "" - -#: Thunar.xml:1218(para) -msgid "" -"But make sure you run the program from your user account, not the superuser " -"account, since the thumbnailers cache is stored in your home folder, rather " -"than a system wide location." -msgstr "" - -#: Thunar.xml:1223(para) -msgid "" -"Now, if Thunar is compiled with support for file alteration monitoring " -"(using the FAM or Gamin services), it will automatically pick up the new " -"thumbnailers cache within a few seconds and afterwards be able to generate " -"thumbnails using your custom thumbnailers. Otherwise you might need to " -"completely restart Thunar to apply the changes, using" -msgstr "" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "" - -#: Thunar.xml:1231(para) -msgid "" -"to terminate any running instance, and afterwards restart it from your " -"launcher." -msgstr "" - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "" - -#: Thunar.xml:1239(para) -msgid "" -"The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management " -"Standard. While testing a new thumbnailer, it might help to clean up " -"the thumbnail cache using" -msgstr "" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "" - -#: Thunar.xml:1247(para) -msgid "" -"which will also give you some free space in your home folder. Since all the " -"information stored within this folder was automatically generated from files " -"in your file system, you will not loose any sensitive data." -msgstr "" - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1263(para) -msgid "" -"To bulk rename files means to rename multiple files at " -"once using some criterion, that applies to atleast one of the files. " -"Thunar includes a bulk renamer, which can be run " -"separately using the command Thunar -B or from within " -"Thunar by selecting two or more files in the main " -"area and pressing F2 or choosing " -"EditRename... from the main menu." -msgstr "" - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1283(para) -msgid "" -"The Bulk Renamers can be applied to the name of the " -"files, the suffix of the files or both to the name and the suffix of the " -"files. Thunar currently supports the following " -"Bulk Renamers:" -msgstr "" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "" - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "" - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "" - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "" - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "" - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "" - -#: Thunar.xml:1298(para) -msgid "" -"Additional Bulk Renamers may be installed as plugins " -"for Thunar. Check the Thunar Plugins website for " -"currently available extensions. The Thunar Project Wiki " -"contains further details about this feature. Feel free to add more " -"information to the Wiki." -msgstr "" - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "" - -#: Thunar.xml:1310(para) -msgid "" -"While the Thunar file manager does a good job at abstracting the details of " -"the underlying file system, so the user does not need to care about them, it " -"is sometimes useful to understand the basic concepts to get the whole " -"picture. This section tries to give a brief introduction to the concepts of " -"the UNIX file system, which is used today by all incarnations of UNIX, " -"including Linux." -msgstr "" - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "" - -#: Thunar.xml:1320(para) -msgid "" -"In a UNIX file system all folders are arranged in a simple inverted tree " -"structure descending and branching down from a single top level folder, " -"which is called the root directory (the term " -"directory is often used instead of folder) and displayed as File System in Thunar. This " -"means that you can get from any folder to any other by going up the tree " -"until you reach a common point, then down the tree through the appropriate " -"subfolders until you reach your target." -msgstr "" - -#: Thunar.xml:1329(para) -msgid "" -"The position of any file or folder in the tree can be described by its " -"path. The path is the list of folders you would have to " -"descend through to get to the target folder or file, starting from the top " -"level folder. For example /home/luke " -"is the subfolder luke of the " -"subfolder home of the top level " -"folder, and /home/luke/myfile.txt is the file " -"myfile.txt in that subfolder. The leading / in these paths represents the top level " -"folder." -msgstr "" - -#: Thunar.xml:1338(para) -msgid "" -"Every user has their own folder to hold their personal files and settings. " -"This folder is called the home directory and is " -"displayed in Thunar as special icon with the users login name. The folder is " -"similar to the My Files folder known from Windows. The " -"home directories of the various users in a system are " -"usually located below the /home " -"folder. For example /home/luke would " -"be the home directory of the user with the login name luke, while /home/" -"jane would be the home directory for the user with the login name " -"jane." -msgstr "" - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "" - -#: Thunar.xml:1352(para) -msgid "" -"You may have already heard that everything is a file in UNIX. This is true " -"for most objects present in UNIX systems today. In fact even devices are " -"represented as a special files. While this may not make sense at first " -"sight, it is one of the strengths of UNIX and its derivates, and has helped " -"it to maintain a simple core over the years where other operating systems " -"had to introduce new concepts for every new technology." -msgstr "" - -#: Thunar.xml:1359(para) -msgid "" -"These are the four most important types of files in the UNIX file system." -msgstr "" - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "" - -#: Thunar.xml:1366(para) -msgid "" -"An ordinary file may contain text, a program or other data. This includes " -"image files, audio files, office documents and video files. The term " -"file is often used to refer to an ordinary file." -msgstr "" - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "" - -#: Thunar.xml:1375(para) -msgid "" -"Folders are also files in the UNIX file system. To be exact a folder is a " -"special file, which contains a mapping of file names to file references for " -"every file contained within this folder." -msgstr "" - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "" - -#: Thunar.xml:1384(para) -msgid "" -"A Symbolic link (often called a symlink) is a special " -"file that contains a path to another file in the file system. Symbolic link " -"files therefore do not contain any useful information themselves, but just " -"refer to other files." -msgstr "" - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "" - -#: Thunar.xml:1394(para) -msgid "" -"As mentioned earlier (most) devices are also accessed through the file " -"system. These special device files are usually located in the /dev folder. For example the special file " -"/dev/hda represents the first IDE disk on Linux." -msgstr "" - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "" - -#: Thunar.xml:1408(para) -msgid "" -"The intent of this section is to collect the quite numerous frequently asked " -"questions that relate to working with Thunar. If you know of a question that " -"is missing from this page, please file a request." -msgstr "" - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "" - -#: Thunar.xml:1419(para) -msgid "" -"For security reasons Thunar only executes files of type application/" -"x-desktop, application/x-executable and " -"application/x-shellscript. For desktop files the " -"execution feature will only be enabled if the desktop file is of type " -"Application and a valid Exec line is " -"given or of type Link and a valid URL " -"is given. For the other types the feature is available if the file is marked " -"executable for the current user." -msgstr "" - -#: Thunar.xml:1428(para) -msgid "" -"Also note that for application/x-executable and " -"application/x-shellscript, the types of the file don't " -"really need to match these types exactly, but it is suffice if the detected " -"type has a parent that matches one of the two types listed above, or if the " -"MIME-type is an alias for one of the above." -msgstr "" - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "" - -#: Thunar.xml:1439(para) -msgid "" -"Thunar associates various settings with files/folders, which we call " -"metadata. This metadata for all files is stored in tdb database file, which " -"is called the metafile. The database file is stored in " -"$XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the " -"tdbtool, which is part of the Thunar distribution " -"(located in the tdb/ subdirectory)." -msgstr "" - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "" - -#: Thunar.xml:1452(para) -msgid "" -"Thunar stores the user configurable preferences (and hidden settings) in an " -".ini file, which is located at " -"$XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text " -"editor. See docs/README.thunarrc for an overview of the " -"various preferences." -msgstr "" - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "" - -#: Thunar.xml:1464(para) -msgid "" -"Thunar currently features basic support for so called mouse " -"gestures in its icon view. You can use these mouse " -"gestures by holding down the middle mouse button (usually the " -"mouse wheel) while the mouse pointer is on the background area of the icon " -"view component (any area that is not covered by an icon or a text). Now you " -"can move the cursor into four directions to perform certain actions, which " -"are described below." -msgstr "" - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr "" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr "" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr "" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr "" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "" - -#: Thunar.xml:1484(para) -msgid "" -"If you want to rebind a shortcut, Thunar supports the standard GTK+ way of " -"changing shortcuts: simply hover over the menu option with the mouse pointer " -"and press the keyboard shortcut you want to rebind it to." -msgstr "" - -#: Thunar.xml:1490(para) -msgid "" -"To delete a keyboard assignment, press the Backspace key " -"while you are on the menu entry." -msgstr "" - -#: Thunar.xml:1495(para) -msgid "" -"If the shortcut doesn't change, then you need to enable the feature in GTK+. " -"This can be achieved in 3 ways:" -msgstr "" - -#: Thunar.xml:1502(para) -msgid "" -"If you are running Xfce 4.3 or above then you can enable Editable " -"menu accelerators in the User Interface Preferences dialog." -msgstr "" - -#: Thunar.xml:1510(para) -msgid "" -"If you are running GNOME then you can enable Editable menu " -"accelerators in the Menu and Toolbars " -"control center dialog." -msgstr "" - -#: Thunar.xml:1518(para) -msgid "" -"Otherwise put the following in your ~/.gtkrc-2.0 file " -"(create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "" - -#: Thunar.xml:1529(para) -msgid "" -"The custom keyboard shortcuts are stored in the standard GTK+ accel map " -"format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK" -"+ documentation for details about the file format." -msgstr "" - -#: Thunar.xml:1536(para) -msgid "" -"If you are a packager or a system administrator and want to provide a system " -"wide default for the keyboard shortcuts, that is different from the default " -"shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if " -"/etc/xdg is part of " -"$XDG_CONFIG_DIRS (the default for most Linux distributions), you can " -"install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "" - -#: Thunar.xml:1551(para) -msgid "" -"To report a bug or to make a suggestion regarding this application or this " -"manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a " -"useful bug report has two qualities:" -msgstr "" - -#: Thunar.xml:1559(para) -msgid "" -"Reproducible. If the developer cannot see " -"the bug himself to prove that it exists, he will most probably not be able " -"to fix it at all. Every detail you can provide helps." -msgstr "" - -#: Thunar.xml:1566(para) -msgid "" -"Specific. The quicker the developer can " -"isolate the problem to a specific area, the more likely he will expediently " -"fix it." -msgstr "" - -#: Thunar.xml:1573(para) -msgid "" -"In case you want to request a new feature, please make clear why you " -"consider it a worth addition for the application. It is more likely that a " -"new feature gets added if you provide good arguments for the feature. It " -"will increase the chance of addition even more if you provide a patch that " -"implements the requested feature, but make sure that you read the file " -"HACKING - especially the section labeled Coding " -"Style - before you start hacking up the source." -msgstr "" - -#: Thunar.xml:1583(para) -msgid "" -"Else, if you have questions about the use or installation of this software, " -"please ask on the thunar-dev mailing list or point your IRC " -"client to irc.freenode.net, join the " -"channel #thunar and ask for help." -msgstr "" - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "" - -#: Thunar.xml:1594(para) -msgid "" -"@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" - -#: Thunar.xml:1599(para) -msgid "" -"This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the " -"Thunar website." -msgstr "" - -#: Thunar.xml:1605(para) -msgid "" -"This software is distributed 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." -msgstr "" - -#: Thunar.xml:1611(para) -msgid "" -"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." -msgstr "" -"Anda seharusnya menerima salinan dari Lisensi Publik Umum GNU bersama dengan " -"program ini; jika tidak, kirim surat ke Free Software Foundation, Inc., " -"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "Andhika Padmawan , 2010." diff -Nru thunar-1.2.3/docs/manual/po/it.po thunar-1.6.10/docs/manual/po/it.po --- thunar-1.2.3/docs/manual/po/it.po 2010-11-09 20:50:11.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/it.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1349 +0,0 @@ -# Italian translation of the Thunar manual. -# Copyright (C) 2004-2007 Benedikt Meurer. -# This file is distributed under the same license as the Thunar package. -# Cristian Marchi , 2009. -msgid "" -msgstr "" -"Project-Id-Version: Thunar file manager manual\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2009-02-17 11:42+0100\n" -"Last-Translator: Cristian Marchi \n" -"Language-Team: Italian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Italian\n" -"X-Poedit-Country: ITALY\n" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -# GLOSSARIO -# action = azione -# cache = cache -# desktop = scrivania -# device = dispositivo -# drive = unità -# file manager = gestore di file -# home = casa (cartella) -# launcher = avviatore -# media = supporto -# mouse gesture = mouse gesture -# thumbnailer = creatore di miniature o invariato -#: Thunar.xml88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml12(title) -msgid "Thunar File Manager" -msgstr "Gestore di file Thunar " - -#: Thunar.xml17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "È garantito il permesso di copiare, distribuire e/o modificare questo documento nel rispetto dei termini della GNU Free Documentation License versione 1.1 o qualsiasi versione successiva pubblicata dalla Free Software Foundation; senza sezioni invarianti, senza testo di copertina all'inizio e alla fine. Il testo completo della licenza è disponibile sul sito della Free Software Foundation." - -#: Thunar.xml37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml40(jobtitle) -msgid "Software developer" -msgstr "Sviluppatore di software" - -#: Thunar.xml41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml42(orgdiv) -msgid "System development" -msgstr "Sviluppatore di sistemi" - -#: Thunar.xml43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Questo manuale descrive la versione @PACKAGE_VERSION@ di @PACKAGE_NAME@." - -#: Thunar.xml54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Introduzione a @PACKAGE_NAME@" - -#: Thunar.xml56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar è un moderno gestore di file per l'ambiente Xfce. Thunar è stato progettato fin dall'inizio per essere veloce e di facile utilizzo. La sua interfaccia utente è semplice e intuitiva, e non presenta di default nessuna opzione inutile o che può creare confusione. Thunar è veloce e reagisce con prontezza dato che presenta un breve tempo di avvio e di caricamento delle cartelle." - -#: Thunar.xml62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "Il gestore di file Thunar fornisce quindi un punto di accesso integrato ai propri file e applicazioni. Thunar può essere utilizzato per:" - -#: Thunar.xml68(para) -msgid "Create folders and documents." -msgstr "creare cartelle e documenti;" - -#: Thunar.xml69(para) -msgid "Display your files and folders." -msgstr "visualizzare i propri file e cartelle;" - -#: Thunar.xml70(para) -msgid "Manage your files and folders." -msgstr "gestire i propri file e cartelle;" - -#: Thunar.xml71(para) -msgid "Run and manage custom actions." -msgstr "eseguire e gestire le azioni personalizzate;" - -#: Thunar.xml72(para) -msgid "Access Removable Media." -msgstr "accedere ai supporti rimovibili." - -#: Thunar.xml78(title) -msgid "The File Manager Window" -msgstr "La finestra del gestore di file" - -#: Thunar.xml80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "Di norma, la finestra del gestore di file consiste di un riquadro delle scorciatoie, dell'area principale sulla destra e, al di sopra di essa, di una barra degli indirizzi." - -#: Thunar.xml92(phrase) -msgid "File Manager Window" -msgstr "Finestra del gestore di file" - -#: Thunar.xml97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "Il pannello laterale delle scorciatoie riporta le scorciatoie alle diverse cartelle presenti nel proprio sistema. La prima scorciatoia riporta la cartella casa, la cartella in cui vengono salvati i propri dati personali, e quindi prende il nome dell'utente corrente. La seconda scorciatoia conduce al cestino, dove vengono immagazzinati i file cancellati che possono ancora essere recuperati. La terza scorciatoia è la cartella scrivania, che contiene i file e le cartelle visualizzate sulla scrivania. La quarta scorciatoia conduce alla radice dei propri file di sistema: si può voler esplorarla all'inizio, ma può confondere se si è alle prime armi con i sistemi Linux/Unix. Selezionare le diverse cartelle per vedere cosa contengono." - -#: Thunar.xml108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "Al di sotto della scorciatoia del File System, sono visualizzati i supporti e i dispositivi rimovibili. Nell'immagine sopra, è visualizzato una scorciatoia per il Floppy Drive. Premendo su di essa si avrà accesso ai dati salvati sul dispositivo rimovibile. Consultare la sezione per maggiori dettagli." - -#: Thunar.xml115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "Le altre scorciatoie sono definite dall'utente. Per aggiungere una scorciatoia è sufficiente trascinare la cartella nel pannello laterale delle scorciatoie. In questo modo sarà possibile accedere alle cartelle importanti istantaneamente. Per rimuovere una scorciatoia, fare clic con il tasto destro del mouse su di essa e selezionare l'opzione Rimuovi scorciatoia. Invece, per rinominarla, cliccare con il tasto destro del mouse su di essa e selezionare l'opzione Rinomina scorciatoia. Queste operazioni influenzano esclusivamente la scorciatoia e non la cartella a cui essa si riferisce." - -#: Thunar.xml123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "Nell'area principale verrà sempre visualizzato il contenuto della cartella selezionata. Con un doppio clic si apre una cartella mentre con un clic del tasto destro su file o cartelle si apre un menu contestuale che permette di eseguire alcune operazioni. È possibile selezionare più file creando una seleziona rettangolare che li contiene. In alternativa è possibile selezionare un file e poi, tenendo premuto il tasto Shift, aumentare o diminuire la selezione utilizzando i tasti freccia." - -#: Thunar.xml131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "La barra degli indirizzi visualizza il percorso intrapreso per raggiungere la cartella in cui ci si trova attualmente. Premendo su un pulsante qualsiasi della barra degli indirizzi, è possibile spostarsi nella relativa cartella. Con un clic del tasto destro del mouse su un pulsante della barra degli indirizzi, verrà visualizzato un menu contestuale con alcune opzioni." - -#: Thunar.xml139(title) -msgid "Customizing the Appearance" -msgstr "Personalizzare l'aspetto" - -#: Thunar.xml141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "Esistono diversi modi per personalizzare l'aspetto delle finestre del gestore di file. Nel caso non si fosse soddisfatti del modo in cui vengono visualizzate le icone, selezionare VisualizzaVisualizza come lista dettagliata dal menu principale perché il contenuto della cartella corrente venga visualizzato sotto forma di elenco." - -#: Thunar.xml147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "È possibile impostare il gestore di file per visualizzare la barra dei percorsi in luogo di quella degli indirizzi, selezionando VisualizzazioneSelettore di percorsiIn stile barra degli strumenti dal menu principale." - -#: Thunar.xml153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "Nel caso si preferisca una visualizzazione ad albero per il pannello di sinistra, selezionare VisualizzazionePannello lateraleAlbero dal menu principale." - -#: Thunar.xml160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Colonne visibili nella visualizzazione a lista dettagliata" - -#: Thunar.xml162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "Nel caso si preferisca visualizzare il contenuto delle cartella sotto forma di lista, utilizzando la Visualizzazione a lista dettagliata, è possibile personalizzare le colonne da visualizzare. Per modificarle, selezionare VisualizzazioneConfigura colonne... dal menu principale." - -#: Thunar.xml175(phrase) Thunar.xml182(guilabel) -msgid "Visible Columns" -msgstr "Colonne visualizzate" - -#: Thunar.xml184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "Selezionare le colonne che si desidera vengano visualizzate dalla lista di quelle disponibili. Premere Sposta su o Sposta giùper cambiare l'ordine delle colonne. Premere Predefinitoper tornare alle impostazioni di default." - -#: Thunar.xml193(guilabel) -msgid "Column Sizing" -msgstr "Dimensionamento delle colonne" - -#: Thunar.xml195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "Selezionare l'opzione Espandi automaticamente le colonne quando necessario se si desidera che le colonne della visualizzazione a lista si espandano automaticamente per fare in modo che il testo sia completamente visibile." - -#: Thunar.xml208(title) -msgid "Working with Files and Folders" -msgstr "Lavorare con file e cartelle" - -#: Thunar.xml212(title) -msgid "Opening Files" -msgstr "Aprire i file" - -#: Thunar.xml214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "Quando si apre un file, il gestore di file esegue l'azione predefinita per quel tipo di file. Per esempio, se si apre un file di testo, questo verrà visualizzato utilizzando l'editor di testo predefinito mentre, aprendo un file di immagine, verrà avviato il visualizzatore di immagini predefinito." - -#: Thunar.xml220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "Il gestore di file controlla l'estensione di un file per determinarne il tipo. Se il file non presenta un'estensione conosciuta, il gestore di file ne esamina il contenuto." - -#: Thunar.xml226(title) -msgid "Executing the Default Action" -msgstr "Eseguire le operazioni predefinite" - -#: Thunar.xml228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "Per eseguire l'azione predefinita su un certo file, è sufficiente fare clic due volte su di esso. Per esempio, l'azione predefinita per i file audio prevede di eseguirli con l'applicazione predefinita per la musica. In questo caso, si può cliccare due volte sul file per aprirlo nel programma per la musica." - -#: Thunar.xml234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "È possibile impostare le preferenze di Thunar in modo che basti un unico clic sul file per eseguire l'azione predefinita a esso associata. Per maggiori informazioni consultare la sezione ." - -#: Thunar.xml241(title) -msgid "Executing Non-Default Actions" -msgstr "Eseguire le operazioni non predefinite" - -#: Thunar.xml243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "Per eseguire un'azione diversa da quella predefinita per un file, selezionare il file per cui si desidera cambiare l'azione. Scegliere l'azione desiderata dalle opzioni Apri con disponibili nel menu File o nel sotto menu Apri con." - -#: Thunar.xml251(title) -msgid "Adding Actions" -msgstr "Aggiungere delle azioni" - -#: Thunar.xml253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "Per aggiungere delle azioni associate a un determinato tipo di file, si seguano i passi successivi:" - -#: Thunar.xml259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "nell'area principale, selezionare un file del tipo a cui si vuole associare un'azione;" - -#: Thunar.xml264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "selezionare FileApri con altra applicazione... dal menu principale;" - -#: Thunar.xml270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "scegliere un'applicazione nella finestra Apri con o selezionare Usa un comando personalizzato e navigare fino a selezionare il programma che si desidera utilizzare per aprire questo tipo di file." - -#: Thunar.xml277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "L'azione scelta è stata ora aggiunta alla lista di azioni per quel particolare tipo di file. Se è stata abilitata l'opzione Usa come predefinita per questo tipo di file o non era stata associata un'altra azione in precedenza, la nuova azione è quella predefinita." - -#: Thunar.xml283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "È anche possibile aggiungere delle azioni utilizzando il pulsante Apri con raggiungibile da FileProprietà...." - -#: Thunar.xml290(title) -msgid "Modifying Actions" -msgstr "Modificare le azioni" - -#: Thunar.xml292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "Per modificare le azioni associate a un file o a un certo tipo di file, seguire questa procedura:" - -#: Thunar.xml298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "nell'area principale selezionare un file del tipo per cui si vuole modificare l'azione;" - -#: Thunar.xml303(para) Thunar.xml383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "selezionare FileProprietà... dal menu principale;" - -#: Thunar.xml308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "selezionare la nuova azione predefinita utilizzando il pulsante Apri con oppure aggiungere una nuova azione selezionando Apri con altra applicazione... dal menu a discesa." - -#: Thunar.xml315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "Per rimuovere un'azione definita in precedenza per un certo tipo di file, aprire il dialogo Apri con come descritto in precedenza, premere con il tasto destro del mouse sull'azione che si desidera rimuovere e selezionare Rimuovi avviatore." - -#: Thunar.xml324(title) Thunar.xml361(phrase) -msgid "File Properties" -msgstr "Proprietà del file" - -#: Thunar.xml326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "La finestra delle proprietà del file mostra ulteriori informazioni su qualsiasi file o cartella nel gestore di file. In questa finestra è anche possibile eseguire le seguenti operazioni:" - -#: Thunar.xml333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "cambiare l'icona di file speciali, quali gli avviatori di applicazioni e i collegamenti URL;" - -#: Thunar.xml338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "aggiungere o rimuovere gli emblemi di un file o di una cartella;" - -#: Thunar.xml343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "cambiare i permessi UNIX a un file o a una cartella;" - -#: Thunar.xml348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "scegliere l'applicazione da utilizzare per aprire un file e tutti gli altri file dello stesso tipo." - -#: Thunar.xml366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "Per aprire la finestra delle proprietà del file, seguire questa procedura:" - -#: Thunar.xml372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "selezionare il file o la cartella di cui si vogliono esaminare o modificare le proprietà. Non è possibile selezionare più di un elemento alla volta e visualizzare le proprietà che hanno in comune;" - -#: Thunar.xml386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "Fare clic con il tasto destro del mouse sull'elemento selezionato e scegliere Proprietà... dal menu contestuale;" - -#: Thunar.xml389(para) -msgid "Press AltReturn." -msgstr "premere la combinazione di tasti AltInvio." - -#: Thunar.xml379(para) -msgid "Do one of the following: " -msgstr "Eseguire una delle seguenti operazioni: " - -#: Thunar.xml400(title) -msgid "Using Removable Media" -msgstr "Utilizzare i supporti rimovibili" - -#: Thunar.xml403(title) -msgid "Accessing Removable Media" -msgstr "Accedere ai supporti rimovibili" - -#: Thunar.xml405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "Thunar supporta i dispositivi rimovibili se è stato compilato con il supporto per HAL, o se si sta utilizzando FreeBSD. Comunque, nelle versioni di FreeBSD 6.0 o successive, si suggerisce di utilizzare HAL in luogo del supporto nativo fornito da Thunar." - -#: Thunar.xml412(title) -msgid "To Mount Media" -msgstr "Montare i supporti" - -#: Thunar.xml414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "Montare i supporti significa renderne accessibile il file system. Quando si monta un supporto, il relativo file system è collegato come sotto directory del proprio file system." - -#: Thunar.xml419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "Per avere accesso a un supporto, inserirlo nell'apposito dispositivo o collegarlo fisicamente al proprio computer (per esempio collegando un dispositivo USB a una delle porte USB presenti sul proprio computer). Nel pannello laterale del gestore di file verrà aggiunto un oggetto che rappresenta il dispositivo collegato. Se è in esecuzione xfdesktop ed è correttamente configurato per visualizzare le icone dei file e degli avviatori, l'oggetto verrà anche aggiunto alla propria scrivania." - -#: Thunar.xml426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "Per montare effettivamente il dispositivo, fare clic sull'oggetto che lo rappresenta. Per esempio, per montare un dischetto floppy, fare clic sull'oggetto Floppy Drive nel pannello laterale. Il gestore di file aggiungerà così il file system del dispositivo alla struttura del proprio file system e ne visualizzerà il contenuto nell'area principale." - -#: Thunar.xml434(title) -msgid "To Eject Media" -msgstr "Espellere i supporti" - -#: Thunar.xml436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "Se il dispositivo per il supporto è motorizzato (per esempio un'unità CD-ROM), fare clic con il tasto destro del mouse sull'oggetto corrispondente nel pannello laterale o sulla scrivania e scegliere Espelli volume. Il supporto verrà espulso dal dispositivo dopo pochi secondi. Se invece il dispositivo non è motorizzato (per esempio un dischetto floppy o una chiavetta USB), fare clic con il tasto destro del mouse sull'oggetto corrispondente e selezionare Smonta volume. Dopo qualche istante verrà visualizzato un messaggio per avvisare che è possibile rimuovere il dispositivo dal computer in sicurezza." - -#: Thunar.xml451(phrase) -msgid "Unmount notification" -msgstr "Messaggio di smontaggio" - -#: Thunar.xml456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "Il messaggio verrà visualizzato solamente se è abilitato il supporto per libnotify, e se è stato installato il demone di notifica. Un demone di notifica per l'ambiente Xfce è disponibile dal sito del Xfce Goodies Project. Se il supporto alla notificazione non è disponibile, occorre attendere la scomparsa del menu contestuale prima di rimuovere il supporto o scollegare l'unità." - -#: Thunar.xml464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "Si ricorda che non è possibile espellere o smontare un supporto o un dispositivo che è ancora in uso da una o più applicazioni. Quindi, se il gestore di file si rifiuta di espellere un dispositivo, sarà necessario controllare di aver chiuso tutte le applicazioni che avevano accesso al dispositivo stesso e verificare anche le applicazioni da linea di comando eseguite nella finestra del Terminale." - -#: Thunar.xml470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "Assicurarsi di aver smontato il supporto rimovibile prima di espellerlo. Non espellere un disco floppy dal drive prima di averlo smontato. Non rimuovere una chiavetta USB prima di aver smontato il dispositivo. Se non si smonta prima il dispositivo, si potrebbero perdere dei dati o mandare in blocco il sistema." - -#: Thunar.xml479(title) -msgid "Management of Removable Drives and Media" -msgstr "Gestione dei supporti rimovibili" - -#: Thunar.xml481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "Thunar è inoltre in grado di gestire automaticamente i supporti e i dispositivi rimovibili se il pacchetto thunar-volman è installato nel sistema. Si noti comunque che questa caratteristica richiede il supporto di HAL." - -#: Thunar.xml487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "Se il supporto ad HAL è disponibile e thunar-volman è installato nel proprio sistema, è possibile scegliere di abilitare la funzione di gestione dei volumi fornita da Thunar. Quindi, aprire le preferenze del gestore di file, dirigersi alla pagina Avanzate e abilitare l'opzione Abilita la gestione dei volumi." - -#: Thunar.xml494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "Il passo successivo consiste nel personalizzare, a seconda dei propri bisogni, la gestione dei supporti e dei dispositivi rimovibili. Premere il collegamento Configura nella sezione Gestione dei volumi, subito sotto al pulsante; verrà visualizzata la finestra di configurazione dei dispositivi e dei supporti rimovibili." - -#: Thunar.xml507(phrase) -msgid "Removable Drives and Media" -msgstr "Dispositivi e supporti rimovibili" - -#: Thunar.xml512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "Se si ha confidenza con il gnome-volume-manager, ci si dovrebbe trovare a proprio agio, in quanto è stato progettato per assomigliare nell'aspetto e nel comportamento al gnome-volume-manager. Le preferenze sono suddivise per ogni categoria di dispositivo in modo da agevolare la ricerca dell'opzione relativa a uno specifico dispositivo." - -#: Thunar.xml519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "La pagina sui dispositivi di immagazzinamento contiene le opzioni più importanti. Come suggerisce il nome, queste opzioni si applicano solamente ai dispositivi di immagazzinamento quali hard disk esterni, chiavette USB e CD-ROM. Le opzioni relative ai dispositivi di immagazzinamento sono descritte in dettaglio nel seguito" - -#: Thunar.xml527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Monta i supporti rimovibili quando collegati" - -#: Thunar.xml529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "Abilitare questa opzione per eseguire il montaggio automatico dei file system presenti sui dispositivi rimovibili (per esempio un hard disk esterno o una chiavetta USB) nel momento in cui vengono collegati al computer." - -#: Thunar.xml533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "Questa opzione deve essere abilitata per permettere il funzionamento di alcune caratteristiche relative ai dispositivi rimovibili. Per esempio, disabilitando questa opzione, certi tipi di lettori musicali portatili non sono più riconosciuti, e quindi, anche se è abilitata l'opzione Esegui i file musicali quando connessi nella pagina Multimedia, il comando non sarà eseguito automaticamente al momento dell'inserimento del lettore musicale nella relativa porta." - -#: Thunar.xml544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Monta i supporti rimovibili quando inseriti" - -#: Thunar.xml546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "Abilitare questa opzione per eseguire il montaggio automatico dei file system dei supporti rimovibili (per esempio CD-ROM o DVD) al momento dell'inserimento del supporto nell'unità." - -#: Thunar.xml550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "Questa opzione deve essere abilitata per permettere il funzionamento di alcune caratteristiche relative ai supporti rimovibili. Per esempio, disabilitando questa opzione, risulta impossibile riconoscere se il supporto è in grado di avviarsi autonomamente (autorun) e quindi l'opzione Avvia automaticamente i nuovi dispositivi e i supporti non ha effetto sui supporti rimovibili." - -#: Thunar.xml560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Sfoglia i supporti rimovibili quando inseriti" - -#: Thunar.xml562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "Abilitare questa opzione per visualizzare automaticamente nel gestore di file il contenuto dei supporti appena inseriti. Il contenuto, verrà visualizzato solamente se non è possibile alcun altra azione o se è stato scelto di ignorare le altre possibili azioni. Per esempio, se si inserisce un CD-ROM in grado di avviarsi automaticamente ed è abilitata l'opzione Avvia automaticamente i nuovi dispositivi e i supporti, verrà richiesto se avviare o ignorare l'avvio automatico. Se si sceglie di ignorare l'esecuzione automatica, il contenuto del supporto verrà visualizzato nel gestore di file." - -#: Thunar.xml574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Esegui automaticamente i programmi per i nuovi dispositivi o supporti" - -#: Thunar.xml576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "Abilitare questa opzione per avvalersi delle capacità di auto avviamento di alcuni supporti e dispositivi rimovibili. Consultare le specifiche di auto avviamento delle applicazioni desktop per maggiori dettagli sul meccanismo di esecuzione automatica. Per aumentare la sicurezza, verrà sempre richiesta la conferma dell'avvio automatico." - -#: Thunar.xml582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "Se l'emulatore di sistemi Windows WINE è installato sul proprio sistema, il meccanismo di avvio automatico tenterà di eseguire il file autorun.exe utilizzando WINE." - -#: Thunar.xml590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "Apertura automatica dei file all'inserimento di un supporto" - -#: Thunar.xml592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "Abilitare questa opzione per avvalersi della capacità di apertura automatica di alcuni dispositivi e supporti rimovibili. Consultare le specifiche di avvio automatico per le applicazioni desktop per maggiori dettagli sul meccanismo di apertura automatica. Per aumentare la sicurezza, verrà sempre richiesta la conferma dell'apertura automatica." - -#: Thunar.xml602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "Le restanti opzioni permettono di specificare un comando da eseguire all'inserimento in una unità di un certo tipo di supporto o alla connessione di un dispositivo esterno. Il comando può utilizzare tre variabili speciali che verranno sostituite all'esecuzione del comando stesso:" - -#: Thunar.xml610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "Ogni volta che la stringa %d compare nel comando, verrà sostituita con il percorso del file del dispositivo appena inserito. Per esempio, se si è connessa una chiavetta USB, il percorso del file del dispositivo sarà /dev/da0s1 o /dev/sda1." - -#: Thunar.xml617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "Se al dispositivo non è associato alcun file del dispositivo o se quest'ultimo non è rintracciabile, la variabile %d verrà sostituita con una stringa vuota." - -#: Thunar.xml625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "Ogni volta che la stringa %h compare nel comando, verrà sostituita con il codice UDI di HAL del nuovo dispositivo." - -#: Thunar.xml635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "Ogni volta che la stringa %m compare nel comando, verrà sostituita con il punto di montaggio del nuovo dispositivo aggiunto. Se il dispositivo non può essere montato (per esempio una stampante o una tastiera) o se il montaggio automatico è disabilitato, %m verrà sostituita con una stringa vuota." - -#: Thunar.xml648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "Soluzione dei problemi relativi al gestore di volumi" - -#: Thunar.xml650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "Suggerimenti utili per risolvere i problemi relativi al gestore di volumi in caso non dovesse funzionare secondo le attese." - -#: Thunar.xml656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "Assicurarsi che Thunar sia in esecuzione come demone. Il gestore di volumi dipende da questo, dato che non è un demone. Di norma, Xfce esegue Thunar come demone all'avvio. Se per qualche ragione venisse terminato, aprire la finestra di Esegui programma (utilizzando la scorciatoia da tastiera AltF2 o facendo clic sulla scrivania con il tasto destro e scegliendo Esegui programma... dal menu della scrivania), digitare Esegui programma... e fare clic su Esegui." - -#: Thunar.xml668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "Provare a eseguire thunar-volman da una finestra del terminaledopo avere collegato l'unità o inserito il supporto. Prima di tutto è necessario identificare l'UDI di HAL del dispositivo utilizzando lshal o hal-device. Una volta noto l'UDI, eseguire thunar-volman --device-added <udi-del-proprio-dispositivo> in una finestra del terminale e controllare l'eventuale comparsa di messaggi di avviso o di errore." - -#: Thunar.xml678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "Se non dovesse ancora funzionare, richiedere aiuto sul forum di Xfce o nella lista di discussione degli sviluppatori di thunar." - -#: Thunar.xml689(title) -msgid "File Management Preferences" -msgstr "Preferenze di gestione dei file" - -#: Thunar.xml691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "Utilizzare la finestra delle Preferenze del gestore di file per impostare le preferenze del gestore di file Thunar. Per aprire questa finestra, selezionare ModificaPreferenze... dalla barra del menu, oppure fare clic sul pulsante Gestore di file nel gestore della configurazione di Xfce." - -#: Thunar.xml697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "La finestra delle Preferenze del gestore di file è divisa in quattro pagine con diverse opzioni, ognuna delle quali è descritta in una sezione apposita riportata nel seguito. Fondamentalmente è possibile impostare le preferenze relative alle seguenti categorie:" - -#: Thunar.xml703(para) -msgid "The default settings for the views." -msgstr "le impostazioni predefinite per la visualizzazione;" - -#: Thunar.xml704(para) -msgid "The default settings for the side pane." -msgstr "le impostazioni predefinite per il pannello laterale;" - -#: Thunar.xml705(para) -msgid "The behavior of the file manager windows." -msgstr "il comportamento delle finestre del gestore di file;" - -#: Thunar.xml706(para) -msgid "Advanced features of the file manager." -msgstr "funzioni avanzate del gestore di file." - -#: Thunar.xml709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "Thunar supporta inoltre una serie di cosiddette opzioni nascoste, che controllano diverse funzioni avanzate del gestore di file, ma che non sono incluse nelle preferenze al fine di mantenere la finestra delle preferenze il più semplice possibile. Il file README.thunarrc, incluso nella distribuzione di Thunar, descrive in dettaglio tutte le opzioni disponibili." - -#: Thunar.xml718(title) Thunar.xml733(phrase) -msgid "Views Preferences" -msgstr "Preferenze di visualizzazione" - -#: Thunar.xml720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "È possibile specificare una visualizzazione predefinita, selezionare le impostazioni di ordinamento e di visualizzazione. È anche possibile impostare se per un certo tipo di file supportato devono essere visualizzate le miniature." - -#: Thunar.xml740(guilabel) -msgid "View new folder using" -msgstr "Visualizza nuove cartelle usando" - -#: Thunar.xml742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "Selezionare la visualizzazione predefinita per le cartelle. All'apertura di una nuova finestra, questa verrà visualizzata con lo stile selezionato. Può trattarsi di visualizzazione a icone, a lista compatta o dettagliata. È inoltre possibile selezionare l'opzione Ultima visualizzazione attiva per utilizzare lo stile di visualizzazione adottato nell'ultima finestra attiva." - -#: Thunar.xml752(guilabel) -msgid "Sort folders before files" -msgstr "Mostra le cartelle prima dei file" - -#: Thunar.xml754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "Selezionare questa opzione per visualizzare le cartelle prima dei file quando si ordina una cartella." - -#: Thunar.xml761(guilabel) -msgid "Show thumbnails" -msgstr "Mostra miniature" - -#: Thunar.xml763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "Selezionare questa opzione per mostrare le miniature dei file di immagine e di altri file supportati. Il gestore di file salva i file delle miniature per ogni directory nella cartella nascosta .thumbnails nella directory «home» dell'utente." - -#: Thunar.xml768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "Consultare se si desidera estendere le funzionalità di base del thumbaniler di Thunar aggiungendo il supporto ad altri formati di file." - -#: Thunar.xml777(guilabel) -msgid "Text beside icons" -msgstr "Testo accanto alle icone" - -#: Thunar.xml779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "Selezionare questa opzione per inserire l'intestazione dell'icona a fianco, anziché sotto, dell'icona stessa nella visualizzazione a icone" - -#: Thunar.xml790(title) Thunar.xml803(phrase) -msgid "Side Pane Preferences" -msgstr "Preferenze del pannello laterale" - -#: Thunar.xml792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "È possibile impostare le opzioni di visualizzazione per il pannello delle scorciatoie e per il pannello della visualizzazione ad albero." - -#: Thunar.xml808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "Il pannello laterale può visualizzare sia una lista di scorciatoie per le cartelle presenti nel proprio file system (modalità predefinita), sia una struttura ad albero delle stesse cartelle. Questa pagina permette di selezionare la dimensione delle icone visualizzate nel pannello delle scorciatoie o della struttura ad albero. È inoltre possibile indicare quali emblemi debbano essere visualizzati." - -#: Thunar.xml817(guilabel) -msgid "Icon Size" -msgstr "Dimensione dell'icona" - -#: Thunar.xml819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "La dimensione delle icone visualizzate nel pannello laterale, le scelte possibili variano da Molto piccola (circa 16x16 pixel) a Molto grande (circa 128x128 pixel)." - -#: Thunar.xml827(guilabel) -msgid "Show Icon Emblems" -msgstr "Visualizza gli emblemi delle icone" - -#: Thunar.xml829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "Selezionare questa opzione per visualizzare gli emblemi delle cartelle nel pannello laterale. È possibile assegnare gli emblemi alle directory dalla finestra delle Proprietà. Selezionare una cartella nell'area principale e scegliere FileProprietà... dal menu principale, oppure fare clic con il tasto destro del mouse sulla directory e selezionare Proprietà... dal menu contestuale." - -#: Thunar.xml843(title) Thunar.xml856(phrase) -msgid "Behavior Preferences" -msgstr "Preferenze di comportamento" - -#: Thunar.xml845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "È possibile selezionare il comportamento preferito per interagire con il gestore di file." - -#: Thunar.xml863(guilabel) -msgid "Single click to active items" -msgstr "Clic singolo per attivare gli elementi" - -#: Thunar.xml865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "Selezionare questa opzione per eseguire l'azione predefinita per un elemento quando si clicca su di esso. Quando questa opzione è selezionata, e si posiziona il puntatore su un elemento, il titolo di questo è sottolineato e verrà selezionato automaticamente dopo un breve intervallo." - -#: Thunar.xml871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "Questo intervallo di tempo può essere configurato sotto all'opzione. È anche possibile disattivare la selezione automatica degli elementi muovendo il puntatore all'estrema sinistra." - -#: Thunar.xml880(guilabel) -msgid "Double click to activate items" -msgstr "Doppio clic per attivare gli elementi" - -#: Thunar.xml882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "Selezionare questa opzione per eseguire l'azione predefinita su un elemento quando si esegue su di esso un oppio clic del mouse, e per selezionarlo con un singolo clic." - -#: Thunar.xml893(title) Thunar.xml906(phrase) -msgid "Advanced Preferences" -msgstr "Preferenze avanzate" - -#: Thunar.xml895(para) -msgid "You can control advanced features of the file manager." -msgstr "È possibile impostare le caratteristiche avanzate del gestore di file." - -#: Thunar.xml913(guilabel) -msgid "Folder Permissions" -msgstr "Permessi della cartella" - -#: Thunar.xml915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "Selezionare l'azione che deve essere eseguita nel momento in cui vengono cambiati i permessi a una cartella nella finestra delle Proprietà. È possibile scegliere di lasciare che Thunar visualizzi una notifica ogni volta che si cambiano i permessi di una cartella, di applicare di default i permessi solo alla cartella o di di applicarli ricorsivamente alla cartella e al suo contenuto." - -#: Thunar.xml925(guilabel) -msgid "Volume Management" -msgstr "Gestione dei volumi" - -#: Thunar.xml927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "Se Thunar è stato installato con il supporto per HAL ed è anche installato il pacchetto thunar-volman, è possibile abilitare il gestore di volumi integrato. Consultare per maggiori dettagli su questa caratteristica." - -#: Thunar.xml940(title) -msgid "Customizing Thunar" -msgstr "Personalizzare Thunar" - -#: Thunar.xml942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "Questo capitolo illustra come sia possibile personalizzare alcune parti del gestore di file a seconda delle proprie necessità." - -#: Thunar.xml948(title) -msgid "The \"Send To\" Menu" -msgstr "Il menu «Invia a»" - -#: Thunar.xml950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "Thunar include un menu Invia a che fornisce delle possibili destinazioni in cui i file e le cartelle possono essere inviati. Per accedere al menu Invia a, selezionare FileInvia a dal menu principale, o fare clic con il tasto del mouse sul file o sulla cartella e selezionare Invia a." - -#: Thunar.xml964(phrase) -msgid "\"Send To\" Menu" -msgstr "Menu «Invia a»" - -#: Thunar.xml969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "Di norma, il menu Invia a include una voce denominata Scrivania (crea collegamento) per tutti i file e le cartelle, che crea semplicemente un collegamento sulla scrivania per ogni file selezionato. In più, se il pannello delle scorciatoie è attivo, il menu presenta anche una ulteriore voce per le cartelle denominata Pannello laterale (crea scorciatoia), che permette all'utente di inserire una nuova scorciatoia al pannello laterale. Dopo queste voci, Thunar elenca le periferiche rimovibili attualmente collegate al computer. Nell'immagine in alto, il Floppy Drive rappresenta una possibile destinazione a cui possono essere inviati i file. Si noti che il dispositivo è montato automaticamente una volta che è selezionato dal menu Invia a, quindi non è necessario montarlo manualmente." - -#: Thunar.xml979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "In aggiunta, Thunar è distribuito con il plugin Invia a, che aggiunge la voce email al menu, il quale apre una nuova mail con allegato il file selezionato. Se la selezione contiene almeno una cartella, gli elementi selezionati vengono aggiunti a un archivio in formato ZIP prima di essere allegati alla email. Altrimenti, se la selezione contiene più file, o uno singolo, con una dimensione superiore a 200Kib, verrà richiesto all'utente se intende comprimere i file in un archivio ZIP, e inviare quest'ultimo." - -#: Thunar.xml987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "Come molte altre caratteristiche di Thunar, il menu Invia a può essere facilmente esteso, inserendo nuove destinazioni, dagli utenti e dagli sviluppatori di applicazioni avvalendosi dello standard per i file di elementi desktop. Questi file devono essere installati in una delle cartelle $XDG_DATA_DIRS/Thunar/sendto/ (consultare le XDG Base Directory Specification per maggiori dettagli sulla variabile $XDG_DATA_DIRS)." - -#: Thunar.xml996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "Il MimeType della destinazione .desktop specifica il tipo di file per i quali questa azione è disponibile nel menu Send To. Per esempio, si supponga di voler aggiungere una voce per uno strumento di caricamento di un'immagine su Flickr e che questa voce debba essere visualizzata solamente se la selezione contiene dei file in formato JPEG (gli altri formati non sono supportati da Flickr) e quindi si dovrebbe aggiungere una riga MimeType=image/jpeg;. Se non si specifica alcun MimeType la voce verrà visualizzata per qualsiasi tipo di file." - -#: Thunar.xml1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "Qui sotto è mostrato un esempio completo utilizzando l'applicazione postr:" - -#: Thunar.xml1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Integrazione di postr nel\n" -"# menu \"Invia a\".\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "Se si installa questo in ~/.local/share/Thunar/sendto/ (la cartella va creata se non esiste), il menu Invia a per i file JPEG visualizzerà la nuova voce Flickr, che può essere utilizzata per inviare le proprie immagini JPEG al sito Flickr." - -#: Thunar.xml1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "La Wiki del progetto Thunar contiene ulteriori esempi di destinazioni utili per il menu Invia a. Chiunque può aggiungere alla Wiki dei nuovi esempi." - -#: Thunar.xml1036(title) -msgid "Thumbnailers" -msgstr "Creatori di miniature" - -#: Thunar.xml1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "Thunar si avvale di piccoli programmi per creare le miniature di alcuni tipi di file che saranno poi utilizzate per visualizzare l'anteprima del contenuto del file stesso. Questi piccoli strumenti vengono chiamati \"thumbnailer\". Thunar è distribuito con dei visualizzatori di miniature per le immagini e per i file degli stili di testo, e si avvale automaticamente dei thumbnailer installati per GNOME se è stato installato con il supporto per gconf. L'utente può comunque estendere dinamicamente le funzionalità di base con dei visualizzatori di miniature per dei tipi di file aggiuntivi." - -#: Thunar.xml1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "Se si intende programmare un thumbnailer, sarà necessario iniziare con un programma che accetta almeno due parametri da linea di comando: il file di ingresso, che è il tipo di file che si desidera supportare, e il file di output, che è un file PNG in linea con le specifiche del formato dettate dallo standard di gestione delle miniature. In aggiunta il programma dovrebbe anche accettare la dimensione desiderata della miniatura, caratteristica opzionale ma caldamente consigliata. Se si scrive il file di output con una dimensione arbitraria dell'immagine, Thunar la scalerà successivamente alla dimensione desiderata, il che può produrre risultati peggiori rispetto alla generazione diretta della miniatura alla dimensione desiderata." - -#: Thunar.xml1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "Una volta terminata la realizzazione del generatore di miniature, è necessario registrarlo in modo che Thunar possa localizzarlo e utilizzarlo. Tutto ciò che è necessario fare è installare un file di descrizione per il thumbnailer (un file .desktop) in uno dei percorsi $XDG_DATA_DIRS/thumbnailers/. Per esempio, se si desidera registrare un thumbnailer solo per il proprio account utente, è possibile installare il file nella cartella ~/.local/share/thumbnailers/. Il file .desktop per i creatori di miniature ha il seguente formato." - -#: Thunar.xml1063(title) -msgid "Thumbnailer Description File Format" -msgstr "Formato del file di descrizione del creatore di miniature" - -#: Thunar.xml1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "I file di descrizione dei thumbnailer utilizzano il formato per gli elementi desktop con uno speciale Tipo di X-Thumbnailer e un particolare campo X-Thumbnailer-Exec con nuovi codici di campo. Fondamentalmente, un file di descrizione per un thumbnailer ha il seguente formato." - -#: Thunar.xml1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Il proprio thumbnailer\n" -"MimeType=i-propri-/mime-type-supportati;\n" -"X-Thumbnailer-Exec=il-proprio-thumbnailer %i %o %s" - -#: Thunar.xml1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "I campi Version e Encoding sono imposti dalle Desktop Entry Specification; utilizzare i valori mostrati nell'esempio precedente. Il campo Type deve contenere il valore speciale X-Thumbnailer, altrimenti il thumbnailer non verrà riconosciuto. Il valore Name descrive il proprio thumbnailer." - -#: Thunar.xml1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "Il campo X-Thumbnailer-Exec contiene il comando per eseguire il proprio thumbnailer e supporta certi codici di campo che verranno sostituiti all'esecuzione del creatore di miniature. I codici di campo riconosciuti sono i seguenti:" - -#: Thunar.xml1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "Il percorso locale al file di cui creare una miniatura. Può essere un percorso relativo alla directory da cui il creatore di miniature è stato invocato o un percorso assoluto." - -#: Thunar.xml1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "Il percorso locale al file in cui archiviare le miniature generate. Il file deve essere scritto in formato PNG valido in accordo allo standard sulle miniature (vedere più sopra). Il percorso non deve terminare con .png, che assume importanza se si invocano alcuni strumenti esterni." - -#: Thunar.xml1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "La dimensione desiderata in pixel delle anteprime. Questo parametro è facoltativo." - -#: Thunar.xml1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "Simile a %i, ma sostituito con l'URI del file, in luogo del percorso. Questa opzione è stata aggiunta per aumentare la compatibilità con l'ambiente GNOME." - -#: Thunar.xml1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml1127(para) -msgid "Will be substituted with a single %." -msgstr "Verrà sostituito con un singolo %." - -#: Thunar.xml1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "È necessario includere almeno %o e %i oppure %u, altrimenti il proprio creatore di miniature risulterà inutilizzabile." - -#: Thunar.xml1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "Il MimeType elenca i tipi MIME, separati da punti e virgola, per i quali il proprio creatore di miniature è in grado di generare delle anteprime." - -#: Thunar.xml1143(title) -msgid "Example EPS Thumbnailer" -msgstr "Esempio di creatore di miniature per file EPS" - -#: Thunar.xml1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "Questo esempio mostra come scrivere e installare un nuovo creatore di miniature, per i file in formato .eps, che utilizza il comando convert fornito da pacchetto ImageMagick. Si ìinizierà con un semplice script che invoca il comando convert per generare una miniatura della dimensione richiesta.." - -#: Thunar.xml1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Esempio di script per la creazione di miniature di file in formato EPS.\n" -"#\n" -"# Utilizzo: esp-thumbnailer eps-file png-dimensione file\n" -"#\n" -"\n" -"# parametri della linea di comando\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# utilizzo del comando convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "Salvare questo script in un file eps-thumbnailer, assicurarsi che sia eseguibile e installarlo in /usr/local/bin." - -#: Thunar.xml1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "In seguito, è necessario creare il file di descrizione del thumbnailer eps-thumbnailer.desktop con questo contenuto:" - -#: Thunar.xml1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "Questo file devo essere installato in /usr/local/share/thumbnailers (creare la cartella se non esiste)." - -#: Thunar.xml1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "Il file eps-thumbnailer.desktop utilizza la chiave speciale TryExec che, se specificata, richiama un comando che deve essere presente nel sistema per permettere l'utilizzo del creatore di miniature. Nell'esempio proposto, lo script è inutilizzabile se l'utilità convert non è presente." - -#: Thunar.xml1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "L'ultimo passo consiste nella rigenerazione dela cache del creatore di miniature, in modo che Thunar possa utilizzarlo. La cache del creatore di miniature si trova in $XDG_CACHE_HOME/Thunar/thumbnailers.cache (a meno che non sia stata impostata diversamente dall'utente o dall'amministratore del sistema, la variabile $XDG_CACHE_HOME punta la cartella ~/.cache/). La cache del creatore di miniature è rigenerata periodicamente da Thunar, ma è possibbile forzare questa operazione invocando l'utilità thunar-vfs-update-thumbnailers-cache-1 fornita con Thunar. Questa è generalmente installata nella sotto cartella libexec del proprio prefisso d'installazione (sbin nei sistemi Debian/Ubuntu). Quindi, per esempio, se Thunar è installato in /usr, invocare l'utilità nel modo seguente:" - -#: Thunar.xml1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "Assicurarsi però di eseguire il programma dal proprio account utente, non da quello del super utente, dato che la cache del thumbnailer risiede nella propria cartella «casa», invece che in una posizione accessibile da tutto il sistema." - -#: Thunar.xml1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "A questo punto, se Thunar è compilato con il supporto per la monitorizzazione dell'alterazione dei file (utilizzando i servizi FAM o Gamin), riconoscerà automaticamente la cache del nuovo creatore di miniature e sarà in grado di generare le miniature utilizzando il creatore personalizzato. Diversamente, sarà necessario riavviare completamente Thunar per rendere effettivi i cambiamenti, utilizzando:" - -#: Thunar.xml1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "per terminare ogni istanza in esecuzione, e in seguito riavviarlo tramite il proprio avviatore." - -#: Thunar.xml1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Eliminare delle miniature" - -#: Thunar.xml1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "Le miniature create vengono salvate nella cartella ~/.thumbnails/ nel rispetto dello standard di gestione delle miniature. Se si intende provare un nuovo thumbnailer, può essere utile cancellare tutte le miniature utilizzando il comando" - -#: Thunar.xml1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "che permette inoltre di liberare un po' di spazio nella propria cartella casa. Dato che tutte le informazioni salvate all'interno di questa cartella sono state automaticamente generate da dei file presenti nel proprio file system, non si corre il rischio di perdere dei dati sensibili." - -#: Thunar.xml1257(title) -msgid "Advanced Topics" -msgstr "Argomenti avanzati" - -#: Thunar.xml1261(title) -msgid "To Bulk Rename Files" -msgstr "Bulk Rename dei file" - -#: Thunar.xml1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "Con il termine inglese bulk rename, si intende l'operazione di rinominazione simultanea di più file utilizzando uno stesso criterio che si applica ad almeno uno dei file. Thunar include la funzionalità di bulk rename; questa può essere eseguita separatamente utilizzando il comando Thunar -B oppure direttamente da Thunar selezionando due o più file nell'area principale e premendo la combinazione di tasti F2 oppure selezionando ModificaRinomina... dal menu principale." - -#: Thunar.xml1278(phrase) -msgid "Bulk Rename Files" -msgstr "Bulk Rename dei file" - -#: Thunar.xml1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "Il Bulk Renamers può avvenire sui nomi dei file, sul suffisso dei file o su entrambi. La funzione di Bulk Rename attualmente presente in Thunar permette di:" - -#: Thunar.xml1290(para) -msgid "Remove characters." -msgstr "rimuovere dei caratteri;" - -#: Thunar.xml1291(para) -msgid "Numbering files." -msgstr "numerare i file;" - -#: Thunar.xml1292(para) -msgid "Insert Date or Time." -msgstr "inserire data e ora;" - -#: Thunar.xml1293(para) -msgid "Insert or overwrite characters." -msgstr "inserire o sovrascrivere dei caratteri;" - -#: Thunar.xml1294(para) -msgid "Search and replace characters." -msgstr "cercare e sostituire dei caratteri;" - -#: Thunar.xml1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "convertire maiuscole in minuscole a cammello." - -#: Thunar.xml1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "Ulteriori programmi di Bulk Rename possono essere installati sotto forma di plugin per Thunar. Visitare il sito web dei plugin di Thunar per una lista delle estensioni disponibili. La Wiki del progetto Thunar contiene ulteriori informazioni sull'argomento; ognuno è libero di aggiungere nuove informazioni alla Wiki." - -#: Thunar.xml1308(title) -msgid "The UNIX File System" -msgstr "Il file system UNIX" - -#: Thunar.xml1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "Anche se il gestore di file Thunar esegue un ottimo lavoro nell'astrarre i dettagli del file system di base (in modo che l'utente non debba occuparsene), può comunque essere utile capire i concetti di base per avere il quadro completo della situazione. Questa sezione si prefigge di fornire una breve introduzione ai concetti del file system UNIX, che a tutt'oggi è utilizzato da tutte le incarnazioni di UNIX, incluso Linux." - -#: Thunar.xml1318(title) -msgid "Folders and Paths" -msgstr "Cartelle e percorsi" - -#: Thunar.xml1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "In un file system di tipo UNIX tutte le cartelle sono disposte con un semplice schema ad albero rovesciato discendente le cui ramificazioni si sviluppano a partire da un'unica cartella di livello principale denominata directory radice (il termine directory viene spesso utilizzato in luogo di cartella) e visualizzata come File System in Thunar. Ciò significa che" - -#: Thunar.xml1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "La posizione di un qualsiasi file o cartella nella struttura può essere descritta dal suo percorso. Il percorso rappresenta l'elenco di cartelle che è necessario attraversare per giungere alla destinazione (il file o la cartella) partendo dalla cartella di livello principale. Per esempio /casa/luca è la sotto cartella luca della sotto cartella casa della cartella di livello principale, e /home/luca/miofile.txt è il file miofile.txt in quella sotto cartella. Il simbolo iniziale / nei percorsi rappresenta la cartella di livello principale." - -#: Thunar.xml1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "Ad ogni utente è associata una cartella in cui vengono archiviati i file e le impostazioni personali. Questa cartella è denominata directory casa ed è visualizzata in Thunar come un'icona speciale con il nome di login dell'utente. La cartella è simile a quella My Files presente nei sistemi Windows. Le directory casa dei vari utenti di un sistema, sono generalmente posizionate nella cartella /home. Per esempio /home/luca sarà la directory «casa» dell'utente con nome di login luca, mentre /home/giovanna sarà la directory «casa» per l'utente con il nome di login giovanna." - -#: Thunar.xml1350(title) -msgid "File Types" -msgstr "Tipi di file" - -#: Thunar.xml1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "Sarà già capitato di sentir dire che tutto è un file in UNIX. Questo è vero per la maggior parte degli oggetti presenti nei sistemi UNIX odierni; infatti, anche i dispositivi sono rappresentati come file speciali. Anche se questo può sembrare insensato, rappresenta uno dei punti di forza di UNIX e dei suoi derivati, e ha permesso di mantenere negli anni un semplice nocciolo centrale mentre altri sistemi operativi hanno dovuto introdurre dei nuovi concetti per ogni nuova tecnologia." - -#: Thunar.xml1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "Questi sono i quattro tipi di file più importanti per i sistemi UNIX" - -#: Thunar.xml1364(title) -msgid "Ordinary Files" -msgstr "File ordinari" - -#: Thunar.xml1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "Un file ordinario può contenere del testo, un programma o altri dati. Appartengono a questa categoria le immagini, i file audio, i documenti e i video. Il termine file è spesso utilizzato per riferirsi a un file ordinario." - -#: Thunar.xml1373(title) -msgid "Folder Files" -msgstr "Cartelle" - -#: Thunar.xml1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "Le cartelle sono considerate come file nei sistemi UNIX. Per essere esatti una cartella è un particolare tipo di file che contiene una lista dei nomi dei file con i riferimenti ai file contenuti nella cartella stessa." - -#: Thunar.xml1382(title) -msgid "Symbolic Link Files" -msgstr "Collegamenti simbolici" - -#: Thunar.xml1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "Un collegamento simbolico (spesso chiamato symlink) è un particolare tipo di file che contiene un percorso a un altro file. I file dei collegamenti simbolici non contengono di per sé nessuna informazione utile, ma costituisco esclusivamente un riferimento ad altri file." - -#: Thunar.xml1392(title) -msgid "Device Files" -msgstr "Dispositivi e supporti" - -#: Thunar.xml1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "Come già detto in precedenza, la maggior parte dei dispositivi (o supporti) sono considerati dal sistema come file. Spesso vengono posizionati nella cartella /dev. Per esempio, il file /dev/hda rappresenta il primo disco IDE su Linux." - -#: Thunar.xml1406(title) -msgid "Frequently Asked Questions" -msgstr "Domande poste frequentemente (FAQ)" - -#: Thunar.xml1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "L'intento di questa sezione è di raccogliere le numerose domande poste frequentemente in relazione all'utilizzo di Thunar. Se una domanda mancasse da queste pagine, si prega di farlo presente con una richiesta." - -#: Thunar.xml1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Perché Thunar non esegue i file con l'attributo eseguibile?" - -#: Thunar.xml1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "Per ragioni di sicurezza Thunar esegue solamente i file del tipo applicazione/x-desktop, applicazione/x-eseguibile e applicazione/x-shellscript. Per i file della scrivania la caratteristica di eseguibile verrà abilitata solamente se il file è di tipo applicazione ed è fornita una linea valida Exec o di tipo Link ed è fornito un URL valido. Per gli altri tipi la caratteristica è disponibile se il file ha l'attributo di eseguibile per l'utente corrente." - -#: Thunar.xml1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "Si noti anche che per application/x-executable e application/x-shellscript, i tipi di file non devono corrispondere esattamente a questi tipi, ma è sufficiente se il tipo identificato ha un padre che corrisponde a uno dei due tipi elencati precedentemente, o se il tipo MIME è un alias per uno di essi." - -#: Thunar.xml1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Dove vengono salvati da Thunar i metadati associati ai file?" - -#: Thunar.xml1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "Thunar associa diverse impostazioni ai file e alle cartelle, che vengono chiamate metadati. Questi metadati sono salvati per tutti i file nel file di database tdb, chiamato anche metafile. Il file di database è salvato in $XDG_CACHE_HOME/Thunar/metafile.tdb e può essere esaminato utilizzando tdbtool, che è parte della distribuzione di Thunar (posizionato nella sotto cartella tdb/." - -#: Thunar.xml1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Dove vengono salvate le preferenze di Thunar?" - -#: Thunar.xml1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "Thunar salva le preferenze configurabili dall'utente (e le impostazioni nascoste) in un file di estensione .ini, posizionato in $XDG_CONFIG_HOME/Thunar/thunarrc, che può essere esaminato utilizzando un editor di testo. Consultare il file docs/README.thunarrc per una panoramica delle varie preferenze." - -#: Thunar.xml1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Come utilizzare le \"mouse gesture\" in Thunar?" - -#: Thunar.xml1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "Attualmente Thunar fornisce un supporto di base per le cosiddette mouse gesture nella visualizzazione a icone. È possibile utilizzare le mouse gesture tenendo premuto il tasto centrale del mouse (generalmente la rotella del mouse) mentre il puntatore è nell'area di sfondo del componente nella vista a icone (qualsiasi area non occupata da testo o icona). A questo punto è possibile spostare il cursore nelle quattro direzioni per eseguire determinate azioni descritte nel seguito." - -#: Thunar.xml1474(guilabel) -msgid "Left" -msgstr "Sinistra" - -#: Thunar.xml1474(member) -msgid " - opens the previous visited folder" -msgstr " - apre la cartella visitata precedentemente" - -#: Thunar.xml1475(guilabel) -msgid "Up" -msgstr "Su" - -#: Thunar.xml1475(member) -msgid " - opens the parent folder" -msgstr " - apre la cartella genitore" - -#: Thunar.xml1476(guilabel) -msgid "Right" -msgstr "Destra" - -#: Thunar.xml1476(member) -msgid " - opens the next visited folder" -msgstr " - apre la cartella visitata successivamente" - -#: Thunar.xml1477(guilabel) -msgid "Down" -msgstr "Giù" - -#: Thunar.xml1477(member) -msgid " - reloads the current folder" -msgstr " - aggiorna la cartella corrente" - -#: Thunar.xml1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "Come si possono assegnare scorciatoie da tastiera diverse?" - -#: Thunar.xml1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "Se si desidera riassegnare una scorciatoia, Thunar fornisce il supporto allo standard GTK+:" - -#: Thunar.xml1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "Per eliminare l'assegnazione di una scorciatoia, premere il tasto Backspace mentre si è posizionati sulla voce del menu." - -#: Thunar.xml1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "Se la scorciatoia non cambia, è necessario abilitare la funzione in GTK+. Questo può essere fatto in tre modi:" - -#: Thunar.xml1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "Se si utilizza Xfce 4.3 o successivi, è possibile abilitare l'opzione acceleratori dei menu modificabili nella finestra delle Preferenze dell'interfaccia utente." - -#: Thunar.xml1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "Se si utilizza GNOME, è possibile abilitare l'opzione acceleratori dei menu modificabili nella sezione Menu e barre strumenti della finestra del centro di controllo." - -#: Thunar.xml1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "Altrimenti, inserire la riga seguente nel file ~/.gtkrc-2.0: gtk-can-change-accels=1" - -#: Thunar.xml1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Dove vengono immagazzinate le scorciatoie da tastiera di Thunar?" - -#: Thunar.xml1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "La mappa delle scorciatoie da tastiera personalizzate sono salvate con il formato standard GTK+ accel map in un file posizionato in $XDG_CONFIG_HOME/Thunar/accels.scm. Le linee che iniziano con ; sono commenti, Consultare la documentazione di GTK+ per maggiori informazioni sul formato del file." - -#: Thunar.xml1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "Se si è un pacchettizzatore o un amministratore di sistema e si intende fornire un'impostazione predefinita, per l'intero sistema, delle scorciatoie da tastiera, diversa da quella predefinita di Thunar, si può creare un file Thunar/accels.scm in una delle $XDG_CONFIG_DIRS. Per esempio, se /etc/xdg è parte di $XDG_CONFIG_DIRS (come è il caso per la maggior parte delle distribuzioni Linux), è possibile installare le impostazioni predefinite per tutto il sistema in /etc/xdg/Thunar/accels.scm. Thunar caricherà le scorciatoie da questo file al primo avvio." - -#: Thunar.xml1549(title) -msgid "Support" -msgstr "Supporto" - -#: Thunar.xml1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "Per segnalare un bug o per avanzare una proposta relativa a questo programma o al manuale, utilizzare il sistema di tracciamento dei bug all'indirizzo ulink url=\"http://bugzilla.xfce.org/enter_bug.cgi?product=Thunar&format=guided\">http://bugzilla.xfce.org/. Si ricorda che è possibile correggere solamente i bug associati a una segnalazione esaustiva la quale deve avere due qualità:" - -#: Thunar.xml1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "Riproducibilità - se lo sviluppatore non è in grado di vedere personalmente il problema, molto probabilmente non sarà in grado di correggerlo. Ogni dettaglio che si è grado di fornire può essere utile." - -#: Thunar.xml1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "Specificità - più rapidamente lo sviluppatore è in grado di isolare il problema in un'area specifica, maggiore sarà la possibilità di correggerlo." - -#: Thunar.xml1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "Se si desidera richiedere una nuova caratteristica, occorre specificare il motivo per cui si ritiene necessaria. È più probabile che una nuova caratteristica venga implementata se si forniscono delle argomentazioni convincenti. Ancora meglio è se si fornisce una patch che implementa una determinata caratteristica, ma ci si assicuri di aver letto il file HACKING (in particolar modo la sezione titolata Coding Style) prima di iniziare a modificare il codice sorgente." - -#: Thunar.xml1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "Altrimenti, se si hanno delle domande relative all'utilizzo o all'installazione di questo programma, chiedere aiuto nella thunar-dev mailing list o sull'indirizzo IRC irc.freenode.net al canale #thunar." - -#: Thunar.xml1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "Informazioni su @PACKAGE_NAME@" - -#: Thunar.xml1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ è stato programmato da Benedikt Meurer (benny@xfce.org). Visitare il sito ufficiale di Thunarper maggiori informazioni." - -#: Thunar.xml1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "Questa documentazione è stat scritta da Benedikt Meurer (benny@xfce.org). L'ultima versione di questo documento è disponibile sul sito ufficiale di Thunar." - -#: Thunar.xml1605(para) -msgid "This software is distributed 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." -msgstr "Questo programma è distribuito nel rispetto dei termini della licenza GNU GPL (General Public License) come pubblicata dalla Free Software Foundation, sia questa la versione 2 o (a propria scelta) una qualsiasi versione successiva" - -#: Thunar.xml1611(para) -msgid "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." -msgstr "Con il programma dovrebbe essere stata anche fornita una copia della GNU General Public License; se così non fosse, scrivere alla: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml0(None) -msgid "translator-credits" -msgstr "Traduzione Italiana a opera di Cristian Marchi @ 2009" - -#~ msgid ".png" -#~ msgstr ".png" - -#~ msgid "%" -#~ msgstr "%" diff -Nru thunar-1.2.3/docs/manual/po/ja.po thunar-1.6.10/docs/manual/po/ja.po --- thunar-1.2.3/docs/manual/po/ja.po 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/ja.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1336 +0,0 @@ -# Japanese translations for Thunar package. -# Copyright (C) 2004-2006 Benedikt Meurer. -# This file is distributed under the same license as the Thunar package. -# Daichi Kawahata , 2006. -# -msgid "" -msgstr "" -"Project-Id-Version: Thunar 0.5.0rc2\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-01-06 17:45+0900\n" -"Last-Translator: Masato Hashimoto \n" -"Language-Team: Japanese \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" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Thunar ファイルマネージャ" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml:25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "フリーソフトウェア財団が公表する GNU フリー文書利用許諾契約書の第1.1版、あるいはそれ以降のいずれかの版の条件下において、この文書の複製、配布および/または変更が許可されます。変更出来ない箇所、表紙文および裏表紙文があってはいけません。この利用許諾契約書の全文はフリーソフトウェア財団から取得する事ができます。" - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "ソフトウェア開発者" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "システム開発" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "この説明書は @PACKAGE_NAME@ のバージョン @PACKAGE_VERSION@ について書かれています。" - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ の紹介" - -#: Thunar.xml:56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar は Xfce デスクトップ環境用に、素早く手軽に使えるようゼロから設計されている今風のファイルマネージャです。ユーザインターフェイスは簡潔かつ直観的です。紛らわしい、無駄なオプションは標準では一切組み込まれていません。起動時間も短く、フォルダの読み込みに対する反応も上々です。" - -#: Thunar.xml:62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "その結果としてではありますが、ファイルマネージャ Thunar はあなたのファイルやアプリケーションのための統合された一つのアクセス拠点を提供します。このファイルマネージャを使って以下の作業を行えます:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "フォルダおよび文書の作成" - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "ファイルおよびフォルダの表示" - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "ファイルおよびフォルダの管理" - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "カスタムアクションの実行および管理" - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "持ち運び可能なメディアへのアクセス" - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "ファイルマネージャウィンドウ" - -#: Thunar.xml:80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "デフォルトでは、ファイルマネージャウィンドウには左にショートカットペイン、右にメインエリア、そしてメインエリアの上にパスボタンが表示されています。" - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "ファイルマネージャウィンドウ" - -#: Thunar.xml:97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "ショートカットペイン にはシステム上のいろいろなフォルダへのショートカットが表示されます。先頭にあるのはあなたの ホームフォルダ へのショートカットで、このフォルダにはあなたの個人データのすべてが格納され、ユーザの名前になっています。2 番目ははゴミ箱へのショートカットで、削除されたファイルが格納されており、あとで復元することができます。3 番目は デスクトップフォルダ へのショートカットで、デスクトップに表示されるファイルやフォルダが格納されています。4 番目はファイルシステムのルートへのショートカットです − あなたが Linux/Unix にまだ慣れていないならあなたを少々混乱させるかもしれませんが、それでもこの中を少し探検してみたくなるかもしれません。ちょっとだけいろいろなフォルダをクリックして中に何が入っているのか見てみてください。" - -#: Thunar.xml:108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "ファイルシステム ショートカットの下にはリムーバブルドライブやメディアがあればそれが表示されます。上のスクリーンショットでは CD-ROM のショートカットが表示されています。リムーバブルドライブおよびメディアに格納されているデータへアクセスする場合はこれらのショートカットをクリックしてください。より詳しい情報については を参照してください。" - -#: Thunar.xml:115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "その他のショートカットはユーザ定義されたものです。ショートカットの追加はフォルダを ショートカットペイン へドラッグするだけで行えます。これであなたが大事なフォルダへ即座にアクセスできるようになります。すでに追加されているショートカットを削除する場合は、そのショートカット上で右クリックし、「ショートカットの削除」 を選択してください。すでに追加されているショートカットの名前の変更は、ショートカット上で右クリックし、「ショートカット名の変更」 を選択してください。これらの操作はショートカットにのみ適用され、ショートカットが参照している実際のフォルダには影響しないことを覚えておいてください。" - -#: Thunar.xml:123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "メインエリア には常にカレントフォルダの内容が表示されます。フォルダをダブルクリックするとその中へ移動し、ファイルやフォルダ上で右クリックするとそのアイテムに対して行える操作のコンテキストメニューが表示されます。複数のファイルを選択する場合はマウスでそれらをドラッグしてください。また、一つのファイルを選択し、Shift キーを押しながら矢印キーを押すと選択範囲を調整できます。" - -#: Thunar.xml:131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "パスボタン には常に現在表示されているフォルダへのパスが表示されます。パスボタンをクリックすることでそのフォルダへ移動できます。パスボタン上で右クリックするといくつかのオプションとコンテキストメニューが表示されます。" - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "外観のカスタマイズ" - -#: Thunar.xml:141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "ファイルマネージャの外観をカスタマイズする方法はたくさんあります。アイコン表示がお気に召さない場合には、メインメニューから 「表示」「詳細リスト表示」 を選択するとカレントフォルダの内容がリスト表示されます。" - -#: Thunar.xml:147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "ファイルマネージャウィンドウに表示されるパスボタンの代わりにロケーションバーを表示する場合は、メインメニューから 「表示」「位置セレクタ」「ツールバー方式」 を選択してください。" - -#: Thunar.xml:153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "左のペインはツリー表示がお好みなら、メインメニューから 「表示」「サイドペイン」「ツリー」 を選択してください。" - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "詳細リスト表示での表示カラム" - -#: Thunar.xml:162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "あなたがフォルダの内容をリスト表示するのがお好みで、「詳細リスト表示」 を使用している場合、リストに表示されるカラムをカスタマイズすることができます。表示するカラムのカスタマイズは、メインメニューから 「表示」「カラムの設定...」 を選択してください。" - -#: Thunar.xml:175(phrase) -#: Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "表示カラム" - -#: Thunar.xml:184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "表示可能なカラムのリストから表示したいカラムを選択してください。「上に移動」「下に移動」 をクリックするとカラムの表示順を変更できます。「デフォルトに戻す」 をクリックすると変更は取り消されます。" - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "カラムのサイズ変更" - -#: Thunar.xml:195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "「必要に応じてカラムを自動的に拡げる」 オプションを選択すると、カラムの幅は文字全体が表示されるように自動的に拡げられます。" - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "ファイルやフォルダの操作" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "ファイルを開く" - -#: Thunar.xml:214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "ファイルを開くとき、ファイルマネージャはファイルタイプに応じたデフォルトのアクションを実行します。例えば、テキストファイルを開くとデフォルトのテキストエディタが起動され、画像ファイルを開くとデフォルトの画像ビューアが起動されます。" - -#: Thunar.xml:220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "ファイルマネージャはファイルの拡張子をチェックしてファイルタイプを決定します。ファイルの拡張子が不明な場合、ファイルマネージャはファイルの内容を調べます。" - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "デフォルトアクションの実行" - -#: Thunar.xml:228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "ファイルのデフォルトアクションはファイルのダブルクリックで実行されます。例えば、オーディオファイルのデフォルトアクションはデフォルトの音楽再生アプリケーションで開くことです。この場合、ファイルをダブルクリックすると音楽プレイヤーでファイルを再生します。" - -#: Thunar.xml:234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "Thunar の設定でファイルのシングルクリックでデフォルトアクションを実行させることができます。詳しくは を参照してください。" - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "デフォルト以外のアクションの実行" - -#: Thunar.xml:243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "ファイルを選択してそのファイルに対するデフォルト以外のアクションを実行したい場合、「ファイル」 メニューまたはコンテキストメニューから選択することができます。" - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "アクションの追加" - -#: Thunar.xml:253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "ファイルタイプに関連付けるアクションを追加する場合、以下の手順で行います:" - -#: Thunar.xml:259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "メインエリアでアクションを追加したいタイプのファイルを選択します。" - -#: Thunar.xml:264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "メインメニューから 「ファイル」「他のアプリケーションで開く...」 を選択します。" - -#: Thunar.xml:270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "「アプリケーションで開く」 ダイアログからアプリケーションを選ぶか、または「指定コマンドを使用する」 を選択してこのタイプで開くプログラムを設定します。" - -#: Thunar.xml:277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "これで選択したアクションが指定されたファイルタイプ用アクションのリストに追加されました。「この種類のファイルのデフォルトアプリケーションにする」 を有効にするか、このタイプにまだ関連付けられているアクションが設定されていない場合は、新しく追加されたアクションがデフォルトになります。" - -#: Thunar.xml:283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "アクションの追加は 「ファイル」「プロパティ...」 で表示されるプロパティダイアログの 「これで開く」 ボタンでも行えます。" - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "アクションの修正" - -#: Thunar.xml:292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "ファイルまたはファイルタイプに関連付けられたアクションを修正する場合は、以下の手順で行います:" - -#: Thunar.xml:298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "メインエリアでアクションを修正したいタイプのファイルを選択します。" - -#: Thunar.xml:303(para) -#: Thunar.xml:383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "メインメニューから 「ファイル」「プロパティ...」 を選択します。" - -#: Thunar.xml:308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "デフォルトのアクションを修正する場合は 「これで開く」 ボタンを使用するか、またはメインメニューから 「ファイル」「他のアプリケーションで開く...」 を選択し、新しいアクションを追加します。" - -#: Thunar.xml:315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "すでに設定されているアクションを削除する場合は上で説明した 「アプリケーションで開く」 ダイアログを表示させ、削除したいアクションの上で右クリックし、「ランチャを削除」 を選択します。" - -#: Thunar.xml:324(title) -#: Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "ファイルのプロパティ" - -#: Thunar.xml:326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "ファイルのプロパティウィンドウでは、ファイルマネージャにおけるファイルまたはフォルダについての詳細情報が表示されます。このウィンドウでは以下のことも行えます:" - -#: Thunar.xml:333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "アプリケーションランチャや URL リンクのような特殊ファイルのアイコンの変更" - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "ファイルまたはフォルダへのシンボルの追加または除去" - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "ファイルやフォルダの UNIX ファイルアクセス権の変更" - -#: Thunar.xml:348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "同じタイプのファイルを開くときに使用するアプリケーションの選択" - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "ファイルのプロパティウィンドウを開く場合、以下の手順で行います:" - -#: Thunar.xml:372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "プロパティを調べたい、または変更したいファイルやフォルダを選択します。複数のアイテムを同時に選択してすべてのアイテムで共通なプロパティを表示させることは現在できません。" - -#: Thunar.xml:386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "選択したアイテムの上で右クリックし、コンテキストメニューから 「プロパティ...」 を選択します。" - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "AltReturn を押します。" - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "以下のいずれかを行います: " - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "リムーバブルメディアの使用" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "リムーバブルメディアへのアクセス" - -#: Thunar.xml:405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "Thunar は、HAL サポート付きでビルドしたか、FreeBSD で使用していればリムーバブルメディアをサポートしています。" - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "メディアのマウント" - -#: Thunar.xml:414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "メディアの マウント とは、メディアのファイルシステムを作成し、アクセスできるようにすることです。メディアをマウントしたとき、メディアのファイルシステムがファイルシステムのサブディレクトリにアタッチされます。" - -#: Thunar.xml:419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "メディアにアクセスする場合は、適切なデバイスにメディアを挿入するか、またはコンピュータに新しいデバイスを接続します (例: USB スティックを USB ポートに接続する)。すると、メディアを表すオブジェクトがファイルマネージャのサイドペインに追加されます。xfdesktop が動作しており、ファイル/ランチャアイコン を表示する設定にしてあれば、このオブジェクトはデスクトップにも表示されます。" - -#: Thunar.xml:426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "実際にメディアをマウントする場合は、メディアのオブジェクトをクリックします。例えば、フロッピーディスクをマウントする場合、サイドペインの フロッピードライブ オブジェクトをクリックします。ファイルマネージャはファイルシステムヒエラルキーにメディアのファイルシステムを追加し、メインエリアにフロッピーディスクの内容が表示されます。" - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "メディアの取り出し" - -#: Thunar.xml:436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "メディアのドライブが自動排出可能なデバイス (例: CD-ROM ドライブ) ならば、サイドペインまたはデスクトップに表示されているメディアのオブジェクトの上で右クリックし、「取り出し」 を選択します。数秒後にドライブからメディアが排出されます。メディアのドライブが自動排出しない場合 (例: フロッピードライブや USB スティック) はメディアのオブジェクトの上で右クリックし、「マウント解除」 を選択します。間もなく安全にメディアを取り出せる、またはドライブをコンピュータから取り外してよい旨の通知が表示されます。" - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "マウント解除通知" - -#: Thunar.xml:456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "ただし、この通知は libnotify サポートが有効になっている、かつ通知デーモンがインストールされている場合のみ表示されます。Xfce 用通知デーモンは Xfce Goodies Project から入手できます。通知サポートが無効になっている場合は、コンテキストメニューの表示が消えてからメディアを取り出すかドライブを取り外してください。" - -#: Thunar.xml:464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "一つ以上のアプリケーションがメディアを使用している間はメディアの取り出しやマウント解除は行えないことに注意してください。ファイルマネージャがメディアの取り出しを拒んだ場合は、メディアにアクセスしているアプリケーションが動作していないか、Terminal ウィンドウで動作しているものも含めて確認してください。" - -#: Thunar.xml:470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "必ずメディアを取り出す前にマウント解除を行うようにしてください。フロッピーディスクをマウント解除する前にフロッピードライブから取り出さないでください。USB スティックをマウント解除する前にフラッシュドライブから取り外さないでください。先にマウント解除しておかないと、データを失ったり、システムクラッシュを引き起こしたりするかもしれません。" - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "リムーバブルドライブとメディアの管理" - -#: Thunar.xml:481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "Thunar は thunar-volman パッケージがインストールされていればリムーバブルドライブとメディアの取扱いも自動で行えます。" - -#: Thunar.xml:487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "HAL サポートが有効で、かつ thunar-volman がインストールされていれば、Thunar の ボリューム管理 機能を有効にできます。ファイルマネージャの設定を開き、「詳細」 ページの 「ボリューム管理を有効にする」 ボタンにチェックマークをつけてください。" - -#: Thunar.xml:494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "次にリムーバブルドライブとメディアの取扱いを必要に応じてカスタマイズします。「ボリューム管理」 セクションのボタンの右下にある 「設定」 リンクをクリックしてください。「リムーバブルドライブとメディア」 設定ダイアログが表示されます。" - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "リムーバブルドライブとメディア" - -#: Thunar.xml:512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "あなたが以前に gnome-volume-manager を使用したことがあれば、すぐになじめるはずです。なぜならこの見た目と振る舞いは gnome-volume-manager に似せて設計されているからです。設定は、デバイスに対する目的のオプションの場所がわかりやすいようにデバイスのカテゴリごとに分けられています。" - -#: Thunar.xml:519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "「ストレージ」 ページには重要なオプションのほとんどが含まれています。この名前はここのオプションが、外付けハードディスクドライブ、USB スティック、あるいは CD-ROM のようなストレージデバイスにのみ適用されるものであることを意味しています。" - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "リムーバブルドライブがホットプラグされたらマウントする" - -#: Thunar.xml:529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "このオプションを有効にすると、リムーバブルドライブ (外付けハードディスクドライブや USB スティックなど) がコンピュータに接続されたら自動的にファイルシステムをマウントします。" - -#: Thunar.xml:533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "このオプションは、一部の機能をリムーバブルドライブに対して動作させる際に有効にする必要があります。例えば、このオプションを有効にしていないと、ある種の携帯音楽プレイヤーは検出されず、「マルチメディア」 ページの 「接続されたら音楽ファイルを再生する」 オプションを有効にしていても、携帯音楽プレイヤーがホットプラグされた際に指定されたコマンドは実行されません。" - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "リムーバブルメディアが挿入されたらマウントする" - -#: Thunar.xml:546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "このオプションを有効にすると、リムーバブルメディア (CD-ROM や DVD など) がドライブに挿入されると自動的にファイルシステムをマウントします。" - -#: Thunar.xml:550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "このオプションは、一部の機能をリムーバブルメディアに対して動作させる際に有効にする必要があります。例えば、このオプションを有効にしていないと、リムーバブルメディアが自動実行可能かどうか検出されず、「新しいドライブおよびメディア上のプログラムを自動実行する」 オプションはリムーバブルメディアに対して作用しません。" - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "リムーバブルメディアが挿入されたら参照する" - -#: Thunar.xml:562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "このオプションを有効にすると、新しく挿入されたメディアの内容が自動的にファイルマネージャに表示されます。ただし、他に実行できるアクションが存在しないか、あるいは他の実行できるアクションが無効にされている場合のみ内容が表示されることを覚えておいてください。" - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "新しいドライブおよびメディア上のプログラムを自動実行する" - -#: Thunar.xml:576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "このオプションを有効にすると、一部のドライブやメディアの自動実行機能が使用されるようになります。自動実行メカニズムの詳細については Desktop Application Autostart Specification を参照してください。セキュリティ強化のため、常に自動実行するかどうかの確認が行われます。" - -#: Thunar.xml:582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "Windows 互換レイヤ Wine がインストールされている場合、自動実行メカニズムは Wine を使用して autorun.exe ファイルも実行しようとします。" - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "新しいドライブおよびメディア上のファイルを自動的に開く" - -#: Thunar.xml:592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "このオプションを有効にすると、一部のリムーバブルドライブやメディアの自動オープン機能が使用されるようになります。自動オープンメカニズムについての詳細は Desktop Application Autostart Specification を参照してください。セキュリティ強化のため、常に自動的に開くかどうかの確認が行われます。" - -#: Thunar.xml:602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "残りのオプションはある種のメディアがドライブに挿入されたとき、またはある種の外付けデバイスが接続されたときに指定したコマンドを実行できるようにします。コマンドは 3 種類の特殊変数が使用でき、コマンド実行時にそれぞれ以下のように置き換えられます:" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml:612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "コマンドに %d が指定されていると、それぞれが新しく追加されたデバイスのデバイスファイルパスに置き換えられます。例えば、USB スティックが接続された場合、デバイスファイルパスは /dev/da0s1/dev/sda1 (ハードウェア構成により変わります) のようになります。" - -#: Thunar.xml:617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "デバイスに割り当てるデバイスファイルがなかったり、何らかの理由でデバイスファイルが見つけられなかった場合は、変数 %d は空の文字列に置き換えられます。" - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml:627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "コマンドに %h が指定されていると、それぞれ新しく追加されたデバイスの HAL UDI に置き換えられます。" - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml:637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "コマンドに %m が指定されていると、それぞれ新しく追加されたデバイスがマウントされたマウントポイントに置き換えられます。マウントできないデバイス (プリンタやキーボードなど) や自動マウントが無効になっている場合は %m は空の文字列に置き換えられます。" - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "ボリュームマネージャのトラブルシューティング" - -#: Thunar.xml:650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "ボリュームマネージャが期待通りに動作しない時のトラブル解決に役立つ Tips です。" - -#: Thunar.xml:656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "Thunar がデーモンモードで動作しているか確認してください。ボリュームマネージャは Thunar デーモンで動作していないと使用できません。デフォルトでは Xfce は起動時に Thunar を自動的にデーモンとして起動します。なんらかの理由でこれを kill していた場合は、プログラムの実行を開き (キーボードショートカットの AltF2 を使用するか、デスクトップ上で右クリックしデスクトップメニューから 「プログラムの実行...」 を選択します)、 Thunar --daemon と入力して 「実行」 をクリックします。" - -#: Thunar.xml:668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "デバイスをホットプラグまたはメディアを挿入したあとに thunar-volmanTerminal ウィンドウから実行してみてください。その場合まず lshalhal-device を使用して新しく追加したデバイスの HAL UDI を見つけ出さなければなりません。UDI が分かったら、Terminal ウィンドウで thunar-volman --device-added <udi-of-your-device> を実行し、出力されるエラーや警告メッセージを見てください。" - -#: Thunar.xml:678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "それでもうまく動作しない場合は、Xfce Forumthunar-dev mailing list で尋ねてみてください。" - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "ファイル管理の設定" - -#: Thunar.xml:691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "Thunar ファイルマネージャの初期設定は 「ファイルマネージャの設定」 ダイアログで行います。設定ダイアログは、メインメニューから 「編集」「設定...」 を選択するか、Xfce 設定マネージャの 「ファイルマネージャ」 ボタンをクリックすると表示されます。" - -#: Thunar.xml:697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "「ファイルマネージャの設定」 ダイアログは各オプションが以下の 4 つのカテゴリごとのページに分割されています。" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "表示に関するデフォルト設定" - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "サイドペインに関するデフォルト設定" - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "ファイルマネージャウィンドウの振る舞い" - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "ファイルマネージャの詳細機能" - -#: Thunar.xml:709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "Thunar には、ファイルマネージャのさまざまな拡張機能を制御する、いわゆる 隠しオプション もありますが、設定ダイアログをシンプルにしておくために選択項目に含まれていません。Thunar に同梱される README.thunarrc ファイルには、すべての利用可能なオプションの詳細な説明があります。" - -#: Thunar.xml:718(title) -#: Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "表示方法の設定" - -#: Thunar.xml:720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "デフォルトの表示、並び替えオプション、および表示オプションを設定できます。また、サムネイル表示がサポートされているファイルタイプについて、それを表示するかどうかの設定も行えます。" - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "新規フォルダの表示方法" - -#: Thunar.xml:742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "フォルダのデフォルトの表示方法を選択します。新しいウィンドウが開かれたとき、ここで設定された方法で表示されます。ここでは、アイコン表示、コンパクト表示、または詳細リスト表示の中から選べます。また、「最後に使用した表示方法」 を選択すると、最後にアクティブウィンドウで使用していた方法が採用されます。" - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "フォルダをファイルより先に並べる" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "このオプションを有効にすると、フォルダの内容を表示する際にフォルダをファイルより先に並べます。" - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "サムネイルを表示する" - -#: Thunar.xml:763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "このオプションを有効にすると、画像やその他サポートされているファイルのサムネイルを表示します。サムネイルファイルはユーザのホームディレクトリに作成される隠しディレクトリ .thumbnails に格納されます。" - -#: Thunar.xml:768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "Thunar が提供する基本サムネイル機能を拡張し、サポートするファイルタイプを追加したい場合は を参照してください。" - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "文字をアイコンの隣に置く" - -#: Thunar.xml:779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "このオプションを有効にすると、アイコン表示時にアイテムのアイコンのキャプションがアイコンの下ではなく、隣に表示されます。" - -#: Thunar.xml:790(title) -#: Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "サイドペインの設定" - -#: Thunar.xml:792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "ショートカットペインおよびツリーペインの表示オプションを設定できます。" - -#: Thunar.xml:808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "サイドペインにはファイルシステム上のフォルダへのショートカットのリストの表示 (デフォルト) か、またはファイルシステムをツリー表示できます。このページではショートカットおよびツリーペインのアイコンのサイズを選択できます。また、アイコンにシンボルを表示するかどうかも選択できます。" - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "アイコンのサイズ" - -#: Thunar.xml:819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "サイドペインに表示するアイコンのサイズを、「とても小さい」 (16×16ピクセル) から 「とても大きい」 (128×128ピクセル) の間で選択します。" - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "アイコンのシンボルを表示する" - -#: Thunar.xml:829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "このオプションを有効にすると、サイドペインのフォルダにシンボルを表示します。フォルダのシンボルはフォルダの 「プロパティ」 ダイアログで設定できます。メインエリアでフォルダを選択し、メインメニューから 「ファイル」「プロパティ...」 を選択するか、またはフォルダの上で右クリックし、コンテキストメニューから 「プロパティ...」 を選択してください。" - -#: Thunar.xml:843(title) -#: Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "振る舞いの設定" - -#: Thunar.xml:845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "ファイルマネージャの振る舞いを設定できます。" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "シングルクリックでアイテムをアクティブにする" - -#: Thunar.xml:865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "このオプションを有効にすると、アイテムをクリックしただけでデフォルトのアクションが実行されます。このオプションを有効にし、アイテムの上にマウスポインタを移動させると、アイテムのタイトルに下線が表示され、少し遅れて自動的に選択状態になります。" - -#: Thunar.xml:871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "この選択状態になるまでの時間はその下のオプションで設定でき、セレクタを一番左に位置するとアイテムの自動選択は行われません。" - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "ダブルクリックでアイテムをアクティブにする" - -#: Thunar.xml:882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "このオプションを有効にすると、アイテムをダブルクリックしたときにデフォルトのアクションが実行され、シングルクリックで選択状態になります。" - -#: Thunar.xml:893(title) -#: Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "詳細の設定" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "ファイルマネージャの詳細な機能の設定を行えます。" - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "フォルダのアクセス権" - -#: Thunar.xml:915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "フォルダの 「プロパティ」 ダイアログでアクセス権を変更したときの動作を選択します。フォルダのアクセス権が変更されたときに Thunar が毎回問い合わせるか、デフォルトで新しいアクセス権をフォルダのみに適用するか、さらにフォルダ内のアイテムにまで再帰的に適用するかを選択します。" - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "ボリューム管理" - -#: Thunar.xml:927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "Thunar を HAL サポート付きでインストールし、かつ thunar-volman パッケージもインストールされている場合に統合ボリュームマネージャを有効にできます。この機能の詳細については、 を参照してください。" - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "Thunar のカスタマイズ" - -#: Thunar.xml:942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "この章では、ファイルマネージャの一部を必要に応じてカスタマイズする方法を説明します。" - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "「送る」メニュー" - -#: Thunar.xml:950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "Thunar には 「送る」 メニューが用意されており、ファイルやフォルダの送り先を選択できます。「送る」 メニューへのアクセスは、メインメニューから 「ファイル」「送る」 を選択するか、またはファイルやフォルダの上で右クリックし、コンテキストメニューから 「送る」 を選択します。" - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "「送る」メニュー" - -#: Thunar.xml:969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "デフォルトでは、「送る」 メニューには、すべてのファイルおよびフォルダの選択時に 「デスクトップ (リンクを作成)」 という名前のエントリが表示され、これを選ぶと選択された各アイテムのリンクをデスクトップに作成します。また、「ショートカットペイン」 が有効になっていれば、フォルダ選択時のメニューには 「サイドペイン (ショートカットを作成)」 という名前のエントリが表示され、これを選ぶとサイドペインに新しくショートカットを追加します。これらエントリの次に、Thunar はコンピュータにリムーバブルドライブが接続されていればそれらのエントリを表示します。上のスクリーンショットではファイルの送り先として 「フロッピードライブ」 が表示されています。「送る」 メニューからデバイスを一度選択すれば、そのデバイスは自動的にマウントされるため、手動でマウントする必要がないこと覚えておいてください。" - -# 'Kib' seems to mean KiByte not Kibit. -#: Thunar.xml:979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "さらに、Thunarthunar-sendto-email プラグインを同梱しており、「メール (添付ファイル)」 エントリも追加されています。これは選択されたファイルを添付ファイルとしてメール送信できるようにします。選択されたアイテムの中にフォルダが一つでも含まれていれば、選択されたアイテムはメールに添付される前に ZIP 形式でアーカイブされます。他に、複数のファイルを選択した場合、あるいは 200KiB を超えるサイズのファイルを選択した場合には、ファイルを ZIP 形式でアーカイブするかどうかの確認が行われます。" - -#: Thunar.xml:987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "Thunar「送る」 メニューを拡張し、新しいターゲット用のエントリを利用者またはアプリケーション開発者が追加する場合は、標準デスクトップエントリファイル を使用することで容易に行えます。これらのファイルは $XDG_DATA_DIRS/Thunar/sendto/ フォルダに格納されなければなりません (環境変数 $XDG_DATA_DIRS に関する詳細は、XDG Base Directory Specification を参照してください)。" - -#: Thunar.xml:996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "ターゲットの .desktop ファイルの MimeType には、「送る」 メニューにそのエントリが表示されるファイルのタイプを指定します。例えば、Flickr のアップロードツールのエントリを追加する場合、このエントリは JPEG (または Frickr がサポートするファイル形式の) ファイルが選択されたときにのみ表示されるべきであり、MimeType=image/jpeg; の指定を追加するべきです。MimeType を指定しなかった場合にはエントリはすべてのファイルタイプで表示されます。" - -#: Thunar.xml:1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "アプリケーション postr を使用した完全な例を以下に示します:" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml:1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "このファイルを ~/.local/share/Thunar/sendto/ (なかったら作成してください) にインストールすると、JPEG ファイルの「送る」メニューに新しいエントリ 「Flickr」 が表示され、これを使って JPEG 画像を Frickr へアップロードできるようになるはずです。" - -#: Thunar.xml:1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "Thunar Project Wiki には、「送る」メニューで使えるエントリの実用例が登録されています。Wiki ページにあなたの新しい例をお気軽に追加してみてください。" - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "サムネイラ" - -#: Thunar.xml:1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "Thunar はいくつかのファイルタイプのファイルの内容のプレビューとしてサムネイル表示するために、サムネイルを作成する小さなユーティリティを使用します。これら小さなツールはサムネイラと呼ばれます。Thunar はイメージとフォントファイルのサムネイラを同梱しており、gconf をサポートする GNOME のサムネイラがインストールされていれば、それを自動的に使用します。しかし、このサムネイラの基本機能に加え、他のファイルタイプのサムネイラを動的に拡張したいときがあるかもしれません。" - -#: Thunar.xml:1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "あなたがカスタムサムネイラを作成する場合、少なくとも2つのコマンドラインパラメータに対応したプログラムにする必要があります。一つは入力ファイルにサポートしたいファイルタイプに対応していること、もう一つは出力ファイルに Thumbnail Management Standard で指定されたフォーマットに準拠した PNG ファイルに対応していることです。また、必須ではありませんが、あなたのプログラムはサムネイルのサイズ要求に対応していることも強く推奨されます。あなたの作成したプログラムが勝手な画像サイズでファイルを出力した場合、Thunar は後でそれを要求されるサイズに変更しますが、それは最適なサイズでサムネイルを生成した場合に比べ適切な結果を生み出すとは限りません。" - -#: Thunar.xml:1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "あなたのサムネイルを生成するユーティリティができあがったら、Thunar がそれを認識して使用できるように登録する必要があります。そのためには、あなたは $XDG_DATA_DIRS/thumbnailers/ パスのいずれかにサムネイラの説明ファイル (.desktop ファイル) をインストールしなければなりません。例えば、そのサムネイラをあなたのユーザアカウントだけで使用したい場合には、.desktop ファイルを ~/.local/share/thumbnailers/ にインストールします。サムネイラの .desktop ファイルは、以下のフォーマットになります。" - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "サムネイラ説明ファイルのフォーマット" - -#: Thunar.xml:1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "サムネイラ説明ファイルは Desktop Entry Format で規定された形式で、Type に特殊なタイプ X-Thumbnailer を指定し、特殊なフィールド X-Thumbnailer-Exec に新しいコードを指定します。" - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" - -#: Thunar.xml:1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr " Version および Encoding はデスクトップエントリ仕様によって決まります。上の例の値をそのまま使用してください。Type フィールドは特殊な値 X-Thumbnailer でなければならず、他の値ではとサムネイラとして認識されません。Name フィールドにはあなたのサムネイラの説明を記述してください。" - -#: Thunar.xml:1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "X-Thumbnailer-Exec フィールドにはあなたのサムネイラのコマンドを指定します。ここではサムネイラ実行時に置き換えられるいくつかのフィールドコードをサポートしています。認識するフィールドコードを以下に示します:" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml:1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "サムネイルを作成する入力ファイルのローカルパスです。サムネイラを起動したディレクトリからの相対パスか、絶対パスになります。" - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml:1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "生成されたサムネイルが出力されるファイルのローカルパスです。出力ファイルはサムネイル標準 (上記参照) に準拠した有効な PNG ファイルでなければなりません。一部のサードパーティツールを呼び出す場合、パスは .png で終わらないかもしれないことを覚えておいてください。" - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml:1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "要求される生成するサムネイルのサイズ (ピクセル) です。このパラメタは任意です。" - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml:1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "%i と似ていますが、ファイルのパスではなく URI に置き換えられます。これは GNOME との互換性のために追加されました。" - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "一文字の % に置き換えられます。" - -#: Thunar.xml:1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "パラメータには、少なくとも %o と、%i または %u が指定されなければなりません。指定されない場合サムネイラは正しく動作しません。" - -#: Thunar.xml:1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "MimeType にはサムネイラがプレビューを生成できる MIME タイプを、セミコロンで区切って指定します。" - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "EPS サムネイラの例" - -#: Thunar.xml:1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "ここでは、ImageMagick の一部として提供される convert ユーティリティを使用した、.eps ファイル用サムネイラの作成からインストールまでの例を紹介します。最初に、サムネイルを要求されたサイズで生成するための、convert を呼び出す簡単なスクリプトを作成します。" - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml:1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "このスクリプトを eps-thumbnailer という名前で保存し、実行許可を設定して、/usr/local/bin にインストールします。" - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml:1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "次に、以下のようなサムネイル説明ファイル eps-thumbnailer.desktop を作成します。" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml:1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "このファイルは /usr/local/share/thumbnailers にインストールされなければなりません (なかったら作成してください)。" - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml:1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "eps-thumbnailer.desktop ファイルに特殊キー TryExec が指定されていればそれを参照します。TryExec には、サムネイラが動作するためにシステム上に存在しなければならないコマンドを設定します。この例の場合、このスクリプトは convert ユーティリティが存在しないと起動されません。" - -#: Thunar.xml:1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "最後に、サムネイラキャッシュを再生成し、Thunar にこのサムネイラを認識させます。サムネイラキャッシュは $XDG_CACHE_HOME/Thunar/thumbnailers.cache にあります (あなた、またはあなたのシステム管理者が変更していなければ、$XDG_CACHE_HOME~/.cache/ フォルダを指しています)。サムネイラキャッシュは Thunar によって定期的に再作成されますが、Thunar に同梱されている thunar-vfs-update-thumbnailers-cache-1 ユーティリティを使用して強制的に再作成させることができます。このユーティリティは通常あなたのインストレーションプレフィックスのサブフォルダ libexec にインストールされています (Debian/Ubuntu の場合は /usr/lib/thunar) 。従って、例えば Thunar がプレフィックス指定 /usr でインストールされていた場合のこのユーティリティの起動は以下のようになります:" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml:1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "ただし、サムネイラキャッシュはシステム全体での場所ではなく、あなたのホームフォルダに格納されるため、このプログラムをスーパーユーザではなく、あなたのユーザアカウントで実行することを忘れないでください。" - -#: Thunar.xml:1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "これで Thunar は変更されたファイルモニタリングサポート (FAM または Gamin を使用します) 付きでコンパイルされ、数秒後には新しいサムネイラキャッシュが自動的にピックアップされ、その後はあなたのカスタムサムネイラを使用してサムネイルの生成ができるようになります。もしそれが行われなければ、起動中のすべての Thunar インスタンスを以下のコマンドで終了させてください。" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml:1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "その後 Thunar を起動し直してください。" - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "サムネイルのクリーンアップ" - -#: Thunar.xml:1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "生成されたサムネイルは Thumbnail Management Standard に準拠して ~/.thumbnails/ フォルダに格納されています。新しいサムネイラをテストしているうちにサムネイラキャッシュを掃除したくなった場合は、以下のようにキャッシュフォルダを削除してください。" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml:1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "これであなたのホームフォルダに多少の空きスペースができます。このフォルダに格納されていたすべての情報はあなたのファイルシステムにあるファイルから自動的に再作成され、必要なデータが失われることはありません。" - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "高度な話題" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "複数ファイル名の一括変更" - -#: Thunar.xml:1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "バルクリネーム ではいくつかの基準を使用して複数のファイルの名前を一度に変更できます。Thunar にはバルクリネームが同梱されており、コマンド Thunar -B を入力するか、または Thunar のメインエリア上で複数のファイルを選択し F2 キーを押すか、メインメニューから 「編集」「名前の変更...」 を選択すると起動されます。" - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "複数ファイル名の一括変更" - -#: Thunar.xml:1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "バルクリネーム はファイル名、ファイルの拡張子、またはその両方を変更できます。Thunar は現在以下の 一括変更 をサポートしています:" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "文字の除去" - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "ファイルの番号付け" - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "日付または時刻の挿入" - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "文字の挿入または上書き" - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "文字の検索と置き換え" - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "大文字、小文字、または先頭のみ大文字への変換" - -#: Thunar.xml:1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "Thunar プラグインには、バルクリネーム の機能を拡張するものもあります。Thunar Plugins ウェブサイトを訪れて、現在利用可能なエクステンションをチェックしてください。" - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "UNIX ファイルシステム" - -#: Thunar.xml:1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "ファイルマネージャ Thunar は、基本的なファイルシステムの抽象的な些事を何の問題も無くこなしますので、利用者はこれらを気にする必要はありません。とは言いながら、全体像を掴むために基本概念を理解しておくと後々役立つ場合があります。この章では、UNIX ファイルシステムの概念を手短に紹介します。これは、今日における Linux を含むあらゆる UNIX の派生 OS で用いられています。" - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "フォルダとパス" - -#: Thunar.xml:1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "UNIX ファイルシステムでは、すべてのファルダは一つの最上位フォルダから下へ向かって枝分かれしながら配置されていきます。逆さになった樹木の構造を想像してみてください。この最上位にあるフォルダはルートディレクトリ (ディレクトリ という用語は フォルダ の代わりによく使われます) と呼ばれ、Thunar では ファイルシステム として表示されます。つまり、ある地点に到達するまでフォルダからフォルダへとこの木構造を登って行き、その後に目標とする場所に着くまでサブフォルダを下って行くのです。" - -#: Thunar.xml:1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "この木構造でのファイルやフォルダの位置はその パス で記すことができます。このパスというのは、目標とするフォルダやファイルにたどり着くために通過していかなければいけないフォルダのリストで、最上部のフォルダから始まります。例えば、/home/luke は最上部フォルダのサブフォルダ home のサブフォルダ luke になります。/home/luke/myfile.txt はそのサブフォルダにある myfile.txt というファイルです。これらのパスの先頭にある / は最上部フォルダを表します。" - -#: Thunar.xml:1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "すべての利用者が個人用のファイルや設定を保管するための個別のフォルダを持ちます。このフォルダは ホームディレクトリ と呼ばれ、Thunar では利用者のログイン名と共に特別なアイコンで表示されます。Windows で知られる マイファイル と似ています。それぞれの利用者の ホームディレクトリ は通常 /home の下にあります。例として上げると、ログイン名 luke のホームディレクトリは /home/luke になり、/home/jane はログイン名が jane のホームディレクトリになります。" - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "ファイルの種類" - -#: Thunar.xml:1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "もう御存知かもしれませんが、UNIX ではあらゆるものがファイルとして取り扱われます。UNIX システムを構成するほぼすべての物体がそういう風に取り扱われると考えて差し支えありません。事実、各種装置や周辺機器も特殊ファイルとして表されます。一見意味の無いように思われるかもしれませんが、これは UNIX やその派生 OS の強味の一つです。UNIX はシンプルなコアを何年にもわたって保守するだけでよいのに対して、他のオペレーティングシステムは新しいテクノロジーが紹介される度に、新しい概念を導入しなければなりませんでした。" - -#: Thunar.xml:1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "UNIX ファイルシステムにおけるファイルの種類には、4 つの重要なものがあります。" - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "普通のファイル" - -#: Thunar.xml:1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "普通のファイルは文字データを含んでいたり、プログラムまたは他のデータであったりします。ここには画像ファイル、オーディオファイル、オフィス文書および動画ファイルも入ります。ファイル という用語がこれら普通のファイルを指すのによく使用されます。" - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "フォルダファイル" - -#: Thunar.xml:1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "UNIX ファイルシステムではフォルダもファイルです。正確に言えばフォルダは特殊ファイルになります、このフォルダ内にあるすべてのファイルを参照するためのファイル名のマップが含まれています。" - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "シンボリックリンクファイル" - -#: Thunar.xml:1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "シンボリックリンク (よく リンク と呼ばれます) はファイルシステムで、他のファイルへのパスを含む特殊ファイルです。従ってシンボリックファイル自身は特に意味のある情報を持ちません、単に他のファイルを参照するだけです。" - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "デバイスファイル" - -#: Thunar.xml:1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "始めの方で述べたように (ほとんどの) デバイスもファイルシステム経由でアクセスされます。これら特殊デバイスファイルは通常 /dev フォルダにあります。例えば、特殊ファイル /dev/hda は Linux 上での一番目の IDE ディスクを表します。" - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "よくある質問" - -#: Thunar.xml:1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "この章では @PACKAGE_NAME@ を使用するにあたって、かなりの頻度で尋ねられる質問に回答します。このページにない質問があるのでしたら、要望 を出して下さるようお願いします。" - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "実行可能になっているファイルを実行しないのはなぜですか?" - -#: Thunar.xml:1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "セキュリティ上の理由から、Thunar は種類が application/x-desktop, application/x-executable および application/x-shellscript のファイルのみを実行します。デスクトップファイルに対しては、種類が Application かつ適正な Exec 行が指定されているか、あるいは種類が Link かつ適正な URL が指定されている場合に限って実行機能が有効になります。その他に対しては、当該ファイルが現在の利用者にとって実行可能なようにマークされている場合に利用できます。" - -#: Thunar.xml:1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "application/x-executable および application/x-shellscript に関しては次のことを覚えておいてください、この種類のファイルは実際にはこの種類に正確に一致する必要がありません、しかし、チェックされた種類に上記二つの種類に該当する親があるなら、あるいは MIME タイプが上にあるものの内の一つへの別名ならば、それで事足ります。" - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "ファイルに関連付けられているメタデータは何処に保存されていますか?" - -#: Thunar.xml:1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "Thunar はファイルやフォルダに様々な設定事項を関連付けます。これらはメタデータと呼ばれ、全ファイルのメタデータは (メタファイルと呼ばれる) tdb データベース・ファイルに保管されます。このデータベースファイルは $XDG_CACHE_HOME/Thunar/metafile.tdb に保存されていて、tdbtool を使うことで変更できます。このツールは配布される Thunar パッケージの一部として、サブディレクトリ tdb/ にあります。" - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Thunar の環境設定が保存されているのは何処ですか?" - -#: Thunar.xml:1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "Thunar は .ini ファイルに利用者が変更可能な環境設定 (および隠し設定) を格納します。このファイルは $XDG_CONFIG_HOME/Thunar/thunarrc にあり、テキストエディタを使って色々な設定を実験してみることができます。各環境設定の概要は docs/README.thunarrc にあります。" - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Thunar でマウスジェスチャを使うには?" - -#: Thunar.xml:1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "現在、Thunar はアイコン表示およびコンパクト表示で、いわゆる マウスジェスチャ と呼ばれる機能を簡単ですがサポートしています。マウスポインタがアイコン表示コンポーネントの背景となる場所 (アイコンや文字が無い所ならどこでも該当します) にあるとき、マウスの中央ボタン (通常はマウスホイール) を押しっ放しにすることで、マウスジェスチャ 機能を使用できます。その状態でカーソルを四方に動かすと以下の動作が実行されます。" - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "左" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr " - 前のフォルダを開きます" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "上" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr " - 上位のフォルダを開きます" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "右" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr " - 次のフォルダを開きます" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "下" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr " - 現在のフォルダをリロードします" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "どのようにすれば異なるキーボードショートカットを割り当てられますか?" - -#: Thunar.xml:1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "Thunar は GTK+ 標準のショートカット変更手順をサポートしています。ショートカットの割り当ての変更は、マウスポインタが該当するメニューの上にある状態で、割り当てたいキーボードショートカットを押すことで行えます。" - -#: Thunar.xml:1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "割り当てられているショートカットを削除するには、該当するメニュー項目上で バックスペース を押してください。" - -#: Thunar.xml:1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "ショートカットが変更されない場合、GTK+ の本機能を有効にする必要があります。これには 3 つのやり方があります:" - -#: Thunar.xml:1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "Xfce 4.3 かそれより新しいものであれば、「外観」の設定ダイアログで 「メニューのショートカットを変更可能にする」 を有効にしてください。" - -#: Thunar.xml:1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "GNOME を使用しているのでしたら、コントロール・センターの 「メニューとツールバー」 ダイアログで 「メニューのアクセラレータを編集可能にする」 を有効にしてください。" - -#: Thunar.xml:1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "それ以外であれば、ファイル ~/.gtkrc-2.0 (なかったら作成してください) に gtk-can-change-accels=1 という一行を記述します。" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "ショートカットは何処に保存されるのですか?" - -#: Thunar.xml:1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "個人で変更したキーボードショートカットは GTK+ 標準のアクセラレータマップ形式で保存され、$XDG_CONFIG_HOME/Thunar/accels.scm に置かれます。; で始まる行はコメントです。このファイル形式についての詳細は GTK+ の文書を参照してください。" - -#: Thunar.xml:1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "あなたがパッケージ作成者かシステム管理者で、Thunar の標準ショートカットとは異なる、システム全体の標準キーボードショートカットを設定したいのでしたら、$XDG_CONFIG_DIRS のどれか一つに Thunar/accels.scm を作ることができます。例えば、/etc/xdg (大抵の Linux ディストリビューションの標準) が $XDG_CONFIG_DIRS の一つになっているとすると、/etc/xdg/Thunar/accels.scm にシステム全体に適用される標準を設定することができます。こうすることで、Thunar は初回起動時にこのファイルからショートカットを読み込むようになります。" - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "サポート" - -#: Thunar.xml:1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "このアプリケーションあるいは説明書に関するバグを報告したり何か提案をする場合は、http://bugzilla.xfce.org/ にあるバグ追跡システムを御利用ください。意味のあるバグ報告こそがバグを修正するのだという事を忘れないでください。ではどういったものが該当するかというと、2 つの特質があります:" - -#: Thunar.xml:1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "再現可能であること。開発者自身がバグの存在を確認することができない場合は、それを修正するのはほぼ不可能になります。どんな細かいことでも役立ちますので、詳細を余さず伝えてください。" - -#: Thunar.xml:1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "具体的であること。開発者が問題箇所の特定をより早く絞れる程、その修正措置を取りやすくなります。" - -#: Thunar.xml:1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "新機能の追加を要望する場合、なぜそれがアプリケーションにとって有意義だと考えるのか明らかにして下さるようお願いします。その機能について納得のいく議論を行えるのでしたら、追加される可能性は高くなります。要求する機能を実装したパッチを提供して下さるなら更に高くなりますが、事前にファイル HACKING を忘れずに読んでください。特に Coding Style と題されている箇所に目を通すようにしてください。" - -#: Thunar.xml:1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "それ以外、利用方法やこのソフトウェアのインストールに関する質問がある場合は、thunar-dev メーリングリスト で質問するか、IRC クライアントで irc.freenode.net のチャンネル #thunar に参加して手助けを求めてみてください。" - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ について" - -#: Thunar.xml:1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ は Benedikt Meurer (benny@xfce.org) が製作しました。より詳しい情報は Thunar のウェブサイトを参照してください。" - -#: Thunar.xml:1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "Benedikt Meurer (benny@xfce.org) がこの文書を製作しました。最新版は Thunar のウェブサイトにあります。" - -#: Thunar.xml:1605(para) -msgid "This software is distributed 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." -msgstr "このソフトウェアはフリーソフトウェア財団が公表する GNU 一般公衆利用許諾契約書の条件下に配布されています。第2版あるいは、あなたが選ぶそれ以降の版のいずれかが適用されます。" - -#: Thunar.xml:1611(para) -msgid "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." -msgstr "このプログラムには、GNU 一般公衆利用許諾契約書のコピーが附属するはずですが、もし無いのであればフリーソフトウェア財団に連絡してください。59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "" -"Daichi Kawahata , 2006.\n" -"Masato Hashimoto , 2009, 2010." - -#~ msgid ".png" -#~ msgstr ".png" -#~ msgid "%" -#~ msgstr "%" - diff -Nru thunar-1.2.3/docs/manual/po/Makefile.am thunar-1.6.10/docs/manual/po/Makefile.am --- thunar-1.2.3/docs/manual/po/Makefile.am 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - -PO_FILES=$(shell cd $(srcdir) && echo `/bin/ls *.po`) -EXTRA_DIST = \ - $(PO_FILES) \ - $(GETTEXT_PACKAGE).pot - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/docs/manual/po/Makefile.in thunar-1.6.10/docs/manual/po/Makefile.in --- thunar-1.2.3/docs/manual/po/Makefile.in 2011-09-20 20:28:12.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,491 +0,0 @@ -# Makefile.in generated by automake 1.11.1 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@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = docs/manual/po -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_CFLAGS = @DBUS_CFLAGS@ -DBUS_LIBS = @DBUS_LIBS@ -DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ -DBUS_VERSION = @DBUS_VERSION@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXIF_CFLAGS = @EXIF_CFLAGS@ -EXIF_LIBS = @EXIF_LIBS@ -EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ -EXIF_VERSION = @EXIF_VERSION@ -EXO_CFLAGS = @EXO_CFLAGS@ -EXO_LIBS = @EXO_LIBS@ -EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ -EXO_VERSION = @EXO_VERSION@ -FGREP = @FGREP@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ -GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO_CFLAGS = @GIO_CFLAGS@ -GIO_LIBS = @GIO_LIBS@ -GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ -GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ -GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ -GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ -GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ -GIO_VERSION = @GIO_VERSION@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ -GTHREAD_LIBS = @GTHREAD_LIBS@ -GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ -GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ -GTK_VERSION = @GTK_VERSION@ -GUDEV_CFLAGS = @GUDEV_CFLAGS@ -GUDEV_LIBS = @GUDEV_LIBS@ -GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ -GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_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@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ -LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ -LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ -LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSM_CFLAGS = @LIBSM_CFLAGS@ -LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ -LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ -LIBTOOL = @LIBTOOL@ -LIBX11_CFLAGS = @LIBX11_CFLAGS@ -LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ -LIBX11_LIBS = @LIBX11_LIBS@ -LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ -LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ -LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ -LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ -LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ -LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ -LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ -LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ -LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ -LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ -LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ -LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ -PCRE_VERSION = @PCRE_VERSION@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ -PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ -PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ -THUNARX_VERINFO = @THUNARX_VERINFO@ -THUNARX_VERSION_API = @THUNARX_VERSION_API@ -THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ -THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ -THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_ARGS = @XGETTEXT_ARGS@ -XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -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 = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xfconf_query_found = @xfconf_query_found@ -PO_FILES = $(shell cd $(srcdir) && echo `/bin/ls *.po`) -EXTRA_DIST = \ - $(PO_FILES) \ - $(GETTEXT_PACKAGE).pot - -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 docs/manual/po/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/manual/po/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 -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -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) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool 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-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 mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am - - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: - -# 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 thunar-1.2.3/docs/manual/po/nl.po thunar-1.6.10/docs/manual/po/nl.po --- thunar-1.2.3/docs/manual/po/nl.po 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/nl.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1953 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Thunar 0.8.1svn-r25425\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2007-04-07 16:06+0200\n" -"Last-Translator: Maximilian Schleiss \n" -"Language-Team: Dutch \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" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "" - -#: Thunar.xml:25(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License, Version 1.1 or any later " -"version published by the Free Software Foundation; with no Invariant " -"Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The " -"complete license text is available from the Free Software Foundation." -msgstr "" - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "" - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "" - -#: Thunar.xml:56(para) -msgid "" -"Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar " -"has been designed from the ground up to be fast and easy-to-use. Its user " -"interface is clean and intuitive, and does not include any confusing or " -"useless options by default. Thunar is fast and responsive with a good start " -"up time and folder load time." -msgstr "" - -#: Thunar.xml:62(para) -msgid "" -"The Thunar file manager thereby provides an integrated access point to your " -"files and applications. You can use the file manager to do the following:" -msgstr "" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "" - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "" - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "" - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "" - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "" - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "" - -#: Thunar.xml:80(para) -msgid "" -"By default the file manager window consists of a shortcut pane on the left " -"side, the main area on the right and a pathbar above the main area." -msgstr "" - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "" - -#: Thunar.xml:97(para) -msgid "" -"The Shortcut Pane provides shortcuts to different " -"folders on your system. The first shortcut will lead to your Home " -"Folder, the folder you store all your personal data, and will " -"therefore have the name of the current user. The second shortcut will take " -"you to the trash bin, which stores deleted files that can be recovered " -"later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the " -"desktop. The fourth shortcut will take you to the root of your file system - " -"you may want to explore it a bit, even though it may be confusing to you if " -"you are new to Linux/Unix. Just click on the different folders and see what " -"is inside." -msgstr "" - -#: Thunar.xml:108(para) -msgid "" -"Below the File System shortcut, the removable drives " -"and media will be displayed. In the screenshot above, you can see a " -"Floppy Drive shortcut. Click on these shortcuts to " -"access the data stored on the removable drives and media. See for further details." -msgstr "" - -#: Thunar.xml:115(para) -msgid "" -"The remaining shortcuts are user defined. Add your own shortcuts by simply " -"dragging folders to the Shortcuts Pane. This will allow " -"you to access important folders instantly. To remove a previously added " -"shortcut, right-click on the shortcut and choose Remove " -"Shortcut. To rename a previously added shortcut, right-click " -"on the shortcut and choose Rename Shortcut. Note " -"that these actions affect only the shortcut, not the folder referenced by " -"the shortcuts." -msgstr "" - -#: Thunar.xml:123(para) -msgid "" -"The main area will always display the contents of the " -"current folder. Double click on folders to enter them, and right-click on " -"files or folders to get a context-menu offering some choices of what to do " -"with it. Select multiple files by dragging a rectangle over them with the " -"mouse. Alternatively, select one file, hold down the Shift " -"key, and increase or decrease the selection using the arrow keys." -msgstr "" - -#: Thunar.xml:131(para) -msgid "" -"The pathbar will always show the path you took to get " -"to the folder you are currently at. You can click on any pathbar button to " -"change to the folder it represents. Right-click on a pathbar button to bring " -"up a context-menu with some options." -msgstr "" - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "" - -#: Thunar.xml:141(para) -msgid "" -"There are many ways to customize the appearance of the file manager windows. " -"In case you do not like the way the icons are displayed, choose " -"ViewView as Detailed List from the main menu to have the contents of the " -"current folder displayed as a list." -msgstr "" - -#: Thunar.xml:147(para) -msgid "" -"You can have the file manager windows display a location bar instead of the " -"pathbar by choosing ViewLocation " -"SelectorToolbar Style " -"from the main menu." -msgstr "" - -#: Thunar.xml:153(para) -msgid "" -"In case you prefer a treeview in the left pane, choose " -"ViewSide PaneTree from the main menu." -msgstr "" - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "" - -#: Thunar.xml:162(para) -msgid "" -"If you prefer to display the contents of the folder as a list, using the " -"Detailed List View, you can customize the columns " -"displayed in the list view. To customize the visible columns, choose " -"ViewConfigure Columns... from the main menu." -msgstr "" - -#: Thunar.xml:175(phrase) Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "" - -#: Thunar.xml:184(para) -msgid "" -"Select the columns you want to be displayed from the list of available " -"columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "" - -#: Thunar.xml:195(para) -msgid "" -"Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the " -"needed to ensure the text is fully visible." -msgstr "" - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "" - -#: Thunar.xml:214(para) -msgid "" -"When you open a file, the file manager performs the default action for that " -"file type. For example, opening a text file will display it in the default " -"text editor, while opening an image file will display the image in the " -"default image viewer." -msgstr "" - -#: Thunar.xml:220(para) -msgid "" -"The file manager checks the extension of a file to determine the type of a " -"file. If the file has no known extension, the file manager examines the " -"contents of the file." -msgstr "" - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "" - -#: Thunar.xml:228(para) -msgid "" -"To execute the default for a file, double-click on the file. For example, " -"the default action for audio files is to play the it with the default music " -"playing application. In this case, you can double-click on the file to open " -"the file in the music player." -msgstr "" - -#: Thunar.xml:234(para) -msgid "" -"You can set Thunar preferences so that you click " -"once on a file to execute the default action. For information, see ." -msgstr "" - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "" - -#: Thunar.xml:243(para) -msgid "" -"To execute actions other than the default action for a file, select the file " -"that you want to perform an action on. Choose the desired action from the " -"Open With choices available in File " -"menu or an Open With submenu." -msgstr "" - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "" - -#: Thunar.xml:253(para) -msgid "" -"To add actions associated with a file type, perform the following steps:" -msgstr "" - -#: Thunar.xml:259(para) -msgid "" -"In the main area, select a file of the type to which you want to add an " -"action." -msgstr "" - -#: Thunar.xml:264(para) -msgid "" -"Choose FileOpen With Other " -"Application... from the main menu." -msgstr "" - -#: Thunar.xml:270(para) -msgid "" -"Either choose an application in the Open With dialog or " -"select Use a custom command and browse to the program " -"with which you wish to open this type." -msgstr "" - -#: Thunar.xml:277(para) -msgid "" -"The action you have chosen is now added to the list of actions for that " -"particular file type. If you enabled the Use as default for this " -"kind of file option or there was no prior action associated with " -"the type, the newly added action is the default." -msgstr "" - -#: Thunar.xml:283(para) -msgid "" -"You may also add actions using the Open With button " -"under FileProperties...." -msgstr "" - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "" - -#: Thunar.xml:292(para) -msgid "" -"To modify the actions associated with a file or file type, perform the " -"following steps:" -msgstr "" - -#: Thunar.xml:298(para) -msgid "" -"In the main area, select a file of the type for which you want to modify the " -"action." -msgstr "" - -#: Thunar.xml:303(para) Thunar.xml:383(para) -msgid "" -"Choose FileProperties... from the main menu." -msgstr "" - -#: Thunar.xml:308(para) -msgid "" -"Select the new default action using the Open With " -"button or add a new action by choosing Open With Other " -"Application... from the drop down menu." -msgstr "" - -#: Thunar.xml:315(para) -msgid "" -"To remove a previously added action for a file type, bring up the " -"Open With dialog as described above, right-click the " -"action you want to remove and choose Remove Launcher." -msgstr "" - -#: Thunar.xml:324(title) Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "" - -#: Thunar.xml:326(para) -msgid "" -"The file properties window shows more information about any file or folder " -"in the file manager. With this window, you can also do the following:" -msgstr "" - -#: Thunar.xml:333(para) -msgid "" -"Change the icon for special files, such as application launchers and URL " -"links." -msgstr "" - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "" - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "" - -#: Thunar.xml:348(para) -msgid "" -"Choose which application is used to open a file and other files of the same " -"type." -msgstr "" - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "" - -#: Thunar.xml:372(para) -msgid "" -"Select the file or folder whose properties you want to examine or change. " -"You cannot select multiple items at once and display the properties that are " -"in common to all items currently." -msgstr "" - -#: Thunar.xml:386(para) -msgid "" -"Right-click the selected item and choose Properties... from the context menu." -msgstr "" - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "" - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "" - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "" - -#: Thunar.xml:405(para) -msgid "" -"Thunar supports removable media if it was built with support for HAL, or " -"if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is " -"suggested to use HAL rather than the native support provided by Thunar." -msgstr "" - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "" - -#: Thunar.xml:414(para) -msgid "" -"To mount media is to make the file system of the media " -"available for access. When you mount media, the file system of the media is " -"attached as a subdirectory to your file system." -msgstr "" - -#: Thunar.xml:419(para) -msgid "" -"To access media, insert the media in the appropriate device, or connect the " -"new device to your computer (i.e. connect an USB stick to one of your USB " -"ports). An object that represents the media is added to the side pane of the " -"file manager. If xfdesktop is running and " -"configured to display File/launcher icons this object " -"will also be added to your desktop." -msgstr "" - -#: Thunar.xml:426(para) -msgid "" -"To actually mount the media, click on the object that represents the media. " -"For example, to mount a floppy diskette, click on the Floppy " -"Drive object in the side pane. The file manager will now add the " -"file system of the media to your file system hierarchy and display the " -"contents of the floppy diskette in the main area." -msgstr "" - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "" - -#: Thunar.xml:436(para) -msgid "" -"If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-" -"click on the media object in the side pane or on the desktop and choose " -"Eject Volume. The media is ejected from the drive after " -"a few seconds. If the drive for the media is not motorized (i.e. a floppy " -"drive or an USB stick), right-click on the media object and choose " -"Unmount Volume. After a short period of time, a " -"notification will appear to inform you that it is now safe to remove the " -"media or disconnect the drive from the computer." -msgstr "" - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "" - -#: Thunar.xml:456(para) -msgid "" -"However this notification will only be displayed if support for " -"libnotify is enabled, and you have installed a " -"notification daemon. A notification daemon for Xfce is available from the " -"Xfce Goodies Project. If notification " -"support is not available, wait until the context menu disappears before you " -"remove the media or disconnect the drive." -msgstr "" - -#: Thunar.xml:464(para) -msgid "" -"Be aware that you cannot eject or unmount media that is still in use by one " -"or more applications. Therefore if the file manager refuses to eject media, " -"make sure you close all applications that were accessing the media, and be " -"sure to also check command line applications running in " -"Terminal windows." -msgstr "" - -#: Thunar.xml:470(para) -msgid "" -"Make sure to unmount removable media before ejecting. Do not eject a " -"diskette from the floppy drive before your unmount the diskette. Do not " -"remove an USB stick before you unmount the flash drive. If you do not " -"unmount the media first you might lose data or cause your system to crash." -msgstr "" - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "" - -#: Thunar.xml:481(para) -msgid "" -"Thunar is also able to automatically manage removable drives and media if " -"the thunar-volman package is installed on " -"your system. Note however that this feature requires HAL support." -msgstr "" - -#: Thunar.xml:487(para) -msgid "" -"Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the " -"Volume Management feature of Thunar. Therefore, open " -"the file manager preferences, go to the Advanced page " -"and check the Enable Volume Management button." -msgstr "" - -#: Thunar.xml:494(para) -msgid "" -"The next step is to customize the management of removable drives and media " -"to your needs. Click on the Configure link in the " -"Volume Management section, right below the button. The " -"Removable Drives and Media configuration dialog will be " -"displayed." -msgstr "" - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "" - -#: Thunar.xml:512(para) -msgid "" -"If you have used the gnome-volume-manager " -"previously, you should feel right at home, because it was designed to look " -"and behave similar to gnome-volume-manager. The " -"preferences are divided by device categories to make it easy to locate the " -"option for you specific device." -msgstr "" - -#: Thunar.xml:519(para) -msgid "" -"The Storage page contains the most important options. " -"As the name suggests these options apply only to storage devices like " -"external harddisk drives, USB sticks and CD-ROMs. The Removable " -"Storage options are described in detail below." -msgstr "" - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "" - -#: Thunar.xml:529(para) -msgid "" -"Enable this option to automatically mount file systems on removable drives " -"(i.e. external harddisk drives or USB sticks) when such drives are plugged " -"into the computer." -msgstr "" - -#: Thunar.xml:533(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable drives. For example, if you disable this option, certain kinds of " -"portable music players cannot be detected any more and so, even if you " -"enabled the Play music files when connected option on " -"the Multimedia page, the specified command will not be " -"run when you hot-plug your portable music player." -msgstr "" - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "" - -#: Thunar.xml:546(para) -msgid "" -"Enable this option to automatically mount file systems on removable media (i." -"e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" - -#: Thunar.xml:550(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable media. For example, if you disable this option, it is impossible " -"to detect whether the removable media has auto-run capabilities, and so the " -"Auto-run programs on new drives and media option has no " -"effect for removable media." -msgstr "" - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "" - -#: Thunar.xml:562(para) -msgid "" -"Enable this option to automatically display the content of newly inserted " -"media in the file manager. Note however, that the contents will only be " -"displayed if no other action was possible or you choose to ignore the other " -"possible actions. For example, if you insert a CD-ROM with auto-run " -"capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow " -"or ignore the auto-run. If you choose to ignore the auto-run the contents " -"will be displayed in the file manager." -msgstr "" - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "" - -#: Thunar.xml:576(para) -msgid "" -"Enable this option to make use of auto-run capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-run mechanism. To " -"enhance security, you will always be prompted to confirm the auto-run." -msgstr "" - -#: Thunar.xml:582(para) -msgid "" -"If the Windows emulator WINE is installed on your system, the auto-run mechanism will " -"also try to run autorun.exe files using WINE." -msgstr "" - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "" - -#: Thunar.xml:592(para) -msgid "" -"Enable this option to make of auto-open capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-open mechanism. " -"To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" - -#: Thunar.xml:602(para) -msgid "" -"The remaining options allow you to specify a command to run when a certain " -"kind of media is inserted into a drive or a certain kind of external device " -"is connected. The command can use three special variables, that will be " -"substituted when the command is run:" -msgstr "" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "" - -#: Thunar.xml:612(para) -msgid "" -"Each appearance of %d in the command will be substituted " -"with the device file path of the newly added device. For example, if you " -"have plugged in an USB stick, the device file path will be /dev/" -"da0s1 or /dev/sda1." -msgstr "" - -#: Thunar.xml:617(para) -msgid "" -"If no device file is associated with the device or the device file could not " -"be found for some reason, the variable %d will be " -"substituted with the empty string." -msgstr "" - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "" - -#: Thunar.xml:627(para) -msgid "" -"Each appearance of %h in the command will be substituted " -"with the HAL UDI of the newly added device." -msgstr "" - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "" - -#: Thunar.xml:637(para) -msgid "" -"Each appearance of %m in the command will be substituted " -"with the mount point where the newly added device was mounted. If the device " -"cannot be mounted (for example printers or keyboards) or if the automatic " -"mounting was disabled, %m will be substituted with the " -"empty string." -msgstr "" - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "" - -#: Thunar.xml:650(para) -msgid "" -"Useful tips to trouble shoot the volume manager in case it does not work as " -"expected." -msgstr "" - -#: Thunar.xml:656(para) -msgid "" -"Make sure Thunar is running as daemon. The volume " -"manager depends on this, as it is not a daemon by itself. By default, Xfce " -"automatically spawns Thunar as daemon on startup. " -"If it got killed for some reason, open the Run program " -"(using the keyboard shortcut AltF2 or right-click on the desktop and choose Run " -"Program... from the desktop menu), enter Thunar --" -"daemon and click Run." -msgstr "" - -#: Thunar.xml:668(para) -msgid "" -"Try running thunar-volman from a " -"Terminal window after hot-plugging the drive or " -"inserting the media. First, you need to figure out the HAL UDI of the new " -"device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-" -"added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" - -#: Thunar.xml:678(para) -msgid "" -"If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing " -"list for help." -msgstr "" - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "" - -#: Thunar.xml:691(para) -msgid "" -"Use the File Manager Preferences dialog to set your " -"Thunar file manager preferences. To open the " -"preferences dialog, choose EditPreferences... from the menu " -"bar, or click on the File Manager button in the Xfce " -"Settings Manager." -msgstr "" - -#: Thunar.xml:697(para) -msgid "" -"The File Manager Preferences dialog is divided into " -"four pages with different options, each described in a separate section " -"below. Basically you can set preferences in the following categories:" -msgstr "" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "" - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "" - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "" - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "" - -#: Thunar.xml:709(para) -msgid "" -"Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but " -"are not included in the preferences in order to keep the preferences dialog " -"simple. The README.thunarrc " -"file that is included with the Thunar distribution describes all available " -"options in detail." -msgstr "" - -#: Thunar.xml:718(title) Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "" - -#: Thunar.xml:720(para) -msgid "" -"You can specify a default view, select sort options and display options. You " -"can also specify whether thumbnails should be displayed for file types that " -"support this." -msgstr "" - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "" - -#: Thunar.xml:742(para) -msgid "" -"Select the default view for folders. When you open a new window, the is " -"displayed in the view that you select. This can be either the icon view, the " -"compact list view or the detailed list view. You can also select " -"Last Active View here to use the view you used for the " -"last active window." -msgstr "" - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "" - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "" - -#: Thunar.xml:763(para) -msgid "" -"Select this option to show thumbnails of image files and other supported " -"files. The file manager stores the thumbnail files for each folder in the " -"hidden .thumbnails directory in the " -"user's Home Folder." -msgstr "" - -#: Thunar.xml:768(para) -msgid "" -"See if you want to extend the basic " -"thumbnail functionality provided by Thunar with " -"support for additional file types." -msgstr "" - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "" - -#: Thunar.xml:779(para) -msgid "" -"Select this options to place the icon captions for items in the icon view " -"beside the icon rather than under the icon." -msgstr "" - -#: Thunar.xml:790(title) Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "" - -#: Thunar.xml:792(para) -msgid "" -"You can select display options for the shortcuts pane and the tree pane." -msgstr "" - -#: Thunar.xml:808(para) -msgid "" -"The side pane can either display a list of shortcuts for folders in your " -"file system, which is the default, or a tree view of your file system. This " -"page allows you to select the size of the icons for the shortcuts and the " -"tree pane. You can also specify whether emblems should be displayed." -msgstr "" - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "" - -#: Thunar.xml:819(para) -msgid "" -"The size of the icons displayed in the side, ranging from Very " -"Small (around 16x16 pixels) to Very Large " -"(around 128x128 pixels)." -msgstr "" - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "" - -#: Thunar.xml:829(para) -msgid "" -"Select this option to display emblems for folders in the side pane. You can " -"assign emblems to folders in the Properties dialog. " -"Select a folder in the main area and choose FileProperties... from the main " -"menu, or right-click the folder and select " -"Properties... from the " -"context menu." -msgstr "" - -#: Thunar.xml:843(title) Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "" - -#: Thunar.xml:845(para) -msgid "" -"You can select the preferred behavior to interact with the file manager." -msgstr "" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "" - -#: Thunar.xml:865(para) -msgid "" -"Select this option to perform the default action for an item when you click " -"on the item. When this option is selected, and you point to an item, the " -"title of the item is underlined and the item will be selected automatically " -"after a short delay." -msgstr "" - -#: Thunar.xml:871(para) -msgid "" -"This delay can be configured below the option. You can also disable the " -"automatic selection of items by moving the selector to the left-most " -"position." -msgstr "" - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "" - -#: Thunar.xml:882(para) -msgid "" -"Select this option to perform the default action for an item when you double " -"click on the item, and select the item with a single click." -msgstr "" - -#: Thunar.xml:893(title) Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "" - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "" - -#: Thunar.xml:915(para) -msgid "" -"Choose the action that should be performed when you change the permissions " -"of a folder in the Properties dialog. You can choose to " -"let Thunar ask everytime when you change folder " -"permissions, tell it to default to applying the new permissions to the " -"folder only or to apply them recursively to the folder contents as well." -msgstr "" - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "" - -#: Thunar.xml:927(para) -msgid "" -"If Thunar was installed with support for HAL and " -"the thunar-volman package is also installed, you " -"can enable the integrated volume manager. See for details about this feature." -msgstr "" - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "" - -#: Thunar.xml:942(para) -msgid "" -"This chapter describes how to customize certain parts of the file manager to " -"your own needs." -msgstr "" - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "" - -#: Thunar.xml:950(para) -msgid "" -"Thunar includes a Send To menu, which provides possible " -"targets where files and folders can be sent to. To access the Send " -"To menu, choose FileSend To from the main menu, " -"or right-click on a file or folder and choose Send " -"To." -msgstr "" - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "" - -#: Thunar.xml:969(para) -msgid "" -"By default, the Send To menu includes an entry named " -"Desktop (Create Link) for all files and folders, which " -"simply creates a link on the desktop for each selected file. In addition, if " -"the Shortcuts Pane is active, the menu also includes an " -"entry called Side Pane (Create Shortcut) for folders, " -"which allows users to add new shortcuts to the side pane. Following these " -"entries, Thunar lists the removable drives " -"currently plugged into the computer. In the screenshot above, the " -"Floppy Drive represents a possible target where files " -"can be sent to. Note that the device is mounted automatically once selected " -"from the Send To menu, so you do not need to manually " -"mount it." -msgstr "" - -#: Thunar.xml:979(para) -msgid "" -"In addition Thunar also ships the " -"thunar-sendto-email plugin, which adds the entry " -"Mail Recipient to the menu, that opens the mail " -"composer with the selected files attach to the new email. If the selection " -"contains atleast one folder, the selected items are added to a ZIP archive " -"before attaching them to the email. Otherwise, if the selection contains " -"multiple files, or a single file, which is larger than 200Kib, the user will " -"be prompted whether to pack the files into a ZIP archive, and send the ZIP " -"archive." -msgstr "" - -#: Thunar.xml:987(para) -msgid "" -"Like most other features of Thunar, the " -"Send to menu can be easily extended by users and " -"application developers with new targets, using standard desktop entry files. These files must be installed into one of " -"the $XDG_DATA_DIRS/Thunar/sendto/ " -"folders (see the XDG Base Directory Specification for " -"details about the $XDG_DATA_DIRS variable)." -msgstr "" - -#: Thunar.xml:996(para) -msgid "" -"The MimeType of the target .desktop " -"specifies the types of files for which this action should be available in " -"the Send To menu. For example, say you want to add " -"entry for a Flickr " -"uploader tool, then this entry should only show up if the selection contains " -"JPEG files (other file formats are not supported by Flickr) and so you " -"should add a line MimeType=image/jpeg;. If you do not " -"specify any MimeType your entry will show up for all file " -"types." -msgstr "" - -#: Thunar.xml:1004(para) -msgid "" -"A complete example using the postr application is " -"shown below:" -msgstr "" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" - -#: Thunar.xml:1021(para) -msgid "" -"If you install this file to ~/.local/share/" -"Thunar/sendto/ (create the folder if it does not exist yet), the " -"Send To menu for JPEG files will show the new entry " -"Flickr, which can be used to upload JPEG images to " -"Flickr." -msgstr "" - -#: Thunar.xml:1027(para) -msgid "" -"The Thunar Project Wiki contains additional examples of " -"useful targets for the Send To menu. Feel free to " -"extend the Wiki page with new examples." -msgstr "" - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "" - -#: Thunar.xml:1038(para) -msgid "" -"Thunar uses small utilities to create thumbnails of certain file types and " -"displays the thumbnails as preview of the file content. These small tools " -"are called thumbnailers. Thunar ships with thumbnailers for image and font " -"files, and makes use of the installed thumbnailers from GNOME automatically " -"if it was installed with support for gconf. Users may " -"however dynamically extend this basic functionality with thumbnailers for " -"additional file types." -msgstr "" - -#: Thunar.xml:1045(para) -msgid "" -"If you plan to write a custom thumbnailers, you need to start with a program " -"that accepts atleast two command line parameters, the input file, which is " -"of the file type you plan to support and the output file, which is a PNG " -"file that complies with the format specified by the Thumbnail " -"Management Standard. Additionally your program may also accept the " -"desired size of the thumbnail, which is optional but highly recommended. If " -"you write the output file at an arbitrary image size, Thunar will afterwards " -"scale it to the desired size, which might produce a less optimal result than " -"generating the thumbnail with the requested dimensions." -msgstr "" - -#: Thunar.xml:1054(para) -msgid "" -"Once your utility to generate the thumbnails is done, you will need to " -"register your thumbnailer, so Thunar is able to locate and use it. Therefore " -"all you need to do is to install a description file for the thumbnailer (a " -".desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want " -"to register the thumbnailer for your user account only, you can install the " -"file into the folder ~/.local/share/" -"thumbnailers/. The .desktop for thumbnailers " -"has the following format." -msgstr "" - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "" - -#: Thunar.xml:1065(para) -msgid "" -"Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new " -"field codes. Basically, a thumbnailer description file has the following " -"format." -msgstr "" - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1080(para) -msgid "" -"The Version and Encoding are mandated " -"by the Desktop Entry Specification, just use the values shown in the example " -"above. The Type field must have the special value " -"X-Thumbnailer, otherwise your thumbnailer will not be " -"recognized. The Name value describes your thumbnailer." -msgstr "" - -#: Thunar.xml:1086(para) -msgid "" -"The X-Thumbnailer-Exec field contains the command to run " -"your thumbnailer, and supports certain field codes that will be substituted " -"when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "" - -#: Thunar.xml:1095(para) -msgid "" -"The local path to the input file for which to create a thumbnail. May be " -"either a path relative to the directory from which the thumbnailer was " -"invoked or an absolute path." -msgstr "" - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "" - -#: Thunar.xml:1103(para) -msgid "" -"The local path to the output file where to store the generated thumbnail. " -"The output file must be written as valid PNG file according to the thumbnail " -"standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "" - -#: Thunar.xml:1112(para) -msgid "" -"The desired size of the generated thumbnail in pixels. This parameter is " -"optional." -msgstr "" - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "" - -#: Thunar.xml:1119(para) -msgid "" -"Similar to %i, but substituted with the URI of the file, " -"rather than the path. This was added for compatibility with GNOME." -msgstr "" - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "" - -#: Thunar.xml:1132(para) -msgid "" -"You need to include atleast %o and %i " -"or %u, otherwise your thumbnailer will be useless." -msgstr "" - -#: Thunar.xml:1137(para) -msgid "" -"The MimeType lists the MIME types - separated by " -"semicolon - for which your thumbnailer is able to create previews." -msgstr "" - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "" - -#: Thunar.xml:1145(para) -msgid "" -"This example demonstrates how to write and install a new thumbnailer for " -".eps files, which uses the convert " -"utility that ships as part of ImageMagick. First, we start with a simple " -"script that invokes convert to generate a thumbnail at " -"the requested size." -msgstr "" - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" - -#: Thunar.xml:1167(para) -msgid "" -"Save this script above to a file eps-thumbnailer, make " -"sure the file is executable and install it to /" -"usr/local/bin." -msgstr "" - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" - -#: Thunar.xml:1176(para) -msgid "" -"Next we need to create the thumbnail description file eps-" -"thumbnailer.desktop, which looks like this:" -msgstr "" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1190(para) -msgid "" -"This file must be installed to /usr/local/share/" -"thumbnailers (create the folder if it does not exists)." -msgstr "" - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" - -#: Thunar.xml:1199(para) -msgid "" -"The eps-thumbnailer.desktop file uses the special key " -"TryExec, which, if specified, names a command that must " -"be present on the system for the thumbnailer to be useful. In this case, our " -"script is useless if the convert utility is not present." -msgstr "" - -#: Thunar.xml:1205(para) -msgid "" -"The last step is to regenerate the thumbnailer cache, so Thunar will pick up " -"our thumbnailer. The thumbnailer cache is located at " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by " -"your or your system administrator, the $XDG_CACHE_HOME " -"points to the folder ~/.cache/). The " -"thumbnailers cache is regenerated periodically by Thunar, but you can force " -"to regenerate it by invoking the thunar-vfs-update-thumbnailers-" -"cache-1 utility, that ships as part of Thunar. This utility is " -"usually installed in the libexec " -"subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in " -"/usr, invoke the utility as follows:" -msgstr "" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "" - -#: Thunar.xml:1218(para) -msgid "" -"But make sure you run the program from your user account, not the superuser " -"account, since the thumbnailers cache is stored in your home folder, rather " -"than a system wide location." -msgstr "" - -#: Thunar.xml:1223(para) -msgid "" -"Now, if Thunar is compiled with support for file alteration monitoring " -"(using the FAM or Gamin services), it will automatically pick up the new " -"thumbnailers cache within a few seconds and afterwards be able to generate " -"thumbnails using your custom thumbnailers. Otherwise you might need to " -"completely restart Thunar to apply the changes, using" -msgstr "" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "" - -#: Thunar.xml:1231(para) -msgid "" -"to terminate any running instance, and afterwards restart it from your " -"launcher." -msgstr "" - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "" - -#: Thunar.xml:1239(para) -msgid "" -"The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management " -"Standard. While testing a new thumbnailer, it might help to clean up " -"the thumbnail cache using" -msgstr "" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "" - -#: Thunar.xml:1247(para) -msgid "" -"which will also give you some free space in your home folder. Since all the " -"information stored within this folder was automatically generated from files " -"in your file system, you will not loose any sensitive data." -msgstr "" - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1263(para) -msgid "" -"To bulk rename files means to rename multiple files at " -"once using some criterion, that applies to atleast one of the files. " -"Thunar includes a bulk renamer, which can be run " -"separately using the command Thunar -B or from within " -"Thunar by selecting two or more files in the main " -"area and pressing F2 or choosing " -"EditRename... from the main menu." -msgstr "" - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1283(para) -msgid "" -"The Bulk Renamers can be applied to the name of the " -"files, the suffix of the files or both to the name and the suffix of the " -"files. Thunar currently supports the following " -"Bulk Renamers:" -msgstr "" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "" - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "" - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "" - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "" - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "" - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "" - -#: Thunar.xml:1298(para) -msgid "" -"Additional Bulk Renamers may be installed as plugins " -"for Thunar. Check the Thunar Plugins website for " -"currently available extensions. The Thunar Project Wiki " -"contains further details about this feature. Feel free to add more " -"information to the Wiki." -msgstr "" - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "" - -#: Thunar.xml:1310(para) -msgid "" -"While the Thunar file manager does a good job at abstracting the details of " -"the underlying file system, so the user does not need to care about them, it " -"is sometimes useful to understand the basic concepts to get the whole " -"picture. This section tries to give a brief introduction to the concepts of " -"the UNIX file system, which is used today by all incarnations of UNIX, " -"including Linux." -msgstr "" - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "" - -#: Thunar.xml:1320(para) -msgid "" -"In a UNIX file system all folders are arranged in a simple inverted tree " -"structure descending and branching down from a single top level folder, " -"which is called the root directory (the term " -"directory is often used instead of folder) and displayed as File System in Thunar. This " -"means that you can get from any folder to any other by going up the tree " -"until you reach a common point, then down the tree through the appropriate " -"subfolders until you reach your target." -msgstr "" - -#: Thunar.xml:1329(para) -msgid "" -"The position of any file or folder in the tree can be described by its " -"path. The path is the list of folders you would have to " -"descend through to get to the target folder or file, starting from the top " -"level folder. For example /home/luke " -"is the subfolder luke of the " -"subfolder home of the top level " -"folder, and /home/luke/myfile.txt is the file " -"myfile.txt in that subfolder. The leading / in these paths represents the top level " -"folder." -msgstr "" - -#: Thunar.xml:1338(para) -msgid "" -"Every user has their own folder to hold their personal files and settings. " -"This folder is called the home directory and is " -"displayed in Thunar as special icon with the users login name. The folder is " -"similar to the My Files folder known from Windows. The " -"home directories of the various users in a system are " -"usually located below the /home " -"folder. For example /home/luke would " -"be the home directory of the user with the login name luke, while /home/" -"jane would be the home directory for the user with the login name " -"jane." -msgstr "" - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "" - -#: Thunar.xml:1352(para) -msgid "" -"You may have already heard that everything is a file in UNIX. This is true " -"for most objects present in UNIX systems today. In fact even devices are " -"represented as a special files. While this may not make sense at first " -"sight, it is one of the strengths of UNIX and its derivates, and has helped " -"it to maintain a simple core over the years where other operating systems " -"had to introduce new concepts for every new technology." -msgstr "" - -#: Thunar.xml:1359(para) -msgid "" -"These are the four most important types of files in the UNIX file system." -msgstr "" - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "" - -#: Thunar.xml:1366(para) -msgid "" -"An ordinary file may contain text, a program or other data. This includes " -"image files, audio files, office documents and video files. The term " -"file is often used to refer to an ordinary file." -msgstr "" - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "" - -#: Thunar.xml:1375(para) -msgid "" -"Folders are also files in the UNIX file system. To be exact a folder is a " -"special file, which contains a mapping of file names to file references for " -"every file contained within this folder." -msgstr "" - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "" - -#: Thunar.xml:1384(para) -msgid "" -"A Symbolic link (often called a symlink) is a special " -"file that contains a path to another file in the file system. Symbolic link " -"files therefore do not contain any useful information themselves, but just " -"refer to other files." -msgstr "" - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "" - -#: Thunar.xml:1394(para) -msgid "" -"As mentioned earlier (most) devices are also accessed through the file " -"system. These special device files are usually located in the /dev folder. For example the special file " -"/dev/hda represents the first IDE disk on Linux." -msgstr "" - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "" - -#: Thunar.xml:1408(para) -msgid "" -"The intent of this section is to collect the quite numerous frequently asked " -"questions that relate to working with Thunar. If you know of a question that " -"is missing from this page, please file a request." -msgstr "" - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "" - -#: Thunar.xml:1419(para) -msgid "" -"For security reasons Thunar only executes files of type application/" -"x-desktop, application/x-executable and " -"application/x-shellscript. For desktop files the " -"execution feature will only be enabled if the desktop file is of type " -"Application and a valid Exec line is " -"given or of type Link and a valid URL " -"is given. For the other types the feature is available if the file is marked " -"executable for the current user." -msgstr "" - -#: Thunar.xml:1428(para) -msgid "" -"Also note that for application/x-executable and " -"application/x-shellscript, the types of the file don't " -"really need to match these types exactly, but it is suffice if the detected " -"type has a parent that matches one of the two types listed above, or if the " -"MIME-type is an alias for one of the above." -msgstr "" - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "" - -#: Thunar.xml:1439(para) -msgid "" -"Thunar associates various settings with files/folders, which we call " -"metadata. This metadata for all files is stored in tdb database file, which " -"is called the metafile. The database file is stored in " -"$XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the " -"tdbtool, which is part of the Thunar distribution " -"(located in the tdb/ subdirectory)." -msgstr "" - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "" - -#: Thunar.xml:1452(para) -msgid "" -"Thunar stores the user configurable preferences (and hidden settings) in an " -".ini file, which is located at " -"$XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text " -"editor. See docs/README.thunarrc for an overview of the " -"various preferences." -msgstr "" - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "" - -#: Thunar.xml:1464(para) -msgid "" -"Thunar currently features basic support for so called mouse " -"gestures in its icon view. You can use these mouse " -"gestures by holding down the middle mouse button (usually the " -"mouse wheel) while the mouse pointer is on the background area of the icon " -"view component (any area that is not covered by an icon or a text). Now you " -"can move the cursor into four directions to perform certain actions, which " -"are described below." -msgstr "" - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr "" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr "" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr "" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr "" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "" - -#: Thunar.xml:1484(para) -msgid "" -"If you want to rebind a shortcut, Thunar supports the standard GTK+ way of " -"changing shortcuts: simply hover over the menu option with the mouse pointer " -"and press the keyboard shortcut you want to rebind it to." -msgstr "" - -#: Thunar.xml:1490(para) -msgid "" -"To delete a keyboard assignment, press the Backspace key " -"while you are on the menu entry." -msgstr "" - -#: Thunar.xml:1495(para) -msgid "" -"If the shortcut doesn't change, then you need to enable the feature in GTK+. " -"This can be achieved in 3 ways:" -msgstr "" - -#: Thunar.xml:1502(para) -msgid "" -"If you are running Xfce 4.3 or above then you can enable Editable " -"menu accelerators in the User Interface Preferences dialog." -msgstr "" - -#: Thunar.xml:1510(para) -msgid "" -"If you are running GNOME then you can enable Editable menu " -"accelerators in the Menu and Toolbars " -"control center dialog." -msgstr "" - -#: Thunar.xml:1518(para) -msgid "" -"Otherwise put the following in your ~/.gtkrc-2.0 file " -"(create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "" - -#: Thunar.xml:1529(para) -msgid "" -"The custom keyboard shortcuts are stored in the standard GTK+ accel map " -"format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK" -"+ documentation for details about the file format." -msgstr "" - -#: Thunar.xml:1536(para) -msgid "" -"If you are a packager or a system administrator and want to provide a system " -"wide default for the keyboard shortcuts, that is different from the default " -"shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if " -"/etc/xdg is part of " -"$XDG_CONFIG_DIRS (the default for most Linux distributions), you can " -"install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "" - -#: Thunar.xml:1551(para) -msgid "" -"To report a bug or to make a suggestion regarding this application or this " -"manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a " -"useful bug report has two qualities:" -msgstr "" - -#: Thunar.xml:1559(para) -msgid "" -"Reproducible. If the developer cannot see " -"the bug himself to prove that it exists, he will most probably not be able " -"to fix it at all. Every detail you can provide helps." -msgstr "" - -#: Thunar.xml:1566(para) -msgid "" -"Specific. The quicker the developer can " -"isolate the problem to a specific area, the more likely he will expediently " -"fix it." -msgstr "" - -#: Thunar.xml:1573(para) -msgid "" -"In case you want to request a new feature, please make clear why you " -"consider it a worth addition for the application. It is more likely that a " -"new feature gets added if you provide good arguments for the feature. It " -"will increase the chance of addition even more if you provide a patch that " -"implements the requested feature, but make sure that you read the file " -"HACKING - especially the section labeled Coding " -"Style - before you start hacking up the source." -msgstr "" - -#: Thunar.xml:1583(para) -msgid "" -"Else, if you have questions about the use or installation of this software, " -"please ask on the thunar-dev mailing list or point your IRC " -"client to irc.freenode.net, join the " -"channel #thunar and ask for help." -msgstr "" - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "" - -#: Thunar.xml:1594(para) -msgid "" -"@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" - -#: Thunar.xml:1599(para) -msgid "" -"This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the " -"Thunar website." -msgstr "" - -#: Thunar.xml:1605(para) -msgid "" -"This software is distributed 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." -msgstr "" - -#: Thunar.xml:1611(para) -msgid "" -"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." -msgstr "" - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "" diff -Nru thunar-1.2.3/docs/manual/po/pl.po thunar-1.6.10/docs/manual/po/pl.po --- thunar-1.2.3/docs/manual/po/pl.po 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/pl.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,2711 +0,0 @@ -# Polish translation for the Thunar package. -# Copyright (C) 2004-2007 Benedikt Meurer. -# This file is distributed under the same license as the Thunar package. -# Szymon Kałasz , 2007 -# -msgid "" -msgstr "" -"Project-Id-Version: Thunar 0.5.0rc2\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2007-08-16 14:25+0200\n" -"Last-Translator: Szymon Kałasz \n" -"Language-Team: Polish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "" -"@@image: 'images/file-manager-window.png'; " -"md5=cc5bfa4829b32d2fc5084852682b526d" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "" -"@@image: 'images/visible-columns.png'; md5=ab8bcaffdf0d511cd72d678363123da6" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "" -"@@image: 'images/file-properties.png'; md5=75dfb225909bf71101cb544c5cc8b56e" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" -msgstr "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=bcaa42bdef131cf3704360b2c5a70f16" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=8500d2ce944003559d0f2577985f5d23" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "" -"@@image: 'images/preferences-views.png'; md5=689401dc700eeaf88aa7bfe15911c8c7" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=b4e749d435820106904cc0249e37368b" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" -msgstr "" -"@@image: 'images/preferences-behavior.png'; " -"md5=00f7c0659abc41fc007272d49af63639" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" -msgstr "" -"@@image: 'images/preferences-advanced.png'; " -"md5=5ba59e044443ba86b7439188579641d9" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "" -"@@image: 'images/sendto-menu.png'; md5=e17964faaabb6cfceb75d12b8fae2e1a" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "" -"@@image: 'images/bulk-rename.png'; md5=329e75077ffdc436ffe5a23b72959915" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Menedżer Plików Thunar" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml:25(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License, Version 1.1 or any later " -"version published by the Free Software Foundation; with no Invariant " -"Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The " -"complete license text is available from the Free Software Foundation." -msgstr "" - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "Software developer" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "System development" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Ten podręcznik opisuje @PACKAGE_NAME@ w wersji @PACKAGE_VERSION@." - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Wprowadzenie do @PACKAGE_NAME@" - -#: Thunar.xml:56(para) -msgid "" -"Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar " -"has been designed from the ground up to be fast and easy-to-use. Its user " -"interface is clean and intuitive, and does not include any confusing or " -"useless options by default. Thunar is fast and responsive with a good start " -"up time and folder load time." -msgstr "" -"Thunar jest nowoczesnym menedżerem plików dla Środowiska Graficznego Xfce. " -"Od samego początku w jego projekt została wpisana szybkość i łatwość użycia. " -"Jego interfejs użytkownika jest przejrzysty i intuicyjny. Domyślne " -"ustawienia nie zawierają żadnych bezużytecznych i dezorientujących opcji. " -"Thunar jest szybki i responsywny, a start programu i przechodzenie do nowych " -"folderów zajmują bardzo mało czasu." - -#: Thunar.xml:62(para) -msgid "" -"The Thunar file manager thereby provides an integrated access point to your " -"files and applications. You can use the file manager to do the following:" -msgstr "" -"Skutkiem tego Thunar stanowi zintegrowany punkt dostępowy do twoich plików i " -"aplikacji. Możesz używać menedżera plików do:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "Tworzenia folderów i dokumentów." - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "Wyświetlania twoich plików i folderów." - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "Zarządzania plikami i folderami." - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "Uruchamiania i zarządzania akcjami." - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "Korzystania z nośników wymiennych." - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "Okno Menedżera Plików" - -#: Thunar.xml:80(para) -msgid "" -"By default the file manager window consists of a shortcut pane on the left " -"side, the main area on the right and a pathbar above the main area." -msgstr "" -"Domyślnie okno menedżera plików składa się z panelu bocznego po lewej, " -"obszaru głównego po prawej i paska ścieżki powyżej głównego obszaru." - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "Okno Menedżera Plików" - -#: Thunar.xml:97(para) -msgid "" -"The Shortcut Pane provides shortcuts to different " -"folders on your system. The first shortcut will lead to your Home " -"Folder, the folder you store all your personal data, and will " -"therefore have the name of the current user. The second shortcut will take " -"you to the trash bin, which stores deleted files that can be recovered " -"later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the " -"desktop. The fourth shortcut will take you to the root of your file system - " -"you may want to explore it a bit, even though it may be confusing to you if " -"you are new to Linux/Unix. Just click on the different folders and see what " -"is inside." -msgstr "" -"Panel boczny zawiera skróty do różnych folderów w twoim " -"systemie. Pierwszy skrót prowadzi do twojego katalogu domowego, folderu, gdzie przechowujesz swoje prywatne dane. Będzie on miał " -"nazwę bieżącego użytkownika. Drugi skrót poprowadzi Cię do śmietnika. Tam są " -"przechowywane usunięte pliki, w celu ich późniejszego przywrócenia. Trzeci z " -"kolei skrót prowadzi do folderu pulpitu, który zawiera " -"pliki i foldery wyświetlane na twoim pulpicie. Czwarty, ostatni skrót, " -"zaprowadzi Cię do głównego katalogu systemu plików - być może będziesz " -"chciał go obejrzeć, chociaż może to być dla Ciebie zbędne jeśli jesteś " -"początkującym użytkownikiem Linuksa/Uniksa. Proste klikanie na różne foldery " -"pozwoli Ci obejrzeć ich zawartość." - -#: Thunar.xml:108(para) -msgid "" -"Below the File System shortcut, the removable drives " -"and media will be displayed. In the screenshot above, you can see a " -"Floppy Drive shortcut. Click on these shortcuts to " -"access the data stored on the removable drives and media. See for further details." -msgstr "" -"Poniżej skrótu \"System plików\", będą wyświetlane " -"wymienne napędy i nośniki. W zrzucie ekranu powyżej możesz zobaczyć skrót do " -"Napędu dyskietek. Klikając na te skróty uzyskasz dostęp " -"do danych przechowywanych na wymiennych nośnikach i napędach. Przeczytaj " -", jeśli chcesz poznać szczegóły." - -#: Thunar.xml:115(para) -msgid "" -"The remaining shortcuts are user defined. Add your own shortcuts by simply " -"dragging folders to the Shortcuts Pane. This will allow " -"you to access important folders instantly. To remove a previously added " -"shortcut, right-click on the shortcut and choose Remove " -"Shortcut. To rename a previously added shortcut, right-click " -"on the shortcut and choose Rename Shortcut. Note " -"that these actions affect only the shortcut, not the folder referenced by " -"the shortcuts." -msgstr "" -"Pozostałe skróty są definiowane przez użytkownika. Możesz dodawać swoje " -"własne skróty po prostu przeciągając foldery do panelu bocznego. Pozwoli Ci to na natychmiastowy dostęp do ważnych folderów. Aby " -"usunąć poprzednio dodany skrót, kliknij prawym przyciskiem myszy na skrócie " -"i wybierz Usuń skrót. Zauważ, że ta czynność " -"będzie miała wpływ tylko na skrót, a nie na folder wskazywany przez niego." - -#: Thunar.xml:123(para) -msgid "" -"The main area will always display the contents of the " -"current folder. Double click on folders to enter them, and right-click on " -"files or folders to get a context-menu offering some choices of what to do " -"with it. Select multiple files by dragging a rectangle over them with the " -"mouse. Alternatively, select one file, hold down the Shift " -"key, and increase or decrease the selection using the arrow keys." -msgstr "" -"Obszar główny będzie zawsze wyświetlał zawartość " -"bieżącego folderu. Podwójnym kliknięciem możesz wchodzić do folderów, " -"natomiast klikając prawym przyciskiem myszy uzyskasz dostęp do menu " -"kontekstowego, umożliwiającego zarządzanie folderem. Możesz zaznaczyć wiele " -"plików przeciągając nad nimi prostokąt utworzony z zaznaczenia myszą. " -"Alternatywnie możesz zaznaczyć jeden plik, wcisnąć klawisz Shift i zwiększać lub zmniejszać zaznaczenie, używając strzałek na " -"klawiaturze." - -#: Thunar.xml:131(para) -msgid "" -"The pathbar will always show the path you took to get " -"to the folder you are currently at. You can click on any pathbar button to " -"change to the folder it represents. Right-click on a pathbar button to bring " -"up a context-menu with some options." -msgstr "" -"Pasek ścieżki będzie zawsze pokazywał drogę, jaką " -"przebyłeś do bieżącego folderu. Możesz kliknąć na którymkolwiek przycisku " -"ścieżki aby przenieść się do odpowiadającego folderu. Kliknij na nim prawym " -"przyciskiem myszy, aby przywołać menu kontekstowe zawierające pewne opcje." - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "Dostosowywanie wyglądu" - -#: Thunar.xml:141(para) -msgid "" -"There are many ways to customize the appearance of the file manager windows. " -"In case you do not like the way the icons are displayed, choose " -"ViewView as Detailed List from the main menu to have the contents of the " -"current folder displayed as a list." -msgstr "" -"Jest wiele sposobów na dostosowanie wyglądu okien menedżera plików. Jeśli " -"nie odpowiada Ci sposób wyświetlania ikon, wybierz " -"WidokWidok szczegółowy z głównego menu, aby wyświetlać zawartość " -"katalogów w formie listy." - -#: Thunar.xml:147(para) -msgid "" -"You can have the file manager windows display a location bar instead of the " -"pathbar by choosing ViewLocation " -"SelectorToolbar Style " -"from the main menu." -msgstr "" -"Możesz nakazać menedżerowi plików używania paska położenia zamiast paska " -"ścieżki, wybierając WidokWskaźnik położeniaStyl " -"tradycyjny z głównego menu." - -#: Thunar.xml:153(para) -msgid "" -"In case you prefer a treeview in the left pane, choose " -"ViewSide PaneTree from the main menu." -msgstr "" -"Jeżeli podoba Ci się widok drzewa w lewym panelu, wybierz " -"WidokPanel bocznyDrzewo z głównego menu." - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Kolumny widoczne w widoku szczegółowej listy" - -#: Thunar.xml:162(para) -msgid "" -"If you prefer to display the contents of the folder as a list, using the " -"Detailed List View, you can customize the columns " -"displayed in the list view. To customize the visible columns, choose " -"ViewConfigure Columns... from the main menu." -msgstr "" -"Jeśli wolisz wyświetlać zawartość folderów jako listę używając " -"Widoku szczegółowego, możesz dostosować kolumny " -"wyświetlane w widoku listy. Aby dostosować widoczność kolumn, wybierz " -"WidokKonfiguruj kolumny... z głównego menu (po wybraniu widoku listy)." - -#: Thunar.xml:175(phrase) Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "Widoczne kolumny" - -#: Thunar.xml:184(para) -msgid "" -"Select the columns you want to be displayed from the list of available " -"columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" -"Z listy dostępnych kolumn wybierz te, które mają być wyświetlane. Kliknij " -"W górę lub W dół aby zmienić " -"kolejność kolumn lub Użyj domyślnych aby cofnąć " -"wprowadzone zmiany." - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "Rozmiar kolumny" - -#: Thunar.xml:195(para) -msgid "" -"Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the " -"needed to ensure the text is fully visible." -msgstr "" -"Wybierz opcję Skaluj kolumny jeśli chcesz, aby " -"kolumny listy były rozszerzane automatycznie tak, aby cały tekst był " -"widoczny." - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "Praca z plikami i folderami" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "Otwieranie plików" - -#: Thunar.xml:214(para) -msgid "" -"When you open a file, the file manager performs the default action for that " -"file type. For example, opening a text file will display it in the default " -"text editor, while opening an image file will display the image in the " -"default image viewer." -msgstr "" -"Kiedy otwierasz plik, menedżer plików wykonuje domyślną akcję dla plików " -"tego typu. Na przykład otwarcie pliku tekstowego spowoduje jego wyświetlenie " -"w domyślnym edytorze tekstu, podczas gdy otwarcie pliku obrazu wyświetli go " -"w domyślnej przeglądarce obrazów." - -#: Thunar.xml:220(para) -msgid "" -"The file manager checks the extension of a file to determine the type of a " -"file. If the file has no known extension, the file manager examines the " -"contents of the file." -msgstr "" -"Menedżer plików sprawdza rozszerzenie pliku, aby określić jego typ. Jeśli " -"plik nie posiada rozszerzenia, sprawdzana jest jego zawartość." - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "Wykonywanie domyślnej akcji" - -#: Thunar.xml:228(para) -msgid "" -"To execute the default for a file, double-click on the file. For example, " -"the default action for audio files is to play the it with the default music " -"playing application. In this case, you can double-click on the file to open " -"the file in the music player." -msgstr "" -"Aby wykonać domyślną akcję na pliku, kliknij go podwójnie. Na przykład " -"domyślną akcją dla plików dźwiękowych jest ich odtworzenie w domyślnym " -"odtwarzaczu muzyki. W takim przypadku, dwukrotnie kliknięcie takiego pliku " -"spowoduje odtworzenie go w odtwarzaczu muzyki." - -#: Thunar.xml:234(para) -msgid "" -"You can set Thunar preferences so that you click " -"once on a file to execute the default action. For information, see ." -msgstr "" -"Możesz zmienić zachowanie Thunara tak, aby " -"pojedyncze kliknięcie wyzwalało domyślną akcję. Aby dowiedzieć się jak to " -"zrobić, przeczytaj ." - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "Wykonywanie innych akcji" - -#: Thunar.xml:243(para) -msgid "" -"To execute actions other than the default action for a file, select the file " -"that you want to perform an action on. Choose the desired action from the " -"Open With choices available in File " -"menu or an Open With submenu." -msgstr "" -"Aby wykonywać akcje inne niż domyślne dla danego pliku, zaznacz plik, który " -"chcesz obsłużyć. Następnie wybierz pożądaną akcję z podmenu Otwórz " -"za pomocą dostępnego w menu Plik lub w menu " -"kontekstowym." - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "Dodawanie akcji" - -#: Thunar.xml:253(para) -msgid "" -"To add actions associated with a file type, perform the following steps:" -msgstr "Aby dodać akcje powiązane z danym typem pliku, wykonaj poniższe kroki:" - -#: Thunar.xml:259(para) -msgid "" -"In the main area, select a file of the type to which you want to add an " -"action." -msgstr "W obszarze głównym zaznacz plik typu, którego akcje chcesz edytować." - -#: Thunar.xml:264(para) -msgid "" -"Choose FileOpen With Other " -"Application... from the main menu." -msgstr "" -"Wybierz PlikOtwórz za pomocą " -"innej aplikacji... z głównego menu." - -#: Thunar.xml:270(para) -msgid "" -"Either choose an application in the Open With dialog or " -"select Use a custom command and browse to the program " -"with which you wish to open this type." -msgstr "" -"Wybierz aplikację albo w oknie Otwórz za pomocą albo " -"wybierz Użyj polecenia użytkownika i przejdź do " -"programu którego chcesz używać do otwierania plików tego typu." - -#: Thunar.xml:277(para) -msgid "" -"The action you have chosen is now added to the list of actions for that " -"particular file type. If you enabled the Use as default for this " -"kind of file option or there was no prior action associated with " -"the type, the newly added action is the default." -msgstr "" -"Akcja, którą wybrałeś, jest teraz dodana do listy akcji dla plików tego " -"typu. Jeśli zaznaczyłeś opcję Ustaw jako domyślne dla tego typu " -"plików lub nie było poprzednio żadnej akcji powiązanej z tym " -"typem, nowo dodana akcja stanie się domyślną." - -#: Thunar.xml:283(para) -msgid "" -"You may also add actions using the Open With button " -"under FileProperties...." -msgstr "" -"Możesz także dodawać akcje używając przycisku Otwórz za pomocą w menu PlikWłaściwości...." - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "Modyfikowanie akcji" - -#: Thunar.xml:292(para) -msgid "" -"To modify the actions associated with a file or file type, perform the " -"following steps:" -msgstr "" -"Aby zmodyfikować akcje powiązane z plikiem lub z typem plików, wykonaj " -"poniższe kroki:" - -#: Thunar.xml:298(para) -msgid "" -"In the main area, select a file of the type for which you want to modify the " -"action." -msgstr "" -"W obszarze głównym, wybierz plik typu, którego akcje chcesz modyfikować." - -#: Thunar.xml:303(para) Thunar.xml:383(para) -msgid "" -"Choose FileProperties... from the main menu." -msgstr "" -"Wybierz PlikWłaściwości... z głównego menu." - -#: Thunar.xml:308(para) -msgid "" -"Select the new default action using the Open With " -"button or add a new action by choosing Open With Other " -"Application... from the drop down menu." -msgstr "" -"Wybierz nową domyślną akcję używając przycisku Otwórz za pomocą albo dodaj nową akcję wybierając Inna aplikacja... z rozwijanego menu." - -#: Thunar.xml:315(para) -msgid "" -"To remove a previously added action for a file type, bring up the " -"Open With dialog as described above, right-click the " -"action you want to remove and choose Remove Launcher." -msgstr "" -"Aby usunąć poprzednio dodaną akcję dla typu pliku, przywołaj okno " -"Otwórz za pomocą jak opisano powyżej, kliknij prawym " -"przyciskiem myszy akcję którą chcesz usunąć i wybierz Usuń " -"aktywator." - -#: Thunar.xml:324(title) Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "Właściwości pliku" - -#: Thunar.xml:326(para) -msgid "" -"The file properties window shows more information about any file or folder " -"in the file manager. With this window, you can also do the following:" -msgstr "" -"Okno właściwości pliku pokazuje więcej informacji o każdym pliku i katalogu " -"w menedżerze plików. W tym oknie możesz także:" - -#: Thunar.xml:333(para) -msgid "" -"Change the icon for special files, such as application launchers and URL " -"links." -msgstr "" -"Zmieniać ikony dla plików specjalnych, takich jak wyzwalacze aplikacji i " -"łącza URL." - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "Dodawać i usuwać emblematy dla plików i folderów." - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "Zmieniać uprawnienia systemu UNIX dla plików lub folderów." - -#: Thunar.xml:348(para) -msgid "" -"Choose which application is used to open a file and other files of the same " -"type." -msgstr "" -"Wybrać aplikację używaną do otwierania tego pliku i innych plików tego typu." - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "Aby otworzyć okno właściwości pliku, wykonaj poniższe czynności:" - -#: Thunar.xml:372(para) -msgid "" -"Select the file or folder whose properties you want to examine or change. " -"You cannot select multiple items at once and display the properties that are " -"in common to all items currently." -msgstr "" -"Zaznacz plik lub folder, którego właściwości chcesz sprawdzić lub zmienić. " -"Obecnie nie możesz zaznaczyć wielu elementów jednocześnie i wyświetlić " -"właściwości, które są wspólne." - -#: Thunar.xml:386(para) -msgid "" -"Right-click the selected item and choose Properties... from the context menu." -msgstr "" -"Kliknij prawym przyciskiem myszy zaznaczony element i wybierz " -"Właściwości... z menu kontekstowego." - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "" -"Wciśnij AltEnter." - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "Zrób jedno z poniższych: " - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "Używanie nośników wymiennych" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "Dostęp do nośników wymiennych" - -#: Thunar.xml:405(para) -msgid "" -"Thunar supports removable media if it was built with support for HAL, or " -"if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is " -"suggested to use HAL rather than the native support provided by Thunar." -msgstr "" -"Thunar wspiera nośniki wymienne, jeśli został zbudowany z obsługą HAL " -"lub jeśli używasz FreeBSD. Jednakże na FreeBSD 6.0 i nowszych lepiej jest używać " -"HAL niż natywnego wsparcia oferowanego przez Thunara." - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "Montowanie nośników" - -#: Thunar.xml:414(para) -msgid "" -"To mount media is to make the file system of the media " -"available for access. When you mount media, the file system of the media is " -"attached as a subdirectory to your file system." -msgstr "" -"Zamontować to znaczy uczynić system plików na nośniku " -"dostępnym. Kiedy montujesz nośnik, system plików który się na nim znajduje " -"jest podłączany jako podkatalog do twojego systemu plików." - -#: Thunar.xml:419(para) -msgid "" -"To access media, insert the media in the appropriate device, or connect the " -"new device to your computer (i.e. connect an USB stick to one of your USB " -"ports). An object that represents the media is added to the side pane of the " -"file manager. If xfdesktop is running and " -"configured to display File/launcher icons this object " -"will also be added to your desktop." -msgstr "" -"Aby uzyskać dostęp do nośnika, umieść nośnik w odpowiednim urządzeniu lub " -"podłącz urządzenie do twojego komputera (tj. podłącz PenDrive do jednego z " -"twoich portów USB). Element reprezentujący nośnik zostanie dodany do " -"bocznego panelu menedżera plików. Jeśli xfdesktop " -"jest uruchomiony i skonfigurowany tak, aby wyświetlać ikony plików " -"i wyzwalaczy, to ten obiekt także zostanie dodany do twojego " -"pulpitu." - -#: Thunar.xml:426(para) -msgid "" -"To actually mount the media, click on the object that represents the media. " -"For example, to mount a floppy diskette, click on the Floppy " -"Drive object in the side pane. The file manager will now add the " -"file system of the media to your file system hierarchy and display the " -"contents of the floppy diskette in the main area." -msgstr "" -"Aby zamontować nośnik, kliknij na reprezentujący go obiekt. Na przykład aby " -"zamontować dyskietkę, kliknij na obiekt Stacja Dyskietek znajdujący się w panelu bocznym. Menedżer plików doda system " -"plików na nośniku do hierarchii twojego systemu plików i wyświetli zawartość " -"dyskietki w obszarze głównym." - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "Wysuwanie nośników" - -#: Thunar.xml:436(para) -msgid "" -"If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-" -"click on the media object in the side pane or on the desktop and choose " -"Eject Volume. The media is ejected from the drive after " -"a few seconds. If the drive for the media is not motorized (i.e. a floppy " -"drive or an USB stick), right-click on the media object and choose " -"Unmount Volume. After a short period of time, a " -"notification will appear to inform you that it is now safe to remove the " -"media or disconnect the drive from the computer." -msgstr "" -"Jeśli stacja (napęd) nośnika jest motoryczny (np. napęd CD-ROM), kliknij " -"prawym przyciskiem myszy na obiekcie nośnika w bocznym panelu lub na " -"pulpicie i wybierz Wysuń. Nośnik zostanie wysunięty z " -"napędu po kilku sekundach. Jeśli napęd nośnika nie jest motoryczny (np. " -"stacja dyskietek lub PenDrive), kliknij prawym przyciskiem myszy na obiekcie " -"nośnika i wybierz Odmontuj. Po chwili pojawi się " -"powiadomienie o możliwości bzepiecznego odłączenia napędu (lub wyciągnięcia " -"nośnika)." - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "Powiadomienie o odmontowaniu" - -#: Thunar.xml:456(para) -msgid "" -"However this notification will only be displayed if support for " -"libnotify is enabled, and you have installed a " -"notification daemon. A notification daemon for Xfce is available from the " -"Xfce Goodies Project. If notification " -"support is not available, wait until the context menu disappears before you " -"remove the media or disconnect the drive." -msgstr "" -"To powiadomienie pojawi się tylko wtedy, jeśli została włączona obsługa " -"libnotify i został zainstalowany demon " -"powiadomień. Demon powiadomień dla Xfce jest dostępny z Projektu Xfce Goodies. Jeśli nie ma obsługi powiadomień, poczekaj " -"aż menu kontekstowe zniknie, zanim odłączysz napęd lub wyciągniesz nośnik." - -#: Thunar.xml:464(para) -msgid "" -"Be aware that you cannot eject or unmount media that is still in use by one " -"or more applications. Therefore if the file manager refuses to eject media, " -"make sure you close all applications that were accessing the media, and be " -"sure to also check command line applications running in " -"Terminal windows." -msgstr "" -"Pamiętaj, że nie możesz wysunąć lub odmontować nośnika jeśli jest on ciągle " -"używany przez jedną lub więcej aplikacji. Jeśli menedżer plików odmówi " -"odmontowania nośnika, upewnij się, że zamknąłeś wszystkie aplikacje, które " -"mogły go używać. Sprawdź także programy linii poleceń uruchamiane w oknach " -"Terminala." - -#: Thunar.xml:470(para) -msgid "" -"Make sure to unmount removable media before ejecting. Do not eject a " -"diskette from the floppy drive before your unmount the diskette. Do not " -"remove an USB stick before you unmount the flash drive. If you do not " -"unmount the media first you might lose data or cause your system to crash." -msgstr "" -"Upewnij się, że odmontowałeś wymienne nośniki przed ich fizycznym usunięciem " -"z systemu. Nie wyciągaj dyskietki ze stacji dyskietek zanim jej nie " -"odmontujesz. Nie wyciągaj pamięci USB (np. PenDrive'ów) przed ich " -"odmontowaniem. Jeśli najpierw nie odmontujesz nośnika możesz stracić dane " -"lub uszkodzić system." - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "Zarządzanie wymiennymi nośnikami i napędami" - -#: Thunar.xml:481(para) -msgid "" -"Thunar is also able to automatically manage removable drives and media if " -"the thunar-volman package is installed on " -"your system. Note however that this feature requires HAL support." -msgstr "" -"Thunar może automatycznie zarządzać wymiennymi napędami i nośnikami jeśli " -"pakiet thunar-volman został " -"zainstalowany w systemie. Trzeba przy tym zauważyć, że ta opcja wymaga " -"wsparcia ze strony HAL." - -#: Thunar.xml:487(para) -msgid "" -"Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the " -"Volume Management feature of Thunar. Therefore, open " -"the file manager preferences, go to the Advanced page " -"and check the Enable Volume Management button." -msgstr "" -"Gdy wsparcie HAL jest już dostępne, a thunar-volman zainstalowany, możesz uaktywnić opcję Menedżera " -"woluminów w Thunarze. Aby to zrobić otwórz okno preferencji " -"menedżera plików, przejdź do karty Zaawansowane i " -"zaznacz pole Włącz menedżera woluminów" - -#: Thunar.xml:494(para) -msgid "" -"The next step is to customize the management of removable drives and media " -"to your needs. Click on the Configure link in the " -"Volume Management section, right below the button. The " -"Removable Drives and Media configuration dialog will be " -"displayed." -msgstr "" -"Kolejnym krokiem jest dostosowanie sposobu zarządzania napędami i nośnikami " -"do twoich potrzeb. Kliknij łącze Konfiguruj w sekcji " -"Menedżer Woluminów. Zostanie wyświetlone okno dialogowe " -"Wymienne napędy i nośniki." - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "Wymienne napędy i nośniki" - -#: Thunar.xml:512(para) -msgid "" -"If you have used the gnome-volume-manager " -"previously, you should feel right at home, because it was designed to look " -"and behave similar to gnome-volume-manager. The " -"preferences are divided by device categories to make it easy to locate the " -"option for you specific device." -msgstr "" -"Jeśli poprzednio używałeś gnome-volume-manager, " -"pownieneś poczuć się jak w domu, ponieważ menedżer woluminów został " -"zaprojektowany z myślą o podobieństwie w wyglądzie i zachowaniu do " -"gnome-volume-manager. Preferencje zostały " -"podzielone na kategorie, aby ułatwić odnalezienie odpowiedniej opcji do " -"konkretnego urządzenia." - -#: Thunar.xml:519(para) -msgid "" -"The Storage page contains the most important options. " -"As the name suggests these options apply only to storage devices like " -"external harddisk drives, USB sticks and CD-ROMs. The Removable " -"Storage options are described in detail below." -msgstr "" -"Karta Pamięć zawiera najważniejsze opcje. Jak sugeruje " -"nazwa, opcje te odnoszą się tylko do pamięci przenośnych, jak zewnętrzne " -"dyski twarde, PenDrive'y czy płyty CD-ROM. Opcje sekcji Pamięć " -"wymienna zostały szczegółowo opisane poniżej." - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Montuj napędy wymienne przy podłączaniu" - -#: Thunar.xml:529(para) -msgid "" -"Enable this option to automatically mount file systems on removable drives " -"(i.e. external harddisk drives or USB sticks) when such drives are plugged " -"into the computer." -msgstr "" -"Uaktywnij tą opcję, aby automatycznie zamontować systemy plików na napędach " -"wymiennych (np. zewnętrznych dyskach twardych lub PenDrive'ach) kiedy tylko " -"zostaną podłączone do komputera." - -#: Thunar.xml:533(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable drives. For example, if you disable this option, certain kinds of " -"portable music players cannot be detected any more and so, even if you " -"enabled the Play music files when connected option on " -"the Multimedia page, the specified command will not be " -"run when you hot-plug your portable music player." -msgstr "" -"Ta opcja musi być włączona aby działały inne funkcje operujące na nośnikach " -"wymiennych. Przykładowo, jeśli wyłączysz tą opcję, pewne rodzaje przenośnych " -"odtwarzaczy muzyki nie będą mogły być rozpoznane. Nawet gdy włączysz opcję " -"Odtwarzaj muzykę przy podłączaniu na karcie " -"Multimedia, określone polecenie nie zostanie " -"uruchomione." - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Montuj wymienne nośniki przy wkładaniu" - -#: Thunar.xml:546(para) -msgid "" -"Enable this option to automatically mount file systems on removable media (i." -"e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" -"Uaktywnij tą opcję, aby automatycznie montować systemy plików na wymiennych " -"nośnikach (np. płytach CD-ROM lub DVD) kiedy włożysz je do napędu." - -#: Thunar.xml:550(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable media. For example, if you disable this option, it is impossible " -"to detect whether the removable media has auto-run capabilities, and so the " -"Auto-run programs on new drives and media option has no " -"effect for removable media." -msgstr "" -"Ta opcja musi być włączona aby działały inne funkcje operujące na nośnikach " -"wymiennych. Przykładowo, jeśli wyłączysz tą opcję, nie będzie możliwe " -"sprawdzenie, czy nośnik posiada możliwość autouruchamiania. Tym samym opcja " -"Automatycznie uruchamiaj programy na nowych napędach i nośnikach nie będzie działać." - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Przeglądaj wymienne nośniki przy wkładaniu" - -#: Thunar.xml:562(para) -msgid "" -"Enable this option to automatically display the content of newly inserted " -"media in the file manager. Note however, that the contents will only be " -"displayed if no other action was possible or you choose to ignore the other " -"possible actions. For example, if you insert a CD-ROM with auto-run " -"capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow " -"or ignore the auto-run. If you choose to ignore the auto-run the contents " -"will be displayed in the file manager." -msgstr "" -"Uaktywnij tą opcję aby automatycznie wyświetlać zawartość nowo podłączonych " -"nośników w menedżerze plików. Zauważ jednakże, że stanie się tak tylko " -"wtedy, gdy nie będzie możliwe wykonanie żadnej innej akcji lub wybrałeś " -"ignorowanie innych możliwych akcji. Przykładowo jeśli umieścisz płytę CD-ROM " -"z autostartem, a opcja Automatycznie otwieraj programy na nowych " -"napędach i nośnikach jest aktywna, zostaniesz zapytany, czy " -"umożliwić autostart. Jeśli odmówisz, zawartość nośnika zostanie wyświetlona " -"w menedżerze plików." - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Automatycznie otwieraj programy na nowych napędach i nośnikach" - -#: Thunar.xml:576(para) -msgid "" -"Enable this option to make use of auto-run capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-run mechanism. To " -"enhance security, you will always be prompted to confirm the auto-run." -msgstr "" -"Uaktywnij tą opcję aby skorzystać z opcji autostartu niektórych wymiennych " -"nośników i napędów. Zobacz Desktop Application " -"Autostart Specification, aby dowiedzieć się szczegółów na temat " -"mechanizmu autostartu. Aby zapewnić bezpieczeństwo, zostaniesz za każdym " -"razem poproszony o potwierdzenie autostartu." - -#: Thunar.xml:582(para) -msgid "" -"If the Windows emulator WINE is installed on your system, the auto-run mechanism will " -"also try to run autorun.exe files using WINE." -msgstr "" -"Jeśli emulator Windowsa, WINE, został zainstalowany w twoim systemie, mechanizm " -"autouruchamiania będzie próbował także uruchomiać pliki autorun." -"exe używając WINE." - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "Automatycznie otwieraj pliki na nowych napędach i nośnikach" - -#: Thunar.xml:592(para) -msgid "" -"Enable this option to make of auto-open capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-open mechanism. " -"To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" -"Uaktywnij tą opcję, aby skorzystać z możliwości automatycznego otwierania " -"niektórych napędów i nośników. Zobacz Desktop " -"Application Autostart Specification, aby dowiedzieć się szczegółów " -"na temat mechanizmu autootwierania. W trosce o bezpieczeństwo zostaniesz za " -"każdym razem poproszony o potwierdzenie automatycznego otwierania." - -#: Thunar.xml:602(para) -msgid "" -"The remaining options allow you to specify a command to run when a certain " -"kind of media is inserted into a drive or a certain kind of external device " -"is connected. The command can use three special variables, that will be " -"substituted when the command is run:" -msgstr "" -"Pozostałe opcje pozwolą ci na określenie poleceń do uruchomienia przy " -"podłączaniu pewnych zewnętrznych urządzeń czy wymiennych nośników. Polecenia " -"mogą używać trzech specjalnych zmiennych, które zostaną zastąpione podczas " -"uruchamiania polecenia:" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml:612(para) -msgid "" -"Each appearance of %d in the command will be substituted " -"with the device file path of the newly added device. For example, if you " -"have plugged in an USB stick, the device file path will be /dev/" -"da0s1 or /dev/sda1." -msgstr "" -"Każde wystąpienie %d w poleceniu zostanie zastąpione " -"ścieżką do nowo dodanego urządzenia. Przykładowo, jeśli podłączyłeś " -"PenDrive, ścieżka do urządzenia będzie /dev/da0s1 lub " -"/dev/sda1." - -#: Thunar.xml:617(para) -msgid "" -"If no device file is associated with the device or the device file could not " -"be found for some reason, the variable %d will be " -"substituted with the empty string." -msgstr "" -"Jeśli żaden plik urządzenia nie jest powiązany z urządzeniem lub z pewnych " -"względów plik urządzenia nie może zostać odnaleziony, zmienna %d zostanie zastąpiona pustym napisem." - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml:627(para) -msgid "" -"Each appearance of %h in the command will be substituted " -"with the HAL UDI of the newly added device." -msgstr "" -"Każde wystąpienie %h w poleceniu zostanie zastąpione " -"przez UDI nowo dodanego urządzenia w systemie HAL." - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml:637(para) -msgid "" -"Each appearance of %m in the command will be substituted " -"with the mount point where the newly added device was mounted. If the device " -"cannot be mounted (for example printers or keyboards) or if the automatic " -"mounting was disabled, %m will be substituted with the " -"empty string." -msgstr "" -"Każde wystąpienie %m w poleceniu zostanie zastąpione " -"punktem montowania nowo dodanego urządzenia. Jeśli urządzenie nie może być " -"zamontowane (np. drukarki lub klawiatury) lub jeśli automatyczne montowanie " -"zostało wyłączone, %m zostanie zastąpione pustym napisem." - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "Rozwiązywanie problemów z Menedżerem Woluminów" - -#: Thunar.xml:650(para) -msgid "" -"Useful tips to trouble shoot the volume manager in case it does not work as " -"expected." -msgstr "" -"Porady użyteczne przy rozwiązywaniu problemów z menedżerem woluminów jeśli " -"nie działa on tak, jak oczekiwano." - -#: Thunar.xml:656(para) -msgid "" -"Make sure Thunar is running as daemon. The volume " -"manager depends on this, as it is not a daemon by itself. By default, Xfce " -"automatically spawns Thunar as daemon on startup. " -"If it got killed for some reason, open the Run program " -"(using the keyboard shortcut AltF2 or right-click on the desktop and choose Run " -"Program... from the desktop menu), enter Thunar --" -"daemon and click Run." -msgstr "" -"Upewnij się, że Thunar jest uruchomiony jako " -"demon. Menedżer woluminów wymaga tego, jako że sam w sobie nie jest demonem. " -"Domyślnie Xfce automatycznie uruchamia Thunara " -"jako demon przy starcie. Jeśli z jakiegoś powodu jego proces został " -"zakończony, otwórz Uruchom program (używając skrótu " -"AltF2 lub klikając " -"prawym przyciskiem myszy na pulpit i wybierając Uruchom Program..." -" z menu), wprowadź Thunar --daemon i kliknij " -"Uruchom." - -#: Thunar.xml:668(para) -msgid "" -"Try running thunar-volman from a " -"Terminal window after hot-plugging the drive or " -"inserting the media. First, you need to figure out the HAL UDI of the new " -"device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-" -"added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" -"Spróbuj uruchomić thunar-volman z okna " -"Terminala po podłączeniu napędu lub włożeniu " -"nośnika. Najpierw musisz poznać HALowe UDI nowego urządzenia używając " -"lshal lub hal-device. " -"Jeśli już znasz UDI, uruchom thunar-volman --device-added <udi-" -"twojego-urządzenia> w oknie Terminala i obserwuj komunikaty wyjściowe szukając błędów i ostrzeżeń." - -#: Thunar.xml:678(para) -msgid "" -"If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing " -"list for help." -msgstr "" -"Jeśli problem nadal istnieje, poproś o pomoc na Forum Xfce lub liście mailingowej " -"thunar-dev." - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "Ustawienia menedżera plików" - -#: Thunar.xml:691(para) -msgid "" -"Use the File Manager Preferences dialog to set your " -"Thunar file manager preferences. To open the " -"preferences dialog, choose EditPreferences... from the menu " -"bar, or click on the File Manager button in the Xfce " -"Settings Manager." -msgstr "" -"Za pomocą okna dialogowego Ustawienia menedżera plików " -"możesz zmieniać ustawienia menedżera plików Thunar. Aby otworzyć okno ustawień, wybierz " -"EdycjaPreferencje... z głównego menu lub kliknij Menedżer " -"plików w Menedżerze Ustawień Xfce." - -#: Thunar.xml:697(para) -msgid "" -"The File Manager Preferences dialog is divided into " -"four pages with different options, each described in a separate section " -"below. Basically you can set preferences in the following categories:" -msgstr "" -"Okno Ustawienia menedżera plików jest podzielone na " -"cztery karty z różnymi opcjami, każdą z nich opisano w oddzielnej sekcji " -"poniżej. Najprościej rzecz ujmując, możesz ustawić preferencje w poniższych " -"kategoriach:" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "Domyślne ustawienia widoku." - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "Domyślne ustawienia panelu bocznego." - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "Zachowanie okien menedżera plików." - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "Zaawansowane funkcje menedżera plików." - -#: Thunar.xml:709(para) -msgid "" -"Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but " -"are not included in the preferences in order to keep the preferences dialog " -"simple. The README.thunarrc " -"file that is included with the Thunar distribution describes all available " -"options in detail." -msgstr "" -"Thunar wspiera także zestaw tzw. Ukrytych Opcji. " -"Kontrolują one pewne zaawansowane aspekty menedżera plików. Nie są one " -"widoczne w oknie preferencji, by nie komplikować jego wyglądu. Plik README.thunarrc dołączony do " -"dystrybucji Thunara opisuje dostępne opcje szczegółowo." - -#: Thunar.xml:718(title) Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "Ustawienia widoku" - -#: Thunar.xml:720(para) -msgid "" -"You can specify a default view, select sort options and display options. You " -"can also specify whether thumbnails should be displayed for file types that " -"support this." -msgstr "" -"Możesz określić domyślny widok, zaznaczyć opcje sortowania i wyświetlania. " -"Możesz takżę określić, czy miniaturki powinny być wyświetlane dla " -"obsługiwanych plików." - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "Pokazuj nowe foldery używając" - -#: Thunar.xml:742(para) -msgid "" -"Select the default view for folders. When you open a new window, the is " -"displayed in the view that you select. This can be either the icon view, the " -"compact list view or the detailed list view. You can also select " -"Last Active View here to use the view you used for the " -"last active window." -msgstr "" -"Wybierz domyślny widok folderów. Kiedy otworzysz nowe okno, zostanie ono " -"wyświetlone w widoku, jaki wybierzesz. Może być to widok ikon, listy " -"kompaktowej lub listy szczegółowej. Możesz także wybrać Ostatnio " -"aktywne, aby używać widoku takiego samego jak w ostatnim aktywnym " -"oknie." - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "Sortuj foldery przed plikami" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "" -"Wybierz tę opcję, aby listować foldery przed plikami podczas sortowania " -"zawartości katalogu." - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "Pokaż miniatury" - -#: Thunar.xml:763(para) -msgid "" -"Select this option to show thumbnails of image files and other supported " -"files. The file manager stores the thumbnail files for each folder in the " -"hidden .thumbnails directory in the " -"user's Home Folder." -msgstr "" -"Wybierz tę opcję, aby pokazywać miniatury obrazów i inych wspieranych " -"formatów plików. Menedżer plików przechowuje pliki miniatur dla każdego " -"folderu w ukrytym katalogu .thumbnails w twoim katalogu domowym." - -#: Thunar.xml:768(para) -msgid "" -"See if you want to extend the basic " -"thumbnail functionality provided by Thunar with " -"support for additional file types." -msgstr "" -"Jeśli chcesz rozszerzyć podstawową funkcjonalność generowania miniatur " -"oferowaną przez Thunara o dodatkowe formaty " -"plików, zobacz ." - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "Tekst obok ikon" - -#: Thunar.xml:779(para) -msgid "" -"Select this options to place the icon captions for items in the icon view " -"beside the icon rather than under the icon." -msgstr "" -"Zaznacz tą opcję, aby etykiety ikon znajdywały się obok nich, a nie pod " -"(dotyczy widoku ikon)." - -#: Thunar.xml:790(title) Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "Ustawienia panelu bocznego" - -#: Thunar.xml:792(para) -msgid "" -"You can select display options for the shortcuts pane and the tree pane." -msgstr "Możesz wybrać opcje wyświetlania dla panelu skrótów i panelu drzewa." - -#: Thunar.xml:808(para) -msgid "" -"The side pane can either display a list of shortcuts for folders in your " -"file system, which is the default, or a tree view of your file system. This " -"page allows you to select the size of the icons for the shortcuts and the " -"tree pane. You can also specify whether emblems should be displayed." -msgstr "" -"Panel boczny może wyświetlać albo listę skrótów do folderów w twoim " -"systemie plików (domyślne), albo drzewo twojego systemu plików. Ta karta " -"umożliwia ci wybranie rozmiaru ikon dla skrótów i panelu drzewa. Możesz " -"także okreslić, czy powinny być wyświetlane emblematy." - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "Rozmiar ikon" - -#: Thunar.xml:819(para) -msgid "" -"The size of the icons displayed in the side, ranging from Very " -"Small (around 16x16 pixels) to Very Large " -"(around 128x128 pixels)." -msgstr "" -"Rozmiar ikon wyświetlanych w panelu może przyjmować wartości od " -"Bardzo mały (ok. 16x16 pikseli) do Bardzo " -"duży (ok. 128x128 pikseli)." - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "Pokazuj emblematy ikon" - -#: Thunar.xml:829(para) -msgid "" -"Select this option to display emblems for folders in the side pane. You can " -"assign emblems to folders in the Properties dialog. " -"Select a folder in the main area and choose FileProperties... from the main " -"menu, or right-click the folder and select " -"Properties... from the " -"context menu." -msgstr "" -"Zaznacz tą opcję aby wyświetlać emblematy dla folderów w panelu bocznym. " -"Możesz przypisać emblematy do folderów w oknie dialogowym " -"Właściwości. Zaznacz folder w obszarze głównym i " -"wybierz PlikWłaściwości... z głównego menu lub kliknij prawym przyciskiem " -"myszy i wybierz Właściwości... z menu kontekstowego." - -#: Thunar.xml:843(title) Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "Ustawienia zachowania" - -#: Thunar.xml:845(para) -msgid "" -"You can select the preferred behavior to interact with the file manager." -msgstr "Możesz wybrać preferowany sposób komunikacji z menedżerem plików" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "Pojedyncze kliknięcie aktywuje" - -#: Thunar.xml:865(para) -msgid "" -"Select this option to perform the default action for an item when you click " -"on the item. When this option is selected, and you point to an item, the " -"title of the item is underlined and the item will be selected automatically " -"after a short delay." -msgstr "" -"Wybierz tą opcję aby wykonać domyślną akcję dla elementu przy pojedynczym " -"kliknięciu. Kiedy ta opcja jest zaznaczona i wskażesz na element, jego tytuł " -"zostanie podkreślony a element zostanie automatycznie zaznaczony po krótkim " -"opóźnieniu czasowym." - -#: Thunar.xml:871(para) -msgid "" -"This delay can be configured below the option. You can also disable the " -"automatic selection of items by moving the selector to the left-most " -"position." -msgstr "" -"To opóźnienie może być regulowane za pomocą suwaka poniżej. Możesz także " -"wyłączyć automatyczne zaznaczanie elementów, przesuwając suwak maksymalnie " -"do lewej." - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "Podwójne kliknięcie aktywuje" - -#: Thunar.xml:882(para) -msgid "" -"Select this option to perform the default action for an item when you double " -"click on the item, and select the item with a single click." -msgstr "" -"Zaznacz tą opcję, aby wykonać domyślną akcję dla elementu kiedy klikniesz na " -"niego podwójnie. W tym przypadku pojedyncze kliknięcie spowoduje zaznaczenie " -"elementu." - -#: Thunar.xml:893(title) Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "Zaawansowane ustawienia" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "Możesz kontrolować zaawansowane opcje menedżera plików." - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "Prawa dostępu katalogów" - -#: Thunar.xml:915(para) -msgid "" -"Choose the action that should be performed when you change the permissions " -"of a folder in the Properties dialog. You can choose to " -"let Thunar ask everytime when you change folder " -"permissions, tell it to default to applying the new permissions to the " -"folder only or to apply them recursively to the folder contents as well." -msgstr "" -"Wybierz sposób zmieniania uprawnień w oknie dialogowym " -"Właściwości. Możesz nakazać Thunarowi: pytać za każdym razem gdy zmieniasz uprawnienia katalogów, " -"stosować nowe prawa dostępu tylko do wybranego katalogu lub stosować nowe " -"prawa dostępu rekurencyjnie do wszystkich podkatalogów." - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "Menedżer Woluminów" - -#: Thunar.xml:927(para) -msgid "" -"If Thunar was installed with support for HAL and " -"the thunar-volman package is also installed, you " -"can enable the integrated volume manager. See for details about this feature." -msgstr "" -"Jeśli Thunar został zainstalowany z obsługą HAL i " -"jest zainstalowany thunar-volman, możesz " -"uaktywnić zintegrowanego menedżera woluminów. Aby dowiedzieć się szczegółów " -"na ten temat, zobacz ." - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "Dostosowywanie Thunara" - -#: Thunar.xml:942(para) -msgid "" -"This chapter describes how to customize certain parts of the file manager to " -"your own needs." -msgstr "" -"Ten rozdział opisuje, jak dostosować pewne części menedżera plików do twoich " -"własnych potrzeb." - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "Menu \"Wyślij do\"" - -#: Thunar.xml:950(para) -msgid "" -"Thunar includes a Send To menu, which provides possible " -"targets where files and folders can be sent to. To access the Send " -"To menu, choose FileSend To from the main menu, " -"or right-click on a file or folder and choose Send " -"To." -msgstr "" -"Thunar zawiera menu Wyślij do, zawierające pewne " -"miejsca docelowe, do których można wysyłać pliki i foldery. Aby uzyskać " -"dostęp do menu Wyślij do, wybierz " -"PlikWyślij do z głównego menu lub kliknij prawym przyciskiem myszy na pliku " -"lub folderze, po czym wybierz Wyślij do." - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "Menu \"Wyślij do\"" - -#: Thunar.xml:969(para) -msgid "" -"By default, the Send To menu includes an entry named " -"Desktop (Create Link) for all files and folders, which " -"simply creates a link on the desktop for each selected file. In addition, if " -"the Shortcuts Pane is active, the menu also includes an " -"entry called Side Pane (Create Shortcut) for folders, " -"which allows users to add new shortcuts to the side pane. Following these " -"entries, Thunar lists the removable drives " -"currently plugged into the computer. In the screenshot above, the " -"Floppy Drive represents a possible target where files " -"can be sent to. Note that the device is mounted automatically once selected " -"from the Send To menu, so you do not need to manually " -"mount it." -msgstr "" -"Domyślnie menu Wyślij do zawiera pozycję zwaną " -"Pulpit (utwórz łącze) dostępną dla wszystkich plików i " -"folderów. Tworzy ona łącze na pulpicie do każdego zaznaczonego pliku. Poza " -"tym, jeśli Panel skrótów jest aktywny, menu zawiera " -"także pozycję Panel boczny (utwórz skrót), który " -"umożliwia użytkownikom dodawanie nowych skrótów do panelu bocznego (opcja ta " -"dotyczy tylko katalogów). Poniżej tych dwóch pozycji, Thunar wyświetla listę napędów wymiennych aktualnie podłączonych do " -"komputera. W zrzucie ekranu powyżej, Stacja dyskietek " -"reprezentuje przykładowy punkt docelowy, dokąd mogą zostać wysłane pliki. " -"Zauważ, że urządzenia są montowane automatycznie przy wybieraniu ich z menu " -"Wyślij do, tak więc nie musisz montować ich ręcznie." - -#: Thunar.xml:979(para) -msgid "" -"In addition Thunar also ships the " -"thunar-sendto-email plugin, which adds the entry " -"Mail Recipient to the menu, that opens the mail " -"composer with the selected files attach to the new email. If the selection " -"contains atleast one folder, the selected items are added to a ZIP archive " -"before attaching them to the email. Otherwise, if the selection contains " -"multiple files, or a single file, which is larger than 200Kib, the user will " -"be prompted whether to pack the files into a ZIP archive, and send the ZIP " -"archive." -msgstr "" -"Poza tym Thunar oferuje wtyczkę " -"thunar-sendto-email, która dodaje do menu pozycję " -"Odbiorca poczty elektronicznej, otwierającą program " -"pocztowy z zaznaczonymi plikami dołączonymi do nowo utworzonego e-maila. " -"Jeśli zaznaczenie zawiera co najmniej jeden folder, zaznaczone elementy są " -"dodawane do archiwum ZIP przed załączaniem ich do wiadomości. W przeciwnym " -"wypadku, jeśli zaznaczenie zawiera wiele plików (lub jeden większy niż " -"200Kib), użytkownik zostanie zapytany, czy pakować pliki do archiwum ZIP i " -"wysłać jako archiwum." - -#: Thunar.xml:987(para) -msgid "" -"Like most other features of Thunar, the " -"Send to menu can be easily extended by users and " -"application developers with new targets, using standard desktop entry files. These files must be installed into one of " -"the $XDG_DATA_DIRS/Thunar/sendto/ " -"folders (see the XDG Base Directory Specification for " -"details about the $XDG_DATA_DIRS variable)." -msgstr "" -"Jak większość innych opcji Thunara, menu " -"Wyślij do może być łatwo rozszerzane przez użytkowników " -"i programistów o nowe miejsca docelowe, używając standardowych plików elementów pulpitu. Pliki te muszą zostać zainstalowane do " -"jednego z folderów $XDG_DATA_DIRS/Thunar/sendto/" -" (zobacz XDG Base Directory Specification - " -"szczegóły na temat zmiennej $XDG_DATA_DIRS)." - -#: Thunar.xml:996(para) -msgid "" -"The MimeType of the target .desktop " -"specifies the types of files for which this action should be available in " -"the Send To menu. For example, say you want to add " -"entry for a Flickr " -"uploader tool, then this entry should only show up if the selection contains " -"JPEG files (other file formats are not supported by Flickr) and so you " -"should add a line MimeType=image/jpeg;. If you do not " -"specify any MimeType your entry will show up for all file " -"types." -msgstr "" -"MimeType w pliku .desktop określa " -"typy plików, dla których ta akcja powinna być dostępna w menu " -"Wyślij do. Przykładowo: powiedzmy, że chcesz dodać " -"pozycję dla narzędzia uploadu Flickr. W takim przypadku ten wpis powinien pojawić się tylko, " -"jeśli zaznaczenie zawiera pliki JPEG (inne formaty nie są wspierane przez " -"Flickr). Wobec tego powinieneś dodać linię MimeType=image/jpeg;. Jeśli nie określisz żadnego MimeType twój wpis " -"będzie pojawiał się dla plików wszystkich typów." - -#: Thunar.xml:1004(para) -msgid "" -"A complete example using the postr application is " -"shown below:" -msgstr "" -"Kompletny przykład używania aplikacji postr " -"pokazano poniżej:" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Zintegruj postr\n" -"# w menu \"Wyślij do\".\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml:1021(para) -msgid "" -"If you install this file to ~/.local/share/" -"Thunar/sendto/ (create the folder if it does not exist yet), the " -"Send To menu for JPEG files will show the new entry " -"Flickr, which can be used to upload JPEG images to " -"Flickr." -msgstr "" -"Jeśli umieścisz ten plik w ~/.local/share/" -"Thunar/sendto/ (jeśli ten katalog nie istnieje - utwórz go), menu " -"Wyślij do będzie zawierać nowy wpis Flickr, który będzie mógł być używany do wgrywania obrazów JPEG do Flickr." - -#: Thunar.xml:1027(para) -msgid "" -"The Thunar Project Wiki contains additional examples of " -"useful targets for the Send To menu. Feel free to " -"extend the Wiki page with new examples." -msgstr "" -"Wiki Projektu Thunar zawiera dodatkowe przykłady " -"użytecznych celów dla menu Wyślij do. Ty także możesz " -"uzupełniać strony Wiki o nowe przykłady." - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "Generatory miniatur" - -#: Thunar.xml:1038(para) -msgid "" -"Thunar uses small utilities to create thumbnails of certain file types and " -"displays the thumbnails as preview of the file content. These small tools " -"are called thumbnailers. Thunar ships with thumbnailers for image and font " -"files, and makes use of the installed thumbnailers from GNOME automatically " -"if it was installed with support for gconf. Users may " -"however dynamically extend this basic functionality with thumbnailers for " -"additional file types." -msgstr "" -"Thunar używa małych narzędzi do generowania miniatur plików pewnych typów i " -"wyświetla miniatury jako podgląd zawartości pliku. Thunar jest dostarczany z " -"generatorami miniatur dla obrazów i plików czcionek i automatycznie używa " -"zainstalowanych generatorów GNOME, jeśli tylko został zainstalowany z " -"obsługą gconf. Użytkownicy mogą jednak dynamicznie " -"rozszerzać tą podstawową funkcjonalność generatorami miniatur dla plików " -"innych formatów." - -#: Thunar.xml:1045(para) -msgid "" -"If you plan to write a custom thumbnailers, you need to start with a program " -"that accepts atleast two command line parameters, the input file, which is " -"of the file type you plan to support and the output file, which is a PNG " -"file that complies with the format specified by the Thumbnail " -"Management Standard. Additionally your program may also accept the " -"desired size of the thumbnail, which is optional but highly recommended. If " -"you write the output file at an arbitrary image size, Thunar will afterwards " -"scale it to the desired size, which might produce a less optimal result than " -"generating the thumbnail with the requested dimensions." -msgstr "" -"Jeśli planujesz napisać własny generator miniatur, musisz zacząć od programu " -"przyjmującego co najmniej dwa parametry linii poleceń: plik wejściowy " -"(odpowiedniego typu) i plik wyjściowy (w formacie PNG, zgodnie ze Standardem Zarządzania Miniaturami). Poza tym twój program może " -"także akceptować pożądaną wielkość miniatury (opcjonalne, ale bardzo " -"zalecane). Jeśli twój program wygeneruje miniaturę niestandardowego " -"rozmiaru, Thunar przeskaluje ją zgodnie ze swoimi potrzebami, co może " -"pogorszyć jakość miniatury w stosunku do możliwego efektu przy jej poprawnym " -"generowaniu przez generator miniatur." - -#: Thunar.xml:1054(para) -msgid "" -"Once your utility to generate the thumbnails is done, you will need to " -"register your thumbnailer, so Thunar is able to locate and use it. Therefore " -"all you need to do is to install a description file for the thumbnailer (a " -".desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want " -"to register the thumbnailer for your user account only, you can install the " -"file into the folder ~/.local/share/" -"thumbnailers/. The .desktop for thumbnailers " -"has the following format." -msgstr "" -"Kiedy twoje narzędzie do generowania minatur będzie gotowe, będziesz musiał " -"je zarejestrować, aby Thunar mógł je zlokalizować i używać. Wszystko co " -"musisz zrobić, to zainstalować plik opisu generatora (plik ." -"desktop) w jednej z ścieżek " -"$XDG_DATA_DIRS/thumbnailers/. Przykładowo, jeśli chcesz " -"zarejestrować generator miniatur tylko dla twojego konta użytkownika w " -"systemie, możesz zainstalować plik do folderu ~/.local/share/thumbnailers/. Format plików ." -"desktop generatora miniatur został opisany poniżej." - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "Format pliku opisu generatorów miniatur" - -#: Thunar.xml:1065(para) -msgid "" -"Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new " -"field codes. Basically, a thumbnailer description file has the following " -"format." -msgstr "" -"Pliki opisu generatorów miniatur używają formatu plików " -"pulpitu z polem Type jako X-Thumbnailer i polem X-Thumbnailer-Exec z nowym kodem pola. " -"Podstawowy plik opisu ma poniższy format." - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Twój generator miniatur\n" -"MimeType=twoj-obslugiwany/typ-mime;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" - -#: Thunar.xml:1080(para) -msgid "" -"The Version and Encoding are mandated " -"by the Desktop Entry Specification, just use the values shown in the example " -"above. The Type field must have the special value " -"X-Thumbnailer, otherwise your thumbnailer will not be " -"recognized. The Name value describes your thumbnailer." -msgstr "" -"Pola Version i Encoding są narzucone " -"przez \"Desktop Entry Specification\", po prostu użyj wartości podanych w " -"przykładzie powyżej. Pole Type musi posiadać specjalną " -"wartość X-Thumbnailer. W przeciwnym wypadku twój " -"generator nie będzie rozpoznawany. Wartość Name opisuje " -"twój generator miniatur." - -#: Thunar.xml:1086(para) -msgid "" -"The X-Thumbnailer-Exec field contains the command to run " -"your thumbnailer, and supports certain field codes that will be substituted " -"when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" -"Pole X-Thumbnailer-Exec zawiera polecenie uruchamiające " -"twój generator i obsługuje pewne kody pól, pod które będą podstawiane różne " -"wartości podczas uruchamiania generatora. Poniższe kody są rozpoznawane:" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml:1095(para) -msgid "" -"The local path to the input file for which to create a thumbnail. May be " -"either a path relative to the directory from which the thumbnailer was " -"invoked or an absolute path." -msgstr "" -"Ścieżka do pliku, którego miniaturę należy utworzyć. Może być ścieżką " -"relatywną względem katalogu z którego generator został wywołany lub ścieżką " -"bezwzględną." - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml:1103(para) -#, fuzzy -msgid "" -"The local path to the output file where to store the generated thumbnail. " -"The output file must be written as valid PNG file according to the thumbnail " -"standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" -"Ścieżka do pliku wyjściowego, dokąd należy wygenerować miniaturę. Plik " -"wyjściowy musi być zgodny ze standardem PNG (patrz wyżej). Zauważ, że " -"ścieżka nie musi kończyć się na , co ma znaczenie jeśli " -"wywołujesz inne narzędzia." - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml:1112(para) -msgid "" -"The desired size of the generated thumbnail in pixels. This parameter is " -"optional." -msgstr "" -"Pożądany rozmiar generowanej miniatury w pikselach. Parametr opcjonalny." - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml:1119(para) -#, fuzzy -msgid "" -"Similar to %i, but substituted with the URI of the file, " -"rather than the path. This was added for compatibility with GNOME." -msgstr "" -"Podobne do , ale podstawiony przez URI pliku, a nie ścieżkę. " -"Dodane dla kompatybilności z GNOME." - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml:1127(para) -#, fuzzy -msgid "Will be substituted with a single %." -msgstr "Zastąpione przez pojedyncze ." - -#: Thunar.xml:1132(para) -msgid "" -"You need to include atleast %o and %i " -"or %u, otherwise your thumbnailer will be useless." -msgstr "" -"Musisz wziąć pod uwagę co najmniej %o i %i lub %u. W przeciwnym wypadku twój generator " -"będzie bezużyteczny." - -#: Thunar.xml:1137(para) -msgid "" -"The MimeType lists the MIME types - separated by " -"semicolon - for which your thumbnailer is able to create previews." -msgstr "" -"MimeType zawiera listę typów MIME (oddzielonych " -"przecinkiem) dla których twój generator potrafi generować miniatury." - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "Przykładowy generator EPS" - -#: Thunar.xml:1145(para) -msgid "" -"This example demonstrates how to write and install a new thumbnailer for " -".eps files, which uses the convert " -"utility that ships as part of ImageMagick. First, we start with a simple " -"script that invokes convert to generate a thumbnail at " -"the requested size." -msgstr "" -"Ten przykład ilustruje jak napisać i zainstalować nowy generator miniatur " -"dla plików .eps, używając narzędzia convert dostarczanego jako część pakietu ImageMagick. Najpierw zaczniemy od " -"prostego skryptu wywołującego convert, aby wygenerować " -"miniaturę pożądanego rozmiaru." - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - przykładowy generator miniatur plików EPS.\n" -"#\n" -"# Użycie: eps-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# parametry linii poleceń\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# wywołaj convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml:1167(para) -msgid "" -"Save this script above to a file eps-thumbnailer, make " -"sure the file is executable and install it to /" -"usr/local/bin." -msgstr "" -"Zapisz powyższy skrypt do pliku eps-thumbnailer, " -"upewnij się, że plik jest wykonywalny i zainstaluj go do /usr/local/bin." - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml:1176(para) -msgid "" -"Next we need to create the thumbnail description file eps-" -"thumbnailer.desktop, which looks like this:" -msgstr "" -"Teraz musimy utworzyć plik opisu generatora miniatur eps-" -"thumbnailer.desktop. Będzie on wyglądał następująco:" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml:1190(para) -msgid "" -"This file must be installed to /usr/local/share/" -"thumbnailers (create the folder if it does not exists)." -msgstr "" -"Plik ten powinien zostać zainstalowany do /usr/" -"local/share/thumbnailers (utwórz ten katalog, jeśli nie istnieje)." - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml:1199(para) -msgid "" -"The eps-thumbnailer.desktop file uses the special key " -"TryExec, which, if specified, names a command that must " -"be present on the system for the thumbnailer to be useful. In this case, our " -"script is useless if the convert utility is not present." -msgstr "" -"Plik eps-thumbnailer.desktop używa specjalnego klucza " -"TryExec, określającego polecenie, które musi być dostępne " -"w systemie, aby generator mógł działać. W tym przypadku nasz skrypt jest " -"bezużyteczny jeśli narzędzie convert nie jest dostępne w " -"systemie." - -#: Thunar.xml:1205(para) -msgid "" -"The last step is to regenerate the thumbnailer cache, so Thunar will pick up " -"our thumbnailer. The thumbnailer cache is located at " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by " -"your or your system administrator, the $XDG_CACHE_HOME " -"points to the folder ~/.cache/). The " -"thumbnailers cache is regenerated periodically by Thunar, but you can force " -"to regenerate it by invoking the thunar-vfs-update-thumbnailers-" -"cache-1 utility, that ships as part of Thunar. This utility is " -"usually installed in the libexec " -"subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in " -"/usr, invoke the utility as follows:" -msgstr "" -"Ostatnim krokiem jest regeneracja cache'u generatorów, aby Thunar mógł " -"używać naszego generatora. Cache generatorów znajduje się w " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (" -"$XDG_CACHE_HOME wskazuje na ~/.cache/" -", chyba, że zostało to zmienione przez administratora Twojego " -"systemu). Cache generatorów miniatur jest odbudowywany co jakiś czas przez " -"Thunara, ale możesz zrobić to samodzielnie, używając narzędzia " -"thunar-vfs-update-thumbnailers-cache-1, które jest " -"dostarczane jako część Thunara. Narzędzie to jest zazwyczaj zainstalowane w " -"podkatalogu libexec głównego " -"katalogu instalacji Thunara (sbin w " -"Debianie i Ubuntu). Przykładowo jeśli Thunar jest zainstalowany w /usr, wywołaj to narzędzie tak jak poniżej:" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml:1218(para) -msgid "" -"But make sure you run the program from your user account, not the superuser " -"account, since the thumbnailers cache is stored in your home folder, rather " -"than a system wide location." -msgstr "" -"Upewnij się, że uruchamiasz ten program z konta twojego użytkownika, nie " -"administratora, gdyż cache generatorów jest przechowywany w twoim katalogu " -"domowym, a nie w ogólnosystemowym położeniu." - -#: Thunar.xml:1223(para) -msgid "" -"Now, if Thunar is compiled with support for file alteration monitoring " -"(using the FAM or Gamin services), it will automatically pick up the new " -"thumbnailers cache within a few seconds and afterwards be able to generate " -"thumbnails using your custom thumbnailers. Otherwise you might need to " -"completely restart Thunar to apply the changes, using" -msgstr "" -"Teraz, jeśli Thunar został skompilowany z obsługą narzędzi monitorowania " -"zmian w plikach (usługa FAM lub Gamin), automatycznie użyje nowego cache'u " -"generatorów i w ciągu paru sekund będzie możliwe generowanie miniatur za " -"pomocą twojego generatora. W przeciwnym wypadku będziesz musiał zrestartować " -"Thunara, aby zmiany odniosły skutek. Użyj:" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml:1231(para) -msgid "" -"to terminate any running instance, and afterwards restart it from your " -"launcher." -msgstr "" -"aby zakończyć wszystkie uruchomione instancje Thunara, po czym uruchom go " -"ponownie za pomocą aktywatora." - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Usuwanie miniatur" - -#: Thunar.xml:1239(para) -msgid "" -"The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management " -"Standard. While testing a new thumbnailer, it might help to clean up " -"the thumbnail cache using" -msgstr "" -"Wygenerowane miniatury są przechowywane w karalogu ~/.thumbnails/ zgodnie ze Standardem Zarządzania " -"Miniaturami. Podczas testowania nowego generatora miniatur, pomocne " -"może być wyczyszczynie cache'u miniatur używając:" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml:1247(para) -msgid "" -"which will also give you some free space in your home folder. Since all the " -"information stored within this folder was automatically generated from files " -"in your file system, you will not loose any sensitive data." -msgstr "" -"Zwolni to także trochę miejsca w twoim katalogu domowym. Ponieważ wszelkie " -"informacje przechowywane w tym katalogu zostały automatycznie wygenerowane z " -"plików znajdujących się na twoim systemie plików, nie utracisz żadnych " -"istotnych danych." - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "Zaawansowane zagadnienia" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "Zmiana nazw wielu plików" - -#: Thunar.xml:1263(para) -msgid "" -"To bulk rename files means to rename multiple files at " -"once using some criterion, that applies to atleast one of the files. " -"Thunar includes a bulk renamer, which can be run " -"separately using the command Thunar -B or from within " -"Thunar by selecting two or more files in the main " -"area and pressing F2 or choosing " -"EditRename... from the main menu." -msgstr "" -"Mowa tu o zmianie nazw wielu plików według określonych kryteriów, do których " -"pasuje co najmniej jeden z przetwarzanych plików. Thunar zawiera stosowne narzędzie, które może być uruchamiane " -"oddzielnie poleceniem Thunar -B lub z wewnątrz " -"Thunara przez zaznaczenie wielu plików i " -"wcisnięcie klawisza F2 lub z menu " -"EdycjaZmień nazwę...." - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "Zmiana nazwy wielu plików" - -#: Thunar.xml:1283(para) -msgid "" -"The Bulk Renamers can be applied to the name of the " -"files, the suffix of the files or both to the name and the suffix of the " -"files. Thunar currently supports the following " -"Bulk Renamers:" -msgstr "" -"Zmiana nazwy może dotyczyć nazw plików, ich przyrostków (rozszerzeń), lub " -"obu. Obecnie Thunar wspiera poniższe metody " -"zmiany nazwy:" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "usuwanie znaków," - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "numerowanie plików," - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "" - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "wstawianie lub usuwanie znaków," - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "znajdowanie i zamienianie znaków," - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "zmiana sposobu stosowania wielkich i małych liter." - -#: Thunar.xml:1298(para) -msgid "" -"Additional Bulk Renamers may be installed as plugins " -"for Thunar. Check the Thunar Plugins website for " -"currently available extensions. The Thunar Project Wiki " -"contains further details about this feature. Feel free to add more " -"information to the Wiki." -msgstr "" -"Dodatkowe sposoby zmiany nazw plików mogą być dołączane w formie wtyczek dla " -"Thunara. Na stronie Wtyczek Thunara znajdziesz " -"wszystkie dostępne rozszerzenia. Wiki Projektu Thunar " -"zawiera więcej szczegółów na ten temat. Ty także możesz dodać do Wiki pewne " -"informacje, jeśli tylko chcesz." - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "System plików Uniksa" - -#: Thunar.xml:1310(para) -msgid "" -"While the Thunar file manager does a good job at abstracting the details of " -"the underlying file system, so the user does not need to care about them, it " -"is sometimes useful to understand the basic concepts to get the whole " -"picture. This section tries to give a brief introduction to the concepts of " -"the UNIX file system, which is used today by all incarnations of UNIX, " -"including Linux." -msgstr "" -"Mimo, że Thunar skutecznie tworzy warstwę abstrakcji nad szczegółami " -"dotyczącymi systemu plików tak, że użytkownik nie musi się o to martwić, " -"czasem przydatna bywa znajomość podstawowych założeń, aby mieć pełny obraz " -"tego, co się dzieje na dysku. Ta sekcja ma na celu krótkie wprowadzenie do " -"koncepcji systemu plików Uniksa, który jest dziś używany przez wszystkie " -"jego odmiany, włączając w to Linuksa." - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "Katalogi i ścieżki" - -#: Thunar.xml:1320(para) -msgid "" -"In a UNIX file system all folders are arranged in a simple inverted tree " -"structure descending and branching down from a single top level folder, " -"which is called the root directory (the term " -"directory is often used instead of folder) and displayed as File System in Thunar. This " -"means that you can get from any folder to any other by going up the tree " -"until you reach a common point, then down the tree through the appropriate " -"subfolders until you reach your target." -msgstr "" -"W uniksowym systemie plików wszystkie foldery są zaaranżowane w prostą " -"strukturę odwróconego drzewa. Główny korzeń znajduje się na górze, a " -"podkatalogi stanowią jego gałęzie i liście zmierzające ku dołowi. Ten " -"korzeń, będący nadrzędnym folderem zwany jest często katalogiem " -"głównym (termin folder jest często zamiennie " -"używany ze słowem katalog) i jest dostępny w Thunarze " -"jako System plików. Oznacza to, że z dowolnego katalogu " -"można przedostać się do każdego innego najpierw idąc w górę aż do " -"osiągnięcia wspólnego punktu, a następnie schodząc odpowiednią ścieżką w dół " -"aż do celu." - -#: Thunar.xml:1329(para) -msgid "" -"The position of any file or folder in the tree can be described by its " -"path. The path is the list of folders you would have to " -"descend through to get to the target folder or file, starting from the top " -"level folder. For example /home/luke " -"is the subfolder luke of the " -"subfolder home of the top level " -"folder, and /home/luke/myfile.txt is the file " -"myfile.txt in that subfolder. The leading / in these paths represents the top level " -"folder." -msgstr "" -"Pozycja każdego pliku lub folderu w drzewie może być opisana przez jego " -"ścieżkę. Ścieżka jest listą folderów, przez które " -"musisz przejść, aby dostać się do pożądanego katalogu lub pliku (zaczynając " -"od katalogu głównego). Przykładowo /home/luke jest podkatalogiem luke " -"podkatalogu home katalogu głównego, " -"a /home/luke/myfile.txt jest plikiem myfile." -"txt w tym podkatalogu. Znak / na początku ścieżek oznacza katalog główny." - -#: Thunar.xml:1338(para) -msgid "" -"Every user has their own folder to hold their personal files and settings. " -"This folder is called the home directory and is " -"displayed in Thunar as special icon with the users login name. The folder is " -"similar to the My Files folder known from Windows. The " -"home directories of the various users in a system are " -"usually located below the /home " -"folder. For example /home/luke would " -"be the home directory of the user with the login name luke, while /home/" -"jane would be the home directory for the user with the login name " -"jane." -msgstr "" -"Każdy użytkownik posiada swój własny folder do przechowywania osobistych " -"plików i ustawień. Ten folder nazywany jest katalogiem domowym i jest wyświetlany w Thunarze jako specjalna ikona z nazwą " -"użytkownika. Ten folder jest podobny do folderu Moje dokumenty znanego z Windows. Katalogi domowe różnych " -"użytkowników są zazwyczaj położone w katalogu /" -"home. Przykładowo /home/luke byłby katalogiem domowym użytkownika o loginie luke, podczas gdy /" -"home/jane byłby katalogiem domowym użytkownika o loginie " -"jane." - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "Typy plików" - -#: Thunar.xml:1352(para) -msgid "" -"You may have already heard that everything is a file in UNIX. This is true " -"for most objects present in UNIX systems today. In fact even devices are " -"represented as a special files. While this may not make sense at first " -"sight, it is one of the strengths of UNIX and its derivates, and has helped " -"it to maintain a simple core over the years where other operating systems " -"had to introduce new concepts for every new technology." -msgstr "" -"Być może słyszałeś już, że w Uniksie wszystko jest plikiem. Jest to prawda " -"dla większości elementów spotykanych w dzisiejszych systemach uniksowych. W " -"rzeczywistości nawet urządzenia są reprezentowane jako specjalne pliki. Być " -"może na pierwzsy rzut oka nie ma to sensu, jednak jest to jedna z " -"najpoważniejszych zalet Uniksa i jego pochodnych, która przyczyniła się do " -"utrzymywania prostego rdzenia przez lata, podczas gdy inne systemy " -"operacyjne musiały wprowadzać nowe koncepcje dla każdej nowej technologii." - -#: Thunar.xml:1359(para) -msgid "" -"These are the four most important types of files in the UNIX file system." -msgstr "" -"Są cztery podstawowe i najważniejsze typy plików w uniksowym systemie plików." - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "Zwykłe pliki" - -#: Thunar.xml:1366(para) -msgid "" -"An ordinary file may contain text, a program or other data. This includes " -"image files, audio files, office documents and video files. The term " -"file is often used to refer to an ordinary file." -msgstr "" -"Zwykły plik może zawierać tekst, program lub inne dane, włączając w to pliki " -"obrazów, dźwięki, dokumenty biurowe i pliki wideo. Termin plik jest często używany w odniesieniu do zwykłego pliku." - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "Pliki folderów" - -#: Thunar.xml:1375(para) -msgid "" -"Folders are also files in the UNIX file system. To be exact a folder is a " -"special file, which contains a mapping of file names to file references for " -"every file contained within this folder." -msgstr "" -"W uniksowym systemie plików foldery także są plikami. Aby być dokładnym, " -"foldery są specjalnymi plikami, które zawierają odwzorowania nazw plików na " -"pliki, dla każdego pliku zawartego wewnątrz folderu." - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "Pliki dowiązań (łącz) symbolicznych" - -#: Thunar.xml:1384(para) -msgid "" -"A Symbolic link (often called a symlink) is a special " -"file that contains a path to another file in the file system. Symbolic link " -"files therefore do not contain any useful information themselves, but just " -"refer to other files." -msgstr "" -"Dowiązanie symboliczne (często zwane symlinkiem) jest " -"specjalnym plikiem zawierającym ścieżkę do innego pliku w systemie plików. " -"Dowiązania symboliczne nie zawierają żadnych użytecznych informacji same w " -"sobie, ale odnoszą się do innych plików." - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "Pliki urządzeń" - -#: Thunar.xml:1394(para) -msgid "" -"As mentioned earlier (most) devices are also accessed through the file " -"system. These special device files are usually located in the /dev folder. For example the special file " -"/dev/hda represents the first IDE disk on Linux." -msgstr "" -"Jak wspomniano wcześniej, większość urządzeń jest dostępnych przez system " -"plików. Te specjalne pliki urządzeń są zazwyczaj położone w katalogu " -"/dev. Przykładowo, plik specjalny " -"/dev/hda reprezentuje w Linuksie pierwszy dysk IDE." - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "Najczęściej zadawane pytania (FAQ)" - -#: Thunar.xml:1408(para) -msgid "" -"The intent of this section is to collect the quite numerous frequently asked " -"questions that relate to working with Thunar. If you know of a question that " -"is missing from this page, please file a request." -msgstr "" -"Celem tej sekcji jest zebranie przeróżnych pytań i wątpliwości dotyczących " -"Thunara w jedno miejsce. Jeśli uważasz, że brakuje tu jakiegoś istotnego " -"zagadnienia, proszę - zgłoś to." - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Dlaczego Thunar nie wykonuje plików oznaczonych jako wykonywalne?" - -#: Thunar.xml:1419(para) -msgid "" -"For security reasons Thunar only executes files of type application/" -"x-desktop, application/x-executable and " -"application/x-shellscript. For desktop files the " -"execution feature will only be enabled if the desktop file is of type " -"Application and a valid Exec line is " -"given or of type Link and a valid URL " -"is given. For the other types the feature is available if the file is marked " -"executable for the current user." -msgstr "" -"Ze względów bezpieczeństwa Thunar uruchamia tylko pliki typu " -"application/x-desktop, application/x-executable i application/x-shellscript. Dla plików pulpitu " -"możliwość uruchamiania zostanie włączona tylko wtedy, jeśli jest on typu " -"Application i podano prawidłową linię Exec lub jeśli jest typu Link i podano prawidłowy " -"URL. Dla innych typów opcja ta jest dostępna, jeśli plik " -"jest oznaczony jako wykonywalny dla bieżącego użytkownika." - -#: Thunar.xml:1428(para) -msgid "" -"Also note that for application/x-executable and " -"application/x-shellscript, the types of the file don't " -"really need to match these types exactly, but it is suffice if the detected " -"type has a parent that matches one of the two types listed above, or if the " -"MIME-type is an alias for one of the above." -msgstr "" -"Zauważ także, że dla typów application/x-executable i " -"application/x-shellscript, typy plików nie muszą się z " -"nimi pokrywać, lecz wystarczy jeśli wykryty typ ma taki sam typ nadrzędny " -"jak jeden z powyższych typów lub gdy jego typ MIME jest aliasem dla jednego " -"z powyższych." - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Gdzie Thunar przechowuje metadane związane z plikami?" - -#: Thunar.xml:1439(para) -msgid "" -"Thunar associates various settings with files/folders, which we call " -"metadata. This metadata for all files is stored in tdb database file, which " -"is called the metafile. The database file is stored in " -"$XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the " -"tdbtool, which is part of the Thunar distribution " -"(located in the tdb/ subdirectory)." -msgstr "" -"Thunar wiąże różne ustawienia z plikami i folderami. Ustawienia te nazywamy " -"metadanymi. Owe metadane wszystkich plików przechowywane są w pliku bazy " -"danych tdb, zwanym metaplikiem. Plik bazy danych znajduje się w " -"$XDG_CACHE_HOME/Thunar/metafile.tdb, a jego przeglądu dokonuje " -"się za pomocą narzędzia tdbtool, będącego częścią " -"dystrybucji Thunara (położonego w podkatalogu tdb/)." - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Gdzie Thunar przechowuje swoje ustawienia?" - -#: Thunar.xml:1452(para) -msgid "" -"Thunar stores the user configurable preferences (and hidden settings) in an " -".ini file, which is located at " -"$XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text " -"editor. See docs/README.thunarrc for an overview of the " -"various preferences." -msgstr "" -"Thunar przechowuje preferencje użytkownika (i ustawienia ukryte) w pliku " -".ini, znajdującym się w $XDG_CONFIG_HOME/" -"Thunar/thunarrc. Można go obejrzeć używając edytora tekstowego. W " -"pliku docs/README.thunarrc znajdziesz przegląd róznych " -"opcji." - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Czy i jak można używać gestów myszy w Thunarze?" - -#: Thunar.xml:1464(para) -msgid "" -"Thunar currently features basic support for so called mouse " -"gestures in its icon view. You can use these mouse " -"gestures by holding down the middle mouse button (usually the " -"mouse wheel) while the mouse pointer is on the background area of the icon " -"view component (any area that is not covered by an icon or a text). Now you " -"can move the cursor into four directions to perform certain actions, which " -"are described below." -msgstr "" -"Obecnie Thunar zapewnia podstawowe wsparcie dla tzw. gestów myszy w widoku ikon. Możesz ich używać wciskając środkowy przycisk myszy " -"(przeważnie rolkę) gdy wskaźnik myszy znajduje się na polu tła (polu, które " -"nie jest przykryte przez ikonę lub tekst). Następnie przesuwaj kursor w " -"czterech kierunkach, aby wykonać pewne czynności opisane poniżej:" - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "W lewo" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr " - przechodzi do uprzednio odwiedzonego foldderu" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "W górę" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr " - przechodzi do katalogu nadrzędnego" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "W prawo" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr "" -" - przechodzi do kolejnego (według listy historii odwiedzeń) " -"odwiedzonego katalogu" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "W dół" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr " - odświeża bieżący katalog" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "Jak przypisać własne skróty klawiszowe?" - -#: Thunar.xml:1484(para) -msgid "" -"If you want to rebind a shortcut, Thunar supports the standard GTK+ way of " -"changing shortcuts: simply hover over the menu option with the mouse pointer " -"and press the keyboard shortcut you want to rebind it to." -msgstr "" -"Thunar obsługuje standardową metodę zmieniania skrótów zgodną z GTK+: najedź " -"wskaźnikiem myszy na opcję w menu, do której chcesz przypisać skrót i " -"wciśnij pożądaną kombinację klawiszy." - -#: Thunar.xml:1490(para) -msgid "" -"To delete a keyboard assignment, press the Backspace key " -"while you are on the menu entry." -msgstr "" -"Aby usunąć skrót, wciśnij Backspace, kiedy znajdujesz się " -"na odpowiedniej pozycji w menu." - -#: Thunar.xml:1495(para) -msgid "" -"If the shortcut doesn't change, then you need to enable the feature in GTK+. " -"This can be achieved in 3 ways:" -msgstr "" -"Jeśli skrót się nie zmieni, prawdopodobnie będziesz musiał włączyć tą opcję " -"w GTK+. Możesz to zrobić na trzy sposoby:" - -#: Thunar.xml:1502(para) -msgid "" -"If you are running Xfce 4.3 or above then you can enable Editable " -"menu accelerators in the User Interface Preferences dialog." -msgstr "" -"Jeśli używasz Xfce 4.3 lub nowszego, możesz uaktywnić opcję " -"Modyfikowalne akceleratory menu w oknie dialogowym " -"Preferencje Interfejsu Użytkownika." - -#: Thunar.xml:1510(para) -msgid "" -"If you are running GNOME then you can enable Editable menu " -"accelerators in the Menu and Toolbars " -"control center dialog." -msgstr "" -"Jeśli używasz GNOME możesz włączyć Modyfikowalne akceleratory " -"menu w oknie dialogowym Paski menu i narzędziowe." - -#: Thunar.xml:1518(para) -msgid "" -"Otherwise put the following in your ~/.gtkrc-2.0 file " -"(create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" -"W przeciwnym wypadku umieść poniższą linię w pliku ~/.gtkrc-2.0 (utwórz go, jeśli nie istnieje):gtk-can-change-accels=1" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Gdzie Thunar przechowuje skróty klawiszowe?" - -#: Thunar.xml:1529(para) -msgid "" -"The custom keyboard shortcuts are stored in the standard GTK+ accel map " -"format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK" -"+ documentation for details about the file format." -msgstr "" -"Niestandardowe skróty klawiszowe są przechowywane w typowym dla GTK+ " -"formacie, w pliku $XDG_CONFIG_HOME/Thunar/accels.scm. " -"Linie zaczynające się od ; są komentarzami. Obejrzyj " -"dokumentację GTK+, aby dowiedzieć się więcej szczegółów o formacie tego " -"pliku." - -#: Thunar.xml:1536(para) -msgid "" -"If you are a packager or a system administrator and want to provide a system " -"wide default for the keyboard shortcuts, that is different from the default " -"shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if " -"/etc/xdg is part of " -"$XDG_CONFIG_DIRS (the default for most Linux distributions), you can " -"install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" -"Jeśli tworzysz pakiety albo administrujesz systemem i chcesz przygotować " -"globalną konfigurację skrótów, inną od tej domyślnej w Thunarze, możesz " -"utworzyć plik Thunar/accels.scm w jednym z " -"$XDG_CONFIG_DIRS. Przykładowo jeśli /" -"etc/xdg jest częścią $XDG_CONFIG_DIRS (domyślnie w " -"większości dystrybucji Linuksa), możesz zainstalować ustawienia globalne do " -"/etc/xdg/Thunar/accels.scm. Thunar zastosuje się do " -"tych skrótów przy pierwszym uruchomieniu programu." - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "Wsparcie" - -#: Thunar.xml:1551(para) -msgid "" -"To report a bug or to make a suggestion regarding this application or this " -"manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a " -"useful bug report has two qualities:" -msgstr "" -"Aby zgłosić błąd albo propozycję dotyczącą tej aplikacji lub tego " -"podręcznika, użyj systemu śledzenia błędów dostępnego na http://" -"bugzilla.xfce.org/. Pamiętaj, że użyteczne raporty to te, po których " -"błąd zostaje naprawiony, tak więc raport powinien posiadać dwie cechy:" - -#: Thunar.xml:1559(para) -msgid "" -"Reproducible. If the developer cannot see " -"the bug himself to prove that it exists, he will most probably not be able " -"to fix it at all. Every detail you can provide helps." -msgstr "" -"Powtarzalność. Jeśli programista nie może " -"zobaczyć błędu na własne oczy, prawdopodobnie nie będzie mógł go naprawić. " -"Każdy szczegół, o którym poinformujesz, może pomóc." - -#: Thunar.xml:1566(para) -msgid "" -"Specific. The quicker the developer can " -"isolate the problem to a specific area, the more likely he will expediently " -"fix it." -msgstr "" -"Szczegółowość. Im szybciej programista " -"zawęzi obszar poszukiwań przyczyny problemu, tym szybciej błąd zostanie " -"przez niego naprawiony." - -#: Thunar.xml:1573(para) -msgid "" -"In case you want to request a new feature, please make clear why you " -"consider it a worth addition for the application. It is more likely that a " -"new feature gets added if you provide good arguments for the feature. It " -"will increase the chance of addition even more if you provide a patch that " -"implements the requested feature, but make sure that you read the file " -"HACKING - especially the section labeled Coding " -"Style - before you start hacking up the source." -msgstr "" -"Jeśli chcesz zgłosić potrzebę nowej funkcjonalności, proszę uzasadnij, " -"dlaczego uważasz, że jest ona warta dodania do aplikacji. Nowa " -"funkcjonalność zostanie dodana, jeśli dostarczysz dobrych argumentów, które " -"będą za nią przemawiały. Jeśli dołączysz implementujący ją patch, " -"prawdopodobieństwo jej włączenia jeszcze się zwiększy. Pamiętaj jednak, aby " -"przeczytać plik HACKING - szczególnie sekcję zatytułowaną " -"Coding Style - zanim zaczniesz hakować źródło." - -#: Thunar.xml:1583(para) -msgid "" -"Else, if you have questions about the use or installation of this software, " -"please ask on the thunar-dev mailing list or point your IRC " -"client to irc.freenode.net, join the " -"channel #thunar and ask for help." -msgstr "" -"Jeśli natomiast masz pytania dotyczące używania lub instalacji tego " -"oprogramowania, proszę zapytaj na liście mailingowej thunar-dev lub połącz swojego klienta IRC z irc.freenode." -"net, dołącz do kanału #thunar " -"i poproś o pomoc." - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "O @PACKAGE_NAME@" - -#: Thunar.xml:1594(para) -msgid "" -"@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" -"@PACKAGE_NAME@ został napisany przez Benedikta Meurera (benny@xfce." -"org). Odwiedź witrynę Thunara aby dowiedzieć się więcej." - -#: Thunar.xml:1599(para) -msgid "" -"This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the " -"Thunar website." -msgstr "" -"Niniejsza dokumentacja została napisana przez Benedikta Meurera " -"(benny@xfce.org). Najnowsza wersja tego dokumentu jest zawsze " -"dostępna na witrynie " -"Thunara." - -#: Thunar.xml:1605(para) -msgid "" -"This software is distributed 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." -msgstr "" -"Niniejszy program jest rozprowadzany na warunkach Powszechnej Licencji " -"Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według " -"wersji 2-giej tej Licencji lub którejś z późniejszych wersji." - -#: Thunar.xml:1611(para) -msgid "" -"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." -msgstr "" -"Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz " -"Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie " -"- napisz do Free Software Foundation, Inc., 59 Temple Place - Suite 330, " -"Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "Szymon Kałasz , 2007" - -#~ msgid ".png" -#~ msgstr ".png" - -#~ msgid "%" -#~ msgstr "%" diff -Nru thunar-1.2.3/docs/manual/po/ru.po thunar-1.6.10/docs/manual/po/ru.po --- thunar-1.2.3/docs/manual/po/ru.po 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/ru.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1336 +0,0 @@ -# Russian translations for Thunar package. -# Copyright (C) 2004-2006 Benedikt Meurer. -# This file is distributed under the same license as the Thunar package. -# Andrey Fedoseev , 2006. -# Maxim Zenin , 2006. -# -msgid "" -msgstr "" -"Project-Id-Version: Thunar 0.5.0rc2\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-03-07 12:07+0300\n" -"Last-Translator: Dima Smirnov \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" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml12(title) -msgid "Thunar File Manager" -msgstr "Файловый менеджер Thunar" - -#: Thunar.xml17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "Разрешено копировать, распространять и/или модифицировать данный документ на условиях лицензии GNU Free Documentation License, версия 1.1 или более поздней версии, опубликованной Фондом Свободного ПО (Free Software Foundation). Полный текст лицензии доступен на сайте Free Software Foundation." - -#: Thunar.xml37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml40(jobtitle) -msgid "Software developer" -msgstr "Разработчик ПО" - -#: Thunar.xml41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml42(orgdiv) -msgid "System development" -msgstr "Системный разработчик" - -#: Thunar.xml43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Данное руководство описывает @PACKAGE_VERSION@ версии @PACKAGE_NAME@." - -#: Thunar.xml54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Введение в @PACKAGE_NAME@" - -#: Thunar.xml56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar — это новый современный файловый менеджер для рабочей среды Xfce. Thunar изначально проектировался быстрым и простым в использовании. У него простой интуитивно понятный интерфейс, не содержащий запутанных или бесполезных функций. Thunar быстро запускается и открывает папки." - -#: Thunar.xml62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "Файловый менеджер Thunar предоставляет интегрированную точку доступа к вашим файлам и приложениям. С его помощью вы можете:" - -#: Thunar.xml68(para) -msgid "Create folders and documents." -msgstr "Создавать папки и документы." - -#: Thunar.xml69(para) -msgid "Display your files and folders." -msgstr "Просматривать файлы и папки." - -#: Thunar.xml70(para) -msgid "Manage your files and folders." -msgstr "Управлять файлами и папками." - -#: Thunar.xml71(para) -msgid "Run and manage custom actions." -msgstr "Настраивать и выполнять различные действия." - -#: Thunar.xml72(para) -msgid "Access Removable Media." -msgstr "Получать доступ к съемным носителям." - -#: Thunar.xml78(title) -msgid "The File Manager Window" -msgstr "Окно файлового менеджера" - -#: Thunar.xml80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "В левой части окна файлового менеджера находится боковая панель. В правой части окна расположена основная область, над которой находится панель адреса." - -#: Thunar.xml92(phrase) -msgid "File Manager Window" -msgstr "Окно файлового менеджера" - -#: Thunar.xml97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "На Боковой панели находятся закладки, ведущие к различным папкам вашей системы. Первая закладка ведет к вашему Домашнему каталогу — папке, в которой хранятся все ваши персональные данные, поэтому эта закладка называется именем текущего пользователя. Вторая закладка ведет в папку Корзина, в которой хранятся удаленные файлы. Эти файлы могут быть впоследствии восстановлены. Третья закладка ведет к папке Рабочего стола, содержащей файлы и каталоги, отображаемые на рабочем столе. Четвертая закладка ведет к корню вашей файловой системы. Если вы новичок в использовании Linux/Unix, файловая система может показаться вам запутанной. Для того, чтобы немного ее исследовать, просто пощелкайте по различным папкам и просмотрите их содержимое." - -#: Thunar.xml108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "Под закладкой Файловая система отображаются съемные устройства и носители данных. На рисунке выше вы можете увидеть закладку Дисковод. Данные закладки предоставляют доступ к информации, хранимой на съемных устройствах и носителях. См. раздел для получения более подробной информации." - -#: Thunar.xml115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "Остальные закладки ведут к папкам пользователя. Для добавления своей закладки просто перетащите папку на Боковую панель. Это позволит вам незамедлительно получать доступ к важным папкам. Чтобы удалить ранее добавленную закладку, щелкните по ней правой кнопкой мыши и выберите Удалить закладку. Чтобы переименовать ранее добавленную закладку, щелкните по ней правой кнопкой мыши и выберите Переименовать закладку. Заметим, что данные действия применяются только к самим закладкам и не влияют на папки, к которым они ведут." - -#: Thunar.xml123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "В основной области отображается содержимое текущей папки. Для открытия папки дважды щелкните по ней. Щелчок правой кнопки мыши по файлу или папке вызывает контекстное меню, предлагающее различные действия с ними. Есть несколько способов выделить группу файлов. Первый способ — растяните над ними прямоугольник с помощью мыши. Другой способ — выделите один файл, нажмите и удерживайте клавишу Shift и с помощью клавиш со стрелками увеличивайте или уменьшайте область выделения." - -#: Thunar.xml131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "Панель адреса отображает путь до текущей папки. Вы можете нажимать кнопки на панели адреса для перехода в соответствующие папки. Щелчок правой кнопкой мыши по кнопке на панели адреса вызовет контекстное меню." - -#: Thunar.xml139(title) -msgid "Customizing the Appearance" -msgstr "Изменение внешнего вида" - -#: Thunar.xml141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "Существует несколько способов изменения внешнего вида окна файлового менеджера. Если вам не нравится отображение файлов и папок в виде значков, выберите ВидПросмотр в виде подробного списка в главном меню. Содержимое текущей папки отобразится в виде списка." - -#: Thunar.xml147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "Чтобы на панели адреса вместо ряда кнопок отображалась строка адреса, выберите пункт главного меню ВидПанель адресаСтрока адреса." - -#: Thunar.xml153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "Чтобы в боковой панели отображалась структура файловой системы в виде дерева, выберите пункт главного меню ВидБоковая панельДерево." - -#: Thunar.xml160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Отображаемые столбцы при просмотре в виде подробного списка" - -#: Thunar.xml162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "Если вы используете Просмотр в виде подробного списка, то вы можете настроить отображение определенных столбцов при просмотре содержимого папок. Чтобы изменить отображаемые столбцы, выберите пункт меню ВидНастроить столбцы... в главном меню." - -#: Thunar.xml175(phrase) Thunar.xml182(guilabel) -msgid "Visible Columns" -msgstr "Отображаемые столбцы" - -#: Thunar.xml184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "Отметьте в списке названия тех столбцов, которые вы хотели бы отобразить. Для изменения порядка столбцов выделите столбец и нажмите Переместить вверх или Переместить вниз. Чтобы отменить все изменения, нажмите Использовать по умолчанию." - -#: Thunar.xml193(guilabel) -msgid "Column Sizing" -msgstr "Размеры столбцов" - -#: Thunar.xml195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "Если вы хотите, чтобы столбцы автоматически расширялись для отображения текста полностью, выберите Автоматически увеличивать ширину столбцов при необходимости. В противном случае столбцы будут иметь фиксированную ширину." - -#: Thunar.xml208(title) -msgid "Working with Files and Folders" -msgstr "Работа с файлами и папками" - -#: Thunar.xml212(title) -msgid "Opening Files" -msgstr "Открытие файлов" - -#: Thunar.xml214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "Когда вы открываете файл, файловый менеджер выполняет действие, заданное по умолчанию для данного типа файла. Например, текстовый файл откроется в текстовом редакторе, а открытие графического файла запустит соответствующую программу просмотра изображений." - -#: Thunar.xml220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "Файловый менеджер определяет тип файла по его расширению. Если файл имеет неизвестное расширение, файловый менеджер проверяет содержимое файла." - -#: Thunar.xml226(title) -msgid "Executing the Default Action" -msgstr "Выполнение действия по умолчанию" - -#: Thunar.xml228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "Двойной щелчок по файлу запускает стандартное действие для файла. Например, действием по умолчанию для аудиофайлов является воспроизведение с помощью стандартного музыкального проигрывателя. В этом случае, двойной щелчок по файлу откроет его в музыкальном проигрывателе." - -#: Thunar.xml234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "Вы можете настроить Thunar, чтобы действие по умолчанию запускалось по единичному щелчку. За информацией обратитесь к разделу ." - -#: Thunar.xml241(title) -msgid "Executing Non-Default Actions" -msgstr "Выполнение нестандартных действий" - -#: Thunar.xml243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "Для выполнения нестандартных действий над файлом выделите нужный файл и затем выберите желаемое действие из списка Открыть с помощью, доступного в меню Файл или контекстном меню." - -#: Thunar.xml251(title) -msgid "Adding Actions" -msgstr "Добавление действий" - -#: Thunar.xml253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "Чтобы добавить действие для файлов определенного типа, выполните следующие шаги:" - -#: Thunar.xml259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "В основной области окна выберите файл того типа, для которого вы хотите добавить действие." - -#: Thunar.xml264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "Выберите ФайлОткрыть с помощью другого приложения... в главном меню." - -#: Thunar.xml270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "Выберите приложение в диалоговом окне Открыть с помощью. Если нужное приложение отсутствует в списке, выберите Использовать команду и укажите программу, которой вы хотите открывать файлы данного типа." - -#: Thunar.xml277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "Выбранное вами действие будет добавлено к списку действий для файлов данного типа. Если вы установите параметр Использовать эту программу для запуска этого типа файлов или если для файла не задано более приоритетное действие, то новое добавленное действие станет действием по умолчанию." - -#: Thunar.xml283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "Вы можете также добавлять действия, используя кнопку Открывать с помощью в окне ФайлСвойства...." - -#: Thunar.xml290(title) -msgid "Modifying Actions" -msgstr "Изменение действий" - -#: Thunar.xml292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "Для изменения действий, связанных с файлом или типом файла, выполните следующие шаги:" - -#: Thunar.xml298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "В основной области окна выберите файл того типа, для которого вы хотите изменить действие." - -#: Thunar.xml303(para) Thunar.xml383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "Выберите ФайлСвойства... в главном меню." - -#: Thunar.xml308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "Выберите новое действие по умолчанию, используя кнопку Открывать с помощью, или добавьте новое действие, выбрав Другое приложение... в выпадающем меню." - -#: Thunar.xml315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "Чтобы удалить ранее добавленное действие для типа файла, вызовите диалоговое окно Открыть с помощью, как описано выше. Щелкните правой кнопкой мыши по действию, которое хотите удалить, и выберите Удалить значок запуска." - -#: Thunar.xml324(title) Thunar.xml361(phrase) -msgid "File Properties" -msgstr "Свойства файла" - -#: Thunar.xml326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "Окно свойств файла отображает подробную информацию о любом файле или папке в файловом менеджере. С помощью данного окна вы также можете выполнить следующие действия:" - -#: Thunar.xml333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "Изменить иконку для специальных файлов, таких как значки запуска приложений и ссылки URL." - -#: Thunar.xml338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "Добавить или удалить эмблемы для файла или папки." - -#: Thunar.xml343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "Изменить права доступа UNIX для файла или папки." - -#: Thunar.xml348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "Выбрать, с помощью какого приложения необходимо открывать данный файл и другие файлы того же типа." - -#: Thunar.xml366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "Чтобы открыть окно свойств файла, выполните следующие шаги:" - -#: Thunar.xml372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "Выделите файл или папку, свойства которых вы хотите просмотреть или изменить. Вы не можете выделить одновременно несколько объектов и открыть свойства для всех этих объектов." - -#: Thunar.xml386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "Щелкните правой кнопкой мыши по выделенному объекту и выберите Свойства... из контекстного меню." - -#: Thunar.xml389(para) -msgid "Press AltReturn." -msgstr "Нажмите AltEnter." - -#: Thunar.xml379(para) -msgid "Do one of the following: " -msgstr "Выполните одно из действий: " - -#: Thunar.xml400(title) -msgid "Using Removable Media" -msgstr "Использование съемных носителей" - -#: Thunar.xml403(title) -msgid "Accessing Removable Media" -msgstr "Доступ к съемным носителям" - -#: Thunar.xml405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "Если Thunar был собран с поддержкой HAL или если Вы используете FreeBSD, то в файловом менеджере поддерживается работа со съемными носителями. Заметим, что в FreeBSD начиная с версии 6.0 предлагается использовать HAL вместо использования собственной поддержки для Thunar." - -#: Thunar.xml412(title) -msgid "To Mount Media" -msgstr "Подключение носителей" - -#: Thunar.xml414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "Подключение носителя — это действие, предоставляющее доступ к файловой системе носителя. Когда вы подключаете носитель, файловая система носителя присоединяется к вашей файловой системе в виде подкаталога." - -#: Thunar.xml419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "Для получения доступа к носителю вставьте его в соответствующее устройство или подключите новое устройство к вашему компьютеру (например, подключите USB-накопитель к одному из USB-портов). Закладка для носителя будет добавлена в боковую панель файлового менеджера. Если запущен xfdesktop и выбрано отображение на рабочем столе Значков файлов или запуска, то значок носителя будет также добавлен на рабочий стол." - -#: Thunar.xml426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "Чтобы подключить носитель, щелкните по закладке носителя. Например, чтобы подключить дисковод, щелкните по закладке Дисковод на боковой панели. При этом файловый менеджер присоединит файловую систему носителя к иерархии вашей файловой системы и покажет содержимое гибкого диска в основной области окна." - -#: Thunar.xml434(title) -msgid "To Eject Media" -msgstr "Извлечение носителя" - -#: Thunar.xml436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "" -"Если устройство носителя представляет собой механизированный привод (например, CD-ROM), то для извлечения необходимо щелкнуть правой кнопкой мыши по закладке носителя в боковой панели или по значку на рабочем столе и выбрать Извлечь том. Носитель будет отключен от устройства через несколько секунд.\r\n" -"В противном случае (например, при работе с дисководом или USB-накопителем), щелкните правой кнопкой мыши по значку носителя и выберите Отключить том. После короткого промежутка времени появится сообщение, что носитель может быть безопасно извлечен, или что устройство можно отключить от компьютера." - -#: Thunar.xml451(phrase) -msgid "Unmount notification" -msgstr "Сообщение об отключении" - -#: Thunar.xml456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "Данное сообщение появится только в том случае, если активирована поддержка libnotify и установлена служба сообщений. Служба сообщений Xfce доступна в Проекте Xfce Goodies. Если поддержка сообщений недоступна, дождитесь, когда исчезнет контекстное меню, а затем извлеките носитель или отключите устройство." - -#: Thunar.xml464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "Если носитель используется одним или несколькими приложениями, вы не можете его извлечь или отключить. Поэтому, если файловый менеджер отказывается извлечь носитель, убедитесь, что вы закрыли все приложения, имевшие доступ к носителю, а также проверьте приложения, запущенные из командной строки Терминала." - -#: Thunar.xml470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "Перед тем, как извлечь носитель, убедитесь, что вы его отключили. Не доставайте дискету из дисковода до того, как отключите ее. Не извлекайте USB-накопитель до того, как отключите устройство. Если вы сначала не отключите носитель, вы можете потерять информацию или вызвать ошибку в системе." - -#: Thunar.xml479(title) -msgid "Management of Removable Drives and Media" -msgstr "Управление съемными устройствами и носителями" - -#: Thunar.xml481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "Если в вашей системе установлен пакет thunar-volman, Thunar может автоматически управлять съемными устройствами и носителями. Для данной функции требуется поддержка HAL." - -#: Thunar.xml487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "Если HAL поддерживается и thunar-volman установлен в вашей системе, вы можете включить Управление томами в Thunar. Для этого откройте настройки файлового менеджера, перейдите к вкладке Дополнительно и выберите Включить управление томами." - -#: Thunar.xml494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "Затем настройте управление съемными устройствами и носителями. Щелкните по ссылке Настроить в области Управление томами. Появится диалоговое окно Съемные устройства и носители данных." - -#: Thunar.xml507(phrase) -msgid "Removable Drives and Media" -msgstr "Съемные устройства и носители данных" - -#: Thunar.xml512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "Если вы прежде использовали gnome-volume-manager, вы должны легко разобраться с настройками, потому что окно очень похоже на gnome-volume-manager. Настройки разделены по видам устройств для облегчения поиска параметров для конкретного устройства." - -#: Thunar.xml519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "Вкладка Накопители содержит наиболее важные настройки. Данные настройки применяются только для съемных накопителей, таких как внешний жесткий диск, USB-накопители и CD-ROM. Параметры Съемных накопителей детально описываются ниже." - -#: Thunar.xml527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Подключать обнаруженные съемные устройства" - -#: Thunar.xml529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "Выбор данного параметра позволит автоматически подключать файловую систему съемного устройства (например, внешнего жесткого диска или USB-накопителя) в момент его обнаружения на компьютере." - -#: Thunar.xml533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "Данный параметр должен быть обязательно выбран, чтобы было можно применять остальные возможности работы со съемными устройствами. Например, если вы отключили данный параметр, то некоторые портативные музыкальные плееры не смогут быть обнаружены и, следовательно, файлы на них не будут проигрываться при подключении плеера, даже если вы выберете параметр Проигрывать файлы с музыкой при подключении плеера во вкладке Мультимедиа." - -#: Thunar.xml544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Подключать вставленные съемные носители" - -#: Thunar.xml546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "Выбор данного параметра позволит автоматически подключать файловую систему съемных носителей (например, CD-ROM и DVD), когда вы вставляете носитель в устройство." - -#: Thunar.xml550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "Данный параметр должен быть обязательно выбран, чтобы было можно использовать остальные возможности работы со съемными носителями. Например, если вы отключите данный параметр, то это сделает невозможным определение носителей с возможностью автозапуска, поэтому параметр Автоматически запускать программы с новых устройств и носителей не будет иметь никакого воздействия на съемные носители." - -#: Thunar.xml560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Просматривать вставленный съемный носитель" - -#: Thunar.xml562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "Выбор данного параметра позволит автоматически отображать содержимое новых вставленных съемных носителей в файловом менеджере. Содержимое будет отображаться только в том случае, если не предусмотрено другое действие или вы выбрали игнорирование других возможных действий. Например, если вы вставили CD-ROM с возможностью автозапуска и параметр Автоматически запускать программы с новых устройств и носителей активен, вам будет предложено разрешить или игнорировать автозапуск. Если вы выберете игнорировать автозапуск, содержимое будет отображено в файловом менеджере." - -#: Thunar.xml574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Автоматически запускать программы с новых устройств и носителей" - -#: Thunar.xml576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "Выбор данного параметра позволит автоматически запускать программы со съемных устройств и носителей. Для получения более подробной информации по механизму автозапуска обратитесь к Спецификации по автозапуску приложений рабочего стола. С целью повышения безопасности вам всегда будет предлагаться подтвердить автозапуск." - -#: Thunar.xml582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "Если в вашей системе установлен эмулятор Windows WINE, механизм автозапуска будет также пытаться запускать файлы autorun.exe, используя WINE." - -#: Thunar.xml590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "Автоматически открывать файлы с новых устройств и носителей" - -#: Thunar.xml592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "Выбор данного параметра позволит автоматически открывать файлы на съемных устройствах и носителях. Для получения более подробной информации по автоматическому открытию файлов обратитесь к Спецификации по автозапуску приложений рабочего стола. С целью повышения безопасности вам всегда будет предлагаться подтвердить автоматическое открытие." - -#: Thunar.xml602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "Остальные параметры позволяют настроить запуск команд при подключении определенных видов внешних устройств или носителей. Команда может использовать три специальные переменные, которые будут замещены при вызове:" - -#: Thunar.xml610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "Каждое появление %d в строке команды будет замещено путем к файлу нового добавленного устройства. Например, если вы подключили USB-накопитель, путем к файлу устройства будет /dev/da0s1 или /dev/sda1." - -#: Thunar.xml617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "Если с подключенным устройством не связан никакой файл устройства, или файл устройства не найден по какой-либо причине, переменная %d будет замещена пустой строкой." - -#: Thunar.xml625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "Каждое появление %h в строке команды будет замещено на HAL UDI нового добавленного устройства." - -#: Thunar.xml635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "Каждой появление %m в строке команды будет замещено точкой подключения нового устройства. Если устройство не может быть подключено (например, принтер или клавиатура) или автоматическое подключение было запрещено, переменная %m будет замещена пустой строкой." - -#: Thunar.xml648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "Поиск и устранение неисправностей при управлении томами" - -#: Thunar.xml650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "Полезные подсказки по обнаружению и устранению неисправностей при управлении томами." - -#: Thunar.xml656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "Убедитесь, что Thunar запущен как служба. Это необходимо для менеджера томов, так как он сам по себе не является службой. По умолчанию Xfce автоматически запускает службу Thunar при загрузке. Если Thunar был закрыт по какой-либо причине, откройте Запуск программы (используйте сочетание клавиш AltF2 или щелкните правой кнопкой мыши по рабочему столу и выберите в меню Запуск программы), введитеThunar --daemon и нажмите Выполнить." - -#: Thunar.xml668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "Попробуйте запустить thunar-volman из окна Терминала после подключения устройства или носителя. Сначала вы должны выяснить HAL UDI нового устройства, используя lshal или hal-device. Теперь, зная UDI, выполните thunar-volman --device-added <udi устройства> в окне Терминала и проверьте вывод на наличие ошибок и предупреждений." - -#: Thunar.xml678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "Если устройство по-прежнему отказывается работать, попросите помощи на Форуме Xfce или в списке рассылки thunar-dev." - -#: Thunar.xml689(title) -msgid "File Management Preferences" -msgstr "Настройки файлового менеджера" - -#: Thunar.xml691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "Для настройки файлового менеджера Thunar используется диалоговое окно Настройки файлового менеджера. Чтобы открыть окно настроек, выберите в строке меню ПравкаПараметры... или щелкните по кнопке Файловый менеджер в Диспетчере настроек Xfce." - -#: Thunar.xml697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "Диалоговое окно Настройки файлового менеджера разделено на четыре вкладки с различными параметрами, каждая из которых описывается ниже. Вы можете настроить:" - -#: Thunar.xml703(para) -msgid "The default settings for the views." -msgstr "Параметры отображения." - -#: Thunar.xml704(para) -msgid "The default settings for the side pane." -msgstr "Параметры боковой панели." - -#: Thunar.xml705(para) -msgid "The behavior of the file manager windows." -msgstr "Параметры взаимодействия с окном файлового менеджера." - -#: Thunar.xml706(para) -msgid "Advanced features of the file manager." -msgstr "Дополнительные параметры файлового менеджера." - -#: Thunar.xml709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "Thunar также имеет ряд так называемых Скрытых настроек, контролирующих некоторые дополнительные возможности файлового менеджера, но не включенных в окно настроек с целью упрощения диалогового окна. Файл README.thunarrc, включенный в дистрибутив Thunar, подробно описывает все возможные параметры." - -#: Thunar.xml718(title) Thunar.xml733(phrase) -msgid "Views Preferences" -msgstr "Настройки отображения" - -#: Thunar.xml720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "В этой вкладке вы можете настроить режим просмотра по умолчанию, указать параметры сортировки и отображения. Вы также можете выбрать, отображать ли образцы файлов (эскизы, иллюстрирующие содержимое файла) для тех типов файлов, которые поддерживают эту возможность." - -#: Thunar.xml740(guilabel) -msgid "View new folder using" -msgstr "Просматривать новые папки, используя" - -#: Thunar.xml742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "Выбор режима просмотра папок по умолчанию. Когда вы откроете новое окно, оно будет отображаться в выбранном режиме: просмотр в виде значков, просмотр в виде компактного списка или просмотр в виде подробного списка. Вы также можете выбрать Последний активный режим просмотра, чтобы использовался режим просмотра предыдущего активного окна." - -#: Thunar.xml752(guilabel) -msgid "Sort folders before files" -msgstr "Отображать папки перед файлами" - -#: Thunar.xml754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "Выберите данный параметр для отображения списка папок перед файлами при сортировке содержимого каталога." - -#: Thunar.xml761(guilabel) -msgid "Show thumbnails" -msgstr "Показывать образцы файлов" - -#: Thunar.xml763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "Выберите данный параметр для отображения образцов файлов (эскизов, иллюстрирующих содержимое файла) для графических или других поддерживаемых типов файлов. Файловый менеджер хранит образцы файлов для каждой папки в скрытом каталоге .thumbnails в домашнем каталоге пользователя." - -#: Thunar.xml768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "Обратитесь к разделу , если вы хотите расширить базовую функциональность Thunar для поддержки дополнительных типов файлов." - -#: Thunar.xml777(guilabel) -msgid "Text beside icons" -msgstr "Текст рядом со значками" - -#: Thunar.xml779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "Выберите данный параметр, чтобы в режиме просмотре в виде значков подпись размещалась рядом со значком. В противном случае подпись будет находиться под значком." - -#: Thunar.xml790(title) Thunar.xml803(phrase) -msgid "Side Pane Preferences" -msgstr "Настройки боковой панели" - -#: Thunar.xml792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "В этой вкладке вы можете выбрать параметры отображения содержимого боковой панели в виде закладок и дерева." - -#: Thunar.xml808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "Боковая панель может отображать как список закладок для папок системы (по умолчанию), так и структуру вашей файловой системы в виде дерева. Данная вкладка позволяет выбрать размер значков для закладок и дерева. Вы также можете определить, будут ли отображаться эмблемы значков." - -#: Thunar.xml817(guilabel) -msgid "Icon Size" -msgstr "Размер значков" - -#: Thunar.xml819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "Размер значков может быть от Крошечные (около 16x16 пикселей) до Очень большие (около 128x128 пикселей)." - -#: Thunar.xml827(guilabel) -msgid "Show Icon Emblems" -msgstr "Показывать эмблемы значков" - -#: Thunar.xml829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "Выберите данный параметр для отображения эмблем папок в боковой панели. Вы можете назначить эмблемы для папок в диалоговом окне Свойства. Выделите папку в основной области окна и выберите в главном меню ФайлСвойства..., или щелкните правой кнопкой мыши по папке и выберите в контекстном меню Свойства...." - -#: Thunar.xml843(title) Thunar.xml856(phrase) -msgid "Behavior Preferences" -msgstr "Настройки поведения" - -#: Thunar.xml845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "В этой вкладке вы можете настроить взаимодействие с файловым менеджером." - -#: Thunar.xml863(guilabel) -msgid "Single click to active items" -msgstr "Одиночный щелчок активирует объект" - -#: Thunar.xml865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "Выберите данный параметр для выполнения действия по умолчанию при одиночном щелчке по объекту. Когда данный параметр выбран, при наведении курсора на объект его название подчеркивается, и объект будет выбран автоматически спустя некоторый промежуток времени." - -#: Thunar.xml871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "Длительность задержки может быть изменена с помощью ползунка. Вы можете отключить автоматическое выделение объектов, передвинув ползунок в крайнюю левую позицию." - -#: Thunar.xml880(guilabel) -msgid "Double click to activate items" -msgstr "Двойной щелчок активирует объект" - -#: Thunar.xml882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "Выберите данный параметр для выполнения действия по умолчанию при двойном щелчке по объекту. Объект будет выделяться одиночным щелчком." - -#: Thunar.xml893(title) Thunar.xml906(phrase) -msgid "Advanced Preferences" -msgstr "Дополнительные настройки" - -#: Thunar.xml895(para) -msgid "You can control advanced features of the file manager." -msgstr "В этой вкладке вы можете настроить дополнительные возможности файлового менеджера." - -#: Thunar.xml913(guilabel) -msgid "Folder Permissions" -msgstr "Права" - -#: Thunar.xml915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "Выберите действие, которое должно выполняться при изменении вами прав доступа для папки в диалоговом окне Свойства. Вы можете выбрать следующие варианты: спрашивать каждый раз, применять новые права только к этой папке или применять их рекурсивно для всего содержимого папки." - -#: Thunar.xml925(guilabel) -msgid "Volume Management" -msgstr "Управление томами" - -#: Thunar.xml927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "Если Thunar был установлен с поддержкой HAL и был установлен пакет thunar-volman, то вы можете включить управление томами. Обратитесь к разделу для получения более подробной информации о данной функции." - -#: Thunar.xml940(title) -msgid "Customizing Thunar" -msgstr "Модификация Thunar" - -#: Thunar.xml942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "Эта глава описывает способы модификации некоторых компонентов файлового менеджера под ваши нужды." - -#: Thunar.xml948(title) -msgid "The \"Send To\" Menu" -msgstr "Меню «Отправить в»" - -#: Thunar.xml950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "В Thunar есть меню Отправить в, предлагающее возможные места, куда можно отправить файлы или папки. Для доступа к меню Отправить в выберите в главном меню ФайлОтправить в либо щелкните правой кнопкой мыши на файле или папке и выберите Отправить в." - -#: Thunar.xml964(phrase) -msgid "\"Send To\" Menu" -msgstr "Меню «Отправить в»" - -#: Thunar.xml969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "По умолчанию меню Отправить в содержит пункт Рабочий стол (Создать ссылку) для всех файлов и папок. При выборе этого пункта на рабочем столе создается ссылка для каждого выбранного файла. Если Боковая панель отображается в виде закладок, меню содержит пункт Боковая панель (создать закладку) для папок. Этот пункт позволяет пользователям добавлять новые закладки на боковую панель. После этих пунктов перечисляются съемные устройства и носители, подключенные к компьютеру в настоящее время. Например, на рисунке вверху в меню есть пункт Дисковод, предоставляющий возможность скопировать файл на дискету. Обратите внимание, что при выборе в меню Отправить в съемные устройства и носители подключаются автоматически, и вам не нужно делать это вручную." - -#: Thunar.xml979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "В состав Thunar входит модуль thunar-sendto-email, который добавляет пункт меню Электронная почта. Этот пункт запускает почтовую программу, а выбранный файл присоединяется к новому письму в качестве вложения. Если выделена хотя бы одна папка, выбранные файлы и папки добавляются в архив ZIP, а затем архив присоединяется к электронному письму. В остальных случаях, если выделены несколько файлов или один файл размером больше 200 Кб, пользователю будет предложено упаковать файлы в архив ZIP и отправить этот архив." - -#: Thunar.xml987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "Как и большинство остальных функций в Thunar, меню Отправить в может быть легко расширено пользователями и разработчиками приложений путем добавления новых пунктов с помощью стандартных файлов элементов рабочего стола. Эти файлы должны размещаться в одном из каталогов в $XDG_DATA_DIRS/Thunar/sendto/ (см. XDG Base Directory Specification для более подробной информации о переменной $XDG_DATA_DIRS)." - -#: Thunar.xml996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "MimeType в файле .desktop для нового пункта меню Отправить в задает типы файлов, для которых данный пункт меню будет доступен. Например, вы хотите добавить пункт меню для инструмента загрузки Flickr, который должен отображаться только тогда, когда выделены файлы JPEG (остальные форматы файлов не поддерживаются Flickr). Таким образом, вам нужно добавить строку MimeType=image/jpeg;. Если вы не определите MimeType, ваш пункт будет отображаться для всех типов файлов." - -#: Thunar.xml1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "Ниже приведен полный пример, использующий приложение postr:" - -#: Thunar.xml1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "Если вы разместите данный файл в ~/.local/share/Thunar/sendto/ (если каталог не существует, создайте его), в меню Отправить в для файлов JPEG появится новый пункт Flickr, который может использоваться для загрузки изображений JPEG на Flickr." - -#: Thunar.xml1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "Проект Thunar Wiki содержит дополнительные примеры пунктов меню Отправить в. Вы свободно можете добавить новые примеры на страницу Wiki." - -#: Thunar.xml1036(title) -msgid "Thumbnailers" -msgstr "Утилиты создания образцов файлов" - -#: Thunar.xml1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "Thunar использует небольшие утилиты для создания образцов файлов некоторых типов. Образцы представляют собой небольшие изображения, иллюстрирующие содержимое файла, и используются для предварительного просмотра файлов. Инструменты для их создания называются утилитами создания образцов. В состав Thunar входят утилиты создания образцов для файлов изображений и шрифтов. Кроме этого, если Thunar был установлен с поддержкой gconf, он автоматически применяет установленные утилиты создания образцов для GNOME. Пользователи могут самостоятельно расширить базовую функциональность Thunar, добавив утилиты создания образцов для дополнительных типов файлов." - -#: Thunar.xml1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "Если вы хотите разработать свою утилиту создания образцов файлов, то вам необходимо написать программу, принимающую по крайней мере два аргумента командной строки: исходный файл одного из поддерживаемых типов и выходной файл, который представляет собой файл PNG, соответствующий формату Thumbnail Management Standard. Хотя это и не обязательно, рекомендуется запрашивать желаемый размер образца. Если вы запишете выходной файл с произвольно выбранным размером изображения, Thunar впоследствии изменит масштаб до желаемого размера. Результат при этом будет хуже по сравнению с первоначальным созданием образца нужного размера." - -#: Thunar.xml1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "Когда ваша утилита будет закончена, вам потребуется ее зарегистрировать, чтобы Thunar смог ее найти и применить. Все, что вам нужно сделать, это разместить файл описания для утилиты создания образцов (файл .desktop) в подкаталоге $XDG_DATA_DIRS/thumbnailers/. Например, если вы хотите зарегистрировать утилиту только для вашей учетной записи пользователя, вы можете поместить файл в каталог ~/.local/share/thumbnailers/. Файл .desktop для утилит создания образцов имеет следующий формат." - -#: Thunar.xml1063(title) -msgid "Thumbnailer Description File Format" -msgstr "Формат файла описания утилиты создания образцов" - -#: Thunar.xml1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "Файлы описания утилит создания образцов используют Desktop Entry Format со специальным типом X-Thumbnailer и специальным полем X-Thumbnailer-Exec с новыми кодами полей. Файлы описания утилит создания образцов имеют следующий основной формат." - -#: Thunar.xml1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Ваша утилита\n" -"MimeType=ваш/mime-type;\n" -"X-Thumbnailer-Exec=ваша_утилита %i %o %s" - -#: Thunar.xml1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "Version и Encoding определяются спецификацией элементов рабочего стола. Используйте значения, приведенные в примере выше. Поле Type должно иметь специальное значение X-Thumbnailer, иначе ваша утилита не будет распознана. Поле Name описывает вашу утилиту создания образцов." - -#: Thunar.xml1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "Поле X-Thumbnailer-Exec содержит команду для запуска вашей утилиты и поддерживает некоторые коды полей, которые будут заменены при запуске утилиты. Коды полей распознаются следующим образом:" - -#: Thunar.xml1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "Локальный путь к входному файлу, для которого создается образец. Может быть как относительным путем от каталога, из которого была вызвана утилита создания образцов, так и абсолютным путем." - -#: Thunar.xml1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "Локальный путь к выходному файлу для хранения созданного образца. Выходной файл должен представлять собой корректный файл PNG в соответствии со стандартом образцов (см. выше). Обратите внимание, что путь может не заканчиваться .png, что важно при вызове некоторых сторонних инструментальных средств." - -#: Thunar.xml1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "Желаемый размер создаваемого образца в пикселях. Этот параметр необязателен." - -#: Thunar.xml1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "Похож на %i, но заменяется на URI (Uniform Resource Identifier — унифицированный идентификатор ресурса) файла, а не на путь к файлу. Был добавлен для совместимости с GNOME." - -#: Thunar.xml1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml1127(para) -msgid "Will be substituted with a single %." -msgstr "Будет заменен одиночным символом %." - -#: Thunar.xml1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "Вам необходимо использовать, по крайней мере, %o и %i или %u, иначе ваша утилита создания образцов будет бесполезна." - -#: Thunar.xml1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "MimeType перечисляет через точку с запятой типы MIME, для которых ваша утилита создания образцов сможет создать эскиз для предварительного просмотра." - -#: Thunar.xml1143(title) -msgid "Example EPS Thumbnailer" -msgstr "Пример утилиты создания образцов файлов EPS" - -#: Thunar.xml1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "Этот пример демонстрирует, как написать и установить новую утилиту создания образцов для файлов .eps. Эта утилита использует программу convert, входящую в состав ImageMagick. Во-первых, начнем с простого скрипта, вызывающего convert для создания образца требуемого размера." - -#: Thunar.xml1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "Сохраните этот скрипт в файле под именем eps-thumbnailer, убедитесь, что файл исполняемый, и поместите его в /usr/local/bin." - -#: Thunar.xml1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "Далее нам нужно создать файл описания этой утилиты eps-thumbnailer.desktop, который будет выглядеть следующим образом:" - -#: Thunar.xml1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "Этот файл нужно поместить в /usr/local/share/thumbnailers (если каталог не существует, создайте его)." - -#: Thunar.xml1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "Файл eps-thumbnailer.desktop использует специальный ключ TryExec, называющий, если определен, команду, которая обязательно должна присутствовать в системе для обеспечения работы утилиты. В данном случае, наш скрипт бесполезен, если нет утилиты convert." - -#: Thunar.xml1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "Последний шаг — обновить кеш утилит создания образцов, чтобы Thunar выбрал нашу утилиту. Кеш утилит расположен в $XDG_CACHE_HOME/Thunar/thumbnailers.cache ($XDG_CACHE_HOME указывает на папку ~/.cache/, если вы или ваш системный администратор не меняли эту переменную). Thunar периодически обновляет кеш утилит, но вы можете обновить его немедленно, вызвав утилиту thunar-vfs-update-thumbnailers-cache-1 из состава Thunar. Эта утилита обычно устанавливается в подкаталог libexec каталога установки (sbin в Debian/Ubuntu). Таким образом, если Thunar установлен в /usr, вызовите утилиту следующим образом:" - -#: Thunar.xml1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "Удостоверьтесь, что вызываете программу из вашей учетной записи пользователя, а не как суперпользователь, так как кеш утилит хранится в вашем домашнем каталоге, а не в общесистемном." - -#: Thunar.xml1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "Теперь, если Thunar был собран с поддержкой мониторинга изменения файлов (с использованием сервисов FAM или Gamin), он за несколько секунд заберет новый кеш утилит создания образцов и после этого сможет создавать образцы с помощью ваших пользовательских утилит. В противном случае вам может потребоваться полностью перезапустить Thunar для применения изменений, выполнив" - -#: Thunar.xml1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "для остановки всех запущенных копий, а затем перезапустить его любым способом." - -#: Thunar.xml1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Очистка кеша образцов" - -#: Thunar.xml1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "Созданные образцы хранятся в папке ~/.thumbnails/ в соответствии с Thumbnail Management Standard. Выполнение следующей команды очистит кеш образцов при тестировании новой утилиты:" - -#: Thunar.xml1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "При этом освободится место в вашем домашнем каталоге. Вы не потеряете никакие важные данные, так как вся информация, хранимая в этом каталоге, создается автоматически на основе файлов в файловой системе." - -#: Thunar.xml1257(title) -msgid "Advanced Topics" -msgstr "Дополнительная информация" - -#: Thunar.xml1261(title) -msgid "To Bulk Rename Files" -msgstr "Массовое переименование файлов" - -#: Thunar.xml1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "Массовое переименование означает переименование нескольких файлов за раз. В состав Thunar входит утилита массового переименования, которая может быть запущена отдельно командой Thunar -B. Также она запускается из Thunar при выделении двух или более файлов в основной области окна и нажатии F2 или выборе ПравкаПереименовать... из главного меню." - -#: Thunar.xml1278(phrase) -msgid "Bulk Rename Files" -msgstr "Массовое переименование файлов" - -#: Thunar.xml1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "Утилиты массового переименования могут использоваться для изменения имен файлов, расширений или обоих сразу. Thunar в настоящее время предлагает следующие виды массового переименования:" - -#: Thunar.xml1290(para) -msgid "Remove characters." -msgstr "Удаление символов." - -#: Thunar.xml1291(para) -msgid "Numbering files." -msgstr "Нумерация файлов." - -#: Thunar.xml1292(para) -msgid "Insert Date or Time." -msgstr "Вставка даты или времени." - -#: Thunar.xml1293(para) -msgid "Insert or overwrite characters." -msgstr "Вставка или замена символов." - -#: Thunar.xml1294(para) -msgid "Search and replace characters." -msgstr "Поиск и замена символов." - -#: Thunar.xml1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "Преобразование в заглавные, строчные буквы или к формату с заглавными первыми буквами." - -#: Thunar.xml1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "Дополнительные утилиты массового переименования могут быть установлены в качестве дополнительных модулей для Thunar. Для получения доступных расширений зайдите на сайт Thunar Plugins. Более подробная информация содержится в Thunar Wiki. Свободно добавляйте информацию на Wiki." - -#: Thunar.xml1308(title) -msgid "The UNIX File System" -msgstr "Файловая система UNIX" - -#: Thunar.xml1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "Файловый менеджер Thunar хорошо скрывает от пользователя детали работы файловой системы. Тем не менее, иногда полезно изучить основы для получения полной картины. Этот раздел содержит краткое введение в концепцию файловой системы UNIX, использующейся в настоящее время во всех инкарнациях UNIX, включая Linux." - -#: Thunar.xml1318(title) -msgid "Folders and Paths" -msgstr "Каталоги и пути" - -#: Thunar.xml1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "В файловой системе UNIX все папки объединены в простую структуру в виде перевернутого дерева. Это дерево разветвляется вниз от единой общей папки верхнего уровня, которая называется корневым каталогом (термины каталог или директория иногда используются вместо термина папка) и отображается в Thunar как Файловая система. Это означает, что вы можете перейти из одной папки в любую другую, переходя вверх по дереву, пока не достигнете общей точки, а затем опускаясь вниз по дереву через соответствующие подкаталоги, пока не достигнете цели." - -#: Thunar.xml1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "Позицию каждого файла или папки в дереве можно описать с помощью его пути. Путь — это список каталогов, через которые вы должны пройти до нужной папки или файла, начиная с каталога верхнего уровня. Например, /home/luke — это подкаталог luke подкаталога home каталога верхнего уровня, а /home/luke/myfile.txt — это файл myfile.txt в этом подкаталоге. Ведущий / в этих путях представляет каталог верхнего уровня." - -#: Thunar.xml1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "Каждый пользователь имеет свой собственный каталог для хранения файлов и настроек. Этот каталог называется домашним каталогом и отображается в Thunar специальным значком с именем пользователя. Домашний каталог похож на каталог Мои документы в Windows. Домашние каталоги различных пользователей системы обычно расположены в каталоге /home. Например, /home/luke — домашний каталог пользователя с именем luke, а /home/jane — домашний каталог пользователя с именем jane." - -#: Thunar.xml1350(title) -msgid "File Types" -msgstr "Типы файлов" - -#: Thunar.xml1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "Вы могли уже слышать, что все в UNIX — файлы. Это справедливо для большинства объектов в современных системах UNIX. Даже устройства представлены как специальные файлы. Хотя эта концепция может показаться бессмысленной на первый взгляд, она является одной из сильных сторон UNIX и производных систем. Это помогло сохранить простое ядро в течение многих лет, пока другим операционным системам приходилось представлять новые концепции для каждой новой технологии." - -#: Thunar.xml1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "Четыре наиболее важных типа файлов в файловой системе UNIX:" - -#: Thunar.xml1364(title) -msgid "Ordinary Files" -msgstr "Обычные файлы" - -#: Thunar.xml1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "Обычные файлы могут содержать текст, программы или другие данные. Они включают файлы изображений, аудиофайлы, офисные документы и видеофайлы. Термин файл часто используется для обозначения обычных файлов." - -#: Thunar.xml1373(title) -msgid "Folder Files" -msgstr "Файлы каталогов" - -#: Thunar.xml1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "Каталоги также являются файлами в файловой системе UNIX. Точнее, каталог — это специальный файл, который содержит имена файлов и соответствующие ссылки для всех файлов в этом каталоге." - -#: Thunar.xml1382(title) -msgid "Symbolic Link Files" -msgstr "Файлы символических ссылок" - -#: Thunar.xml1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "Символическая ссылка (часто называемая симлинк) — это специальный файл, содержащий путь к другому файлу в файловой системе. Файлы символических ссылок сами по себе не содержат никакой полезной информации, а просто ссылаются на другие файлы." - -#: Thunar.xml1392(title) -msgid "Device Files" -msgstr "Файлы устройств" - -#: Thunar.xml1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "Как упоминалось ранее, доступ к большинству устройств можно получить посредством файловой системы. Эти специальные файлы устройств обычно расположены в каталоге /dev. Например, специальный файл /dev/hda представляет первый диск IDE в Linux." - -#: Thunar.xml1406(title) -msgid "Frequently Asked Questions" -msgstr "Часто задаваемые вопросы" - -#: Thunar.xml1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "Задача этого раздела — собрать многочисленные часто задаваемые вопросы, относящиеся к работе с Thunar. Если у вас есть вопрос, которого нет на этой странице, пожалуйста, отправьте запрос." - -#: Thunar.xml1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Почему Thunar не выполняет файлы, помеченные как исполняемые?" - -#: Thunar.xml1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "Из соображений безопасности Thunar выполняет только файлы типа application/x-desktop, application/x-executable и application/x-shellscript. Для файлов рабочего стола функция выполнения будет доступна, если файл имеет тип Application и строка Exec корректна, или если файл имеет тип Link и адрес URL корректен. Для остальных типов функция выполнения доступна, если файл помечен как исполняемый для текущего пользователя." - -#: Thunar.xml1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "Обратите внимание, что для application/x-executable и application/x-shellscript тип файла не обязательно должен точно соответствовать этим типам, а достаточно, чтобы определенный тип имел родителя, который соответствует одному из двух вышеперечисленных типов, или если его MIME-тип является псевдонимом одного из этих типов." - -#: Thunar.xml1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Где Thunar хранит метаданные, связанные с файлами?" - -#: Thunar.xml1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "Thunar связывает с файлами/каталогами различные настройки, которые мы называем метаданными. Эти метаданные для всех файлов хранятся в файле базы данных tdb, который называется метафайлом. Файл базы данных хранится в $XDG_CACHE_HOME/Thunar/metafile.tdb и может быть открыт в tdbtool, являющимся частью дистрибутива Thunar (расположен в подкаталоге tdb/)." - -#: Thunar.xml1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Где Thunar хранит свои настройки?" - -#: Thunar.xml1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "Thunar хранит пользовательские (и скрытые) настройки в файле .ini, который находится в $XDG_CONFIG_HOME/Thunar/thunarrc и может быть открыт в текстовом редакторе. См. обзор различных настроек в docs/README.thunarrc." - -#: Thunar.xml1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Как использовать жесты мыши в Thunar?" - -#: Thunar.xml1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "Thunar в настоящее время осуществляет базовую поддержку так называемых жестов мыши в режиме просмотра в виде значков. Вы можете использовать эти жесты мыши, удерживая среднюю кнопку мыши (обычно это колесико мыши). Курсор при этом должен находиться на области фона компонента отображения значков (любой области, не закрытой значками или текстом). В этом случае вы можете передвигать курсор в четырех направлениях для выполнения следующих действий." - -#: Thunar.xml1474(guilabel) -msgid "Left" -msgstr "Влево" - -#: Thunar.xml1474(member) -msgid " - opens the previous visited folder" -msgstr " — открывает предыдущий каталог" - -#: Thunar.xml1475(guilabel) -msgid "Up" -msgstr "Вверх" - -#: Thunar.xml1475(member) -msgid " - opens the parent folder" -msgstr " — открывает родительский каталог" - -#: Thunar.xml1476(guilabel) -msgid "Right" -msgstr "Вправо" - -#: Thunar.xml1476(member) -msgid " - opens the next visited folder" -msgstr " — открывает следующий каталог" - -#: Thunar.xml1477(guilabel) -msgid "Down" -msgstr "Вниз" - -#: Thunar.xml1477(member) -msgid " - reloads the current folder" -msgstr " — заново загружает текущий каталог" - -#: Thunar.xml1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "Как я могу определить различные горячие клавиши?" - -#: Thunar.xml1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "Thunar поддерживает стандартный способ изменения «горячих клавиш» GTK+. Если вы хотите переопределить «горячие клавиши», просто наведите курсор мыши на пункт меню и нажмите нужное сочетание клавиш." - -#: Thunar.xml1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "Чтобы удалить «горячую клавишу», нажмите клавишу Backspace, когда указатель мыши расположен над пунктом меню." - -#: Thunar.xml1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "Если «горячая клавиша» не изменилась, то вам нужно включить эту функцию в GTK+. Это можно сделать 3 способами:" - -#: Thunar.xml1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "Если у вас запущен Xfce 4.3 или более поздней версии, вы можете выбрать Включить редактируемые ускорители в диалоговом окне Внешний вид." - -#: Thunar.xml1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "Если запущен GNOME, то вы можете выбрать Включить редактируемые ускорители в диалоговом окне центра управления Меню и панели инструментов." - -#: Thunar.xml1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "В остальных случаях добавьте следующую строку в файл ~/.gtkrc-2.0 (если он не существует, создайте его):gtk-can-change-accels=1" - -#: Thunar.xml1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Где Thunar хранит «горячие» клавиши?" - -#: Thunar.xml1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "Пользовательские «горячие» клавиши хранятся в стандартном формате accel map GTK+ в файле $XDG_CONFIG_HOME/Thunar/accels.scm. Строки, начинающиеся с ; — комментарии. См. документацию GTK+ для более подробной информации о формате файла." - -#: Thunar.xml1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "Если вы разработчик пакетов приложений или системный администратор и хотите задать общесистемный набор «горячих» клавиш по умолчанию, отличающихся от стандартных «горячих» клавиш в Thunar, вы можете создать файл Thunar/accels.scm в одном из каталогов $XDG_CONFIG_DIRS. К примеру, если /etc/xdg является частью $XDG_CONFIG_DIRS (по умолчанию, для большинства дистрибутивов Linux), вы можете установить общесистемные настройки по умолчанию в /etc/xdg/Thunar/accels.scm. Thunar прочитает «горячие» клавиши из этого файла при первом запуске." - -#: Thunar.xml1549(title) -msgid "Support" -msgstr "Поддержка" - -#: Thunar.xml1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "Чтобы сообщить об ошибке или внести предложение касательно этого приложения или данного руководства, используйте систему отслеживания ошибок на http://bugzilla.xfce.org/. Помните, что хороший отчет об ошибке приводит к ее исправлению, поэтому он должен обладать двумя качествами:" - -#: Thunar.xml1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "Воспроизводимость. Если разработчик сам не сможет увидеть ошибку и убедиться в ее существовании, он, скорее всего, вообще не сможет ее исправить. Поможет каждая деталь, которую вы сможете предоставить." - -#: Thunar.xml1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "Конкретность. Чем быстрее разработчик сможет отнести проблему к определенной области, тем быстрее он ее исправит." - -#: Thunar.xml1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "В случае, если вы хотите предложить новую функцию, пожалуйста, четко сформулируйте, почему вы считаете ее ценным дополнением к приложению. Если вы представите хорошие аргументы в ее пользу, больше шансов, что новая функция будет добавлена. Еще больше увеличится шанс добавления, если вы предоставите патч, осуществляющий требуемую функцию. Удостоверьтесь, что вы прочитали файл HACKING — особенно раздел Coding Style — до того, как начнете править исходный код." - -#: Thunar.xml1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "В случае, если у вас есть вопросы по поводу использования или установки этого программного обеспечения, пожалуйста, задайте их в списке рассылки thunar-dev mailing list или настройте ваш клиент IRC на irc.freenode.net, присоединяйтесь к каналу #thunar и просите помощи." - -#: Thunar.xml1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "О программе @PACKAGE_NAME@" - -#: Thunar.xml1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ написал Benedikt Meurer (benny@xfce.org). Зайдите на сайт Thunar для получения более подробной информации." - -#: Thunar.xml1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "Этот документ написал Benedikt Meurer (benny@xfce.org). Самая последняя версия документа доступна на сайте Thunar." - -#: Thunar.xml1605(para) -msgid "This software is distributed 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." -msgstr "Это программное обеспечение распространяется по условиям лицензии GNU General Public License, опубликованной Free Software Foundation; версии 2 или (по вашему выбору) любой поздней версии." - -#: Thunar.xml1611(para) -msgid "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." -msgstr "Вы должны были получить копию GNU General Public License вместе с программой; если это не так, напишите Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml0(None) -msgid "translator-credits" -msgstr "" -"Copyright © 2010 Кабанова Елена (kea@osinit.ru), Кабанова Ирина (kia@osinit.ru)\r\n" -"Copyright © 2010 Денис Корявов (dkoryavov@pingwinsoft.ru)" diff -Nru thunar-1.2.3/docs/manual/po/sv.po thunar-1.6.10/docs/manual/po/sv.po --- thunar-1.2.3/docs/manual/po/sv.po 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/sv.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1287 +0,0 @@ -# -msgid "" -msgstr "" -"Project-Id-Version: thunar doc\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-10-17 18:13+0100\n" -"Last-Translator: Daniel Nylander \n" -"Language-Team: Swedish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml88(None) -#, fuzzy -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml171(None) -#, fuzzy -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml357(None) -#, fuzzy -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml447(None) -#, fuzzy -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml503(None) -#, fuzzy -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml729(None) -#, fuzzy -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml799(None) -#, fuzzy -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml852(None) -#, fuzzy -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml902(None) -#, fuzzy -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml960(None) -#, fuzzy -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml1274(None) -#, fuzzy -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml12(title) -msgid "Thunar File Manager" -msgstr "Filhanteraren Thunar" - -#: Thunar.xml17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "" - -#: Thunar.xml37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml40(jobtitle) -msgid "Software developer" -msgstr "Programutvecklare" - -#: Thunar.xml41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml42(orgdiv) -msgid "System development" -msgstr "Systemutveckling" - -#: Thunar.xml43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Denna handbok beskriver version @PACKAGE_VERSION@ av @PACKAGE_NAME@." - -#: Thunar.xml54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "Introduktion till @PACKAGE_NAME@" - -#: Thunar.xml56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "" - -#: Thunar.xml62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "" - -#: Thunar.xml68(para) -msgid "Create folders and documents." -msgstr "Skapa mappar och dokument." - -#: Thunar.xml69(para) -msgid "Display your files and folders." -msgstr "Visa dina filer och mappar." - -#: Thunar.xml70(para) -msgid "Manage your files and folders." -msgstr "Hantera dina filer och mappar." - -#: Thunar.xml71(para) -msgid "Run and manage custom actions." -msgstr "Kör och hantera anpassade åtgärder." - -#: Thunar.xml72(para) -msgid "Access Removable Media." -msgstr "Kom åt flyttbart media." - -#: Thunar.xml78(title) -msgid "The File Manager Window" -msgstr "Filhanterarfönstret" - -#: Thunar.xml80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "" - -#: Thunar.xml92(phrase) -msgid "File Manager Window" -msgstr "Filhanterarfönster" - -#: Thunar.xml97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "" - -#: Thunar.xml108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "" - -#: Thunar.xml115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "" - -#: Thunar.xml123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "" - -#: Thunar.xml131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "" - -#: Thunar.xml139(title) -msgid "Customizing the Appearance" -msgstr "Anpassa utseendet" - -#: Thunar.xml141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "" - -#: Thunar.xml147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "" - -#: Thunar.xml153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "" - -#: Thunar.xml160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "" - -#: Thunar.xml162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "" - -#: Thunar.xml175(phrase) Thunar.xml182(guilabel) -msgid "Visible Columns" -msgstr "Synliga kolumner" - -#: Thunar.xml184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" - -#: Thunar.xml193(guilabel) -msgid "Column Sizing" -msgstr "" - -#: Thunar.xml195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "" - -#: Thunar.xml208(title) -msgid "Working with Files and Folders" -msgstr "Arbeta med filer och mappar" - -#: Thunar.xml212(title) -msgid "Opening Files" -msgstr "" - -#: Thunar.xml214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "" - -#: Thunar.xml220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "" - -#: Thunar.xml226(title) -msgid "Executing the Default Action" -msgstr "" - -#: Thunar.xml228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "" - -#: Thunar.xml234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "" - -#: Thunar.xml241(title) -msgid "Executing Non-Default Actions" -msgstr "" - -#: Thunar.xml243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "" - -#: Thunar.xml251(title) -msgid "Adding Actions" -msgstr "" - -#: Thunar.xml253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "" - -#: Thunar.xml259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "" - -#: Thunar.xml264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "" - -#: Thunar.xml270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "" - -#: Thunar.xml277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "" - -#: Thunar.xml283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "" - -#: Thunar.xml290(title) -msgid "Modifying Actions" -msgstr "" - -#: Thunar.xml292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "" - -#: Thunar.xml298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "" - -#: Thunar.xml303(para) Thunar.xml383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "" - -#: Thunar.xml308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "" - -#: Thunar.xml315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "" - -#: Thunar.xml324(title) Thunar.xml361(phrase) -msgid "File Properties" -msgstr "Filegenskaper" - -#: Thunar.xml326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "" - -#: Thunar.xml333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "" - -#: Thunar.xml338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "" - -#: Thunar.xml343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "" - -#: Thunar.xml348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "" - -#: Thunar.xml366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "" - -#: Thunar.xml372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "" - -#: Thunar.xml386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "" - -#: Thunar.xml389(para) -msgid "Press AltReturn." -msgstr "Tryck på AltReturn." - -#: Thunar.xml379(para) -msgid "Do one of the following: " -msgstr "" - -#: Thunar.xml400(title) -msgid "Using Removable Media" -msgstr "" - -#: Thunar.xml403(title) -msgid "Accessing Removable Media" -msgstr "" - -#: Thunar.xml405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "" - -#: Thunar.xml412(title) -msgid "To Mount Media" -msgstr "" - -#: Thunar.xml414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "" - -#: Thunar.xml419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "" - -#: Thunar.xml426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "" - -#: Thunar.xml434(title) -msgid "To Eject Media" -msgstr "" - -#: Thunar.xml436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "" - -#: Thunar.xml451(phrase) -msgid "Unmount notification" -msgstr "" - -#: Thunar.xml456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "" - -#: Thunar.xml464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "" - -#: Thunar.xml470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "" - -#: Thunar.xml479(title) -msgid "Management of Removable Drives and Media" -msgstr "" - -#: Thunar.xml481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "" - -#: Thunar.xml487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "" - -#: Thunar.xml494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "" - -#: Thunar.xml507(phrase) -msgid "Removable Drives and Media" -msgstr "" - -#: Thunar.xml512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "" - -#: Thunar.xml519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "" - -#: Thunar.xml527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "" - -#: Thunar.xml529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "" - -#: Thunar.xml533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "" - -#: Thunar.xml544(guilabel) -msgid "Mount removable media when inserted" -msgstr "" - -#: Thunar.xml546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" - -#: Thunar.xml550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "" - -#: Thunar.xml560(guilabel) -msgid "Browse removable media when inserted" -msgstr "" - -#: Thunar.xml562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "" - -#: Thunar.xml574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "" - -#: Thunar.xml576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "" - -#: Thunar.xml582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "" - -#: Thunar.xml590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "" - -#: Thunar.xml592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" - -#: Thunar.xml602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "" - -#: Thunar.xml610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "" - -#: Thunar.xml617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "" - -#: Thunar.xml625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "" - -#: Thunar.xml635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "" - -#: Thunar.xml648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "" - -#: Thunar.xml650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "" - -#: Thunar.xml656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "" - -#: Thunar.xml668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" - -#: Thunar.xml678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "" - -#: Thunar.xml689(title) -msgid "File Management Preferences" -msgstr "" - -#: Thunar.xml691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "" - -#: Thunar.xml697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "" - -#: Thunar.xml703(para) -msgid "The default settings for the views." -msgstr "" - -#: Thunar.xml704(para) -msgid "The default settings for the side pane." -msgstr "" - -#: Thunar.xml705(para) -msgid "The behavior of the file manager windows." -msgstr "" - -#: Thunar.xml706(para) -msgid "Advanced features of the file manager." -msgstr "" - -#: Thunar.xml709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "" - -#: Thunar.xml718(title) Thunar.xml733(phrase) -msgid "Views Preferences" -msgstr "" - -#: Thunar.xml720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "" - -#: Thunar.xml740(guilabel) -msgid "View new folder using" -msgstr "" - -#: Thunar.xml742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "" - -#: Thunar.xml752(guilabel) -msgid "Sort folders before files" -msgstr "" - -#: Thunar.xml754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "" - -#: Thunar.xml761(guilabel) -msgid "Show thumbnails" -msgstr "" - -#: Thunar.xml763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "" - -#: Thunar.xml768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "" - -#: Thunar.xml777(guilabel) -msgid "Text beside icons" -msgstr "" - -#: Thunar.xml779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "" - -#: Thunar.xml790(title) Thunar.xml803(phrase) -msgid "Side Pane Preferences" -msgstr "" - -#: Thunar.xml792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "" - -#: Thunar.xml808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "" - -#: Thunar.xml817(guilabel) -msgid "Icon Size" -msgstr "Ikonstorlek" - -#: Thunar.xml819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "" - -#: Thunar.xml827(guilabel) -msgid "Show Icon Emblems" -msgstr "Visa ikonemblem" - -#: Thunar.xml829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "" - -#: Thunar.xml843(title) Thunar.xml856(phrase) -msgid "Behavior Preferences" -msgstr "" - -#: Thunar.xml845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "" - -#: Thunar.xml863(guilabel) -msgid "Single click to active items" -msgstr "" - -#: Thunar.xml865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "" - -#: Thunar.xml871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "" - -#: Thunar.xml880(guilabel) -msgid "Double click to activate items" -msgstr "" - -#: Thunar.xml882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "" - -#: Thunar.xml893(title) Thunar.xml906(phrase) -msgid "Advanced Preferences" -msgstr "Avancerade inställningar" - -#: Thunar.xml895(para) -msgid "You can control advanced features of the file manager." -msgstr "" - -#: Thunar.xml913(guilabel) -msgid "Folder Permissions" -msgstr "Mapprättigheter" - -#: Thunar.xml915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "" - -#: Thunar.xml925(guilabel) -msgid "Volume Management" -msgstr "Volymhantering" - -#: Thunar.xml927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "" - -#: Thunar.xml940(title) -msgid "Customizing Thunar" -msgstr "Anpassa Thunar" - -#: Thunar.xml942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "" - -#: Thunar.xml948(title) -msgid "The \"Send To\" Menu" -msgstr "" - -#: Thunar.xml950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "" - -#: Thunar.xml964(phrase) -msgid "\"Send To\" Menu" -msgstr "" - -#: Thunar.xml969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "" - -#: Thunar.xml979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "" - -#: Thunar.xml987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "" - -#: Thunar.xml996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "" - -#: Thunar.xml1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "" - -#: Thunar.xml1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" - -#: Thunar.xml1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "" - -#: Thunar.xml1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "" - -#: Thunar.xml1036(title) -msgid "Thumbnailers" -msgstr "" - -#: Thunar.xml1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "" - -#: Thunar.xml1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "" - -#: Thunar.xml1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "" - -#: Thunar.xml1063(title) -msgid "Thumbnailer Description File Format" -msgstr "" - -#: Thunar.xml1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "" - -#: Thunar.xml1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "" - -#: Thunar.xml1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" - -#: Thunar.xml1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "" - -#: Thunar.xml1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" - -#: Thunar.xml1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "" - -#: Thunar.xml1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "" - -#: Thunar.xml1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml1127(para) -msgid "Will be substituted with a single %." -msgstr "" - -#: Thunar.xml1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "" - -#: Thunar.xml1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "" - -#: Thunar.xml1143(title) -msgid "Example EPS Thumbnailer" -msgstr "" - -#: Thunar.xml1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "" - -#: Thunar.xml1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" - -#: Thunar.xml1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "" - -#: Thunar.xml1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" - -#: Thunar.xml1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "" - -#: Thunar.xml1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "" - -#: Thunar.xml1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" - -#: Thunar.xml1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "" - -#: Thunar.xml1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "" - -#: Thunar.xml1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "" - -#: Thunar.xml1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "" - -#: Thunar.xml1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "" - -#: Thunar.xml1237(title) -msgid "Cleaning up Thumbnails" -msgstr "" - -#: Thunar.xml1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "" - -#: Thunar.xml1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "" - -#: Thunar.xml1257(title) -msgid "Advanced Topics" -msgstr "Avancerade ämnen" - -#: Thunar.xml1261(title) -msgid "To Bulk Rename Files" -msgstr "" - -#: Thunar.xml1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "" - -#: Thunar.xml1278(phrase) -msgid "Bulk Rename Files" -msgstr "" - -#: Thunar.xml1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "" - -#: Thunar.xml1290(para) -msgid "Remove characters." -msgstr "Ta bort tecken." - -#: Thunar.xml1291(para) -msgid "Numbering files." -msgstr "" - -#: Thunar.xml1292(para) -msgid "Insert Date or Time." -msgstr "Infoga datum eller tid." - -#: Thunar.xml1293(para) -msgid "Insert or overwrite characters." -msgstr "" - -#: Thunar.xml1294(para) -msgid "Search and replace characters." -msgstr "" - -#: Thunar.xml1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "" - -#: Thunar.xml1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "" - -#: Thunar.xml1308(title) -msgid "The UNIX File System" -msgstr "" - -#: Thunar.xml1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "" - -#: Thunar.xml1318(title) -msgid "Folders and Paths" -msgstr "Mappar och sökvägar" - -#: Thunar.xml1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "" - -#: Thunar.xml1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "" - -#: Thunar.xml1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "" - -#: Thunar.xml1350(title) -msgid "File Types" -msgstr "Filtyper" - -#: Thunar.xml1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "" - -#: Thunar.xml1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "" - -#: Thunar.xml1364(title) -msgid "Ordinary Files" -msgstr "Vanliga filer" - -#: Thunar.xml1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "" - -#: Thunar.xml1373(title) -msgid "Folder Files" -msgstr "Mappfiler" - -#: Thunar.xml1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "" - -#: Thunar.xml1382(title) -msgid "Symbolic Link Files" -msgstr "Symboliska länkfiler" - -#: Thunar.xml1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "" - -#: Thunar.xml1392(title) -msgid "Device Files" -msgstr "Enhetsfiler" - -#: Thunar.xml1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "" - -#: Thunar.xml1406(title) -msgid "Frequently Asked Questions" -msgstr "Frågor och svar" - -#: Thunar.xml1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "" - -#: Thunar.xml1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "" - -#: Thunar.xml1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "" - -#: Thunar.xml1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "" - -#: Thunar.xml1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "" - -#: Thunar.xml1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "" - -#: Thunar.xml1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "" - -#: Thunar.xml1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "" - -#: Thunar.xml1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "" - -#: Thunar.xml1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "" - -#: Thunar.xml1474(guilabel) -msgid "Left" -msgstr "" - -#: Thunar.xml1474(member) -msgid " - opens the previous visited folder" -msgstr "" - -#: Thunar.xml1475(guilabel) -msgid "Up" -msgstr "" - -#: Thunar.xml1475(member) -msgid " - opens the parent folder" -msgstr "" - -#: Thunar.xml1476(guilabel) -msgid "Right" -msgstr "" - -#: Thunar.xml1476(member) -msgid " - opens the next visited folder" -msgstr "" - -#: Thunar.xml1477(guilabel) -msgid "Down" -msgstr "" - -#: Thunar.xml1477(member) -msgid " - reloads the current folder" -msgstr "" - -#: Thunar.xml1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "" - -#: Thunar.xml1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "" - -#: Thunar.xml1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "" - -#: Thunar.xml1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "" - -#: Thunar.xml1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "" - -#: Thunar.xml1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "" - -#: Thunar.xml1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" - -#: Thunar.xml1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "" - -#: Thunar.xml1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "" - -#: Thunar.xml1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" - -#: Thunar.xml1549(title) -msgid "Support" -msgstr "Support" - -#: Thunar.xml1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "" - -#: Thunar.xml1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "" - -#: Thunar.xml1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "" - -#: Thunar.xml1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "" - -#: Thunar.xml1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "" - -#: Thunar.xml1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "Om @PACKAGE_NAME@" - -#: Thunar.xml1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" - -#: Thunar.xml1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "" - -#: Thunar.xml1605(para) -msgid "This software is distributed 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." -msgstr "" - -#: Thunar.xml1611(para) -msgid "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." -msgstr "" - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml0(None) -msgid "translator-credits" -msgstr "Daniel Nylander , 2010" diff -Nru thunar-1.2.3/docs/manual/po/Thunar.pot thunar-1.6.10/docs/manual/po/Thunar.pot --- thunar-1.2.3/docs/manual/po/Thunar.pot 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/Thunar.pot 1970-01-01 00:00:00.000000000 +0000 @@ -1,1215 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\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" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: ./Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "" - -#: ./Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "" - -#: ./Thunar.xml:17(year) -msgid "2004" -msgstr "" - -#: ./Thunar.xml:18(year) -msgid "2005" -msgstr "" - -#: ./Thunar.xml:19(year) -msgid "2006" -msgstr "" - -#: ./Thunar.xml:20(year) -msgid "2007" -msgstr "" - -#: ./Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "" - -#: ./Thunar.xml:25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "" - -#: ./Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "" - -#: ./Thunar.xml:38(surname) -msgid "Meurer" -msgstr "" - -#: ./Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "" - -#: ./Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "" - -#: ./Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "" - -#: ./Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "" - -#: ./Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "" - -#: ./Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "" - -#: ./Thunar.xml:56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "" - -#: ./Thunar.xml:62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "" - -#: ./Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "" - -#: ./Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "" - -#: ./Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "" - -#: ./Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "" - -#: ./Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "" - -#: ./Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "" - -#: ./Thunar.xml:80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "" - -#: ./Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "" - -#: ./Thunar.xml:97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "" - -#: ./Thunar.xml:108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "" - -#: ./Thunar.xml:115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "" - -#: ./Thunar.xml:123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "" - -#: ./Thunar.xml:131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "" - -#: ./Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "" - -#: ./Thunar.xml:141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "" - -#: ./Thunar.xml:147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "" - -#: ./Thunar.xml:153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "" - -#: ./Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "" - -#: ./Thunar.xml:162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "" - -#: ./Thunar.xml:175(phrase) ./Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "" - -#: ./Thunar.xml:184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" - -#: ./Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "" - -#: ./Thunar.xml:195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "" - -#: ./Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "" - -#: ./Thunar.xml:212(title) -msgid "Opening Files" -msgstr "" - -#: ./Thunar.xml:214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "" - -#: ./Thunar.xml:220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "" - -#: ./Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "" - -#: ./Thunar.xml:228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "" - -#: ./Thunar.xml:234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "" - -#: ./Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "" - -#: ./Thunar.xml:243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "" - -#: ./Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "" - -#: ./Thunar.xml:253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "" - -#: ./Thunar.xml:259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "" - -#: ./Thunar.xml:264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "" - -#: ./Thunar.xml:270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "" - -#: ./Thunar.xml:277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "" - -#: ./Thunar.xml:283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "" - -#: ./Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "" - -#: ./Thunar.xml:292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "" - -#: ./Thunar.xml:298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "" - -#: ./Thunar.xml:303(para) ./Thunar.xml:383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "" - -#: ./Thunar.xml:308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "" - -#: ./Thunar.xml:315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "" - -#: ./Thunar.xml:324(title) ./Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "" - -#: ./Thunar.xml:326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "" - -#: ./Thunar.xml:333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "" - -#: ./Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "" - -#: ./Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "" - -#: ./Thunar.xml:348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "" - -#: ./Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "" - -#: ./Thunar.xml:372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "" - -#: ./Thunar.xml:386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "" - -#: ./Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "" - -#: ./Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "" - -#: ./Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "" - -#: ./Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "" - -#: ./Thunar.xml:405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "" - -#: ./Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "" - -#: ./Thunar.xml:414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "" - -#: ./Thunar.xml:419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "" - -#: ./Thunar.xml:426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "" - -#: ./Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "" - -#: ./Thunar.xml:436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "" - -#: ./Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "" - -#: ./Thunar.xml:456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "" - -#: ./Thunar.xml:464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "" - -#: ./Thunar.xml:470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "" - -#: ./Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "" - -#: ./Thunar.xml:481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "" - -#: ./Thunar.xml:487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "" - -#: ./Thunar.xml:494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "" - -#: ./Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "" - -#: ./Thunar.xml:512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "" - -#: ./Thunar.xml:519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "" - -#: ./Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "" - -#: ./Thunar.xml:529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "" - -#: ./Thunar.xml:533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "" - -#: ./Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "" - -#: ./Thunar.xml:546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" - -#: ./Thunar.xml:550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "" - -#: ./Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "" - -#: ./Thunar.xml:562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "" - -#: ./Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "" - -#: ./Thunar.xml:576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "" - -#: ./Thunar.xml:582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "" - -#: ./Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "" - -#: ./Thunar.xml:592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" - -#: ./Thunar.xml:602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "" - -#: ./Thunar.xml:610(literal) -msgid "%d" -msgstr "" - -#: ./Thunar.xml:612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "" - -#: ./Thunar.xml:617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "" - -#: ./Thunar.xml:625(literal) -msgid "%h" -msgstr "" - -#: ./Thunar.xml:627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "" - -#: ./Thunar.xml:635(literal) -msgid "%m" -msgstr "" - -#: ./Thunar.xml:637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "" - -#: ./Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "" - -#: ./Thunar.xml:650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "" - -#: ./Thunar.xml:656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "" - -#: ./Thunar.xml:668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" - -#: ./Thunar.xml:678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "" - -#: ./Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "" - -#: ./Thunar.xml:691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "" - -#: ./Thunar.xml:697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "" - -#: ./Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "" - -#: ./Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "" - -#: ./Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "" - -#: ./Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "" - -#: ./Thunar.xml:709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "" - -#: ./Thunar.xml:718(title) ./Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "" - -#: ./Thunar.xml:720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "" - -#: ./Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "" - -#: ./Thunar.xml:742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "" - -#: ./Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "" - -#: ./Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "" - -#: ./Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "" - -#: ./Thunar.xml:763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "" - -#: ./Thunar.xml:768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "" - -#: ./Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "" - -#: ./Thunar.xml:779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "" - -#: ./Thunar.xml:790(title) ./Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "" - -#: ./Thunar.xml:792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "" - -#: ./Thunar.xml:808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "" - -#: ./Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "" - -#: ./Thunar.xml:819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "" - -#: ./Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "" - -#: ./Thunar.xml:829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "" - -#: ./Thunar.xml:843(title) ./Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "" - -#: ./Thunar.xml:845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "" - -#: ./Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "" - -#: ./Thunar.xml:865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "" - -#: ./Thunar.xml:871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "" - -#: ./Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "" - -#: ./Thunar.xml:882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "" - -#: ./Thunar.xml:893(title) ./Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "" - -#: ./Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "" - -#: ./Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "" - -#: ./Thunar.xml:915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "" - -#: ./Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "" - -#: ./Thunar.xml:927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "" - -#: ./Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "" - -#: ./Thunar.xml:942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "" - -#: ./Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "" - -#: ./Thunar.xml:950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "" - -#: ./Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "" - -#: ./Thunar.xml:969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "" - -#: ./Thunar.xml:979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "" - -#: ./Thunar.xml:987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "" - -#: ./Thunar.xml:996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "" - -#: ./Thunar.xml:1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "" - -#: ./Thunar.xml:1008(programlisting) -#, no-wrap -msgid "\n# postr.desktop - Integrate postr into\n# the \"Send To\" menu.\n[Desktop Entry]\nType=Application\nVersion=1.0\nEncoding=UTF-8\nTryExec=postr\nExec=postr %F\nIcon=postr\nName=Flickr\nMimeType=image/jpeg;" -msgstr "" - -#: ./Thunar.xml:1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "" - -#: ./Thunar.xml:1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "" - -#: ./Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "" - -#: ./Thunar.xml:1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "" - -#: ./Thunar.xml:1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "" - -#: ./Thunar.xml:1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "" - -#: ./Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "" - -#: ./Thunar.xml:1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "" - -#: ./Thunar.xml:1071(programlisting) -#, no-wrap -msgid "\n[Desktop Entry]\nVersion=1.0\nEncoding=UTF-8\nType=X-Thumbnailer\nName=Your Thumbnailer\nMimeType=your-supported/mime-type;\nX-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" - -#: ./Thunar.xml:1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "" - -#: ./Thunar.xml:1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" - -#: ./Thunar.xml:1093(varname) -msgid "%i" -msgstr "" - -#: ./Thunar.xml:1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "" - -#: ./Thunar.xml:1101(varname) -msgid "%o" -msgstr "" - -#: ./Thunar.xml:1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" - -#: ./Thunar.xml:1110(varname) -msgid "%s" -msgstr "" - -#: ./Thunar.xml:1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "" - -#: ./Thunar.xml:1117(varname) -msgid "%u" -msgstr "" - -#: ./Thunar.xml:1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "" - -#: ./Thunar.xml:1125(varname) -msgid "%%" -msgstr "" - -#: ./Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "" - -#: ./Thunar.xml:1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "" - -#: ./Thunar.xml:1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "" - -#: ./Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "" - -#: ./Thunar.xml:1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "" - -#: ./Thunar.xml:1151(programlisting) -#, no-wrap -msgid "\n#!/bin/sh\n#\n# eps-thumbnailer - Example thumbnailer script for EPS files.\n#\n# Usage: esp-thumbnailer eps-file png-file size\n#\n\n# command line parameters\nifile=$1\nofile=$2\nsize=$3\n\n# invoke convert (ImageMagick)\nexec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" - -#: ./Thunar.xml:1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "" - -#: ./Thunar.xml:1172(screen) -#, no-wrap -msgid "\n$ chmod +x eps-thumbnailer\n$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" - -#: ./Thunar.xml:1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "" - -#: ./Thunar.xml:1180(programlisting) -#, no-wrap -msgid "\n[Desktop Entry]\nVersion=1.0\nEncoding=UTF-8\nType=X-Thumbnailer\nName=EPS Thumbnailer\nTryExec=convert\nMimeType=image/x-eps;\nX-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" - -#: ./Thunar.xml:1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "" - -#: ./Thunar.xml:1195(screen) -#, no-wrap -msgid "\n$ sudo install -d /usr/local/share/thumbnailers\n$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" - -#: ./Thunar.xml:1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "" - -#: ./Thunar.xml:1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "" - -#: ./Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "" - -#: ./Thunar.xml:1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "" - -#: ./Thunar.xml:1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "" - -#: ./Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "" - -#: ./Thunar.xml:1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "" - -#: ./Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "" - -#: ./Thunar.xml:1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "" - -#: ./Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "" - -#: ./Thunar.xml:1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "" - -#: ./Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "" - -#: ./Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "" - -#: ./Thunar.xml:1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "" - -#: ./Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "" - -#: ./Thunar.xml:1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "" - -#: ./Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "" - -#: ./Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "" - -#: ./Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "" - -#: ./Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "" - -#: ./Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "" - -#: ./Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "" - -#: ./Thunar.xml:1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "" - -#: ./Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "" - -#: ./Thunar.xml:1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "" - -#: ./Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "" - -#: ./Thunar.xml:1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "" - -#: ./Thunar.xml:1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "" - -#: ./Thunar.xml:1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "" - -#: ./Thunar.xml:1350(title) -msgid "File Types" -msgstr "" - -#: ./Thunar.xml:1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "" - -#: ./Thunar.xml:1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "" - -#: ./Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "" - -#: ./Thunar.xml:1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "" - -#: ./Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "" - -#: ./Thunar.xml:1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "" - -#: ./Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "" - -#: ./Thunar.xml:1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "" - -#: ./Thunar.xml:1392(title) -msgid "Device Files" -msgstr "" - -#: ./Thunar.xml:1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "" - -#: ./Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "" - -#: ./Thunar.xml:1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "" - -#: ./Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "" - -#: ./Thunar.xml:1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "" - -#: ./Thunar.xml:1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "" - -#: ./Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "" - -#: ./Thunar.xml:1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "" - -#: ./Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "" - -#: ./Thunar.xml:1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "" - -#: ./Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "" - -#: ./Thunar.xml:1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "" - -#: ./Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "" - -#: ./Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr "" - -#: ./Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "" - -#: ./Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr "" - -#: ./Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "" - -#: ./Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr "" - -#: ./Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "" - -#: ./Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr "" - -#: ./Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "" - -#: ./Thunar.xml:1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "" - -#: ./Thunar.xml:1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "" - -#: ./Thunar.xml:1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "" - -#: ./Thunar.xml:1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "" - -#: ./Thunar.xml:1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "" - -#: ./Thunar.xml:1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" - -#: ./Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "" - -#: ./Thunar.xml:1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "" - -#: ./Thunar.xml:1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" - -#: ./Thunar.xml:1549(title) -msgid "Support" -msgstr "" - -#: ./Thunar.xml:1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "" - -#: ./Thunar.xml:1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "" - -#: ./Thunar.xml:1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "" - -#: ./Thunar.xml:1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "" - -#: ./Thunar.xml:1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "" - -#: ./Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "" - -#: ./Thunar.xml:1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" - -#: ./Thunar.xml:1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "" - -#: ./Thunar.xml:1605(para) -msgid "This software is distributed 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." -msgstr "" - -#: ./Thunar.xml:1611(para) -msgid "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." -msgstr "" - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: ./Thunar.xml:0(None) -msgid "translator-credits" -msgstr "" - diff -Nru thunar-1.2.3/docs/manual/po/tr.po thunar-1.6.10/docs/manual/po/tr.po --- thunar-1.2.3/docs/manual/po/tr.po 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/tr.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1332 +0,0 @@ -# -msgid "" -msgstr "" -"Project-Id-Version: thunar-trunk\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2009-02-11 04:34+0200\n" -"Last-Translator: Gökmen Görgen \n" -"Language-Team: Xfce-Turkish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for -#. you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml12(title) -msgid "Thunar File Manager" -msgstr "Thunar Dosya Yöneticisi" - -#: Thunar.xml17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "Bu dokümanın dağıtımı, kopyalanması ve/veya düzenlenmesi GNU Özgür Belgeleme Lisansı 1.1 sürümü ve daha sonraki sürümleri de dahil olmak üzere, ancak değişmesi imkansız biçimde olmamak kaydı ile serbesttir. Lisansın tamamına Özgür Yazılım Vakfı sitesinden ulaşabilirsiniz." - -#: Thunar.xml37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml40(jobtitle) -msgid "Software developer" -msgstr "Yazılım geliştiricisi" - -#: Thunar.xml41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml42(orgdiv) -msgid "System development" -msgstr "Sistem geliştirme" - -#: Thunar.xml43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "Bu kılavuz @PACKAGE_NAME@ programının @PACKAGE_VERSION@ sürümüne yöneliktir." - -#: Thunar.xml54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ programı hakkında" - -#: Thunar.xml56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar, Xfce Masaüstü Ortamı için geliştirilmiş yeni ve modern bir dosya yöneticisidir. Hızlı ve kolay bir kullanım sunmak için tasarlanmıştır. Arabirimi sade ve kolay öğrenilebilecek niteliktedir ve kesinlikle kafa karıştırıcı ve gereksiz seçenekleri öntanımlı olarak sunmamaktadır. Thunar dosya yöneticisinin açılışı ve dosya listeleme işlemi gayet hızlıdır. " - -#: Thunar.xml62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "Thunar dosya yöneticisi, entegre bir erişim suretiyle dosyalarınıza ve programlarınıza ulaşmanızı sağlar. Dosya yöneticisini şu işlemler için kullanabilirsiniz:" - -#: Thunar.xml68(para) -msgid "Create folders and documents." -msgstr "Dizin ve doküman oluşturma." - -#: Thunar.xml69(para) -msgid "Display your files and folders." -msgstr "Dosyaları ve dizinleri gösterimi." - -#: Thunar.xml70(para) -msgid "Manage your files and folders." -msgstr "Dosya ve dizin yönetimi." - -#: Thunar.xml71(para) -msgid "Run and manage custom actions." -msgstr "Özel işlemlerin çalıştırılması ve yönetimi." - -#: Thunar.xml72(para) -msgid "Access Removable Media." -msgstr "Ayrılabilir ortam erişimi." - -#: Thunar.xml78(title) -msgid "The File Manager Window" -msgstr "Dosya Yöneticisi Penceresi" - -#: Thunar.xml80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "Dosya yöneticisi öntanımlı olarak sol bölümde bir kısayol kısmı ve sağ kısımda bulunan esas alan ve onun üstündeki yol bilgisini gösteren adres satırından ibarettir." - -#: Thunar.xml92(phrase) -msgid "File Manager Window" -msgstr "Dosya Yöneticisi Penceresi" - -#: Thunar.xml97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "Kısayol Bölümü sisteminizdeki çeşitli dizinlere kısayol atamanızı sağlar. Listedeki ilk kısayol, kullanıcınızın bütün kişisel dosyalarının bulunduğu Ev dizininize ulaşmanızı sağlar. İkinci kısayol ise, silinen dosyaların yer aldığı ve isterseniz silinen dosyaları geri alabileceğiniz çöp kutusuna erişimi sağlar. Üçüncü kısayol ise, masaüstünde bulunan dosya, dizinler ve kısayolları barındıran Masaüstü dizinine ulaşmanız içindir. Dördüncü kısayol ise, kök dizinine ulaşmanızı sağlar - eğer yeni bir Linux veya Unix kullanıcısı iseniz, kök dizini keşfetmek heyecanlı olabilir. Değişik dizinlere tıklayın ve içerisinde ne olduğunu görün. " - -#: Thunar.xml108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "Dosya Sistemi kısayolu altında, kaldırılabilir sürücüler ve ortam bulunmaktadır. Yukarıdaki ekran görüntüsünde, Disket sürücüsü kısayolunu görebilirsiniz. Bu kısayollara tıklayarak kaldırılabilir sürücüler ve ortamlardaki verilere ulaşabilirsiniz. Daha detaylı bilgi için sayfasını inceleyebilirsiniz." - -#: Thunar.xml115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "Diğer kısayollar ise kullanıcı tanımlı kısayollardır. Kendi kısayolunuzu belirlemek için yapmanız gereken kısayolunu oluşturmak istediğiniz dizini kısayol kısmına sürüklemektir. Böylece önemli dizinlerinize hemen ulaşabilirsiniz. Daha önce oluşturduğunuz bir kısayolu silmek için ise, kısayola sağ tıklayıp Kısa Yolu Kaldır seçeneğine tıklamanız yeterlidir. Kısayolunuzun ismini değiştirmek için, kısayola sağ tıklayıp, Kısa Yolu Yeniden Adlandır seçeneğine tıklamalısınız. Bu işlem sadece kısayol ile ilgilidir, kısayolunu oluşturduğunuz dizin üzerinde herhangi bir işlem gerçekleştirmemektedir. " - -#: Thunar.xml123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "Ana bölüm her zaman mevcut dizindeki içeriği gösterir. Dizinlere girmek için çift tıklamanız gerekmektedir ve dosya ve dizinler üzerinde işlem yapabilmek için sağ tıklamanız gerekmektedir. Sağ tıkladığınız zaman açılan menüde dosya veya dizine dair işlemleri görebilirsiniz. Birden çok dosyayı seçmek için, farenin sol tuşuna basılı tutarak toplu seçim yapabilirsiniz. Ayrıca alternatif bir yöntem olarak tek bir dosyayı seçerek, Shift tuşuna basılı tutarak yön tuşları ile birden fazla seçim yapmanız da mümkündür." - -#: Thunar.xml131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "Adres satırı bulunduğunuz dizine giderken geçmiş olduğunuz dosya yolunu belirtir ve gösterir. Adres satırı kısmında gitmek istediğiniz dizine tıklayabilirsiniz. Adres satırı düğmelerinden birine sağ tıklayarak o dizine has işlemleri ve varsa seçenekleri düzenleyebilirsiniz." - -#: Thunar.xml139(title) -msgid "Customizing the Appearance" -msgstr "Görünümü Özelleştirme" - -#: Thunar.xml141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "Dosya yöneticisi pencerelerinde görünümü özelleştirmenin birçok yolu vardır. Eğer simge görünümünü beğenmezseniz, GörünümDetaylı Liste Şeklinde Göster seçeneğini kullanarak o an içinde bulunduğunuz dizindeki içeriği listelenmiş biçimde görebilirsiniz. " - -#: Thunar.xml147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "Adres satırı görünümü yerine, araç çubuğu kullanmak istiyorsanız GörünümYer SeçiciAraç Çubuğu Tarzı seçeneğini kullanabilirsiniz." - -#: Thunar.xml153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "Sol kısımda görünümü ağaç görünümüne çevirmek istiyorsanız, GörünümYan Pencere GözüAğaç seçeneğini kullanabilirsiniz." - -#: Thunar.xml160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "Detaylı Listede Gösterilecek Sütunlar" - -#: Thunar.xml162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "Detaylı Liste Şeklinde Göster seçeneğini kullanarak dizin içeriğini liste şeklinde görüntülüyorsanız, liste görünümünde gösterilecek sütunları özelleştirmek isteyebilirsiniz. Görüntülenecek sütunları görmek ve seçmek için, menüdeki GörünümSütunları Yapılandır... seçeneğini kullanabilirsiniz." - -#: Thunar.xml175(phrase) Thunar.xml182(guilabel) -msgid "Visible Columns" -msgstr "Görünür Sütunlar" - -#: Thunar.xml184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "Gösterilmesini istediğiniz sütunları listeden seçebilirsiniz. Yukarı Taşı veya Aşağı Taşı seçeneklerini kullanarak sütunların gösterim sırasını değiştirebilirsiniz. Yapmış olduğunuz değişiklikleri geri almak için Öntanımlı Kullan seçeneğini kullanabilirsiniz." - -#: Thunar.xml193(guilabel) -msgid "Column Sizing" -msgstr "Sütun Boyutlandırma" - -#: Thunar.xml195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "Gerekli olduğunda sütunları otomatik olarak genişlet seçeneği ile sütunlar istenilen bilginin uzunluğu doğrultusunda o bilginin uzunluğuna göre genişletilecektir." - -#: Thunar.xml208(title) -msgid "Working with Files and Folders" -msgstr "Dizin ve Dosya İşlemleri" - -#: Thunar.xml212(title) -msgid "Opening Files" -msgstr "Dosyaların Açılması" - -#: Thunar.xml214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "Bir dosya açtığınız zaman, dosya yöneticisi o dosya tipine uygun işlemi gerçekleştirecektir. Örneğin, bir metin dosyasını açmak istediğinizde, o metin dosyası metin editörünüzde açılacağı gibi, bir resim dosyası da resimleri gösteren uygulama içerisinde açılacaktır." - -#: Thunar.xml220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "Dosya yöneticisi dosyanın uzantısına bakarak dosya tipinin ne olduğuna karar verir. Eğer dosya bilinen bir uzantıya sahip değilse, dosya yöneticisi dosyanın içeriğini gözden geçirecektir." - -#: Thunar.xml226(title) -msgid "Executing the Default Action" -msgstr "Varsayılan İşlemi Çalıştırmak" - -#: Thunar.xml228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "Bir dosya için varsayılan işlemi çalıştırmak için, dosyaya çift tıklamalısınız. Örneğin, ses dosyalarına çift tıkladığınız zaman öntanımlı o ses dosyası çokluortam programı tarafından çalıştırılacaktır." - -#: Thunar.xml234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "Thunar dosya yöneticisini tek tıklama ile dosyaların çalıştırılmasını sağlamak için ayarlamanız mümkündür. Bu konuda ayrıntılı bilgi için sayfasını inceleyiniz." - -#: Thunar.xml241(title) -msgid "Executing Non-Default Actions" -msgstr "Öntanımlı Olmayan İşlemleri Çalıştırmak" - -#: Thunar.xml243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "Bir dosya için öntanımlı gerçekleştirilen işlem yerine, istediğiniz dosyayı Dosya menüsünden Birlikte Aç seçeneklerinden birini kullanarak veya sağ tıkladığınızda gösterilecek olan Birlikte Aç alt menüsü ile çalıştırabilirsiniz." - -#: Thunar.xml251(title) -msgid "Adding Actions" -msgstr "İşlem Ekleme" - -#: Thunar.xml253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "Bir dosya uzantısına işlem atamak için, şu işlemleri yapmalısınız:" - -#: Thunar.xml259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "Ana bölümde, işlem eklemek istediğiniz dosyayı seçin." - -#: Thunar.xml264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "Menüden DosyaDiğer Uygulama ile Aç ... seçeneğine tıklayın." - -#: Thunar.xml270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "Birlikte Aç menüsünde işlem için istediğiniz uygulamayı seçebileceğiniz gibi Özel bir komut kullan seçeneği yardımıyla o dosya işlemi için çalıştırılacak uygulamayı belirtebilirsiniz." - -#: Thunar.xml277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "Böylece dosya için seçtiğiniz uygulama işlemler listesine eklenmiş oldu. Eğer bu tür dosyalar için öntanımlı olarak kullan seçeneğini işaretlemişseniz veya dosya için ilişkilendirilmiş başka bir işlem yok ise, yeni eklediğiniz işlem öntanımlı olacaktır." - -#: Thunar.xml283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "Ayrıca DosyaÖzellikler... menüsünde bulunan Birlikte Aç seçeneği ile de dosyanın başka bir uygulama ile açılmasını sağlayabilirsiniz." - -#: Thunar.xml290(title) -msgid "Modifying Actions" -msgstr "İşlemleri Değiştirme" - -#: Thunar.xml292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "Bir dosya veya dosya tipi için tanımlanan işlemleri değiştirmek için, şu işlemleri gerçekleştirmelisiniz:" - -#: Thunar.xml298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "Ana bölümde, tipini değiştirmek istediğiniz dosyayı seçiniz." - -#: Thunar.xml303(para) Thunar.xml383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "Öncelikle DosyaÖzellikler... menüsünü açmalısınız." - -#: Thunar.xml308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "Yeni işlemi açılır menüdeBirlikte Aç seçeneği ile belirleyebileceğiniz gibi Başka Uygulama... seçeneği ile de belirleyebilirsiniz. " - -#: Thunar.xml315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "Daha önce atadığınız bir işlemi kaldırmak için, yukarıda anlatıldığı gibi Birlikte Aç menüsünü açıp, kaldırmak istediğiniz işleme sağ tıklayıp, Uygulama Başlatıcısını Kaldır seçeneğini kullanabilirsiniz." - -#: Thunar.xml324(title) Thunar.xml361(phrase) -msgid "File Properties" -msgstr "Dosya Özellikleri" - -#: Thunar.xml326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "Dosya özellikleri penceresi dosya ya da dizin hakkında dosya yöneticisinde gösterilenden daha fazla bilgi edinmenizi sağlar. Bu pencere ile, şu işlemleri gerçekleştirebilirsiniz." - -#: Thunar.xml333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "Özel dosyaların, mesela uygulama çalıştırıcılar ve URL linklerinin simgelerini değiştirebilirsiniz." - -#: Thunar.xml338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "Dosya veya dizine amblem atayabilir veya varsa amblemini kaldırabilirsiniz." - -#: Thunar.xml343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "Dosya ya da dizinin UNIX dosya izinlerini değiştirebilirsiniz." - -#: Thunar.xml348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "Dosyanın hangi uygulama ile çalıştırılacağını belirleyebilirsiniz." - -#: Thunar.xml366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "Dosya özellikleri penceresini açmak için, şu işlemleri yapmalısınız:" - -#: Thunar.xml372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "Araştırmak ya da değiştirmek istediğiniz dosya veya dizini seçmelisiniz. Birden fazla seçim yapıp dosya özelliklerini açmanız mümkün değildir." - -#: Thunar.xml386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "Seçtiğiniz öğeye sağ tıklayıp Özellikler... seçeneğine tıklamalısınız." - -#: Thunar.xml389(para) -msgid "Press AltReturn." -msgstr "Ayrıca bu işlemi AltEnter tuşları ile de gerçekleştirebilirsiniz." - -#: Thunar.xml379(para) -msgid "Do one of the following: " -msgstr "Şunu gerçekleştirmelisiniz: " - -#: Thunar.xml400(title) -msgid "Using Removable Media" -msgstr "Kaldırılabilir Ortam Kullanımı" - -#: Thunar.xml403(title) -msgid "Accessing Removable Media" -msgstr "Kaldırılabilir Ortama Erişim" - -#: Thunar.xml405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "Thunar eğer HAL desteği ile derlenmişse veya FreeBSD kullanıyorsanız kaldırılabilir ortamı desteklemektedir. Buna rağmen FreeBSD 6.0 veya daha yeni sürümünü kullanıyorsanız, HAL kullanmanız tavsiye edilmektedir." - -#: Thunar.xml412(title) -msgid "To Mount Media" -msgstr "Ortam Bağlama İşlemi" - -#: Thunar.xml414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "Ortam bağlamak dosya sistemini ortama erişime uygun kılmak içindir. Ortam bağladığınız zaman, bağladığınız ortam dosya sisteminizin alt dizini olarak sisteminize eklenecektir." - -#: Thunar.xml419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "Ortama erişmek için, ortamı uygun cihaza yerleştirmelisiniz ya da bağlamalısınız (mesela USB stick). Sol bölümde ortamın yer aldığını göreceksiniz. Eğer xfdesktop çalışıyorsa ve Dosya/çalıştırıcı simgelerini çalıştırmak için ayarlanmışsa bu ortam öğesi masaüstünüzde de yer alacaktır." - -#: Thunar.xml426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "Ortamı bağlamak için, ortama ilişkin nesneye tıklamalısınız. Mesela, bir disketi bağlamak için, Disket Sürücü nesnesine tıklamalısınız. Dosya yöneticisi ortamın dosya sistemini, dosya sisteminizin hiyerarşisine ekleyecektir ve ana bölümde diskette bulunan içeriği gösterecektir." - -#: Thunar.xml434(title) -msgid "To Eject Media" -msgstr "Ortamı Çıkarmak" - -#: Thunar.xml436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "Eğer ortam sürücüsü motorlu ise (mesela CD-ROM), sol kısımda sağ tıklayıp, Çıkar seçeneği ile ayırabilirsiniz. Eğer sürücü motorlu değil ise (mesela disket veya USB stick ise), sağ tıklayıp Ayır seçeneği ile ayırabilirsiniz. Bu seçeneği seçtikten sonra güvenle kaldırabileceğinize dair bir uyarı alacaksınız." - -#: Thunar.xml451(phrase) -msgid "Unmount notification" -msgstr "Ayırma uyarısı" - -#: Thunar.xml456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "Buna karşın bu bilgilendirme sadece libnotify desteği var ise ve notification daemon kurulu ise gösterilecektir. Xfce için bir notification daemon'a Xfce Goodies Project sayfasından ulaşabilirsiniz. Eğer bilgilendirme desteği yok ise, açılır menü kaybolana kadar bekleyin ve ortamı bilgisayarınızdan çıkarın." - -#: Thunar.xml464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "Eğer bir uygulama ortamdaki bir dosyaya erişim halinde ise ortamı ayıramayacağınızın bilincinde olmalısınız. Ayrıca dosya yöneticisi ortamı çıkarmak istemiyorsa, ortama erişen bütün uygulamaları kapattığınızdan emin olmalısınız. Ayrıca Terminal uygulamasını kullanarak da ortama erişmediğinizden emin olmalısınız." - -#: Thunar.xml470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "Ortamı çıkarmadan önce ayırdığınızdan emin olmalısınız. Disketi ayırmadan disket sürücünüzden çıkarmamalısınız. Aynı durum USB stick için de söz konusudur. Eğer ortamı güvenli bir şekilde ayırmadan çıkarırsanız veri kaybına uğrayabileceğiniz gibi sisteminizde hasara da yol açabilirsiniz." - -#: Thunar.xml479(title) -msgid "Management of Removable Drives and Media" -msgstr "Ayırılabilir Sürücü ve Ortam Yönetimi" - -#: Thunar.xml481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "Thunar thunar-volman kullanarak da otomatik olarak ayrılabilir sürücü ve ortam yönetimini sağlamaktadır. Ancak bu özellik HAL desteği gerektirmektedir." - -#: Thunar.xml487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "Eğer HAL desteği mevcut ise ve thunar-volman sisteminizde kurulu ise, Thunar'ın Bölüm Yönetimi özelliğinden faydalanabilirsiniz. Öte yandan, dosya yöneticisi özelliklerini açıp, Gelişmiş sayfasına gidip, Birim Yönetimini Etkinleştir seçeneğini kontrol edebilirsiniz." - -#: Thunar.xml494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "Sonraki aşama ise, ayrılabilir sürücü ve ortamın yönetimini isteklerinize göre özelleştirmek olacaktır. Bölüm Yönetimi bölümünde Yapılandır düğmesine tıklamalısınız. Kaldırılabilir Sürücü ve Medyaları yapılandırma menüsü gösterilecektir." - -#: Thunar.xml507(phrase) -msgid "Removable Drives and Media" -msgstr "Ayrılabilir Sürücü ve Ortam" - -#: Thunar.xml512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "Eğer daha önce gnome-volume-manager kullanmış iseniz, aynı kullanım rahatlığını gnome-volume-manager benzeri arabirim ile de yaşabilirsiniz. Seçenekler kolay erişim sağlanması bakımından ayrı aygıt kategorilerine ayrılmıştır." - -#: Thunar.xml519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "Storage sayfası en önemli seçenekleri barındırır. Bu seçenek isminden belli olduğu gibi sadece depolama aygıtlarına erişim için kullanılır. Removable Storage seçenekleri aşağıda açıklanacaktır." - -#: Thunar.xml527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "Ayrılabilir sürücüleri takıldığı zaman bağla" - -#: Thunar.xml529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "Bu seçeneği ayrılabilir sürücüleri (harici diskler veya USB stick) otomatik olarak bağlamak istiyorsanız seçmelisiniz." - -#: Thunar.xml533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "Bu seçenek ayrılabilir sürücü kullanmak istiyorsanız muhakkak seçili olmalıdır. Mesela, bu özelliği kaldırırsanız, taşınabilir müzikçalarlar otomatik olarak tanınmayacaktır. Multimedia sekmesinde Play music files when connected seçeneği işaretli ise tanımlanan komut çalışmayacaktır." - -#: Thunar.xml544(guilabel) -msgid "Mount removable media when inserted" -msgstr "Ayrılabilir sürücü yerleştirildiğinde bağla" - -#: Thunar.xml546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "Bu seçeneği optik sürücülerin (CDROM veya DVD) otomatik olarak bağlanmasını istiyorsanız seçiniz." - -#: Thunar.xml550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "Bu seçenek optik sürücü yönetimi için gereklidir. Mesela, bu özelliği devredışı bırakırsanız, optik sürücüye ilişkin otomatik çalıştırma özelliği kullanılmaz olacaktır ve Auto-run programs on new drives and media özelliği iş görmeyecektir." - -#: Thunar.xml560(guilabel) -msgid "Browse removable media when inserted" -msgstr "Ayrılabilir ortam yerleştirildiğinde dosyaları görüntüle" - -#: Thunar.xml562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "Bu seçeneği ortamı bilgisayarınıza yerleştirdiğinizde otomatik olarak ortamın barındırdığı dosyaları görüntülemek için kullanabilirsiniz. Eğer başka bir işlem atanmamışsa veya atanmış bir işlemi göz ardı ederseniz sadece içerik gösterilecektir. Mesela bir otomatik çalıştırılabilir betik içeren bir CD-ROM yerleştirdiğinizde Auto-run programs on new drives and media seçeneği işaretli ise, önce bunu çalıştırmak isteyip istemediğiniz sorulacaktır. Eğer göz ardı et seçeneğini kullanırsanız, CD-ROM içeriği görüntülenecektir." - -#: Thunar.xml574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "Yeni sürücülerde ve ortamdaki uygulamaları otomatik çalıştırma" - -#: Thunar.xml576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "Bu seçeneği ayrılabilir sürücü ve ortamlarda otomatik çalıştırma desteği için kullanabilirsiniz. Otomatik çalıştırma mekanizmasının nasıl işlediğini gösteren belge için Desktop Application Autostart Specification adresini ziyaret etmelisiniz. Güvenlik açısından sizden daima otomatik çalıştırma öncesi onay istenecektir." - -#: Thunar.xml582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "Eğer sisteminizde WINE kurulu ise, otomatik çalıştırma mekanizması autorun.exe dosyasını WINE kullanarak çalıştırmayı deneyecektir. " - -#: Thunar.xml590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "Yeni sürücülerde ve ortamdaki dosyaları otomatik açma" - -#: Thunar.xml592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "Bu seçeneği ayrılabilir sürücü ve ortamları otomatik açmak için kullanabilirsiniz. Bu mekanizma hakkında daha detaylı bilgiye Desktop Application Autostart Specification sayfasından ulaşabilirsiniz. Güvenlik açısından, otomatik açma öncesi sizden onayınız istenecektir." - -#: Thunar.xml602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "Kalan seçenekler bilgisayarınıza bir sürücü bağladığınızda ya da bir ortam taktığınızda çalıştırılacak komutları belirlemenizi sağlar. Çalıştıracağınız komut için üç özel değişken belirleyebilirsiniz. Bunlar:" - -#: Thunar.xml610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "Çalıştırılacak komut içerisinde %d yer alıyorsa, bu değer aygıtın dosya yolu ile değiştirilecektir. Mesela, bilgisayarınıza USB stick bağladığınızda yol /dev/da0s1 veya /dev/sda1. " - -#: Thunar.xml617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "Eğer aygıt dosyası ile ilintili bir aygıt yoksa veya aygıt dosyası herhangi bir sebepten dolayı bulunamıyorsa, %d değeri boş bir dizge ile değiştirilecektir." - -#: Thunar.xml625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "Çalıştırılacak komut içerisinde %h değişkeni yer alıyorsa bu değer HAL UDI ile yer değiştirecektir." - -#: Thunar.xml635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "Çalıştırılacak komut içerisinde %m değişkeni yer alıyorsa bu değer bağlama noktası ile değiştirilecektir. Eğer aygıt bağlanabilen bir aygıt değilse (mesela klavye veya yazıcı ise) veya otomatik bağlama devredışı ise, %m değeri boş dizge ile değiştirilecektir." - -#: Thunar.xml648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "Bölüm Yöneticisi İçin Sorun Giderme İpuçları" - -#: Thunar.xml650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "Bölüm yöneticisi hakkında sorun giderme konusunda faydalı ipuçları sunmaktadır." - -#: Thunar.xml656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "Thunar uygulamasının sistem servisi olarak çalıştığından emin olun. Bölüm yöneticisi servis olmadığından buna ihtiyaç duymaktadır. Xfce, öntanımlı olarak Thunar uygulamasını açılışta sistem servisi olarak çalıştırır. Eğer sistem servisi herhangi bir sebepten dolayı kapatılmış ise, menüdeki Çalıştır seçeneğini (klavye kısayolu AltF2 veya masaüstüne sağ tıklayıp Çalıştır seçeneği) kullanarak Thunar --daemon yazıp Çalıştır seçeneğine tıklamalısınız." - -#: Thunar.xml668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "Aygıtı taktıktan sonra ya da ortamı yerleştirdikten sonra thunar-volman uygulamasını Terminal uygulamasını kullanarak konsoldan çalıştırmayı deneyebilirsiniz. Öncelikle, lshal veya hal-device kullanarak aygıtın HAL UDI değerini öğrenmelisiniz. UDI değerini öğrendikten sonra, Terminal uygulaması içerisinde thunar-volman --device-added <aygıtın-udi-değeri> komutunu vermelisiniz ve çıktıyı takip ederek hatayı anlamaya çalışmalısınız." - -#: Thunar.xml678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "Eğer hala çalışmıyorsa, Xfce Forumu veya Thunar geliştirici listesini kullanarak yardım isteyebilirsiniz." - -#: Thunar.xml689(title) -msgid "File Management Preferences" -msgstr "Dosya Yönetimi Seçenekleri" - -#: Thunar.xml691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "Dosya Yöneticisi Tercihleri menüsünü Thunar dosya yöneticisini ayarlamak için kullanabilirsiniz. Tercihler penceresini açmak için menüden DüzenleTercihler... seçeneğine tıklamalısınız ya da Xfce4 Ayarları menüsündeki Dosya Yöneticisi öğesini kullanmalısınız." - -#: Thunar.xml697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "Dosya Yöneticisi Tercihleri dört bölüme ayrılmıştır ve her bölüm değişik seçenekler barındırmaktadır ve her biri aşağıdaki bölümde açıklanacaktır. Tercihleri şu kategoriler altında düzenleyebilirsiniz:" - -#: Thunar.xml703(para) -msgid "The default settings for the views." -msgstr "Öntanımlı görünüm ayarları." - -#: Thunar.xml704(para) -msgid "The default settings for the side pane." -msgstr "Yan pencere bölümü ayarları." - -#: Thunar.xml705(para) -msgid "The behavior of the file manager windows." -msgstr "Dosya yöneticisi pencerelerinin davranışı." - -#: Thunar.xml706(para) -msgid "Advanced features of the file manager." -msgstr "Dosya yöneticisi gelişmiş özellikleri." - -#: Thunar.xml709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "Thunar ayrıca birçok gizli seçenek barındırır ancak menü pencerelerini basit tutmak amacıyla bunları Tercihler penceresinde göstermemektedir. README.thunarrc dosyasını okuyarak bu gizli seçenekler hakkında bilgi sahibi olabilirsiniz." - -#: Thunar.xml718(title) Thunar.xml733(phrase) -msgid "Views Preferences" -msgstr "Görüntü Seçenekleri" - -#: Thunar.xml720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "Öntanımlı görünüm belirleyebilir, sıralama seçeneklerini ve görünüm seçeneklerini düzenleyebilirsiniz. Ayrıca dosya türlerinin önizlemesinin gösterilip gösterilmeyeceğini belirleyebilirsiniz." - -#: Thunar.xml740(guilabel) -msgid "View new folder using" -msgstr "Yeni dizinleri şununla listele" - -#: Thunar.xml742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "Dizinler için öntanımlı görünümü belirlemenizi sağlar. Yeni bir pencere açtığınızda belirlediğiniz görünüm kullanılacaktır. Bu simge görünümü, detaylı liste veya sıralı liste biçiminde olabilir. Ayrıca Önceki Aktif Görünüm seçeneği ile en son kullandığınız görünüm kullanılabilir." - -#: Thunar.xml752(guilabel) -msgid "Sort folders before files" -msgstr "Dizinleri dosyalardan önce listele" - -#: Thunar.xml754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "Bu seçeneği eğer dizinlerin dosyalardan önce gösterilmesini istiyorsanız kullanabilirsiniz." - -#: Thunar.xml761(guilabel) -msgid "Show thumbnails" -msgstr "Küçük resimleri göster" - -#: Thunar.xml763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "Bu seçeneği resim dosyalarının küçük resimlerini göstermek için kullanabilirsiniz. Dosya yöneticisi her bir dizin için küçük resim dosyalarını kullanıcının ev dizinindeki .thumbnails dizininde barındırmaktadır." - -#: Thunar.xml768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "Eğer temel küçük resim fonksiyonlarını daha çok dosya desteği ile birlikte geliştirmek istiyorsanız, bağlantısını incelemeniz gerekmektedir." - -#: Thunar.xml777(guilabel) -msgid "Text beside icons" -msgstr "Simgelerin yanında yazı" - -#: Thunar.xml779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "Bu seçeneği dosya ve dizin isimlerini dosya simgelerinin altında göstermek yerine yanında göstermek için kullanabilirsiniz." - -#: Thunar.xml790(title) Thunar.xml803(phrase) -msgid "Side Pane Preferences" -msgstr "Yan Pencere Gözü Tercihleri" - -#: Thunar.xml792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "Bu kısımda yan pencere gözü ve ağaç görünümü tercihlerini ayarlayabilirsiniz." - -#: Thunar.xml808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "Yan pencere gözü öntanımlı olarak sistem dizinlerinize kısayolları barındırır veya ayarlarsanız ağaç görünümünü kullanır. Bu bölümde kısayolların ve ağaç görünümün simge boyutunu ayarlayabilirsiniz. Ayrıca amblemlerin gösterilip gösterilmeyeceğini belirleyebilirsiniz." - -#: Thunar.xml817(guilabel) -msgid "Icon Size" -msgstr "Simge Boyutu" - -#: Thunar.xml819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "Yan gözde gösterilecek simge boyutunu Çok Küçük (16x16 piksel boyutlarında) değeri ile Çok Büyük (128x128 piksel boyutlarında) değeri arasında ayarlayabilirsiniz." - -#: Thunar.xml827(guilabel) -msgid "Show Icon Emblems" -msgstr "Simge Amblemlerini Göster" - -#: Thunar.xml829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "Bu seçeneği yan pencere gözünde amblemleri göstermek için kullanabilirsiniz. Dizinlere amblem belirlemek için Özellikler menüsünü kullanabilirsiniz. Bu işlemi gerçekleştirebilmek için, amblem atamak istediğiniz dizini seçip menüden DosyaÖzellikler... öğesine tıklayabilir veya dizine sağ tıklayıp açılan menüden Özellikler... öğesine tıklayabilirsiniz." - -#: Thunar.xml843(title) Thunar.xml856(phrase) -msgid "Behavior Preferences" -msgstr "Davranış Tercihleri" - -#: Thunar.xml845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "Bu seçenek yardımı ile dosya yöneticisinin dosya ve dizinler ile etkileşimini düzenleyebilirsiniz." - -#: Thunar.xml863(guilabel) -msgid "Single click to active items" -msgstr "Öğeleri aktif etmek için tek tıklama" - -#: Thunar.xml865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "Bu seçeneği eğer tek tıklama ile dosyaların işlemlerini gerçekleştirmek istiyorsanız kullanabilirsiniz. Bu seçeneği seçtiğiniz takdirde, o dosyanın üzerine geldiğinizde öğenin isminin altı çizilecektir ve kısa bir süre gecikmeden sonra otomatik olarak seçilecektir." - -#: Thunar.xml871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "Gecikme süresini aşağıdan belirleyebilirsiniz. Ayrıca aktif değil seçeneğinin üzerine getirerek otomatik seçimi kapatabilirsiniz." - -#: Thunar.xml880(guilabel) -msgid "Double click to activate items" -msgstr "Öğeleri aktif etmek için çift tıklama" - -#: Thunar.xml882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "Bu seçenek yardımı ile bir dosya için tanımlanan işlemi çift tıklama ile gerçekleştirebilirsiniz. Ayrıca öğeyi tek tıklama ile seçebilirsiniz." - -#: Thunar.xml893(title) Thunar.xml906(phrase) -msgid "Advanced Preferences" -msgstr "Gelişmiş Seçenekler" - -#: Thunar.xml895(para) -msgid "You can control advanced features of the file manager." -msgstr "Dosya yöneticisinin gelişmiş özelliklerini kullanabilirsiniz." - -#: Thunar.xml913(guilabel) -msgid "Folder Permissions" -msgstr "Dizin İzinleri" - -#: Thunar.xml915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "Bir dizinin izinlerini değiştirmek için Özellikler menüsünü kullanabilirsiniz. Thunar dosya yöneticisini dizin izinlerini değiştirirken her zaman sizden onay istemesini, sadece o dizinde değiştirmesini veya o dizinin alt dizinlerinin izinlerini de değiştirmesi için ayarlayabilirsiniz." - -#: Thunar.xml925(guilabel) -msgid "Volume Management" -msgstr "Birim Yönetimi" - -#: Thunar.xml927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "Thunar eğer HAL desteği ile kurulmuşsa ve thunar-volman paketi de kurulu ise, entegre bölüm yöneticisini de kullanabilirsiniz. Konu hakkında detaylı bilgiye ulaşmak için sayfasını inceleyebilirsiniz." - -#: Thunar.xml940(title) -msgid "Customizing Thunar" -msgstr "Thunar'ı Özelleştirme" - -#: Thunar.xml942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "Bu bölümde dosya yöneticisini kendi istekleriniz doğrultusunda nasıl özelleştireceğiniz anlatılmaktadır." - -#: Thunar.xml948(title) -msgid "The \"Send To\" Menu" -msgstr "\"Gönder\" Menüsü" - -#: Thunar.xml950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "Thunar dosya ve dizinleri belirli noktalara taşımak için Gönder menüsünü barındırmaktadır. Gönder menüsüne erişmek için DosyaGönder seçeneğini kullanabileceğiniz gibi, göndermek istediğiniz dizin veya dosyaya sağ tıklayarak Gönder seçeneğini kullanmanızı sağlamaktadır." - -#: Thunar.xml964(phrase) -msgid "\"Send To\" Menu" -msgstr "\"Gönder\" Menüsü" - -#: Thunar.xml969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "Öntanımlı olarak Gönder menüsü Masaüstü (Bağlantı Oluştur) seçeneği ile belirtilen dosya veya dizin için masaüstünde kısayol oluşturmaktadır. Ayrıca, eğer Kısayol bölümü etkin ise, o dizin için kısayol bölümünde kısayol oluşturmak için Yan pencere gözü (Kısa yol yarat) seçeneğini sunmaktadır. Öte yandan, ayrılabilir ortamlara da dosya gönderme işlemi bu menü yardımıyla yapılabilir. Thunar otomatik olarak ayrılabilir ortamı da gönderilebilir hedefler arasına almaktadır. " - -#: Thunar.xml979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "Thunar ayrıca E-posta eklentisi ile menüye eklenen E-posta alan seçeneği ile e-posta programında alıcısı tanımlanmış olmakla birlikte dosyayı eklenmiş olarak tanımlayan bir özellik sunmaktadır. Eğer seçim en az bir dizin içeriyorsa bunu ZIP arşivine koyup o şekilde hazırlamaktadır. Eğer birden çok dosya gönderilecekse ve bunların toplam boyutu 200Kib üzerinde ise, kullanıcıya dosyaların ZIP arşivine koyması için onay istemekte ve bu dosyaları ZIP arşivine koyup göndermektedir." - -#: Thunar.xml987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "Thunar uygulamasının diğer özellikleri gibi Gönder menüsü desktop entry files standardına uygun olmak kaydıyla genişletilebilir. Bu dosyalar $XDG_DATA_DIRS/Thunar/sendto/ dizinine kopyalanmalıdır. ($XDG_DATA_DIRS değişkeni hakkında bilgi almak için XDG Base Directory Specification sayfasını inceleyebilirsiniz)" - -#: Thunar.xml996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "MimeType ile hedef .desktop dosyası tanımlanmaktadır ve bu tanımlama sonucunda gerçekleştirilecek işlem Gönder menüsünde yer alacaktır. Mesela, Flickr sitesine JPEG biçimindeki resimleri yüklemek için, MimeType=image/jpeg; değeri kullanılmalıdır. Eğer MimeType belirlemezseniz yapmak istediğiniz işlem bütün dosyalar için geçerli olacaktır. " - -#: Thunar.xml1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "Örnek bir postr uygulaması aşağıdaki örnekte gösterilmektedir." - -#: Thunar.xml1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "Bu dosyayı ~/.local/share/Thunar/sendto/ altına kopyalarsanız (dizin yok ise oluşturmalısınız), JPEG dosyaları için Gönder menüsünde Flickr seçeneğini görebilirsiniz." - -#: Thunar.xml1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "Thunar Project Wikisi Gönder menüsü için birçok örnek barındırmaktadır. Kendi oluşturduğunuz örnekleri de bu wiki sayfasında paylaşabilirsiniz." - -#: Thunar.xml1036(title) -msgid "Thumbnailers" -msgstr "Önizleme Oluşturucular" - -#: Thunar.xml1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "Thunar küçük uygulamalar yardımıyla belirli dosyalar için önizlemeler oluşturmakta ve dosya içeriğinin önizlemesini göstermektedir. Bu küçük araçlar önizleme oluşturucusu olarak isimlendirilmektedir. Thunar öntanımlı olarak resimler ve yazıtipleri için önizleme desteği sunmaktadır. Ayrıca gconf desteği ile kurulmuşsa GNOME için kullanılan önizleme oluşturucular da kullanılabilir. Kullanıcılar bu önizleme oluşturucuların fonksiyonunu genişletmek isteyebilir." - -#: Thunar.xml1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "Önizleme oluşturucu yazmak istiyorsanız, bir girdi ve Thumbnail Management Standard adresinde belirtilen standartlara uygun bir PNG çıktı dosyası veren bir uygulama çalıştırmalısınız. Ayrıca programınız önizleme boyutunu ayarlamanızı da sağlamalıdır. Büyük bir önizleme dosyası dosya listeleme işlemini yavaşlatabilir." - -#: Thunar.xml1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "Önizleme dosyaları oluşturma işlemi bittikten sonra, önizleme oluşturu dosyanızı kayıt etmelisiniz böylece Thunar onu bulup kullanabilecektir. Yapmanız gereken tek şey, önizleme oluşturucusu için bir açıklama dosyasını (yani .desktop dosyası) $XDG_DATA_DIRS/thumbnailers/ altına koymaktır. " - -#: Thunar.xml1063(title) -msgid "Thumbnailer Description File Format" -msgstr "Önizleme Oluşturucu Dosya Biçimi" - -#: Thunar.xml1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "Önizleme oluşturucu açıklaması Desktop Entry Format standardını kullanmaktadır. " - -#: Thunar.xml1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" - -#: Thunar.xml1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "Version ve Encoding Desktop Entry Specification standartları tarafından himaye edilmektedir. Yukarıdaki örnekteki değerleri kullanmanız yeterlidir. Type kısmı mutlaka X-Thumbnailer değerini içermelidir, aksi takdirde önizleme oluşturucunuz tanınmayacaktır. Name değeri önizleme oluşturucunuzu tanımlamaktadır." - -#: Thunar.xml1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "X-Thumbnailer-Exec kısmı çalıştırılacak önizleme oluşturucusunu tanımlamak için kullanılmaktadır. Tanınan alan kodları şunlardır:" - -#: Thunar.xml1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "Önizleme oluşturacak girdi dosyasının yolu. Önizleme oluşturucusunun çalıştırılacağı bir dizine bağlı olabileceği gibi mutlak yol da kullanılabilir." - -#: Thunar.xml1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "Oluşturulacak önizlemelerin saklanacağı çıktı dosyasının yolu. Çıktı dosyası, önizleme standartlarına göre geçerli bir PNG dosyası olarak yazılmalıdır. Çıktı yolu üçüncü parti yazılımları çalıştırırken sorunla karşılaşmamak için .png ile bitmemelidir." - -#: Thunar.xml1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "Oluşturulacak önizleme dosyasının piksel boyutu. Bu parametre isteğe bağlıdır." - -#: Thunar.xml1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "%i ile benzerdir fakat dosyanın URI değeri ile değiştirilmektedir. Bu özellik GNOME ile uyum sağlamak için eklenmiştir." - -#: Thunar.xml1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml1127(para) -msgid "Will be substituted with a single %." -msgstr "Tek %. ile değiştirilecektir." - -#: Thunar.xml1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "%o, %i ve %u değişkenlerini barındırmalıdır, aksi takdirde önizleme oluşturucusu bir işe yaramayacaktır." - -#: Thunar.xml1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "Önizleme için MimeType - noktalı virgül ile ayrılan - MIME türlerini listelemektedir." - -#: Thunar.xml1143(title) -msgid "Example EPS Thumbnailer" -msgstr "Örnek EPS Önizleyicisi" - -#: Thunar.xml1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "Bu örnek .eps dosyaları için önizleme dosyasının nasıl oluşturulacağını göstermektedir. İşlem için ImageMagick paketi ile birlikte gelen convert komutu kullanılmaktadır. Öncelikle convert ile istenilen boyutta bir önizleme oluşturulacaktır." - -#: Thunar.xml1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "Bu betiği eps-thumbnailer ismi ile kaydedip, çalıştırılabilir yaptıktan sonra /usr/local/bin altına kopyalamalısınız." - -#: Thunar.xml1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "Daha sonra, eps-thumbnailer.desktop isminde bir açıklama dosyası oluşturup şu şekilde görünmesini sağlamalısınız:" - -#: Thunar.xml1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "Bu dosya /usr/local/share/thumbnailers altına kopyalanmalıdır (eğer bu dizin yoksa oluşturmalısınız)" - -#: Thunar.xml1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "eps-thumbnailer.desktop dosyası özel anahtar olan ve yararlı bir önizleme oluşturmanızı sağlayacak TryExec özelliğini kullanmaktadır. Eğer convert belirtilmezse betik bir işe yaramayacaktır." - -#: Thunar.xml1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "Son aşama ise, önizleme önbelleğini tekrar oluşturmak içindir, böylece Thunar önizlemeyi alacaktır. Önizleme önbelleği $XDG_CACHE_HOME/Thunar/thumbnailers.cache altında bulunmaktadır. Önizleme önbelleği Thunar tarafından otomatik olarak tekrar oluşturulmaktadır ancak isterseniz thunar-vfs-update-thumbnailers-cache-1 aracı ile tekrar oluşturulmasını sağlayabilirsiniz. Bu araç libexec içerisinde yer alır. Eğer Thunar /usr altında kurulu ise, bu şu şekilde çalıştırabilirsiniz:" - -#: Thunar.xml1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "Bu komutu mutlaka kendi kullanıcınızdan çalıştırmalısınız, eğer root olarak çalıştırırsanız, önizleme dosyaları sistem geneline yayılacaktır." - -#: Thunar.xml1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "Eğer Thunar FAM veya Gamin servislerinden herhangi birisinin desteği ile derlenmişse otomatik olarak önizlemeleri gösterecektir. Göstermez ise Thunar'ı tekrar başlatmak için şu komutu verebilirsiniz:" - -#: Thunar.xml1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "komutunu vererek çalışan uygulamayı kapatıp, tekrar çalıştırabilirsiniz." - -#: Thunar.xml1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Önizlemeyi Temizleme" - -#: Thunar.xml1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "Thumbnail Management Standard ilkelerine uyarak oluşturulan önizlemeler ~/.thumbnails/ dizininde barındırılmaktadır. Oluşturulan önizlemeleri test etmek için, önizleme belleğini temizlemek için şu komutu verebilirsiniz:" - -#: Thunar.xml1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "böylece ev dizininizde yer açmış olursunuz. Bütün bilgiler sisteminizde bulunan dosyalar tarafından oluşturulduğu için herhangi bir veri kaybı yaşamazsınız." - -#: Thunar.xml1257(title) -msgid "Advanced Topics" -msgstr "Gelişmiş Başlıklar" - -#: Thunar.xml1261(title) -msgid "To Bulk Rename Files" -msgstr "Toplu Yeniden Adlandırma İşlemi" - -#: Thunar.xml1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "Çoklu dosyaları yeniden adlandırma işlemi birden fazla dizin ve dosyayı yeniden adlandırmak için kullanılmaktadır. Thunar çoklu yeniden adlandırma desteği sunmaktadır. Thunar -B komutu ile yapılabileceği gibi, programın içinden de yapılabilir. Programın içinden yapmak için birden fazla dosyayı seçip F2 tuşuna basabilirsiniz veya menüden DüzenleYeniden Adlandır... öğesini seçebilirsiniz." - -#: Thunar.xml1278(phrase) -msgid "Bulk Rename Files" -msgstr "Çoklu dosyaları yeniden adlandırma" - -#: Thunar.xml1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "Çoklu dosyaları yeniden adlandırma işlemi dosya isimleri veya uzantılarını değiştirmeye ya da her ikisini de değiştirmenizi sağlar. Thunar şu özellikleri sunmaktadır:" - -#: Thunar.xml1290(para) -msgid "Remove characters." -msgstr "Karakter silme." - -#: Thunar.xml1291(para) -msgid "Numbering files." -msgstr "Numaralandırma." - -#: Thunar.xml1292(para) -msgid "Insert Date or Time." -msgstr "Tarih ve Saat Ekleme" - -#: Thunar.xml1293(para) -msgid "Insert or overwrite characters." -msgstr "Yükleme ve Üstüne Yazma" - -#: Thunar.xml1294(para) -msgid "Search and replace characters." -msgstr "Arama ve Değiştirme" - -#: Thunar.xml1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "Büyük ve küçük harfe dönüştürme" - -#: Thunar.xml1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "İlave Çoklu dosyaları yeniden adlandırma betikleri eklenti olarak kurulabilir. Thunar eklentileri sayfasını kontrol edebilirsiniz. Thunar Project Wikisi bu konuda daha açıklayıcı bilgileri barındırmaktadır. " - -#: Thunar.xml1308(title) -msgid "The UNIX File System" -msgstr "UNIX Dosya Sistemi" - -#: Thunar.xml1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "Thunar dosya yöneticisi sadece işini yaparak kullanıcıya ekstra bir işlem yaptırmamaktadır. Ancak yine de kullanıcının dosya sistemi hakkında bilgi sahibi olması beklenmektedir. Bu bölüm UNIX ve Linux da dahil olmak üzere türevlerinin dosya sistemi sistemi hakkında bilgi vermeye yöneliktir." - -#: Thunar.xml1318(title) -msgid "Folders and Paths" -msgstr "Dizinler ve Yollar" - -#: Thunar.xml1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "UNIX dosya sisteminde bütün dizinler basit bir üst dizine bağlıdır. Bu dizin kök dizin olarak adlandırılmaktadır ve Thunar üzerinde Dosya Sistemi olarak görüntülenmektedir. Dosya sistemi üzerinde gitmek istediğiniz dizine buradan ulaşabilirsiniz." - -#: Thunar.xml1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "Herhangi bir dosya veya dizin yoluna göre tanımlanabilir. Yol, hedef dizin ya da dosyaya ulaşmak için üzerinden geçtiğiniz kısıma verilen isimdir. Örneğin, /home/luke dizini home dizininin alt dizinidir. /home/luke/myfile.txt dosyasına erişim için, kök dizinden home dizininine oradan da luke dizinine geçilmektedir. Bu da dosya yolunu ifade etmektedir." - -#: Thunar.xml1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "Her kullanıcı kişisel dosyaları ve ayarları için kendi dizinine sahiptir. Bu dizin ev dizini olarak adlandırılmaktadır. Thunar her kullanıcı için özel bir simge ile bu ev dizinini göstermektedir. Ev dizini Windows işletim sistemindeki Belgelerim dizini ile benzerlik taşımaktadır. Ev dizinleri /home dizini altında yer alır ve her kullanıcının ismine göre /home/kullanıcıismi şeklinde dizin oluşturulur. " - -#: Thunar.xml1350(title) -msgid "File Types" -msgstr "Dosya Türleri" - -#: Thunar.xml1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "UNIX ve benzeri sistemlerde herşeyin bir dosya olduğunu duymuş olabilirsiniz. Bu birçok güncel UNIX sistemi için doğrudur. Aygıtlar bile özel dosyalar biçimindedir. İlk bakışta ilgi çekici bir özellik gibi görünmese de bu UNIX ve benzeri işletim sistemlerinin güçlü bir özelliğidir. Diğer işletim sistemleri yeni teknolojiler için yeni konseptler gerektirse bile UNIX ve benzeri işletim sistemlerinin böyle bir konsept yenilemesine ihtiyacı bulunmamaktadır." - -#: Thunar.xml1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "UNIX dosya sisteminde dört önemli dosya türü bulunmaktadır:" - -#: Thunar.xml1364(title) -msgid "Ordinary Files" -msgstr "Sıradan Dosyalar" - -#: Thunar.xml1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "Sıradan dosyalar, metin dosyası, program veya başka türlü veri olabilir. Başka türlü veri, resim dosyaları, çoklu ortam dosyaları, ofis dokümanları olabilir. dosya sıradan dosyaları nitelemek için kullanılır." - -#: Thunar.xml1373(title) -msgid "Folder Files" -msgstr "Dizin Dosyaları" - -#: Thunar.xml1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "UNIX dosya sisteminde dizinler de birer dosyadır. Dizin başka dosyaları da içinde barındırabilen bir tür dosyadır." - -#: Thunar.xml1382(title) -msgid "Symbolic Link Files" -msgstr "Sembolik Bağ Dosyaları" - -#: Thunar.xml1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "Sembolik bağ dosyaları (genellikle symlink olarak isimlendirilir) başka bir dosya yoluna işaret eden özel dosyalardır. Sembolik bağ dosyaları önemli bilgi içermez ve sadece diğer dosyalara işaret ederler." - -#: Thunar.xml1392(title) -msgid "Device Files" -msgstr "Aygıt Dosyaları" - -#: Thunar.xml1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "Daha önce de belirtildiği gibi aygıtlar da dosya olarak erişime açıktır. Bu özel aygıt dosyaları /dev dizini altında bulunur. Örnek verecek olursak, /dev/hda Linux üzerinde birincil IDE disk anlamına gelmektedir." - -#: Thunar.xml1406(title) -msgid "Frequently Asked Questions" -msgstr "Sıkça Sorulan Sorular" - -#: Thunar.xml1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "Bu kısımda Thunar hakkında sıkça sorulan soruları ve cevaplarını bulacaksınız. Eğer bu sayfada yer almasını istediğiniz bir soru var ise, talep etmeniz yeterlidir." - -#: Thunar.xml1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "Thunar neden çalıştırılabilir olarak işaretlenmiş dosyaları çalıştırmıyor?" - -#: Thunar.xml1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "Güvenlik nedeniyle Thunar sadece application/x-desktop, application/x-executable ve application/x-shellscript dosya türlerini çalıştırmaktadır. Desktop dosyalarının çalıştırılması için dosya da geçerli Application, Exec ve URL değerleri yer almalıdır. Diğer dosya türleri için kullanıcı dosyayı çalıştırılabilir olarak işaretlemelidir." - -#: Thunar.xml1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "Ayrıca application/x-executable ve application/x-shellscript değerleri için, dosyanın bu türlere uymasına gerek yoktur, tanımlanmış bir tür bunlara uyuyorsa veya bu değerler için MIME türü belirtilmiş ise, bu yeterlidir." - -#: Thunar.xml1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Thunar dosyalara ilişkin üstveriyi nerede tutuyor?" - -#: Thunar.xml1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "Thunar, üstveri adı verilen, dosya ve dizinler için belirlenen ayarları, bir tdb veritabanı dosyasında barındırmaktadır ve bu veritabanı dosyasına üstdosya adı verilmektedir. Bu dosya $XDG_CACHE_HOME/Thunar/metafile.tdb altında bulunmaktadır ve tdbtool aracı ile incelenebilir." - -#: Thunar.xml1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Thunar ayarlarını nerede saklamaktadır?" - -#: Thunar.xml1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "Thunar kullanıcı tarafından yapılandırılabilen ayar dosyalarını bir .ini dosyası olarak $XDG_CONFIG_HOME/Thunar/thunarrc altında saklamaktadır ve herhangi bir metin editörü ile incelenmeye müsait bir şekilde sunmaktadır." - -#: Thunar.xml1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Thunar dosya yöneticisinde fare hareketleri nasıl kullanılır?" - -#: Thunar.xml1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "Thunar şimdilik temel fare hareketlerini simge görünümünde sunmaktadır. Bu fare hareketlerini farenizin orta tuşuna (genelde tekerlek) basılı tutarak dört farklı yöne hareket ettirerek kullanabilirsiniz. Her yönün farklı bir işlemi vardır. Bunlar:" - -#: Thunar.xml1474(guilabel) -msgid "Left" -msgstr "Sol" - -#: Thunar.xml1474(member) -msgid " - opens the previous visited folder" -msgstr " - bir önceki dizini açar" - -#: Thunar.xml1475(guilabel) -msgid "Up" -msgstr "Yukarı" - -#: Thunar.xml1475(member) -msgid " - opens the parent folder" -msgstr " - ana dizini açar" - -#: Thunar.xml1476(guilabel) -msgid "Right" -msgstr "Sağ" - -#: Thunar.xml1476(member) -msgid " - opens the next visited folder" -msgstr " - bir sonraki dizini açar" - -#: Thunar.xml1477(guilabel) -msgid "Down" -msgstr "Aşağı" - -#: Thunar.xml1477(member) -msgid " - reloads the current folder" -msgstr " - mevcut dizini tekrar yükler" - -#: Thunar.xml1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "Farklı klavye kısayollarını nasıl atayabilirim?" - -#: Thunar.xml1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "Thunar bir kısayolu değiştirmek için GTK+ yöntemini kullanır. Fare işaretçisi ile menü seçeneğinin üstüne gelip istediğiniz klavye kısayoluna basmanız yeterlidir." - -#: Thunar.xml1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "Klavye kısayolunu silmek için menü öğesinin üzerinde iken Backspace tuşuna basmanız yeterlidir." - -#: Thunar.xml1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "Eğer kısayol değişmez ise, bu özelliği GTK+ içinde ayarlamanız gerekir. Bu 3 yolla mümkündür:" - -#: Thunar.xml1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "Eğer Xfce 4.3 ve üstü bir sürümünü kullanıyorsanız, Kullanıcı Arayüz Ayarlarında bulunan Düzenlenebilir menü hızlandırıcıları seçeneğini işaretleyebilirsiniz." - -#: Thunar.xml1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "GNOME kullanıyorsanız, kontrol panelindeki Menü ve Araçlar bölümünde Düzenlenebilir Menü Hızlandırıcı özelliğini etkinleştirebilirsiniz." - -#: Thunar.xml1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "Ya da ~/.gtkrc-2.0 dosyanıza (eğer dosya yok ise oluşturmalısınız) şu satırı ekleyebilirsiniz:gtk-can-change-accels=1" - -#: Thunar.xml1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Thunar klavye kısayollarını nerede saklamaktadır?" - -#: Thunar.xml1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "Özel klavye kısayolları standart GTK+ map biçiminde $XDG_CONFIG_HOME/Thunar/accels.scm dosyasında saklanmaktadır. ; ile başlayan satırlar yorum satırlarıdır. Bu dosya biçimi hakkında detaylı bilgi için GTK+ belgelerini inceleyebilirsiniz." - -#: Thunar.xml1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "Eğer bir paketçi veya sistem yöneticisi iseniz ve sistem genelinde klavye kısayolları atamak istiyorsanız, bu işlem Thunardaki öntanımlı kısayollardan farklıdır. $XDG_CONFIG_DIRS dizinlerinden herhangi birinde Thunar/accels.scm dosyasını oluşturabilirsiniz. Mesela, /etc/xdg dizini eğer $XDG_CONFIG_DIRS olarak tanımlanmışsa (çoğu Linux dağıtımı için varsayılandır), sistem genelinde öntanımlıları /etc/xdg/Thunar/accels.scm içinde belirleyebilirsiniz. Thunar ilk açılışta bu dosyadaki kısayolları yükleyecektir." - -#: Thunar.xml1549(title) -msgid "Support" -msgstr "Destek" - -#: Thunar.xml1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "Hata kaydı girmek veya bir iyileştirme önerisinde bulunmak için http://bugzilla.xfce.org/ adresindeki hata takip sistemini kullanabilirsiniz. Yararlı bir hata kaydının iki unsuru vardır:" - -#: Thunar.xml1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "Tekrarlanabilir olması. Eğer geliştirici böyle bir hatanın olduğunu kanıtlayamazsa, bu hatayı kapatamaz." - -#: Thunar.xml1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "Spesifik olması. İyi bir hata kaydı bütün detayların verildiği bir hata kaydıdır. Böylece geliştirici hatayı çözmede daha az zaman harcayacaktır ve kolayca hatayı çözebilecektir." - -#: Thunar.xml1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "Eğer bir iyileştirme önerisinde bulunursanız, bunun nasıl bir yenilik getireceğini ve niçin yer alması gerektiğini açıklamanız gerekmektedir. Böylece eklenme şansı yüksek olacaktır. Ayrıca eğer geliştirici iseniz, iyileştirmelerinizi yama olarak gönderebilirsiniz. Ancak HACKING belgesini, özellikle Coding Style ile ilgili kısmı okumalısınız. " - -#: Thunar.xml1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "Eğer başka sorularınız varsa bunları thunar-dev tartışma listesinde veya irc.freenode.net üzerinde bulunan #thunar kanalında sorabilirsiniz." - -#: Thunar.xml1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ hakkında" - -#: Thunar.xml1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ Benedikt Meurer (benny@xfce.org) tarafından geliştirilmektedir. Daha fazla bilgi için Thunar websitesini ziyaret edebilirsiniz." - -#: Thunar.xml1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "Bu dokümanın özgün sürümü Benedikt Meurer (benny@xfce.org) tarafından yazılmıştır. Bu dokümanın güncel sürümüne Thunar websitesi üzerinden ulaşabilirsiniz." - -#: Thunar.xml1605(para) -msgid "This software is distributed 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." -msgstr "Bu yazılım Özgür Yazılım Vakfı tarafından yayınlanan GNU Genel Kamu Lisansı altında dağıtılmaktadır." - -#: Thunar.xml1611(para) -msgid "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." -msgstr "Bu yazılımla birlikte GNU Genel Kamu Lisansının bir kopyasını almış olmalısınız, eğer almadıysanız, Özgür Yazılım Vakfına yazabilirsiniz; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml0(None) -msgid "translator-credits" -msgstr "Samed Beyribey , 2008" - -#~ msgid ".png" -#~ msgstr ".png" - -#~ msgid "%" -#~ msgstr "%" diff -Nru thunar-1.2.3/docs/manual/po/ug.po thunar-1.6.10/docs/manual/po/ug.po --- thunar-1.2.3/docs/manual/po/ug.po 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/ug.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1340 +0,0 @@ -# Uyghur translations for Thunar package. -# Copyright (C) 2004-2006 Benedikt Meurer. -# This file is distributed under the same license as the Thunar package. -# Gheyret T.Kenji , 2010. -# -msgid "" -msgstr "" -"Project-Id-Version: Thunar 0.5.0rc2\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-01-06 17:45+0900\n" -"Last-Translator: Gheyret T.Kenji \n" -"Language-Team:Uyghur Computer Science Association \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" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Thunar ھۆججەت باشقۇرغۇ" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml:25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "يۇمشاق دېتال ئىجادىيىتى" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "سىستېما ئىجادىيىتى" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "بۇ بولاق @PACKAGE_NAME@ نىڭ @PACKAGE_VERSION@ نەشرى ھەققىدىكى قوللانمىدۇر" - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ ھەققىدىكى دەسلەپكى چۈشەنچە" - -#: Thunar.xml:56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar بولسا Xfce ئۈچۈن مەخسۇس لايىھىلەنگەن يېڭىچە ھۆججەت باشقۇرغۇدۇر. كۆرۈنمە يۈزى ئاددىي، ئارتقۇچە تاللانمىلار يوق، قوزغىلىشى ۋە شۇنداقلا ھۆججەت ۋە مۇندەرىجىلەرنى كۆرسىتىشىمۇ تەز." - -#: Thunar.xml:62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "Thunar ھۆججەت باشقۇرغۇنى ئىشلىتىپ، ھۆججەت ۋە پروگراممىلارنى بىرلا يەردە بىر تەرەپ قىلغىلى بولىدۇ. بۇنى ئىشلىتىپ تۆۋەندىكى مەشغۇلاتلارنى قىلغىلى بولىدۇ:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "ھۆججەت ۋە پۈتۈكلەرنى قۇرغىلى بولدى." - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "ھۆججەت ۋە مۇندەرىجىلەرنى كۆرسەتكىلى بولىدۇ." - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "ھۆججەت ۋە مۇندەرىجىلەرنى باشقۇرغىلى بولىدۇ." - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "custom action لارنى ئىجرا قىلغىلى ۋە باشقۇرغىلى بولىدۇ." - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "Removable دىسكىلارنى زىيارەت قىلغىلى بولىدۇ." - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "ھۆججەت باشقۇرغۇ كۆزنىكى" - -#: Thunar.xml:80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "كۆڭۈلدىكى ھالەتتە، ھۆججەت باشقۇرغۇ كۆزنىكىنىڭ سول تەرىپىدە تېزلەتمە pane بار، ئوڭ تەرەپتە ئاساسلىق رايون، ئۈستىدە pathbar بار." - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "ھۆججەت باشقۇرغۇ كۆزنىكى" - -#: Thunar.xml:97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "تېزلەتمە pane دا سىستېمىدىكى ھەر خىل مۇندەرىجىلەرنىڭ تېزلەتمىسى بار. ئەڭ باشتىكى سىزنىڭ ماكان مۇندەرىجە نىڭ تېزلەتمىسى. بۇ يەردە سىزنىڭ بارلىق خۇسۇسىي ماتېرىياللىرىڭىز ساقلىنىدۇ، ئاتى ئادەتتە ئىشلەتكۈچىنىڭ ئاتى بىلەن ئوخشاش. ئىككىنچىسى ئەخلەت ساندۇقىنىڭ تېزلەتمىسى بولۇپ، ئەخلەت ساندۇقىدا ئۆچۈرۈلگەن ھۆججەتلەر ساقلىنىدۇ، كېيىن ئەسلىگە كەلتۈرۈشكىمۇ بولىدۇ. ئۈچىنچىسى ئۈستەل يۈزى مۇندەرىجە سېنىڭ تېزلەتمىسى، ئۈستەليۇزىدە كۆرۈنىدىغان ھۆججەت ۋە مۇندەرىجە ساقلىنىدۇ. تۆتىنچىسى ھۆججەت سىستېمىسىنىڭ تېزلەتمىسى – Linux/Unix غا يېڭى بولسىڭىز قايمۇقۇپ قېلىشىڭىزمۇ مۇمكىن، شۇنداقتىمۇ بۇ يەرنى كۆرۈپ باقسىڭىز بولىدۇ، ھەرخىل مۇندەرىجىلەر بار." - -#: Thunar.xml:108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "ھۆججەت سىستېمىسى تېزلەتمىسىنىڭ ئاستىدا، removable ئۈسكىنە ۋە دىسكىلار كۆرسىتىلىدۇ. CD-ROM نىڭ تېزلەتمىسىنى چېكىپ بۇ ئۈسكىنە ۋە دىسكىلاردىكى نەرسىلەرنى كۆرگىلى بولىدۇ. تەپسىلاتىنى دىن كۆرۈڭ." - -#: Thunar.xml:115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "" - -#: Thunar.xml:123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "" - -#: Thunar.xml:131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "pathbar دا ھازىر كۆرۈۋاتقان مۇندەرىجىنىڭ يولى كۆرۈنىدۇ، چەكسە شۇ يەرگە كىرگىلى بولىدۇ. pathbar نىڭ ئۈستىدە چاشقىنەكنىڭ ئوڭ تەرىپىنى چەكسە context-menu چىقىدۇ." - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "كۆرۈنۈشىنى Customize قىلىش" - -#: Thunar.xml:141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "ھۆججەت باشقۇرغۇنىڭ كۆرۈنۈشىنى Customize قىلىشنىڭ نۇرغۇن ئۇسۇللىرى بار. مەسىلەن سىنبەلگىلەرنىڭ كۆرۈنۈشى كۆڭلىڭىزگە ياقمىسا باش menu دىن كۆرۈنۈشView as Detailed List نى تاللىسىڭىز ھازىرقى مۇندەرىجىنىڭ مەزمۇنلىرى تېزلىك بولۇپ كۆرۈنىدۇ." - -#: Thunar.xml:147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "" - -#: Thunar.xml:153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "" - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "" - -#: Thunar.xml:162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "" - -#: Thunar.xml:175(phrase) -#: Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "كۆرۈنىدىغان ئىستونلار" - -#: Thunar.xml:184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "ئىستون چوڭلۇقىنى ئۆزگەرتىش" - -#: Thunar.xml:195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "" - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "ھۆججەت ۋە مۇندەرىجە مەشغۇلاتى" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "ھۆججەت ئېچىش" - -#: Thunar.xml:214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "" - -#: Thunar.xml:220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "ھۆججەت باشقۇرغۇ ھۆججەتنىڭ كېڭەيتىلمە ئاتىغا ئاساسەن ھۆججەتنىڭ تىپىنى بېكىتىدۇ، ئەگەر كېڭەيتىلمە ئاتى يوق بولسا مەزمۇنىغا ئاساسەن بېكىتىدۇ." - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "كۆڭۈلدىكى Action نى ئىجرا قىل" - -#: Thunar.xml:228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "ھۆججەتكە بولغان كۆڭۈلدىكى Action ئىجرا قىلىش ئۈچۈن، چاشقىنەكنى قوش چەكسىلا بولىدۇ.مەسىلەن، ئۈن ھۆججىتىگە نىسبەتەن كۆڭۈلدىكى Action ئىجرا قىلىنسا، ئۈن ھۆججىتى چېلىنىدۇ. يەنى ئۈن ھۆججىتى قوش چەكسە مۇزىكا قويغۇ ئۇنى چېلىپ بېرىدۇ." - -#: Thunar.xml:234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "Thunar نىڭ تەڭشىكىدە كۆڭۈلدىكى Action نى تاق چېكىپ ئىجرا قىلىدىغان قىلىپ بەلگىلەشكىمۇ بولىدۇ. تەپسىلاتىنى دىن كۆرۈڭ." - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "كۆڭۈلدىكى Action دىن باشقىسىنى ئىجرا قىلىش" - -#: Thunar.xml:243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "ھۆججەتكە نىسبەتەن كۆڭۈلدىكى action دىن باشقا action نى ئېلىپ بارماقچى بولغاندا ھۆججەت menu نىڭ ئىچىدىكى Open With نى چېلىپ مەشغۇلات قىلسا بولىدۇ." - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "action قوشۇش" - -#: Thunar.xml:253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "ھۆججەتكە نىسبەتەن action قوشماقچى بولغاندا، تۆۋەندىكىدەك مەشغۇلات قىلسا بولىدۇ:" - -#: Thunar.xml:259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "ئاساسىي رايوندىن ھۆججەتنى تاللىنىدۇ." - -#: Thunar.xml:264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "باش menu دىن ھۆججەتباشقا پروگراممىدا ئاچ تاللىسا بولىدۇ." - -#: Thunar.xml:270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "" - -#: Thunar.xml:277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "" - -#: Thunar.xml:283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "" - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "Action نى تۈزىتىش" - -#: Thunar.xml:292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "ھۆججەتكە نىسبەتەن قوشۇلغان action نى تۈزىتىش ئۈچۈن ، تۆۋەندىكىدەك مەشغۇلات قىلسا بولىدۇ:" - -#: Thunar.xml:298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "ئاساسىي رايوندىن تۈزەتمەكچى بولغان ھۆججەتنى تاللىنىدۇ." - -#: Thunar.xml:303(para) -#: Thunar.xml:383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "" - -#: Thunar.xml:308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "" - -#: Thunar.xml:315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "" - -#: Thunar.xml:324(title) -#: Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "ھۆججەت خاسلىقى" - -#: Thunar.xml:326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "ھۆججەت خاسلىقى رامكىسىدا ھۆججەت ۋە مۇندەرىجىگە مۇناسىۋەتلىك نۇرغۇن ئۇچۇرلارنى كۆرگىلى بولىدۇ. بۇ كۆزنەكتە تۆۋەندىكىدەك مەشغۇلاتلارنى قىلغىلى بولىدۇ:" - -#: Thunar.xml:333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "پروگرامما ئىجراچىسى ۋە URL ئۇلانمىسى قاتارلىقلارنىڭ سىنبەلگىسىنى ئۆزگەرتكىلى بولىدۇ." - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "ھۆججەت ياكى مۇندەرىجىگە emblem قوشقىلى ياكى ئۆچۈرگىلى بولىدۇ." - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "ھۆججەت ياكى مۇندەرىجىنىڭ UNIX ھۆججەت ھوقۇقلىرى نى ئۆزگەرتكىلى بولىدۇ." - -#: Thunar.xml:348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "ئوخشاش تىپتىكى ھۆججەتنى ئېچىشتا ئىشلىتىدىغان پروگراممىنى تاللايدۇ." - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "ھۆججەت خاسلىقى رامكىسىنى ئېچىش ئۈچۈن، تۆۋەندىكىدەك مەشغۇلات قىلسا بولىدۇ:" - -#: Thunar.xml:372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "خاسلىقى ئۆزگەرتىلمەكچى بولغان ھۆججەت ياكى مۇندەرىجە تاللىنىدۇ. بىر نەچچە ھۆججەت ياكى مۇندەرىجىنى تاللاپ، ئۇلارغا ئورتاق بولغان خاسلىقنى ئۆزگەرتىش تېخى ئەمەلگە ئاشۇرۇلمىدى." - -#: Thunar.xml:386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "تاللانغان تۈردە چاشقىنەكنىڭ ئوڭ كۇنۇپكىنى چېكىلىدۇ، ئاندىن context menu نىڭ ئىچىدىكى خاسلىق تاللىنىدۇ." - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "AltReturn چېكىلىدۇ." - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "تۆۋەندىكى مەشغۇلاتنىڭ بىرەرى ئېلىپ بېرىلىدۇ: " - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "Removable Media نى ئىشلىتىش" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "Removable Media نى زىيارەت قىلىش" - -#: Thunar.xml:405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "" - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "Media نى Mount قىلىش" - -#: Thunar.xml:414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "Media نى Mount قىلىش دېگەنلىك، Media نىڭ ھۆججەت سىستېمىسىنى زىيارەت قىلغىلى بولىدىغان قىلىش دېگەنلىكتۇر. Media نى mount قىلغاندا Media نىڭ ھۆججەت سىستېمىسى سىتەمنىڭ ھۆججەت سىستېمىسىدىكى بىرەر مۇندەرىجىگە باغلىنىدۇ." - -#: Thunar.xml:419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "media نى زىيارەت قىلىش ئۈچۈن، media مۇۋاپىق ئۈسكۈنىگە سېلىنىدۇ(قىستۇرۇلىدۇ) ياكى يېڭى ئۈسكىنىنى كومپيۇتېرغا باغلايمىز.(مەسىلەن: USB نى USB ئېغىزىغا چاتىمىز). بۇنىڭ بىلەن Media نى تەسۋىرلەيدىغان ئوبيېكت ھۆججەت باشقۇرغۇنىڭ يان pane غا قوشۇلىدۇ. xfdesktop ئىجرا بولۇۋاتقان بولسا ھەم ھۆججەت/ئىجراچى سىنبەلگىسى كۆرۈنىدىغان قىلىپ تەڭشەلگەن بولسا، مەزكۇر ئوبيېكت ئۈستەل يۈزىدىمۇ كۆرۈنىدۇ." - -#: Thunar.xml:426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "ئەمەلىيەتتە media نى mount قىلىش ئۈچۈن Media نى تەسۋىرلەيدىغان ئوبيېكتنى چېكىلىدۇ. مەسىلەن، يۇمشاق دىسكىنى mount قىلىش ئۈچۈن يان pane دىكى يۇمشاق دىسكا ئوبيېكتى چېكىلىدۇ. ھۆججەت باشقۇرغۇ media نىڭ ھۆججەت سىستېمىسىنى سىستېمىنىڭ ھۆججەت سىستېمىسىغا قوشىدۇ، ھەم ئۇنىڭ ئىچىدىكى مەزمۇنلارنى ئاساسىي رايوندا كۆرسىتىدۇ." - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "Media نى چىقىرىش" - -#: Thunar.xml:436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "" - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "Unmount ئۇقتۇرۇشى" - -#: Thunar.xml:456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "" - -#: Thunar.xml:464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "media نى باشقا پروگراممىلار ئىشلىتىۋاتقان بولسا، ئۇنى unmount قىلغىلى ياكى چىقارغىلى بولمايدۇ. ھۆججەت باشقۇرغۇ media نى چىقىرىشنى رەت قىلسا، media نى ئىشلىتىۋاتقان پروگرامما بارمۇ يوقمۇ تېرمىنال كۆزنىكىدە تەكشۈرۈش كېرەك." - -#: Thunar.xml:470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "media نى چىقىرىشتىن بۇرۇن چوقۇم unmount قىلىش زۆرۈر. يۇمشاق دىسكىنى چىقىرىشتىن بۇرۇن چوقۇم، ئۇنى unmount قىلىش كېرەك. USB نى چىقىرىشتىن بۇرۇن چوقۇم، ئۇنى unmount قىلىش كېرەك. ئالدى بىلەن unmount قىلمىسا ئۇچۇرلار تولۇق ساقلانماي قېلىشى، سىستېمىدىن چاتاق چىقىشىمۇ مۇمكىن." - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "Removable ئۈسكىنە ۋە Media نى باشقۇرۇش" - -#: Thunar.xml:481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "ئەگەر thunar-volman بولىقى ئورنىتىلغان بولسا، Thunar ئارقىلىق Removable ئۈسكىنە ۋە Media نى ئاپتوماتىك باشقۇرغىلى بولىدۇ. بىراق بۇنىڭ ئۈچۈن چوقۇم سىستېمىدا HAL بولۇشى كېرەك." - -#: Thunar.xml:487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "ئەگەر سىستېمىدا HAL بار بولۇپ ھەم thunar-volman ئورنىتىلغان بولسا، Thunar نىڭ Volume باشقۇرۇش ئىقتىدارىنى تاللىغىلى بولىدۇ. بۇنىڭ ئۈچۈن ھۆججەت باشقۇرغۇنىڭ تەڭشىكىنى ئېچىپ تەپسىلاتلار بېتىگە بېرىپ، Volume باشقۇرۇشنى چەكلىمەسلىك توپچىسىنى تاللاش كېرەك." - -#: Thunar.xml:494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "" - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "Removable ئۈسكىنە ۋە Media" - -#: Thunar.xml:512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "" - -#: Thunar.xml:519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "" - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "" - -#: Thunar.xml:529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "" - -#: Thunar.xml:533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "" - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "removable media سېلىنغان ھامان Mount قىلىنسۇن" - -#: Thunar.xml:546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "مەزكۇر تاللانما تاللانسا، removable media (CD-ROM ياكى DVD قاتارلىقلار) ئۈسكىنىگە سېلىنغان ھامان، ئۇلارنىڭ ھۆججەت سىستېمىسى mount قىلىنىدۇ." - -#: Thunar.xml:550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "" - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "removable media سېلىنغان ھامان مەزمۇنى كۆرۈنسۇن" - -#: Thunar.xml:562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "" - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "يېڭى ئۈسكىنە ۋە media دىكى پروگرامما ئاپتوماتىك ئىجرا قىلىنسۇن" - -#: Thunar.xml:576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "" - -#: Thunar.xml:582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "" - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "يېڭى ئۈسكىنە ۋە media دىكى ھۆججەتلەر ئاپتوماتىك ئېچىلسۇن" - -#: Thunar.xml:592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" - -#: Thunar.xml:602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml:612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "" - -#: Thunar.xml:617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "" - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml:627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "" - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml:637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "" - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "Volume باشقۇرغۇدىكى كاشىلىلارنى تۈزەش" - -#: Thunar.xml:650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "Volume باشقۇرغۇ ئويلىغاندەك ئىشلىمەي قالغاندا كۆرسىتىلىدىغانTip لار." - -#: Thunar.xml:656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "" - -#: Thunar.xml:668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" - -#: Thunar.xml:678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "" - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "ھۆججەت باشقۇرغۇ تەڭشىكى" - -#: Thunar.xml:691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "" - -#: Thunar.xml:697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "كۆرۈنۈش ھەققىدىكى كۆڭۈلدىكى تەڭشەكلەر" - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "يان pane ھەققىدىكى كۆڭۈلدىكى تەڭشەكلەر" - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "ھۆججەت باشقۇرغۇ كۆزنىكىنىڭ ھەرىكىتى" - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "ھۆججەت باشقۇرغۇنىڭ ئالىي ئىقتىدارلىرى" - -#: Thunar.xml:709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "" - -#: Thunar.xml:718(title) -#: Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "كۆرۈنۈش تەڭشەكلىرى" - -#: Thunar.xml:720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "كۆڭۈلدىكى كۆرۈنۈش، تەرتىپلەش، كۆرسىتىش ئۇسۇللىرى بېكىتىلىدۇ. يەنە thumbnails نى قوللايدىغان ھۆججەت تىپىغا نىسبەتەن، thumbnail نى كۆرسىتىش كۆرسەتمەسلىكنى بېكىتىدۇ." - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "يېڭى مۇندەرىجىنى كۆرسىتىش ئۇسۇلى" - -#: Thunar.xml:742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "" - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "تەرتىپلىگەندە مۇندەرىجە ھۆججەتنىڭ ئالدىغا كەلسۇن" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "بۇ تاللانما تاللانسا، بىرەر مۇندەرىجىنى تەرتىپلىسىڭىز مۇندەرىجە ھۆججەتلەرنىڭ ئالدىغا تەرتىپلىنىدۇ" - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "thumbnails نى كۆرسەتسۇن" - -#: Thunar.xml:763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "" - -#: Thunar.xml:768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "" - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "تېكىست سىنبەلگىنىڭ يېنىدا كۆرسىتىلسۇن" - -#: Thunar.xml:779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "" - -#: Thunar.xml:790(title) -#: Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "يان Pane تەڭشەكلىرى" - -#: Thunar.xml:792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "تېزلەتمە Pane ۋە دەرەخسىمان Pane نىڭ كۆرسىتىش تاللانمىلىرىنى بەلگىلەيدۇ" - -#: Thunar.xml:808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "" - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "سىنبەلگە چوڭلۇقى" - -#: Thunar.xml:819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "يان pane دا كۆرسىتىلىدىغان سىنبەلگىنىڭ چوڭلۇقى بەك كىچىك (16×16 پىكسېل) دىن بەك چوڭ (128×128 پىكسېل) نىڭ ئارىلىقىدا بولىدۇ" - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "سىنبەلگە سىمۋولىنى كۆرسىتىش" - -#: Thunar.xml:829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "" - -#: Thunar.xml:843(title) -#: Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "ھەرىكەت تەڭشىكى" - -#: Thunar.xml:845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "بىرلا چېكىپ تۈرلەرنى ئاكتىپلىسۇن" - -#: Thunar.xml:865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "" - -#: Thunar.xml:871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "" - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "قوش چېكىپ تۈرلەرنى ئاكتىپلىسۇن" - -#: Thunar.xml:882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "" - -#: Thunar.xml:893(title) -#: Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "ئالىي تەڭشەكلەر" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "ھۆججەت باشقۇرغۇنىڭ ئالىي ئىقتىدارلىرىنى كونترول قىلغىلى بولىدۇ." - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "مۇندەرىجە ھوقۇقلىرى" - -#: Thunar.xml:915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "مۇندەرىجە خاسلىق كۆزنىكىدە مۇندەرىجە ھوقۇقلىرىنى ئۆزگەرتكەن چاغدىكى مەشغۇلاتنى قىلىمىز. مۇندەرىجە ھوقۇقلىرىنى ئۆزگەرتىلگەندە Thunar ھەر قېتىم سورىسۇنمۇ سورىمىسۇنمۇ، ياكى يېڭى مۇندەرىجە بولغاندىلا سورىسۇنمۇ، مۇندەرىجە ۋە ئۇنىڭ ئاستىدىكى بارلىق قات مۇندەرىجىلەرنىڭ ھەممىسىگە قوللانسىمۇ كونترول قىلغىلى بولىدۇ." - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "Volume باشقۇرۇش" - -#: Thunar.xml:927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "Thunar を HAL サポート付きでインストールし、かつ thunar-volman パッケージもインストールされている場合に統合ボリュームマネージャを有効にできます。この機能の詳細については、 を参照してください。" - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "Thunar Customize قىلىش" - -#: Thunar.xml:942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "بۇ بابتا ھۆججەت باشقۇرغۇنىڭ بىر قىسىم جايلىرىنى Customize قىلىش ئۇسۇلىنى چۈشەندۈرىمىز" - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "\"...گە ئەۋەت\" Menu" - -#: Thunar.xml:950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "" - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "\"...گە ئەۋەت\" Menu" - -#: Thunar.xml:969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "" - -# 'Kib' seems to mean KiByte not Kibit. -#: Thunar.xml:979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "" - -#: Thunar.xml:987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "" - -#: Thunar.xml:996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "" - -#: Thunar.xml:1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml:1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "" - -#: Thunar.xml:1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "" - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "Thumbnailers" - -#: Thunar.xml:1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "" - -#: Thunar.xml:1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "" - -#: Thunar.xml:1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "" - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "Thumbnailer چۈشەندۈرۈش ھۆججىتىنىڭ فورماتى" - -#: Thunar.xml:1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "" - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" - -#: Thunar.xml:1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "" - -#: Thunar.xml:1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml:1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "" - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml:1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml:1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "thumbnail نىڭ چوڭلۇقى (پىكسېل)، بۇ پارامېتىر يېزىلمىسىمۇ بولىدۇ" - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml:1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "" - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "" - -#: Thunar.xml:1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "" - -#: Thunar.xml:1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "" - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "EPS Thumbnailer ھەققىدىكى مىسال" - -#: Thunar.xml:1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "" - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml:1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "بۇ script eps-thumbnailer نى دېگەن ئاتتا ساقلاپ، ئىجرا ھوقۇقى بېرىپ، /usr/local/bin غا ئورنىتىلىدۇ" - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml:1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "كېيىنكى قەدەمدە، تۆۋەندىكىدەك thumbnail چۈشەندۈرۈش ھۆججىتىeps-thumbnailer.desktop نى ياساش كېرەك." - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml:1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "بۇ ھۆججەت /usr/local/share/thumbnailers گە ئورنىتىلمىسا بولمايدۇ (مۇندەرىجە يوق بولسا بىرنى قۇرۇڭ)." - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml:1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "" - -#: Thunar.xml:1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml:1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "بۇ پروگراممىنى سىزنىڭ ھېساباتىڭىزدا ئىجرا قىلىسىز، ھەرگىزمۇ superuser نىڭ ھېساباتىدا ئىجرا قىلدۇرۇشقا بولمايدۇ. چۈنكى thumbnailers غەملىكى سىزنىڭ ماكان مۇندەرىجىڭىز ئىچىگە ياسالغان. بۇنىڭغا بەك دىققەت قىلىڭ" - -#: Thunar.xml:1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml:1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "شۇنىڭدىن كېيىن Thunar نى قايتا قوزغىتىڭ." - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "Thumbnails تازىلاش" - -#: Thunar.xml:1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml:1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "بۇنىڭ بىلەن ماكان مۇندەرىجىڭىزدە ئازراق بىكار يەر كۆپىيىدۇ. بۇ مۇندەرىجىدىكى ئۇچۇرلارنىڭ ھەممىسى سىزنىڭ سىستېمىڭىزدىكى ھۆججەتلەردىن ياسالغان بولغاچقا، ئۆچۈرۈۋەتسىڭىزمۇ سىستېمىغا تەسىرى بولمايدۇ." - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "ئالىي تېمىلار" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "ھۆججەت ئاتىنى توپ ئۆزگەرتىش" - -#: Thunar.xml:1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "" - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "ھۆججەت ئاتىنى توپ ئۆزگەرتىش" - -#: Thunar.xml:1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "ھەرپلەرنى ئۆچۈرىدۇ." - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "ھۆججەتلەرگە نومۇر سالىدۇ." - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "چېسلا ياكى ۋاقىتنى قىستۇرىدۇ." - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "ھەرپلەرنى قىستۇرىدۇ ياكى قاپلايدۇ." - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "ھەرپلەرنى ئىزدەيدۇ ۋە ئالماشتۇرىدۇ." - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "چوڭ يېزىلىشقا، كىچىك يېزىلىشقا ياكى باش ھەرپنىلا ئۆزگەرتىدۇ." - -#: Thunar.xml:1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "" - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "UNIX ھۆججەت سىستېمىسى" - -#: Thunar.xml:1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "" - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "ھۆججەت ۋە يول" - -#: Thunar.xml:1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "" - -#: Thunar.xml:1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "" - -#: Thunar.xml:1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "" - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "ھۆججەت تىپى" - -#: Thunar.xml:1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "" - -#: Thunar.xml:1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "UNIX سىستېمىسىدا ئاساسلىق ھۆججەت تىپىدىن 4 ئى بار." - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "ئادەتتىكى ھۆججەت" - -#: Thunar.xml:1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "ئادەتتىكى ھۆججەت دېگىنىمىز، تېكىست ھۆججىتى، پروگرامما، ياكى باشقا سانلىق ئاساس ھۆججەتلىرىنى كۆرسىتىدۇ، سۈرەت ھۆججەتلىرى، ئۈن ھۆججەتلىرى، ئىشخانا پۈتۈكلىرى ۋە سىن ھۆججەتلىرى مۇشۇ تۈرگە تەۋە.ھۆججەت دېگىنى مۇشۇ ئادەتتىكى ھۆججەتنى كۆرسىتىدۇ." - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "مۇندەرىجە(ھۆججىتى)" - -#: Thunar.xml:1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "UNIX ھۆججەت سىستېمىسىدا مۇندەرىجىمۇ ھۆججەت. ئېنىق قىلىپ ئېيتقاندا مۇندەرىجە ئالاھىدە ھۆججەت بولۇپ، このフォルダ内にあるすべてのファイルを参照するためのファイル名のマップが含まれています。" - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "Symbolic ئۇلانما ھۆججىتى" - -#: Thunar.xml:1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "Symbolic ئۇلانما (كوپ ھاللاردا ئۇلانما دەپلا ئېلىنىدۇ) ھۆججەت سىستېمىسىدىكى باشقا ھۆججەتلەرنىڭ يولىنى ئوز ئىچىگە ئالغان ئالاھىدە ھۆججەت ھېسابلىنىدۇ. Symbolic ئۇلانما ھۆججىتىدە ئالاھىدە ئۇچۇرلار يوق، پەقەتلا ئۇ باشقا بىر ھۆججەتنى كۆرسىتىپلا بېرىدۇ خالاس." - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "ئۈسكىنە ھۆججىتى" - -#: Thunar.xml:1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "" - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "كوپ سورىلىدىغان سوئاللار" - -#: Thunar.xml:1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "بۇ بابتا @PACKAGE_NAME@ نىڭ ئىشلىتىش جەريانىدا كوپ سورىلىدىغان سوئاللارغا جاۋاب بېرىلىدۇ. بۇ يەردە يوق سوئال بولسا تەلەپنى يېزىپ غا ئەۋەتىڭلار." - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "ئىجرا قىلغىلى بولىدۇ دەپ بەلگە سېلىنغان ھۆججەتنى Thunar نېمىشقا ئىجرا قىلمايدۇ?" - -#: Thunar.xml:1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "" - -#: Thunar.xml:1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "" - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Thunar ھۆججەتكە مۇناسىۋەتلىك metadata لارنى قەيەردە ساقلايدۇ؟" - -#: Thunar.xml:1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "" - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Thunar تەڭشەكلىرى قەيەردە ساقلىنىدۇ؟" - -#: Thunar.xml:1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "" - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "Thunar دا چاشقىنەكنىڭ ئىشارەت تىلىنى قانداق ئىشلىتىمىز؟" - -#: Thunar.xml:1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "" - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "سول" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr " - ئالدىنقى مۇندەرىجىنى ئاچىدۇ" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "ئۈستى" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr " - ئاتا مۇندەرىجىنى ئاچىدۇ" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "ئوڭ" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr " - كېيىنكى مۇندەرىجىنى ئاچىدۇ" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "ئاستى" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr " - ھازىرقى مۇندەرىجىنى قايتا ئوقۇيدۇ" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "ئوخشاشمىغان تېزلەتمە كۇنۇپكىلىرى قانداق تەقسىم قىلىنىدۇ؟" - -#: Thunar.xml:1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "" - -#: Thunar.xml:1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "تەقسىملەنگەن تېزلەتمە كۇنۇپكىنى ئۆچۈرۈش ئۈچۈن، menu تاللانغان ۋاقىتتا يېنىپ ئۆچۈرۈش كۇنۇپكىسى نى بېسىڭ." - -#: Thunar.xml:1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "تېزلەتمە كۇنۇپكا ئۆزگەرمىسە، GTK+ نىڭ بۇ ئىقتىدارىنى ئىناۋەتلىك قىلىش كېرەك، بۇنىڭ قىلىشنىڭ ئۇسۇللىرى 3 تۈرلۈك:" - -#: Thunar.xml:1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "" - -#: Thunar.xml:1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "" - -#: Thunar.xml:1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Thunar تېزلەتمە كۇنۇپكىلارنى قەيەردە ساقلايدۇ؟" - -#: Thunar.xml:1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "" - -#: Thunar.xml:1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "Support" - -#: Thunar.xml:1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "" - -#: Thunar.xml:1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "" - -#: Thunar.xml:1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "" - -#: Thunar.xml:1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "" - -#: Thunar.xml:1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "" - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ ھەققىدە" - -#: Thunar.xml:1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ نىڭ ئاپتورى Benedikt Meurer (benny@xfce.org). تېخىمۇ كوپ ئۇچۇرغا ئىگە بولماقچى بولسىڭىز Thunar بېتىنى زىيارەت قىلىڭ." - -#: Thunar.xml:1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "بۇ پۈتۈكلەرنى Benedikt Meurer (benny@xfce.org) يازغان. ئەڭ يېڭى نەشرى Thunar بېتىدە بار." - -#: Thunar.xml:1605(para) -msgid "This software is distributed 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." -msgstr "" - -#: Thunar.xml:1611(para) -msgid "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." -msgstr "" - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "Gheyret T.Kenji 2010" - -#~ msgid ".png" -#~ msgstr ".png" -#~ msgid "%" -#~ msgstr "%" - diff -Nru thunar-1.2.3/docs/manual/po/zh_CN.po thunar-1.6.10/docs/manual/po/zh_CN.po --- thunar-1.2.3/docs/manual/po/zh_CN.po 2011-09-20 20:17:58.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/zh_CN.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,2517 +0,0 @@ -# Hunt Xu , 2009. -msgid "" -msgstr "" -"Project-Id-Version: Thunar\n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2009-12-23 15:53+0800\n" -"Last-Translator: Hunt Xu \n" -"Language-Team: Chinese (Simplified) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "" -"@@image: 'images/file-manager-window.png'; " -"md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "" -"@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "" -"@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" -msgstr "" -"@@image: 'images/removable-media-unmount.png'; " -"md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "" -"@@image: 'images/removable-drives-and-media.png'; " -"md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "" -"@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "" -"@@image: 'images/preferences-side-pane.png'; " -"md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" -msgstr "" -"@@image: 'images/preferences-behavior.png'; " -"md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" -msgstr "" -"@@image: 'images/preferences-advanced.png'; " -"md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "" -"@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "" -"@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Thunar 文件管理器" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml:25(para) -msgid "" -"Permission is granted to copy, distribute and/or modify this document under " -"the terms of the GNU Free Documentation License, Version 1.1 or any later " -"version published by the Free Software Foundation; with no Invariant " -"Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The " -"complete license text is available from the Free Software Foundation." -msgstr "" -"在自由软件基金会发布的 GNU 自由文档许可协议版本 1.1 或更高版本" -"的条款约束下发布,允许复制、分发和/或修改本文档;不要求保留特定" -"内容、封面文本或者封底文本。许可协议全文可以通过以下链接找到:Free Software Foundation 。" - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "软件开发者" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "系统开发" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "本手册介绍了 @PACKAGE_VERSION 版的 @PACKAGE_NAME@ 。" - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "@PACKAGE_NAME@ 简介" - -#: Thunar.xml:56(para) -msgid "" -"Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar " -"has been designed from the ground up to be fast and easy-to-use. Its user " -"interface is clean and intuitive, and does not include any confusing or " -"useless options by default. Thunar is fast and responsive with a good start " -"up time and folder load time." -msgstr "" -"Thunar 是 Xfce 桌面环境下的全新的现代化的文件管理器。Thunar " -"自始至终都是为了快速和易用而设计。它的用户界面简洁直观,默认不包含" -"任何令人迷惑或无用的选项。Thunar 在启动和载入文件夹时快速又灵敏。" - -#: Thunar.xml:62(para) -msgid "" -"The Thunar file manager thereby provides an integrated access point to your " -"files and applications. You can use the file manager to do the following:" -msgstr "" -"Thunar 文件管理器从而为您的文件和程序提供了一个整合的访问点。" -"您可以使用此文件管理器做以下事情:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "创建文件夹和文档。" - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "显示您的文件和文件夹。" - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "管理您的文件和文件夹。" - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "执行和处理自定义动作。" - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "访问可移动介质。" - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "文件管理器窗口" - -#: Thunar.xml:80(para) -msgid "" -"By default the file manager window consists of a shortcut pane on the left " -"side, the main area on the right and a pathbar above the main area." -msgstr "" -"默认情况下,文件管理器窗口左侧是快捷方式栏,右侧是主区域,主区域" -"上方为一路径栏。" - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "文件管理器窗口" - -#: Thunar.xml:97(para) -msgid "" -"The Shortcut Pane provides shortcuts to different " -"folders on your system. The first shortcut will lead to your Home " -"Folder, the folder you store all your personal data, and will " -"therefore have the name of the current user. The second shortcut will take " -"you to the trash bin, which stores deleted files that can be recovered " -"later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the " -"desktop. The fourth shortcut will take you to the root of your file system - " -"you may want to explore it a bit, even though it may be confusing to you if " -"you are new to Linux/Unix. Just click on the different folders and see what " -"is inside." -msgstr "" -"快捷方式栏 为您系统中的不同文件夹提供了快捷方式。 " -"第一个快捷方式是到存储您的所有个人资料的 主文件夹 " -"的链接,因此与当前用户的用户名相同。第二个快捷方式是" -"到存储所有可以恢复的已删除文件的回收站的链接。第三个" -"快捷方式是到包含桌面上显示的文件和文件夹的 桌面文件夹 " -"的链接。第四个快捷方式将带您进入系统的根目录,如果您是 " -"Linux/Unix 新手,您可能会感到迷惑,但即便如此,您也" -"可能想探索一番。只需点击不同的文件夹即可瞧瞧里面有什么。" - -#: Thunar.xml:108(para) -msgid "" -"Below the File System shortcut, the removable drives " -"and media will be displayed. In the screenshot above, you can see a " -"Floppy Drive shortcut. Click on these shortcuts to " -"access the data stored on the removable drives and media. See for further details." -msgstr "" -"在 文件系统 快捷方式下会显示可移动磁盘和可移动介质。" -"在上面的截图中,您可以看到 软盘驱动器 快捷方式。点击" -"这些快捷方式可以访问移动磁盘和介质上存储的数据。" -"详情请看 。" - -#: Thunar.xml:115(para) -msgid "" -"The remaining shortcuts are user defined. Add your own shortcuts by simply " -"dragging folders to the Shortcuts Pane. This will allow " -"you to access important folders instantly. To remove a previously added " -"shortcut, right-click on the shortcut and choose Remove " -"Shortcut. To rename a previously added shortcut, right-click " -"on the shortcut and choose Rename Shortcut. Note " -"that these actions affect only the shortcut, not the folder referenced by " -"the shortcuts." -msgstr "" -"剩下的快捷方式由用户设定。 只需将您的文件夹拖入 快捷方式栏 " -"即可添加您的快捷方式。这样您就可以立即访问您的重要文件夹了。" -"要删除先前添加的快捷方式,右击此快捷方式并选择 移除快捷方式 " -"即可。要重命名先前添加的快捷方式,右击此快捷方式并选择 " -"重命名快捷方式 即可。注意这些动作只影响快捷方式本身," -"不影响快捷方式指向的文件夹。" - -#: Thunar.xml:123(para) -msgid "" -"The main area will always display the contents of the " -"current folder. Double click on folders to enter them, and right-click on " -"files or folders to get a context-menu offering some choices of what to do " -"with it. Select multiple files by dragging a rectangle over them with the " -"mouse. Alternatively, select one file, hold down the Shift " -"key, and increase or decrease the selection using the arrow keys." -msgstr "" -"主区域 会一直显示当前文件夹的内容。双击文件夹进入,右击" -"文件或文件夹会显示一些如何处理它们的交互菜单选项。用鼠标在多个" -"文件上拉出个矩形框即可选中它们。或者,选中一个文件并按下 Shift " -"键,用方向键上下移动选择。" - -#: Thunar.xml:131(para) -msgid "" -"The pathbar will always show the path you took to get " -"to the folder you are currently at. You can click on any pathbar button to " -"change to the folder it represents. Right-click on a pathbar button to bring " -"up a context-menu with some options." -msgstr "" -"路径栏 会一直显示您当前所处的文件夹位置。您可以点击" -"路径栏上的各个按钮进入相应的文件夹。右击路径栏上的按钮会" -"有一个多选项的交互菜单出现。" - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "自定义外观" - -#: Thunar.xml:141(para) -msgid "" -"There are many ways to customize the appearance of the file manager windows. " -"In case you do not like the way the icons are displayed, choose " -"ViewView as Detailed List from the main menu to have the contents of the " -"current folder displayed as a list." -msgstr "" -"您可以使用多种方法自定义文件管理器窗口的外观。假如您不喜欢图标的" -"显示方式,可以从主菜单中选择 视图以详细" -"列表方式查看,将以列表形式显示当前文件夹的内容。" - -#: Thunar.xml:147(para) -msgid "" -"You can have the file manager windows display a location bar instead of the " -"pathbar by choosing ViewLocation " -"SelectorToolbar Style " -"from the main menu." -msgstr "" -"您在主菜单中选择 视图位置选择器工具栏样式 ,您可以把文件" -"管理器的窗口显示样式由显示位置栏变为显示路径栏。" - -#: Thunar.xml:153(para) -msgid "" -"In case you prefer a treeview in the left pane, choose " -"ViewSide PaneTree from the main menu." -msgstr "" -"如果您更倾向于在左侧边栏以树形列表显示,在主菜单中选择 视图" -"侧边栏树形" -"。" - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "详细列表视图下的显示栏" - -#: Thunar.xml:162(para) -msgid "" -"If you prefer to display the contents of the folder as a list, using the " -"Detailed List View, you can customize the columns " -"displayed in the list view. To customize the visible columns, choose " -"ViewConfigure Columns... from the main menu." -msgstr "" -"如果您要列表显示文件夹的内容,使用 详细列表视图 ," -"您可自定义列表显示的栏目。从主菜单中选择 视图" -"配置栏位... 可以自定义显示栏。" - -#: Thunar.xml:175(phrase) Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "显示栏" - -#: Thunar.xml:184(para) -msgid "" -"Select the columns you want to be displayed from the list of available " -"columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "" -"从可用栏目中选择您想要显示的栏目。点击 向上移动 或 " -"向下移动 改变栏目的顺序。点击 使用默认 可以取消您的更改。" - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "栏位大小" - -#: Thunar.xml:195(para) -msgid "" -"Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the " -"needed to ensure the text is fully visible." -msgstr "" -"如果您要列表视图自动扩展栏位大小以便确保文本可以完全显示," -"选择 按需要自动扩展栏位 选项。" - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "操作文件和文件夹" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "打开文件" - -#: Thunar.xml:214(para) -msgid "" -"When you open a file, the file manager performs the default action for that " -"file type. For example, opening a text file will display it in the default " -"text editor, while opening an image file will display the image in the " -"default image viewer." -msgstr "" -"当您打开一个文件,文件管理器会让该文件类型执行相应的默认动作。" -"例如,打开一个文本文件会在默认的文本编辑器中将其显示,而打开" -"一个图像文件则会在默认的图像查看器中显示该图片。" - -#: Thunar.xml:220(para) -msgid "" -"The file manager checks the extension of a file to determine the type of a " -"file. If the file has no known extension, the file manager examines the " -"contents of the file." -msgstr "" -"文件管理器检查该文件的扩展名以确定该文件的类型。如果文件没有一个" -"已知的扩展名,文件管理器将会检查文件的内容。" - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "执行默认动作" - -#: Thunar.xml:228(para) -msgid "" -"To execute the default for a file, double-click on the file. For example, " -"the default action for audio files is to play the it with the default music " -"playing application. In this case, you can double-click on the file to open " -"the file in the music player." -msgstr "" -"要让文件执行默认的动作,双击该文件即可。比如,音频文件的默认动作是" -"使用默认的音乐播放器进行播放。这样,双击该音频文件便使用默认的音乐" -"播放器打开并播放。" - -#: Thunar.xml:234(para) -msgid "" -"You can set Thunar preferences so that you click " -"once on a file to execute the default action. For information, see ." -msgstr "" -"您可以设置 Thunar 首选项以使用单击执行默认动作。" -"更多信息,参看 。" - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "执行非默认动作" - -#: Thunar.xml:243(para) -msgid "" -"To execute actions other than the default action for a file, select the file " -"that you want to perform an action on. Choose the desired action from the " -"Open With choices available in File " -"menu or an Open With submenu." -msgstr "" -"要执行一个非默认动作,选中该文件。从 文件 菜单中的 " -"打开方式 或子菜单中的 打开方式 选择您" -"要执行的动作。" - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "添加动作" - -#: Thunar.xml:253(para) -msgid "" -"To add actions associated with a file type, perform the following steps:" -msgstr "要对某种相关的文件类型添加动作,操作步骤如下:" - -#: Thunar.xml:259(para) -msgid "" -"In the main area, select a file of the type to which you want to add an " -"action." -msgstr "在主区域中选择您要添加动作到该类型的一个文件。" - -#: Thunar.xml:264(para) -msgid "" -"Choose FileOpen With Other " -"Application... from the main menu." -msgstr "" -"从主菜单中选择 文件" -"使用其它应用程序打开... 。" - -#: Thunar.xml:270(para) -msgid "" -"Either choose an application in the Open With dialog or " -"select Use a custom command and browse to the program " -"with which you wish to open this type." -msgstr "" -"在 打开方式 对话框中选择一个应用程序,或者选择 " -"使用自定义命令 然后浏览并选择需要的程序," -"这样您就可以使用该程序打开该类型文件。" - -#: Thunar.xml:277(para) -msgid "" -"The action you have chosen is now added to the list of actions for that " -"particular file type. If you enabled the Use as default for this " -"kind of file option or there was no prior action associated with " -"the type, the newly added action is the default." -msgstr "" -"您选择的动作将被添加到该类型文件的动作列表中。如果您选中 " -"作为打开此类型文件的默认程序 选项或者在此之前该类型" -"文件没有默认动作,新添加的动作将作为该类型文件的默认动作。" - -#: Thunar.xml:283(para) -msgid "" -"You may also add actions using the Open With button " -"under FileProperties...." -msgstr "" -"您还可以通过 文件属性... 菜单下的 打开方式 按钮添加动作。" - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "修改动作" - -#: Thunar.xml:292(para) -msgid "" -"To modify the actions associated with a file or file type, perform the " -"following steps:" -msgstr "要修改文件或文件类型使用的动作,操作步骤如下:" - -#: Thunar.xml:298(para) -msgid "" -"In the main area, select a file of the type for which you want to modify the " -"action." -msgstr "在主区域中,选中您要修改该类型动作的一个文件。" - -#: Thunar.xml:303(para) Thunar.xml:383(para) -msgid "" -"Choose FileProperties... from the main menu." -msgstr "" -"在主菜单中选择 文件属性...。" - -#: Thunar.xml:308(para) -msgid "" -"Select the new default action using the Open With " -"button or add a new action by choosing Open With Other " -"Application... from the drop down menu." -msgstr "" -"用 打开方式 按钮改变默认动作或在下拉菜单中选择 " -"使用其它程序打开... 添加新动作。" - -#: Thunar.xml:315(para) -msgid "" -"To remove a previously added action for a file type, bring up the " -"Open With dialog as described above, right-click the " -"action you want to remove and choose Remove Launcher." -msgstr "" -"按如上描述打开 打开方式 对话框,右击您想要移除的动作" -"并选择 移除启动器 即可移除先前为某一文件类型" -"添加的动作。" - -#: Thunar.xml:324(title) Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "文件属性" - -#: Thunar.xml:326(para) -msgid "" -"The file properties window shows more information about any file or folder " -"in the file manager. With this window, you can also do the following:" -msgstr "" -"文件属性窗口可以在文件管理器中显示任意文件或文件夹的更多信息。" -"使用此窗口,您可以做以下事情:" - -#: Thunar.xml:333(para) -msgid "" -"Change the icon for special files, such as application launchers and URL " -"links." -msgstr "改变特定文件的图标,比如地址链接中的应用程序启动器。" - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "为文件或文件夹添加或移除徽标。" - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "更改文件或文件夹的 UNIX 文件权限。" - -#: Thunar.xml:348(para) -msgid "" -"Choose which application is used to open a file and other files of the same " -"type." -msgstr "选择用来打开某个文件和与之类型相同文件的应用程序。" - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "要打开文件属性窗口,操作步骤如下:" - -#: Thunar.xml:372(para) -msgid "" -"Select the file or folder whose properties you want to examine or change. " -"You cannot select multiple items at once and display the properties that are " -"in common to all items currently." -msgstr "" -"选择您要检查或更改属性的文件或文件夹。您不能一次性选择多个项目并" -"显示当前所有项目共同的属性。" - -#: Thunar.xml:386(para) -msgid "" -"Right-click the selected item and choose Properties... from the context menu." -msgstr "右击选中的项目并在交互菜单中选择 属性..." - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "按 AltReturn" - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "进行以下某个:" - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "使用可移动介质" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "访问可移动介质" - -#: Thunar.xml:405(para) -msgid "" -"Thunar supports removable media if it was built with support for HAL, or " -"if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is " -"suggested to use HAL rather than the native support provided by Thunar." -msgstr "" -"如果 Thunar 编译支持 HAL ,则它支持可移动介质, 若您在使用 " -"FreeBSD ," -"也要注意在 FreeBSD 6.0 及以后版本中,建议使用 HAL 而不是 Thunar 提供的内置支持。" - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "挂载介质" - -#: Thunar.xml:414(para) -msgid "" -"To mount media is to make the file system of the media " -"available for access. When you mount media, the file system of the media is " -"attached as a subdirectory to your file system." -msgstr "" -"挂载 介质是为了访问介质中的文件系统。挂载介质时,介质中" -"的文件系统作为子目录被附加在文件系统下。" - -#: Thunar.xml:419(para) -msgid "" -"To access media, insert the media in the appropriate device, or connect the " -"new device to your computer (i.e. connect an USB stick to one of your USB " -"ports). An object that represents the media is added to the side pane of the " -"file manager. If xfdesktop is running and " -"configured to display File/launcher icons this object " -"will also be added to your desktop." -msgstr "" -"要访问介质,在对应设备中插入介质,或将设备与您的计算机连接(比如," -"将 USB 存储卡连到 USB 端口)。在文件管理器的侧边栏里会加入一代表" -"介质的对象。若 xfdesktop 正在运行并配置显示 " -"文件/启动器图标 ,此对象也会被添加到桌面上。" - -#: Thunar.xml:426(para) -msgid "" -"To actually mount the media, click on the object that represents the media. " -"For example, to mount a floppy diskette, click on the Floppy " -"Drive object in the side pane. The file manager will now add the " -"file system of the media to your file system hierarchy and display the " -"contents of the floppy diskette in the main area." -msgstr "" -"实际挂载介质,需点击代表介质的对象。比如,要挂载软盘,点击侧边栏" -"里的 软盘驱动器 。文件管理器便将介质文件系统添加到您的" -"文件系统目录下并在主区域显示软盘的内容。" - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "弹出介质" - -#: Thunar.xml:436(para) -msgid "" -"If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-" -"click on the media object in the side pane or on the desktop and choose " -"Eject Volume. The media is ejected from the drive after " -"a few seconds. If the drive for the media is not motorized (i.e. a floppy " -"drive or an USB stick), right-click on the media object and choose " -"Unmount Volume. After a short period of time, a " -"notification will appear to inform you that it is now safe to remove the " -"media or disconnect the drive from the computer." -msgstr "" -"若介质驱动器是机械的(比如光驱),右击侧边栏里或桌面上的介质对象" -"并选择 弹出卷 。几秒后驱动器便会弹出介质。若介质驱动器不是" -"机械的(比如软驱或 USB 存储卡),右击介质对象并选择 卸载卷 。一段时间后,会显示一通知提醒您可以安全地移除介质或" -"断开驱动器与计算机的连接。" - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "卸载通知" - -#: Thunar.xml:456(para) -msgid "" -"However this notification will only be displayed if support for " -"libnotify is enabled, and you have installed a " -"notification daemon. A notification daemon for Xfce is available from the " -"Xfce Goodies Project. If notification " -"support is not available, wait until the context menu disappears before you " -"remove the media or disconnect the drive." -msgstr "" -"然而此通知只有在通知守护进程已安装且支持 libnotify 启用时才会显示,Xfce 下的通知守护进程可以从 Xfce Goodies Project 处获得。" -"如果不支持通知,需一直等到通知菜单出现后才能移除介质或断开" -"驱动器与计算机的连接。" - -#: Thunar.xml:464(para) -msgid "" -"Be aware that you cannot eject or unmount media that is still in use by one " -"or more applications. Therefore if the file manager refuses to eject media, " -"make sure you close all applications that were accessing the media, and be " -"sure to also check command line applications running in " -"Terminal windows." -msgstr "" -"当心不能弹出或卸载仍在被一个或多个程序使用的介质。因此,如果文件管理器拒绝弹" -"出介质,一定要关闭所有正在访问介质的程序,也要检查 终端 窗口中运行的命令行程序。" - -#: Thunar.xml:470(para) -msgid "" -"Make sure to unmount removable media before ejecting. Do not eject a " -"diskette from the floppy drive before your unmount the diskette. Do not " -"remove an USB stick before you unmount the flash drive. If you do not " -"unmount the media first you might lose data or cause your system to crash." -msgstr "" -"一定要先卸载介质然后再弹出介质。不要在卸载软盘之前将软盘从软驱弹出。" -"不要在卸载闪存驱动器之前拔出 USB 存储卡。如果您不先卸载介质,可能" -"会丢失数据或引发系统崩溃。" - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "管理可移动驱动器和介质" - -#: Thunar.xml:481(para) -msgid "" -"Thunar is also able to automatically manage removable drives and media if " -"the thunar-volman package is installed on " -"your system. Note however that this feature requires HAL support." -msgstr "" -"如果 thunar-volman 文件包" -"已经安装在系统中,Thunar 还可以自动地管理可移动驱动器和介质。" -"注意此功能需要 HAL 支持。" - -#: Thunar.xml:487(para) -msgid "" -"Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the " -"Volume Management feature of Thunar. Therefore, open " -"the file manager preferences, go to the Advanced page " -"and check the Enable Volume Management button." -msgstr "" -"现在,如果 HAL 支持并且 thunar-volman 已经安装在系" -"统中,您可以选择启动 Thunar 的 卷管理 功能。即打开文件管" -"理器首选项,进入 高级 页面并勾选 启用卷管理 按钮。" - -#: Thunar.xml:494(para) -msgid "" -"The next step is to customize the management of removable drives and media " -"to your needs. Click on the Configure link in the " -"Volume Management section, right below the button. The " -"Removable Drives and Media configuration dialog will be " -"displayed." -msgstr "" -"下一步是根据您的喜好自定义可移动驱动器和介质的管理。点击 卷管理 " -"右下方的按钮 配置 链接,会显示 可移动驱动器和介质" -" 配置对话框。" - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "可移动驱动器和介质" - -#: Thunar.xml:512(para) -msgid "" -"If you have used the gnome-volume-manager " -"previously, you should feel right at home, because it was designed to look " -"and behave similar to gnome-volume-manager. The " -"preferences are divided by device categories to make it easy to locate the " -"option for you specific device." -msgstr "" -"如果以前用过 gnome-volume-manager ,您会感到非常熟悉," -"因为它的外观和行为设计与 gnome-volume-manager 相似。" -"为了更容易地找到特定设备的选项,首选项按设备种类分类。" - -#: Thunar.xml:519(para) -msgid "" -"The Storage page contains the most important options. " -"As the name suggests these options apply only to storage devices like " -"external harddisk drives, USB sticks and CD-ROMs. The Removable " -"Storage options are described in detail below." -msgstr "" -"存储器 页面包含最重要的选项。顾名思义,这些选项只针对" -"硬盘驱动器、 USB 存储卡、光驱等外部存储设备。 可移动存储器 选项的详细描述如下。" - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "热插拔挂载可移动驱动器" - -#: Thunar.xml:529(para) -msgid "" -"Enable this option to automatically mount file systems on removable drives " -"(i.e. external harddisk drives or USB sticks) when such drives are plugged " -"into the computer." -msgstr "" -"启用此选项,只要可移动驱动器(比如外部硬盘驱动器或 USB 存储卡)" -"连接到计算机上,便会自动挂载驱动器上的文件系统。" - -#: Thunar.xml:533(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable drives. For example, if you disable this option, certain kinds of " -"portable music players cannot be detected any more and so, even if you " -"enabled the Play music files when connected option on " -"the Multimedia page, the specified command will not be " -"run when you hot-plug your portable music player." -msgstr "" -"此选项必须启用以便其它与可移动驱动器相关的一些功能能够起作用。" -"比如,如果您禁用该选项,即使您启用 多媒体 页面下的 " -"连接后播放音乐文件 选项,一些便携式音乐播放器不会被探测到," -"一些特定的命令在您热插拔可移动音乐播放器后也不再能运行。" - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "插入时挂载可移动介质" - -#: Thunar.xml:546(para) -msgid "" -"Enable this option to automatically mount file systems on removable media (i." -"e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" -"启用该选项,只要您插入可移动介质(比如 CD-ROM 或 DVD)便会自动" -"挂载介质上的文件系统。" - -#: Thunar.xml:550(para) -msgid "" -"This option must be enabled for certain other features to work with " -"removable media. For example, if you disable this option, it is impossible " -"to detect whether the removable media has auto-run capabilities, and so the " -"Auto-run programs on new drives and media option has no " -"effect for removable media." -msgstr "" -"此选项必须启用以便其它与可移动介质相关的一些功能能够起作用。比如," -"如果您禁用了该选项,便不可能检测可移动介质是否具有自动运行功能," -"可移动介质的 自动运行驱动器和介质上的程序 选项也不起作用。" - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "插入时浏览可移动介质" - -#: Thunar.xml:562(para) -msgid "" -"Enable this option to automatically display the content of newly inserted " -"media in the file manager. Note however, that the contents will only be " -"displayed if no other action was possible or you choose to ignore the other " -"possible actions. For example, if you insert a CD-ROM with auto-run " -"capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow " -"or ignore the auto-run. If you choose to ignore the auto-run the contents " -"will be displayed in the file manager." -msgstr "" -"启用此选项后,插入介质时,文件管理器会自动显示新接入介质中的内容。" -"不过要注意的是,如果没有其它可能的动作或您忽视其它可能的动作,启用" -"该选项只会显示内容。比如,如果您接入光盘且已启用 自动运行驱动器" -"和介质上的程序 选项,会提示您是允许自动运行还是忽略自动运行。" -"如果您选择忽略自动运行,则文件管理器只会显示其内容。" - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "自动运行新驱动器和介质上的程序" - -#: Thunar.xml:576(para) -msgid "" -"Enable this option to make use of auto-run capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-run mechanism. To " -"enhance security, you will always be prompted to confirm the auto-run." -msgstr "" -"启用此选项后,可移动驱动器和介质的自动运行功能即可使用。自动运行" -"机制的详情参看有关 Desktop " -"Application Autostart Specification 中的描述。" -"为提高安全性,您必须每次都要确定是否自动运行。" - -#: Thunar.xml:582(para) -msgid "" -"If the Windows emulator WINE is installed on your system, the auto-run mechanism will " -"also try to run autorun.exe files using WINE." -msgstr "" -"如果您的系统中安装了 WINE Windows 模拟软件,自动运行机制也会试图使用 " -"WINE 运行 autorun.exe 文件。" - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "自动打开驱动器和介质上的文件" - -#: Thunar.xml:592(para) -msgid "" -"Enable this option to make of auto-open capabilities of certain removable " -"drives and media. See the Desktop Application " -"Autostart Specification for details about the auto-open mechanism. " -"To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" -"启用此选项后,可以自动打开可移动驱动器和介质。详情参看 " -"Desktop Application Autostart " -"Specification 的自动打开机制的相关描述。为了提高安全性," -"您必须每次都要确定是否自动打开。" - -#: Thunar.xml:602(para) -msgid "" -"The remaining options allow you to specify a command to run when a certain " -"kind of media is inserted into a drive or a certain kind of external device " -"is connected. The command can use three special variables, that will be " -"substituted when the command is run:" -msgstr "" -"其它选项用来指定某一特定类型的介质或外部设备插入后所要运行的命令。" -"此命令可以包含三个在命令运行时要被替换的特殊变量:" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "%d" - -#: Thunar.xml:612(para) -msgid "" -"Each appearance of %d in the command will be substituted " -"with the device file path of the newly added device. For example, if you " -"have plugged in an USB stick, the device file path will be /dev/" -"da0s1 or /dev/sda1." -msgstr "" -"新添加设备的设备文件路径会替换命令中的 %d 。比如,如果您接" -"入了 USB 存储卡,设备文件路径应该是 /dev/da0s1 或 " -"/dev/sda1。" - -#: Thunar.xml:617(para) -msgid "" -"If no device file is associated with the device or the device file could not " -"be found for some reason, the variable %d will be " -"substituted with the empty string." -msgstr "" -"如果设备文件没有相关联的设备或设备文件由于某些原因找不到,则" -"用空字符串替换 %d 。" - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "%h" - -#: Thunar.xml:627(para) -msgid "" -"Each appearance of %h in the command will be substituted " -"with the HAL UDI of the newly added device." -msgstr "新添加设备的 HAL UDI 会替换命令中的 %h 。" - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "%m" - -#: Thunar.xml:637(para) -msgid "" -"Each appearance of %m in the command will be substituted " -"with the mount point where the newly added device was mounted. If the device " -"cannot be mounted (for example printers or keyboards) or if the automatic " -"mounting was disabled, %m will be substituted with the " -"empty string." -msgstr "" -"新添加设备的挂载点会替换命令中的 %m 。如果设备无法挂载(比" -"如打印机或键盘)或自动挂载被禁用,则用空字符串替换 %m 。" - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "卷管理的故障查找与处理" - -#: Thunar.xml:650(para) -msgid "" -"Useful tips to trouble shoot the volume manager in case it does not work as " -"expected." -msgstr "卷管理未能如愿工作时的故障查找与处理小窍门" - -#: Thunar.xml:656(para) -msgid "" -"Make sure Thunar is running as daemon. The volume " -"manager depends on this, as it is not a daemon by itself. By default, Xfce " -"automatically spawns Thunar as daemon on startup. " -"If it got killed for some reason, open the Run program " -"(using the keyboard shortcut AltF2 or right-click on the desktop and choose Run " -"Program... from the desktop menu), enter Thunar --" -"daemon and click Run." -msgstr "" -"确保 Thunar 守护进程正在运行。卷管理本身不是个守护" -"进程,所以卷管理依赖 Thunar 守护进程。默认情况下," -"Xfce 在启动时会自动将 Thunar 添加为守护进程。" -"如果由于某些原因此进程终止了,打开 运行程序(用键盘快捷键 " -"AltF2 或右击桌面并" -"在桌面菜单中选择 运行程序...),进入 Thunar --" -"daemon 并点击 运行 。" - -#: Thunar.xml:668(para) -msgid "" -"Try running thunar-volman from a " -"Terminal window after hot-plugging the drive or " -"inserting the media. First, you need to figure out the HAL UDI of the new " -"device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-" -"added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" -"热插拔或接入介质后,要从 terminal 窗口运行 " -"thunar-volman 。首先,需使用 lshalhal-device 找到新设备的 HAL UDI 。" -"只要知道 UDI ,即可在 Terminal 窗口里运行 " -"thunar-volman --device-added <udi-of-your-" -"device> ,并查看输出的错误或警告信息。" - -#: Thunar.xml:678(para) -msgid "" -"If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing " -"list for help." -msgstr "" -"如果仍然不行,到 Xfce " -"Forumthunar-dev mailing list " -"寻求帮助。" - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "文件管理首选项" - -#: Thunar.xml:691(para) -msgid "" -"Use the File Manager Preferences dialog to set your " -"Thunar file manager preferences. To open the " -"preferences dialog, choose EditPreferences... from the menu " -"bar, or click on the File Manager button in the Xfce " -"Settings Manager." -msgstr "" -"使用 文件管理器首选项 对话框设置 Thunar 文件管理首选项。在菜单栏上选择 编辑" -"首选项... ,或点击 Xfce 设置" -"管理器里的 文件管理器 按钮可以打开首选项对话框。" - -#: Thunar.xml:697(para) -msgid "" -"The File Manager Preferences dialog is divided into " -"four pages with different options, each described in a separate section " -"below. Basically you can set preferences in the following categories:" -msgstr "" -"文件管理器首选项 对话框分为四个页面,各有不同选项," -"每个都单独分节叙述如下。基本上您可以按如下分类去设置首选项:" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "视图默认设置。" - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "侧边栏默认设置。" - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "文件管理器窗口行为。" - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "文件管理器高级功能。" - -#: Thunar.xml:709(para) -msgid "" -"Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but " -"are not included in the preferences in order to keep the preferences dialog " -"simple. The README.thunarrc " -"file that is included with the Thunar distribution describes all available " -"options in detail." -msgstr "" -"Thunar 还支持控制文件管理器几个高级功能的一大堆所谓的 隐藏选项 ,但为了使首选项对话框看上去简单而没有包含在首选项里。与 Thunar " -"一道发行的 README.thunarrc " -"文件详细地描述了所有可用选项。" - -#: Thunar.xml:718(title) Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "视图首选项" - -#: Thunar.xml:720(para) -msgid "" -"You can specify a default view, select sort options and display options. You " -"can also specify whether thumbnails should be displayed for file types that " -"support this." -msgstr "" -"您可以指定默认的视图,选择排列选项和显示选项。您也可以指定支持" -"缩略图功能的文件在显示时是否启用缩略图。" - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "新文件夹视图" - -#: Thunar.xml:742(para) -msgid "" -"Select the default view for folders. When you open a new window, the is " -"displayed in the view that you select. This can be either the icon view, the " -"compact list view or the detailed list view. You can also select " -"Last Active View here to use the view you used for the " -"last active window." -msgstr "" -"选择文件夹的默认视图。当您打开新窗口时,会以您选择的视图显示新" -"打开的窗口。可以是图标视图,紧凑列表视图或详细列表视图。在此可以" -"选择 上次使用的视图 使用您上次使用的视图。" - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "在文件前排列文件夹" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "选择此选项,将在文件前排列文件夹。" - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "显示缩略图" - -#: Thunar.xml:763(para) -msgid "" -"Select this option to show thumbnails of image files and other supported " -"files. The file manager stores the thumbnail files for each folder in the " -"hidden .thumbnails directory in the " -"user's Home Folder." -msgstr "" -"选择此选项,将显示图像和其它支持文件的缩略图。文件管理器将文件夹的" -"缩略图文件存储在用户文件夹下的隐藏目录 " -".thumbnails 下。" - -#: Thunar.xml:768(para) -msgid "" -"See if you want to extend the basic " -"thumbnail functionality provided by Thunar with " -"support for additional file types." -msgstr "" -"如果您要扩展 Thunar 提供的基本缩略图功能以便" -"支持更多的文件类型,参看 。" - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "文本位于图标旁" - -#: Thunar.xml:779(para) -msgid "" -"Select this options to place the icon captions for items in the icon view " -"beside the icon rather than under the icon." -msgstr "" -"选择此选项,在图标视图下,将在图标旁而不是图标下显示项目的说明" -"文字。" - -#: Thunar.xml:790(title) Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "侧边栏首选项" - -#: Thunar.xml:792(para) -msgid "" -"You can select display options for the shortcuts pane and the tree pane." -msgstr "您可以为快捷方式栏和树形栏选择此显示选项。" - -#: Thunar.xml:808(para) -msgid "" -"The side pane can either display a list of shortcuts for folders in your " -"file system, which is the default, or a tree view of your file system. This " -"page allows you to select the size of the icons for the shortcuts and the " -"tree pane. You can also specify whether emblems should be displayed." -msgstr "" -"侧边栏可以用默认的列表形式显示文件系统中的文件夹的快捷方式,也" -"可以用树形视图方式显示文件系统。此页让您为快捷方式和树行栏选择" -"图标的大小。您也可以指定是否显示徽标。" - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "图标大小" - -#: Thunar.xml:819(para) -msgid "" -"The size of the icons displayed in the side, ranging from Very " -"Small (around 16x16 pixels) to Very Large " -"(around 128x128 pixels)." -msgstr "" -"侧边栏中显示的图标大小范围是 非常小 (大约 16x16 像素)" -"至 非常大 (大约 128x128 像素)。" - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "显示图标徽标" - -#: Thunar.xml:829(para) -msgid "" -"Select this option to display emblems for folders in the side pane. You can " -"assign emblems to folders in the Properties dialog. " -"Select a folder in the main area and choose FileProperties... from the main " -"menu, or right-click the folder and select " -"Properties... from the " -"context menu." -msgstr "" -"选择此选项用来在侧边栏中显示文件夹的徽标。选中" -"主区域中的文件夹,从主菜单中选择 文件" -"属性... ,或右击文件夹从交互菜单中选择 " -"属性... ,您就可以在为每个文件夹指定徽标。" - -#: Thunar.xml:843(title) Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "行为首选项" - -#: Thunar.xml:845(para) -msgid "" -"You can select the preferred behavior to interact with the file manager." -msgstr "您可以选择与文件管理器互动的首选行为。" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "单击激活项目" - -#: Thunar.xml:865(para) -msgid "" -"Select this option to perform the default action for an item when you click " -"on the item. When this option is selected, and you point to an item, the " -"title of the item is underlined and the item will be selected automatically " -"after a short delay." -msgstr "" -"选择此选项后,当您点击项目时,执行默认动作。如果此选项被选中," -"在鼠标指向项目后,该项目标题会被加上下划线,短暂延迟后该项目" -"被自动选中。" - -#: Thunar.xml:871(para) -msgid "" -"This delay can be configured below the option. You can also disable the " -"automatic selection of items by moving the selector to the left-most " -"position." -msgstr "" -"此自动延迟时间可以在下面的选项中配置。您也可以将选择器拖到最左边" -"禁用自动选中。" - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "双击激活项目" - -#: Thunar.xml:882(para) -msgid "" -"Select this option to perform the default action for an item when you double " -"click on the item, and select the item with a single click." -msgstr "选择此选项后,在双击项目时执行默认动作,单击时选中该项目。" - -#: Thunar.xml:893(title) Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "高级首选项" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "您可以控制文件管理器的高级功能。" - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "文件夹权限" - -#: Thunar.xml:915(para) -msgid "" -"Choose the action that should be performed when you change the permissions " -"of a folder in the Properties dialog. You can choose to " -"let Thunar ask everytime when you change folder " -"permissions, tell it to default to applying the new permissions to the " -"folder only or to apply them recursively to the folder contents as well." -msgstr "" -"在 属性 对话框内选择当您更改文件夹权限时要执行的" -"动作。在您更改文件夹权限时,您可以选择让 Thunar 每次都询问" -"是使用默认的将更改仅应用到所选文件夹,还是将更改逐级应用到" -"子文件夹及其内容。" - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "卷管理" - -#: Thunar.xml:927(para) -msgid "" -"If Thunar was installed with support for HAL and " -"the thunar-volman package is also installed, you " -"can enable the integrated volume manager. See for details about this feature." -msgstr "" -"如果 thunar-volman 已安装,Thunar" -" 也已安装且支持 HAL ,您就可以启用" -"整合的卷管理。此功能的详情请参看 " -" 。" - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "自定义 Thunar" - -#: Thunar.xml:942(para) -msgid "" -"This chapter describes how to customize certain parts of the file manager to " -"your own needs." -msgstr "这一章介绍如何按您自己的需求自定义文件管理器中的特定部分。" - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "“发送至” 菜单" - -#: Thunar.xml:950(para) -msgid "" -"Thunar includes a Send To menu, which provides possible " -"targets where files and folders can be sent to. To access the Send " -"To menu, choose FileSend To from the main menu, " -"or right-click on a file or folder and choose Send " -"To." -msgstr "" -"Thunar 有一将文件和文件夹发送到某个地方的 发送至 菜单。" -"从主菜单中选择 文件发送至 ,或右击文件或文件夹并选择 " -"发送至 即可访问 " -"发送至 菜单。" - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "“发送至” 菜单" - -#: Thunar.xml:969(para) -msgid "" -"By default, the Send To menu includes an entry named " -"Desktop (Create Link) for all files and folders, which " -"simply creates a link on the desktop for each selected file. In addition, if " -"the Shortcuts Pane is active, the menu also includes an " -"entry called Side Pane (Create Shortcut) for folders, " -"which allows users to add new shortcuts to the side pane. Following these " -"entries, Thunar lists the removable drives " -"currently plugged into the computer. In the screenshot above, the " -"Floppy Drive represents a possible target where files " -"can be sent to. Note that the device is mounted automatically once selected " -"from the Send To menu, so you do not need to manually " -"mount it." -msgstr "" -"默认情况下, 发送至 菜单中有一个 桌面(创建链接)" -" 条目,此条目仅为桌面上选中的文件创建链接。" -"而且,如果 快捷方式栏 已运行,菜单中也有一个 侧边栏" -"(创建快捷方式) 条目,此条目可以在侧边栏中" -"为每个文件夹添加快捷方式。顺着这些条目, Thunar 列出" -"当前接入计算机的可移动驱动器。在上面的截图中, 软盘驱动器 " -"表示文件可被发送至的可能目的地。注意在您从菜单中选择 " -"发送至 时,设备会自动挂载,所以您无需手动挂载它。" - -#: Thunar.xml:979(para) -msgid "" -"In addition Thunar also ships the " -"thunar-sendto-email plugin, which adds the entry " -"Mail Recipient to the menu, that opens the mail " -"composer with the selected files attach to the new email. If the selection " -"contains atleast one folder, the selected items are added to a ZIP archive " -"before attaching them to the email. Otherwise, if the selection contains " -"multiple files, or a single file, which is larger than 200Kib, the user will " -"be prompted whether to pack the files into a ZIP archive, and send the ZIP " -"archive." -msgstr "" -"而且, Thunar 还有 thunar-sendto-" -"email 插件,此插件在菜单中添加 邮件接收人 " -"条目,点击此条目打开邮件撰写且把选中文件当作邮件附件。" -"如果选中的项目包含文件夹,那么此项目先压缩为 ZIP 档案" -"然后再添加为邮件附件。如果选择的项目是混合文件,或超过 " -"200 K 的单个文件,会先询问用户是否打包并存入 ZIP 档案。" - -#: Thunar.xml:987(para) -msgid "" -"Like most other features of Thunar, the " -"Send to menu can be easily extended by users and " -"application developers with new targets, using standard desktop entry files. These files must be installed into one of " -"the $XDG_DATA_DIRS/Thunar/sendto/ " -"folders (see the XDG Base Directory Specification for " -"details about the $XDG_DATA_DIRS variable)." -msgstr "" -"与 Thunar 的大部分其它功能一样,用户和程序开发者可" -"以使用标准的 desktop entry files 中" -"所述的方法很容易地在 发送至 菜单中添加对象以扩展它。这些文件" -"必须安装在诸如 $XDG_DATA_DIRS/Thunar/sendto/" -" 的文件夹中(有关 $XDG_DATA_DIRS 变量的" -"详情参看 XDG Base Directory Specification)。" - -#: Thunar.xml:996(para) -msgid "" -"The MimeType of the target .desktop " -"specifies the types of files for which this action should be available in " -"the Send To menu. For example, say you want to add " -"entry for a Flickr " -"uploader tool, then this entry should only show up if the selection contains " -"JPEG files (other file formats are not supported by Flickr) and so you " -"should add a line MimeType=image/jpeg;. If you do not " -"specify any MimeType your entry will show up for all file " -"types." -msgstr "" -"对象 .desktopMimeType 指定应该在 " -"发送至 菜单里出现的动作的文件类型。" -"比如说您要为 Flickr " -"上传工具添加条目,此条目只有在您选中的对象中包含 " -"JPEG 文件(Flickr 不支持其它格式)时出现,所以" -"需要添加行 MimeType=image/jpeg; 。如果没有指定任何 " -"MimeType ,条目会显示所有文件类型。" - -#: Thunar.xml:1004(para) -msgid "" -"A complete example using the postr application is " -"shown below:" -msgstr "使用 postr 应用程序的完整示例如下:" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" - -#: Thunar.xml:1021(para) -msgid "" -"If you install this file to ~/.local/share/" -"Thunar/sendto/ (create the folder if it does not exist yet), the " -"Send To menu for JPEG files will show the new entry " -"Flickr, which can be used to upload JPEG images to " -"Flickr." -msgstr "" -"如果您将此文件安装在 ~/.local/share/Thunar/sendto/" -" 下(如果没有此文件夹则先创建),JPEG 文件的 发送至 " -"菜单里会显示新条目 Flickr ,可以用来向 Flickr 上传 " -"JPEG 图片。" - -#: Thunar.xml:1027(para) -msgid "" -"The Thunar Project Wiki contains additional examples of " -"useful targets for the Send To menu. Feel free to " -"extend the Wiki page with new examples." -msgstr "" -"Thunar Project Wiki 里有 发送至 " -"菜单更多有用对象的示例。您可以向此 Wiki 页面添加新示例" -"而用不着客气。" - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "缩略图生成器" - -#: Thunar.xml:1038(para) -msgid "" -"Thunar uses small utilities to create thumbnails of certain file types and " -"displays the thumbnails as preview of the file content. These small tools " -"are called thumbnailers. Thunar ships with thumbnailers for image and font " -"files, and makes use of the installed thumbnailers from GNOME automatically " -"if it was installed with support for gconf. Users may " -"however dynamically extend this basic functionality with thumbnailers for " -"additional file types." -msgstr "" -"Thunar 使用小工具给特定类型的文件创建缩略图以便预览文件内容。" -"这些小工具称为缩略图生成器。Thunar 自带图片和字体文件缩略图" -"生成器,如果 Thunar 安装时支持 gconf ,还可以自动使用 " -"GNOME 安装的缩略图生成器。对于其它类型的文件,此基本功能还" -"可以被用户动态地扩展。" - -#: Thunar.xml:1045(para) -msgid "" -"If you plan to write a custom thumbnailers, you need to start with a program " -"that accepts atleast two command line parameters, the input file, which is " -"of the file type you plan to support and the output file, which is a PNG " -"file that complies with the format specified by the Thumbnail " -"Management Standard. Additionally your program may also accept the " -"desired size of the thumbnail, which is optional but highly recommended. If " -"you write the output file at an arbitrary image size, Thunar will afterwards " -"scale it to the desired size, which might produce a less optimal result than " -"generating the thumbnail with the requested dimensions." -msgstr "" -"如果您要编写自定义的缩略图生成器,您需要启动一个至少包含两个命令行" -"参数的程序,所要支持的文件类型称为输入文件,此自定义生成器生成的" -"缩略图 PNG 文件称为输出文件,它的文件格式由 Thumbnail " -"Management Standard 指定。您的程序还要包含所需缩略图大小的参数," -"此参数虽然可以没有,但我们强烈推荐添加。如果您编写的输出文件即图片" -"的大小是任意的, Thunar 后来会以合适的大小缩放,但相比事先在生成" -"缩略图文件时预定义好大小,缩放后的效果可能稍差。" - -#: Thunar.xml:1054(para) -msgid "" -"Once your utility to generate the thumbnails is done, you will need to " -"register your thumbnailer, so Thunar is able to locate and use it. Therefore " -"all you need to do is to install a description file for the thumbnailer (a " -".desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want " -"to register the thumbnailer for your user account only, you can install the " -"file into the folder ~/.local/share/" -"thumbnailers/. The .desktop for thumbnailers " -"has the following format." -msgstr "" -"一旦生成缩略图的工具编写好了,您需要注册此缩略图生成器以便 " -"Thunar 能够找到并使用它。因此您需要在 $XDG_DATA_DIRS/" -"thumbnailers/ 文件夹下为缩略图生成器(一个 .desktop 文件)安装一个说明文件。比如,如果仅为您的用户注册" -"缩略图生成器,您可以将说明文件安装在 ~/.local/share/" -"thumbnailers/ 。缩略图生成器的说明文件 .desktop " -"有如下格式。" - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "缩略图生成器说明文件格式" - -#: Thunar.xml:1065(para) -msgid "" -"Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new " -"field codes. Basically, a thumbnailer description file has the following " -"format." -msgstr "" -"缩略图生成器描述文件使用 Desktop Entry Format ," -"此标准采用特殊的 X-Thumbnailer Type " -"和新域代码的特殊的域 X-Thumbnailer-Exec 。基本上," -"缩略图说明文件具有以下格式。" - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" - -#: Thunar.xml:1080(para) -msgid "" -"The Version and Encoding are mandated " -"by the Desktop Entry Specification, just use the values shown in the example " -"above. The Type field must have the special value " -"X-Thumbnailer, otherwise your thumbnailer will not be " -"recognized. The Name value describes your thumbnailer." -msgstr "" -"VersionEncoding 由桌面条目规格托" -"管,仅需使用以上所示的值即可。 Type 域必须有特殊的值 " -"X-Thumbnailer ,否则您的缩略图生成器不会通过认证。 " -"Name 值描述了您的缩略图生成器。" - -#: Thunar.xml:1086(para) -msgid "" -"The X-Thumbnailer-Exec field contains the command to run " -"your thumbnailer, and supports certain field codes that will be substituted " -"when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" -"X-Thumbnailer-Exec 域包含运行缩略图生成器的命令,且支持" -"缩略图生成器在运行时需要被替换的特定域代码。认证域代码如下:" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "%i" - -#: Thunar.xml:1095(para) -msgid "" -"The local path to the input file for which to create a thumbnail. May be " -"either a path relative to the directory from which the thumbnailer was " -"invoked or an absolute path." -msgstr "" -"创建缩略图的输入文件的本地路径。可以是相对于需调用的缩略图生成器" -"所在路径的相对路径,也可以是绝对路径。" - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "%o" - -#: Thunar.xml:1103(para) -msgid "" -"The local path to the output file where to store the generated thumbnail. " -"The output file must be written as valid PNG file according to the thumbnail " -"standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" -"存储已生成缩略图的输出文件的本地路径。输出文件必须是有效的 PNG " -"文件且必须按以上所述的缩略图标准(参照上述)编写。此路径不能以 " -".png 结尾,因为 .png 影响您调用某些特定的第三方工具。" - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "%s" - -#: Thunar.xml:1112(para) -msgid "" -"The desired size of the generated thumbnail in pixels. This parameter is " -"optional." -msgstr "生成的缩略图所需的像素大小。此参数可选。" - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "%u" - -#: Thunar.xml:1119(para) -msgid "" -"Similar to %i, but substituted with the URI of the file, " -"rather than the path. This was added for compatibility with GNOME." -msgstr "" -"与 %i 相似,但会用文件的 URI 替换而不是路径。这样做是" -"为了与 GNOME 兼容。" - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "%%" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "将会用单独的 % 替换。" - -#: Thunar.xml:1132(para) -msgid "" -"You need to include atleast %o and %i " -"or %u, otherwise your thumbnailer will be useless." -msgstr "" -"至少需要两个, %o%i%u" -" ,否则您的缩略图生成器无效。" - -#: Thunar.xml:1137(para) -msgid "" -"The MimeType lists the MIME types - separated by " -"semicolon - for which your thumbnailer is able to create previews." -msgstr "" -"MimeType 列出 MIME 类型-用分号隔开-以便您的缩略图生成器" -"能够创建预览。" - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "EPS 缩略图生成器示例" - -#: Thunar.xml:1145(para) -msgid "" -"This example demonstrates how to write and install a new thumbnailer for " -".eps files, which uses the convert " -"utility that ships as part of ImageMagick. First, we start with a simple " -"script that invokes convert to generate a thumbnail at " -"the requested size." -msgstr "" -"convert 是 ImageMagick 的一个工具,下面的示例" -"说明了如何为 .eps 文件编写和安装新的缩略图生成器。" -"首先,我们先写一个简单的调用 convert 命令的脚本," -"然后按所需大小生成一个缩略图。" - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" - -#: Thunar.xml:1167(para) -msgid "" -"Save this script above to a file eps-thumbnailer, make " -"sure the file is executable and install it to /" -"usr/local/bin." -msgstr "" -"将以上脚本存入一个文件 eps-thumbnailer 中,此文件必须是" -"可执行文件且安装至 /usr/local/bin 。" - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml:1176(para) -msgid "" -"Next we need to create the thumbnail description file eps-" -"thumbnailer.desktop, which looks like this:" -msgstr "" -"下一步我们要创建缩略图描述文件 eps-thumbnailer.desktop," -"内容大致如下:" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" - -#: Thunar.xml:1190(para) -msgid "" -"This file must be installed to /usr/local/share/" -"thumbnailers (create the folder if it does not exists)." -msgstr "" -"此文件必须安装至 /usr/local/share/thumbnailers (如果该文件夹不存在则先创建)。" - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" - -#: Thunar.xml:1199(para) -msgid "" -"The eps-thumbnailer.desktop file uses the special key " -"TryExec, which, if specified, names a command that must " -"be present on the system for the thumbnailer to be useful. In this case, our " -"script is useless if the convert utility is not present." -msgstr "" -"eps-thumbnailer.desktop 文件使用特殊的 " -"TryExec 关键字,此关键字指定后,给系统中必须" -"存在的缩略图生成器所需命令命名是有用的。这样,如果" -"没有 convert 工具,我们的脚本是无效的。" - -#: Thunar.xml:1205(para) -msgid "" -"The last step is to regenerate the thumbnailer cache, so Thunar will pick up " -"our thumbnailer. The thumbnailer cache is located at " -"$XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by " -"your or your system administrator, the $XDG_CACHE_HOME " -"points to the folder ~/.cache/). The " -"thumbnailers cache is regenerated periodically by Thunar, but you can force " -"to regenerate it by invoking the thunar-vfs-update-thumbnailers-" -"cache-1 utility, that ships as part of Thunar. This utility is " -"usually installed in the libexec " -"subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in " -"/usr, invoke the utility as follows:" -msgstr "" -"最后一步是重新生成缩略图生成器缓存文件,这样 Thunar 就可以找到" -"我们的缩略图生成器了。缩略图缓存文件位于 $XDG_CACHE_HOME/" -"Thunar/thumbnailers.cache (除非您或您的系统管理员改写了," -"$XDG_CACHE_HOME 指向文件夹 ~/.cache/" -")。 Thunar 定期重新生成缩略图生成器缓存文件,但您可以" -"调用 thunar-vfs-update-thumbnailers-cache-1 工具强制" -"重新生成,此工具是 Thunar 的一项功能。此工具通常安装在您的" -"安装预配置文件(在 Debian/Ubuntu 中为 sbin" -")子文件夹下。所以比如说,假如 Thunar 安装在 " -"/usr ,如下调用此工具:" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" - -#: Thunar.xml:1218(para) -msgid "" -"But make sure you run the program from your user account, not the superuser " -"account, since the thumbnailers cache is stored in your home folder, rather " -"than a system wide location." -msgstr "" -"但是,由于缩略图生成器缓存文件存储在您的主文件夹而不是系统级" -"文件夹下,所以一定要使用您的用户帐号而不是系统管理员帐号运行" -"此程序。" - -#: Thunar.xml:1223(para) -msgid "" -"Now, if Thunar is compiled with support for file alteration monitoring " -"(using the FAM or Gamin services), it will automatically pick up the new " -"thumbnailers cache within a few seconds and afterwards be able to generate " -"thumbnails using your custom thumbnailers. Otherwise you might need to " -"completely restart Thunar to apply the changes, using" -msgstr "" -"现在,如果 Thunar 编译支持文件变更监视(使用 FAM 或 Gamin 服务)," -"它会先在几秒内自动找到此新的缩略图生成器缓存,然后用您自定义的缩略图" -"生成器生成缩略图。否则您需要完全重启 Thunar 以便应用更改,使用" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml:1231(para) -msgid "" -"to terminate any running instance, and afterwards restart it from your " -"launcher." -msgstr "终止所有正在运行的实例,然后从您的启动器重启它。" - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "清除缩略图" - -#: Thunar.xml:1239(para) -msgid "" -"The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management " -"Standard. While testing a new thumbnailer, it might help to clean up " -"the thumbnail cache using" -msgstr "" -"遵从 Thumbnail Management Standard ,生成的缩略图存储在 ~/.thumbnails/ 。若要测试新写的缩略图生成器," -"清除缩略图缓存或许有帮助,使用" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml:1247(para) -msgid "" -"which will also give you some free space in your home folder. Since all the " -"information stored within this folder was automatically generated from files " -"in your file system, you will not loose any sensitive data." -msgstr "" -"这也为您的主文件夹释放一些空间。既然存储在此文件夹中的所有信息" -"都是系统自动生成的文件,所以您不会因此丢失任何敏感信息。" - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "高级内容" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "批量重命名文件" - -#: Thunar.xml:1263(para) -msgid "" -"To bulk rename files means to rename multiple files at " -"once using some criterion, that applies to atleast one of the files. " -"Thunar includes a bulk renamer, which can be run " -"separately using the command Thunar -B or from within " -"Thunar by selecting two or more files in the main " -"area and pressing F2 or choosing " -"EditRename... from the main menu." -msgstr "" -"批量重命名 文件是指按某些标准一次性重命名多个文件," -"此应用至少需要两个文件。 Thunar 有一个批量重命名工具," -"可以单独使用 Thunar -B 命令运行,可以在主区域内选中" -"两个或两个以上文件并按 F2 运行,也可以在" -"主菜单中选择 编辑重命名..." -" 运行。" - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "批量重命名文件" - -#: Thunar.xml:1283(para) -msgid "" -"The Bulk Renamers can be applied to the name of the " -"files, the suffix of the files or both to the name and the suffix of the " -"files. Thunar currently supports the following " -"Bulk Renamers:" -msgstr "" -"批量重命名工具 可以重命名文件名或文件后缀,也可以" -"同时重命名文件名和文件后缀。 Thunar 目前" -"支持以下 批量重命名工具 :" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "移除字符。" - -#: Thunar.xml:1291(para) -msgid "Numbering files." -msgstr "文件计数。" - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "插入日期或时间。" - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "插入或改写字符。" - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "搜索和替换字符。" - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "转换成大写、小写或混合" - -#: Thunar.xml:1298(para) -msgid "" -"Additional Bulk Renamers may be installed as plugins " -"for Thunar. Check the Thunar Plugins website for " -"currently available extensions. The Thunar Project Wiki " -"contains further details about this feature. Feel free to add more " -"information to the Wiki." -msgstr "" -"其它 批量重命名工具 可以作为 Thunar 的插件安装。在 Thunar Plugins" -" 网址可以查找当前可用的扩展。 The " -"Thunar Project Wiki 里有有关此功能的更多详述。" -"您可在此 Wiki 中添加更多信息而用不着客气。" - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr "UNIX 文件系统" - -#: Thunar.xml:1310(para) -msgid "" -"While the Thunar file manager does a good job at abstracting the details of " -"the underlying file system, so the user does not need to care about them, it " -"is sometimes useful to understand the basic concepts to get the whole " -"picture. This section tries to give a brief introduction to the concepts of " -"the UNIX file system, which is used today by all incarnations of UNIX, " -"including Linux." -msgstr "" -"虽然 Thunar 文件管理器在概括描述底层文件系统详细信息上做得很好," -"因而用户用不着关注它们,但对系统有个基本概念从而获得全局概览有时" -"是有用的。 UNIX 文件系统被包括 Linux 在内的当今所有的 UNIX " -"变体使用,本节试着对 UNIX 文件系统的概念做个简短的介绍。" - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "文件夹和路径" - -#: Thunar.xml:1320(para) -msgid "" -"In a UNIX file system all folders are arranged in a simple inverted tree " -"structure descending and branching down from a single top level folder, " -"which is called the root directory (the term " -"directory is often used instead of folder) and displayed as File System in Thunar. This " -"means that you can get from any folder to any other by going up the tree " -"until you reach a common point, then down the tree through the appropriate " -"subfolders until you reach your target." -msgstr "" -"在 UNIX 文件系统中,所有文件夹都按照一个倒立的树状结构安排," -"此树状结构的最上方是 根目录(常用术语 目录 " -"而不是 文件夹),根目录在 Thunar 中显示为 文件系统 , UNIX 文件系统沿着根目录自上而下扩展和分叉。这意味着如果要" -"从一个文件夹转到任何其它文件夹,您只需先沿合适的父文件夹自下而上" -"找到当前文件夹与目标文件夹的交叉文件夹,然后再自上而下沿着合适的" -"子文件夹找到您要转到的文件夹。" - -#: Thunar.xml:1329(para) -msgid "" -"The position of any file or folder in the tree can be described by its " -"path. The path is the list of folders you would have to " -"descend through to get to the target folder or file, starting from the top " -"level folder. For example /home/luke " -"is the subfolder luke of the " -"subfolder home of the top level " -"folder, and /home/luke/myfile.txt is the file " -"myfile.txt in that subfolder. The leading / in these paths represents the top level " -"folder." -msgstr "" -"目录树中文件或文件夹的位置由 路径 描述。如果您要到达某个" -"文件夹或文件,您需要自上而下经过很多文件夹,路径就是这些文件夹的" -"清单。比如 /home/luke 是 " -"home 的子文件夹, " -"home 是最高文件夹的子文件夹。" -"而 /home/luke/myfile.txt 则是 " -"/home/luke 文件夹下的文件。" -"这些路径中开头的 / 表示最高文件夹。" - -#: Thunar.xml:1338(para) -msgid "" -"Every user has their own folder to hold their personal files and settings. " -"This folder is called the home directory and is " -"displayed in Thunar as special icon with the users login name. The folder is " -"similar to the My Files folder known from Windows. The " -"home directories of the various users in a system are " -"usually located below the /home " -"folder. For example /home/luke would " -"be the home directory of the user with the login name luke, while /home/" -"jane would be the home directory for the user with the login name " -"jane." -msgstr "" -"每个用户都有其存储个人文件和设置的文件夹。此文件夹称为 主文件夹 ,在 Thunar 中,它被冠以用户登录名并以一特殊图标显示。这个文件夹" -"与我们从 Windows 中了解的 我的文档 相似。系统中不同用户的 " -"主文件夹 通常位于 /home 文件夹之下。比如,/home/luke 是登录名为 luke 的用户的" -"主文件夹, /home/jane 是登录名为 " -"jane 的用户的主文件夹。" - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "文件类型" - -#: Thunar.xml:1352(para) -msgid "" -"You may have already heard that everything is a file in UNIX. This is true " -"for most objects present in UNIX systems today. In fact even devices are " -"represented as a special files. While this may not make sense at first " -"sight, it is one of the strengths of UNIX and its derivates, and has helped " -"it to maintain a simple core over the years where other operating systems " -"had to introduce new concepts for every new technology." -msgstr "" -"您可能已经听说过在 UNIX 中一切都是文件。对当今 UNIX 系统中的" -"大多数对象来说确实如此。事实上即使是设备也用一种特殊的文件表示。" -"这乍一看可能没道理,但是此特性却是 UNIX 及其衍生品的长处之一," -"它帮我们多年来一直维持一个简单的内核而无需像其它操作系统那样," -"每次采用新技术时都要引人新概念。" - -#: Thunar.xml:1359(para) -msgid "" -"These are the four most important types of files in the UNIX file system." -msgstr "这些是 UNIX 文件系统中的四种最重要的文件类型。" - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "普通文件" - -#: Thunar.xml:1366(para) -msgid "" -"An ordinary file may contain text, a program or other data. This includes " -"image files, audio files, office documents and video files. The term " -"file is often used to refer to an ordinary file." -msgstr "" -"一个普通文件可以包含文本、程序或其它数据。它包括图像文件、音频文件、" -"办公文档和视频文件。术语 文件 常用以指代一个普通文件。" - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "文件夹文件" - -#: Thunar.xml:1375(para) -msgid "" -"Folders are also files in the UNIX file system. To be exact a folder is a " -"special file, which contains a mapping of file names to file references for " -"every file contained within this folder." -msgstr "" -"文件夹在 UNIX 文件系统中同样被认为是文件。准确地说,一个文件夹" -"是一个包含文件夹中存放的每个文件的文件名和文件内容的对应关系的" -"特殊文件。" - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "符号链接文件" - -#: Thunar.xml:1384(para) -msgid "" -"A Symbolic link (often called a symlink) is a special " -"file that contains a path to another file in the file system. Symbolic link " -"files therefore do not contain any useful information themselves, but just " -"refer to other files." -msgstr "" -"符号链接(通常称为 symlink )是一种包含路径的特殊文件," -"此路径指向文件系统中的另一个文件。符号链接文件自身并不包含" -"任何有用信息,而只是指向其他文件。" - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "设备文件" - -#: Thunar.xml:1394(para) -msgid "" -"As mentioned earlier (most) devices are also accessed through the file " -"system. These special device files are usually located in the /dev folder. For example the special file " -"/dev/hda represents the first IDE disk on Linux." -msgstr "" -"如前所述,(大多数)设备可以通过文件系统来访问。这些特殊的设备文件" -"通常位于 /dev 文件夹下。例如, " -"/dev/hda 这个特殊的文件在 Linux 中表示第一块 IDE 硬盘。" - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "常见问题" - -#: Thunar.xml:1408(para) -msgid "" -"The intent of this section is to collect the quite numerous frequently asked " -"questions that relate to working with Thunar. If you know of a question that " -"is missing from this page, please file a request." -msgstr "" -"本节的目的是收集 Thunar 在使用过程中常被问到的众多问题。" -"如果您知道在本页中遗漏了哪些问题,请在 " -"file a request 提出请求。" - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "为什么 Thunar 并不执行可执行文件?" - -#: Thunar.xml:1419(para) -msgid "" -"For security reasons Thunar only executes files of type application/" -"x-desktop, application/x-executable and " -"application/x-shellscript. For desktop files the " -"execution feature will only be enabled if the desktop file is of type " -"Application and a valid Exec line is " -"given or of type Link and a valid URL " -"is given. For the other types the feature is available if the file is marked " -"executable for the current user." -msgstr "" -"出于安全因素考虑,Thunar 仅会执行类型为 应用程序/x-desktopapplication/x-executable 和 " -"application/x-shellscript 的文件。对于桌面文件,可执行功能" -"仅当该桌面文件是 Application 类型且包含一个有效的 " -"Exec 行,或者是 Link 类型且包含一个有效" -"的 URL 时才被启用。对于其他类型的文件,可执行功能仅当当前" -"用户对该文件具有可执行权限时有效。" - -#: Thunar.xml:1428(para) -msgid "" -"Also note that for application/x-executable and " -"application/x-shellscript, the types of the file don't " -"really need to match these types exactly, but it is suffice if the detected " -"type has a parent that matches one of the two types listed above, or if the " -"MIME-type is an alias for one of the above." -msgstr "" -"还需注意,对于类型为 application/x-executable 和 " -"application/x-shellscript ,文件类型并不需要和以上" -"两种类型完全匹配,当检测到该文件为以上两种类型之一的子类型," -"或该文件的 MIME-type 为以上两种类型中某个的别名时,文件" -"类型即被认为是以上两种类型之一。" - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Thunar 在哪里存储与文件相关的元数据?" - -#: Thunar.xml:1439(para) -msgid "" -"Thunar associates various settings with files/folders, which we call " -"metadata. This metadata for all files is stored in tdb database file, which " -"is called the metafile. The database file is stored in " -"$XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the " -"tdbtool, which is part of the Thunar distribution " -"(located in the tdb/ subdirectory)." -msgstr "" -"Thunar 将各种设置与文件或文件夹进行关联,我们称之为元数据。" -"各文件的元数据全都存储在一个 tdb 数据库文件中,称之为元文件。" -"该数据库文件存储于 $XDG_CACHE_HOME/Thunar/metafile.tdb ," -"并且可以使用作为 Thunar 发行版一部分的 tdbtool " -"(位于 tdb/ 子目录)来检查。" - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "Thunar 在哪里存储它的首选项设置?" - -#: Thunar.xml:1452(para) -msgid "" -"Thunar stores the user configurable preferences (and hidden settings) in an " -".ini file, which is located at " -"$XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text " -"editor. See docs/README.thunarrc for an overview of the " -"various preferences." -msgstr "" -"Thunar 将用户可配置的首选项设置(和隐藏设置)存放在一个 .ini 文件中,它位于 $XDG_CONFIG_HOME/Thunar/thunarrc,该文件可以用任意一个文本编辑器来检查。参看 docs/" -"README.thunarrc 获取各种首选项的概况。" - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "在 Thunar 中如何使用鼠标手势?" - -#: Thunar.xml:1464(para) -msgid "" -"Thunar currently features basic support for so called mouse " -"gestures in its icon view. You can use these mouse " -"gestures by holding down the middle mouse button (usually the " -"mouse wheel) while the mouse pointer is on the background area of the icon " -"view component (any area that is not covered by an icon or a text). Now you " -"can move the cursor into four directions to perform certain actions, which " -"are described below." -msgstr "" -"Thunar 目前在其图标视图中添加了对所谓 鼠标手势 的基本支持。" -"当鼠标指针位于图标视图组件区域(任何没有被图标或文本覆盖的区域)" -"的背景区域上时,您可以通过按下鼠标中键(通常为鼠标滚轮)来使用 " -"鼠标手势。然后,您可以向四个不同的方向移动鼠标光标来执行" -"特定的动作,介绍如下。" - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "向左" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr " - 打开上一个访问过的文件夹" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "向上" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr " - 打开父文件夹" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "向右" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr " - 打开下一个访问过的文件夹" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "向下" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr " - 重新载入当前文件夹" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "我该如何分配不同的键盘快捷键?" - -#: Thunar.xml:1484(para) -msgid "" -"If you want to rebind a shortcut, Thunar supports the standard GTK+ way of " -"changing shortcuts: simply hover over the menu option with the mouse pointer " -"and press the keyboard shortcut you want to rebind it to." -msgstr "" -"如果您想重新设置一个快捷键,Thunar 支持以标准的 GTK+ 方式来" -"改变快捷键:只要将将鼠标光标移至该菜单选项上,然后按下您希望" -"该选项使用的键盘快捷键即可。" - -#: Thunar.xml:1490(para) -msgid "" -"To delete a keyboard assignment, press the Backspace key " -"while you are on the menu entry." -msgstr "" -"要删除一个键盘分配,将鼠标指在该菜单条目上,然后按下 Backspace 键。" - -#: Thunar.xml:1495(para) -msgid "" -"If the shortcut doesn't change, then you need to enable the feature in GTK+. " -"This can be achieved in 3 ways:" -msgstr "" -"如果该快捷键并未被更改,那么您需要在 GTK+ 中启用该特性。" -"可以通过三种方式来实现:" - -#: Thunar.xml:1502(para) -msgid "" -"If you are running Xfce 4.3 or above then you can enable Editable " -"menu accelerators in the User Interface Preferences dialog." -msgstr "" -"如果您使用 Xfce 4.3 或者以上版本,您可以在 用户界面首选项" -" 对话框中启用 可编辑菜单快捷键 。" - -#: Thunar.xml:1510(para) -msgid "" -"If you are running GNOME then you can enable Editable menu " -"accelerators in the Menu and Toolbars " -"control center dialog." -msgstr "" -"如果您使用 GNOME,您可以在 菜单和工具栏 控制中心对话框中" -"启用 可编辑菜单快捷键 。" - -#: Thunar.xml:1518(para) -msgid "" -"Otherwise put the following in your ~/.gtkrc-2.0 file " -"(create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "" -"其它情况下,在您的 ~/.gtkrc-2.0 文件中(如果没有则先创建)" -"添加如下内容: gtk-can-change-accels=1 " - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "Thunar 在哪里存储键盘快捷键设置?" - -#: Thunar.xml:1529(para) -msgid "" -"The custom keyboard shortcuts are stored in the standard GTK+ accel map " -"format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK" -"+ documentation for details about the file format." -msgstr "" -"自定义的键盘快捷键以标准的 GTK+ accel map 格式存储在位于 " -"$XDG_CONFIG_HOME/Thunar/accels.scm 处的文件中。以 ; " -"开始的行为注释。参看 GTK+ 文档了解有关该文件格式的详情。" - -#: Thunar.xml:1536(para) -msgid "" -"If you are a packager or a system administrator and want to provide a system " -"wide default for the keyboard shortcuts, that is different from the default " -"shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if " -"/etc/xdg is part of " -"$XDG_CONFIG_DIRS (the default for most Linux distributions), you can " -"install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "" -"如果您是一名打包者或者系统管理员,并且希望有个可以在整个系统环境" -"中使用的与 Thunar 默认设置不同的键盘快捷键,您可以在任意一个 " -"$XDG_CONFIG_DIRS 中创建一个名为 Thunar/accels.scm " -"的文件。例如,如果 /etc/xdg 是 " -"$XDG_CONFIG_DIRS 一部分(在大多数 Linux 发行版上是如此)," -"您可以将系统全局使用的默认键盘快捷键安装至 /etc/xdg/Thunar" -"/accels.scm 。Thunar 在第一次启动的时候会从该文件中载入快捷键。" - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "支持" - -#: Thunar.xml:1551(para) -msgid "" -"To report a bug or to make a suggestion regarding this application or this " -"manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a " -"useful bug report has two qualities:" -msgstr "" -"无论是本应用程序还是本手册,要报告缺陷或者提出建议,使用位于 " -"http://bugzilla.xfce.org/ " -"上的缺陷追踪系统。记住有用的缺陷报告是帮助解决缺陷的," -"因此有用的缺陷报告应具备两个优点:" - -#: Thunar.xml:1559(para) -msgid "" -"Reproducible. If the developer cannot see " -"the bug himself to prove that it exists, he will most probably not be able " -"to fix it at all. Every detail you can provide helps." -msgstr "" -"可重现的 。如果开发者无法亲自看到缺陷并确认" -"其确实存在,他很可能没有任何办法去修复缺陷。您能提供的" -"每个细节都会有所帮助。" - -#: Thunar.xml:1566(para) -msgid "" -"Specific. The quicker the developer can " -"isolate the problem to a specific area, the more likely he will expediently " -"fix it." -msgstr "" -"明确的 。开发者缩小问题存在范围的速度越快," -"他方便地解决问题的可能性就越大。" - -#: Thunar.xml:1573(para) -msgid "" -"In case you want to request a new feature, please make clear why you " -"consider it a worth addition for the application. It is more likely that a " -"new feature gets added if you provide good arguments for the feature. It " -"will increase the chance of addition even more if you provide a patch that " -"implements the requested feature, but make sure that you read the file " -"HACKING - especially the section labeled Coding " -"Style - before you start hacking up the source." -msgstr "" -"如果您要提交新的功能,请阐明为什么您认为该功能值得添加进程序中。" -"理由越充分,该新功能就越有可能被添加进程序中。如果您能够直接" -"提供该功能的补丁,添加进程序中的可能性将更高,但在对源代码进行" -"改动之前,请您一定先阅读以下文档 HACKING ,尤其是其中的 " -"Coding Style 一节。" - -#: Thunar.xml:1583(para) -msgid "" -"Else, if you have questions about the use or installation of this software, " -"please ask on the thunar-dev mailing list or point your IRC " -"client to irc.freenode.net, join the " -"channel #thunar and ask for help." -msgstr "" -"另外,如果您在安装或者使用本软件过程中有任何问题,请在 " -"thunar-dev mailing list 中提问,或者使用您的 IRC " -"客户端,加入 irc.freenode.net 上的 " -"#thunar 频道以获得帮助。" - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "关于 @PACKAGE_NAME@" - -#: Thunar.xml:1594(para) -msgid "" -"@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "" -"@PACKAGE_NAME@ 由 Benedikt Meurer (benny@xfce.org) 编写。" -"访问 Thunar website 获取更多信息。" - -#: Thunar.xml:1599(para) -msgid "" -"This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the " -"Thunar website." -msgstr "" -"本文档由 Benedikt Meurer (benny@xfce.org) 编写。" -"本文档的最新版本总能够在以下链接找到:Thunar website 。" - -#: Thunar.xml:1605(para) -msgid "" -"This software is distributed 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." -msgstr "" -"此软件在自由软件基金会发布的 GNU 通用公共许可协议的第二版或者" -"(您可以选择)更高版本的条款约束下发布。" - -#: Thunar.xml:1611(para) -msgid "" -"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." -msgstr "" -"您应该已经与此软件一起获得了一份 GNU 通用公共许可协议的副本;" -"如果没有,致信给 " -"the Free Software Foundation, Inc., " -"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "Hunt Xu , 2009." diff -Nru thunar-1.2.3/docs/manual/po/zh_TW.po thunar-1.6.10/docs/manual/po/zh_TW.po --- thunar-1.2.3/docs/manual/po/zh_TW.po 2010-10-04 09:53:03.000000000 +0000 +++ thunar-1.6.10/docs/manual/po/zh_TW.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,1282 +0,0 @@ -# Tradiontal Chinese translations for Thunar package. -# Copyright (C) 2004-2006 Benedikt Meurer. -# This file is distributed under the same license as the Thunar package. -# Cosmo Chene , 2006. -# -msgid "" -msgstr "" -"Project-Id-Version: Thunar 0.5.0rc2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-20 11:53+0100\n" -"PO-Revision-Date: 2010-09-29 17:04+0800\n" -"Last-Translator: Cheng-Chia Tseng \n" -"Language-Team: Chinese (traditional) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:88(None) -msgid "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" -msgstr "@@image: 'images/file-manager-window.png'; md5=bdc9161fa900662dc2c7525d0361304f" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:171(None) -msgid "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" -msgstr "@@image: 'images/visible-columns.png'; md5=c7a625674a8cabeef2214707997f152a" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:357(None) -msgid "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" -msgstr "@@image: 'images/file-properties.png'; md5=30b4fc7e2b71fff62354e8dcbf8a51f1" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:447(None) -msgid "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" -msgstr "@@image: 'images/removable-media-unmount.png'; md5=6af08c4870af8048d9569cf551431de0" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:503(None) -msgid "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" -msgstr "@@image: 'images/removable-drives-and-media.png'; md5=4a8e2728206b61ff04ed9a66549c2be4" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:729(None) -msgid "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" -msgstr "@@image: 'images/preferences-views.png'; md5=aa140ed86b3adaa5ab65c7a03be00b13" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:799(None) -msgid "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" -msgstr "@@image: 'images/preferences-side-pane.png'; md5=80a014033ca737cc18ab2db7cb8ac50c" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:852(None) -msgid "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" -msgstr "@@image: 'images/preferences-behavior.png'; md5=dca607298eb5e66ec922a501d08a3059" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:902(None) -msgid "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" -msgstr "@@image: 'images/preferences-advanced.png'; md5=8082d317f01f3c99eb17c209340486e6" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:960(None) -msgid "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" -msgstr "@@image: 'images/sendto-menu.png'; md5=ba03723b4f4f8b16c2f4b9153e47f4a7" - -#. When image changes, this message will be marked fuzzy or untranslated for you. -#. It doesn't matter what you translate it to: it's not used at all. -#: Thunar.xml:1274(None) -msgid "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" -msgstr "@@image: 'images/bulk-rename.png'; md5=78e1d29a283693ba620991005284240f" - -#: Thunar.xml:12(title) -msgid "Thunar File Manager" -msgstr "Thunar 檔案管理員" - -#: Thunar.xml:17(year) -msgid "2004" -msgstr "2004" - -#: Thunar.xml:18(year) -msgid "2005" -msgstr "2005" - -#: Thunar.xml:19(year) -msgid "2006" -msgstr "2006" - -#: Thunar.xml:20(year) -msgid "2007" -msgstr "2007" - -#: Thunar.xml:21(holder) -msgid "Benedikt Meurer" -msgstr "Benedikt Meurer" - -#: Thunar.xml:25(para) -msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation." -msgstr "您可以複製、散布、「及/或」更改文件內容,其成立條件為遵照 GNU 自由文件授權 (GFDL) 版本 1.1 或之後自由軟體基金會的更新授權版本。所附授權條款內文章節不可更動,不應附有封面文字,也不應附有封底文字。完整的授權條款內容可自這裡 Free Software Foundation取得。" - -#: Thunar.xml:37(firstname) -msgid "Benedikt" -msgstr "Benedikt" - -#: Thunar.xml:38(surname) -msgid "Meurer" -msgstr "Meurer" - -#: Thunar.xml:40(jobtitle) -msgid "Software developer" -msgstr "軟體開發人員" - -#: Thunar.xml:41(orgname) -msgid "os-cillation" -msgstr "os-cillation" - -#: Thunar.xml:42(orgdiv) -msgid "System development" -msgstr "系統開發" - -#: Thunar.xml:43(email) -msgid "benny@xfce.org" -msgstr "benny@xfce.org" - -#: Thunar.xml:48(releaseinfo) -msgid "This manual describes version @PACKAGE_VERSION@ of @PACKAGE_NAME@." -msgstr "本手冊說明@PACKAGE_VERSION@ 版本的 @PACKAGE_NAME@ 操作方式" - -#: Thunar.xml:54(title) -msgid "Introduction to @PACKAGE_NAME@" -msgstr "介紹 @PACKAGE_NAME@ " - -#: Thunar.xml:56(para) -msgid "Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless options by default. Thunar is fast and responsive with a good start up time and folder load time." -msgstr "Thunar 是 Xfce 桌面環境嶄新的檔案管理員。Thunar 以快速且易於使用為設計的原則。它的使用介面清爽又直覺,也沒有什麼奇奇怪怪的東西或預設一些無用的額外功能。Thunar 在啟動程式及載入目錄時的反應時間都奇快無比。" - -#: Thunar.xml:62(para) -msgid "The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the file manager to do the following:" -msgstr "Thunar 檔案管理員能夠讓您很直覺地管理自己的檔案與程式。您可以使用檔案管理員從事以下的操作:" - -#: Thunar.xml:68(para) -msgid "Create folders and documents." -msgstr "建立目錄與文件" - -#: Thunar.xml:69(para) -msgid "Display your files and folders." -msgstr "檢視您的檔案和資料夾。" - -#: Thunar.xml:70(para) -msgid "Manage your files and folders." -msgstr "管理您的檔案與資料夾。" - -#: Thunar.xml:71(para) -msgid "Run and manage custom actions." -msgstr "可以執行並管理自定的動作。" - -#: Thunar.xml:72(para) -msgid "Access Removable Media." -msgstr "存取隨身型的儲存媒體。" - -#: Thunar.xml:78(title) -msgid "The File Manager Window" -msgstr "檔案管理員視窗" - -#: Thunar.xml:80(para) -msgid "By default the file manager window consists of a shortcut pane on the left side, the main area on the right and a pathbar above the main area." -msgstr "預設情況下,檔案管理員視窗是由左方的捷徑窗格、右方的主要區域、主要區域上方的路徑列所構成。" - -#: Thunar.xml:92(phrase) -msgid "File Manager Window" -msgstr "檔案管理員視窗" - -#: Thunar.xml:97(para) -msgid "The Shortcut Pane provides shortcuts to different folders on your system. The first shortcut will lead to your Home Folder, the folder you store all your personal data, and will therefore have the name of the current user. The second shortcut will take you to the trash bin, which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop Folder, which contains the files and folders that are displayed on the desktop. The fourth shortcut will take you to the root of your file system - you may want to explore it a bit, even though it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is inside." -msgstr "捷徑窗格提供一些您系統上不同資料夾的捷徑。第一個捷徑會進入家資料夾,那是用來儲存您所有個人資料的資料夾,所以會以目前使用者的名稱表示。第二個捷徑將帶領您查看垃圾桶,它保留您刪除過的檔案,並且未來可以將它們還原。第三個捷徑會引領您前往桌面資料夾,它包含顯示在您桌面上的檔案與資料夾。第四個捷徑則會帶著您到您檔案系統的根目錄去 - 雖然它對於 Linux/Unix 新手來說還有點令人摸不著頭緒,但您還是有可能想探索它。只要點選不同的資料夾後就能查看裡面有什麼東西。" - -#: Thunar.xml:108(para) -msgid "Below the File System shortcut, the removable drives and media will be displayed. In the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts to access the data stored on the removable drives and media. See for further details." -msgstr "在檔案系統捷徑的下方,會顯示可移除式裝置與媒體。在上方的螢幕擷圖中,您可以看見一個軟碟機捷徑。點擊這些捷徑以存取儲存在可移除式裝置與媒體內的資料。請見 以瞭解更多細節。" - -#: Thunar.xml:115(para) -msgid "The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the Shortcuts Pane. This will allow you to access important folders instantly. To remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. Note that these actions affect only the shortcut, not the folder referenced by the shortcuts." -msgstr "剩下的捷徑是使用者自行定義的。只要將資料夾拖曳至捷徑窗格內,就能輕鬆加入您自己的捷徑。這樣您便可以即時存取重要的資料夾。若要移除之前加入的捷徑,對該捷徑點擊右鍵並選擇移除捷徑。若要重新命名之前加入的捷徑,對該捷徑點擊右鍵並選擇重新命名捷徑。請注意這些動作只會影響到捷徑而已,不會反應到捷徑所參照的資料夾。" - -#: Thunar.xml:123(para) -msgid "The main area will always display the contents of the current folder. Double click on folders to enter them, and right-click on files or folders to get a context-menu offering some choices of what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, select one file, hold down the Shift key, and increase or decrease the selection using the arrow keys." -msgstr "主要區域 用來顯示目前資料夾內的內容。請雙擊資料夾以進入其中,接著針對檔案或資料夾點擊右鍵以取得情境選單,情境選單提供您一些目前情境下可以做什麼事的選項。您可以透過滑鼠拖曳出一個矩形,並將該矩形覆蓋住您想選取的多項檔案來選取它們。另外,您也可以先選取一個檔案,接著按住 Shift 鍵,再使用方向鍵來增加或減少您的選取項目。" - -#: Thunar.xml:131(para) -msgid "The pathbar will always show the path you took to get to the folder you are currently at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar button to bring up a context-menu with some options." -msgstr "路徑列 用來顯示您目前所在的資料夾路徑。您可以點擊任何路徑列按鈕來變換至按鈕所代表的資料夾。對路徑列按鈕點擊右鍵會帶出附有一些選項的情境選單。" - -#: Thunar.xml:139(title) -msgid "Customizing the Appearance" -msgstr "自訂外觀" - -#: Thunar.xml:141(para) -msgid "There are many ways to customize the appearance of the file manager windows. In case you do not like the way the icons are displayed, choose ViewView as Detailed List from the main menu to have the contents of the current folder displayed as a list." -msgstr "有許多方式可以自訂檔案管理員視窗的外觀。舉例來說,如果您不喜歡圖示顯示的方式,那麼從主選單選擇檢視以詳細清單方式檢視就能將目前資料夾的內容以清單的方式顯示。" - -#: Thunar.xml:147(para) -msgid "You can have the file manager windows display a location bar instead of the pathbar by choosing ViewLocation SelectorToolbar Style from the main menu." -msgstr "您可以讓檔案管理員視窗用位置列取代路徑列,只要從主選單選擇檢視位置表示工具列風格就能達成。" - -#: Thunar.xml:153(para) -msgid "In case you prefer a treeview in the left pane, choose ViewSide PaneTree from the main menu." -msgstr "如果您偏好左方窗格內是樹狀檢視,那麼從主選單選擇檢視側窗格樹狀圖即可。" - -#: Thunar.xml:160(title) -msgid "Visible Columns in the Detailed List View" -msgstr "詳細清單檢視模式下的可見欄位" - -#: Thunar.xml:162(para) -msgid "If you prefer to display the contents of the folder as a list, using the Detailed List View, you can customize the columns displayed in the list view. To customize the visible columns, choose ViewConfigure Columns... from the main menu." -msgstr "如果您偏好將資料夾的內容以清單方式顯示,也就是使用以詳細清單方式檢視的話,您可以自訂清單檢視所顯示的欄位。想要自訂可見欄位的話,從主選單選擇檢視設定欄位...即可。" - -#: Thunar.xml:175(phrase) -#: Thunar.xml:182(guilabel) -msgid "Visible Columns" -msgstr "可見欄位" - -#: Thunar.xml:184(para) -msgid "Select the columns you want to be displayed from the list of available columns. Click Move Up or Move Down to change the order of the columns. Click Use Default to revert your changes." -msgstr "從可用的欄位清單中選取您想要顯示的欄位。點擊上移下移來變更欄位的順序。點擊使用預設來撤銷所做的變更。" - -#: Thunar.xml:193(guilabel) -msgid "Column Sizing" -msgstr "欄位大小" - -#: Thunar.xml:195(para) -msgid "Select the option Automatically expand columns as needed if you want the list view columns to expand automatically if the needed to ensure the text is fully visible." -msgstr "若您想要讓清單檢視欄位在文字被遮住時自動延展欄位讓文字可以完全看見的話,則選取依需求自動延展欄位。" - -#: Thunar.xml:208(title) -msgid "Working with Files and Folders" -msgstr "管理您的檔案與資料夾" - -#: Thunar.xml:212(title) -msgid "Opening Files" -msgstr "開啟檔案" - -#: Thunar.xml:214(para) -msgid "When you open a file, the file manager performs the default action for that file type. For example, opening a text file will display it in the default text editor, while opening an image file will display the image in the default image viewer." -msgstr "當您開啟一份檔案時,檔案管理員會執行該檔案類型的預設動作。舉例來說,開啟一份文字檔會以預設的文字編輯器顯示其內容;而開啟一份影像檔會以預設的影像檢視器顯示該影像。" - -#: Thunar.xml:220(para) -msgid "The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the file manager examines the contents of the file." -msgstr "檔案管理員會檢查檔案的副檔名來決定檔案的類型。如果檔案沒有副檔名,那麼檔案管理員會仔細探查該檔案的內容。" - -#: Thunar.xml:226(title) -msgid "Executing the Default Action" -msgstr "執行預設動作" - -#: Thunar.xml:228(para) -msgid "To execute the default for a file, double-click on the file. For example, the default action for audio files is to play the it with the default music playing application. In this case, you can double-click on the file to open the file in the music player." -msgstr "若要為檔案執行預設動作,請雙點該檔案。舉例來說,音訊檔案的預設動作是使用預設的音樂播放應用程式播放它。在這種情況下,您可以雙點該檔案以在音樂播放器內開啟它。" - -#: Thunar.xml:234(para) -msgid "You can set Thunar preferences so that you click once on a file to execute the default action. For information, see ." -msgstr "您可以設定 Thunar 偏好設定,如此一來您只要對檔案點擊一次就能執行預設動作。若要瞭解更多資訊,請見 。" - -#: Thunar.xml:241(title) -msgid "Executing Non-Default Actions" -msgstr "執行非預設動作" - -#: Thunar.xml:243(para) -msgid "To execute actions other than the default action for a file, select the file that you want to perform an action on. Choose the desired action from the Open With choices available in File menu or an Open With submenu." -msgstr "若要對檔案執行預設動作之外的動作,請先選取您想要執行該動作的檔案。接著在檔案選單內的以此開啟 可選項目,或是以此開啟 子選單內的可選項目中挑選偏愛的動作。" - -#: Thunar.xml:251(title) -msgid "Adding Actions" -msgstr "加入動作" - -#: Thunar.xml:253(para) -msgid "To add actions associated with a file type, perform the following steps:" -msgstr "若要加入與某種檔案類型關聯的動作,請執行下列步驟:" - -#: Thunar.xml:259(para) -msgid "In the main area, select a file of the type to which you want to add an action." -msgstr "在主要區域內,選取您想要加入動作的某類型檔案。" - -#: Thunar.xml:264(para) -msgid "Choose FileOpen With Other Application... from the main menu." -msgstr "從主選單選擇檔案以其它應用程式開啟...。" - -#: Thunar.xml:270(para) -msgid "Either choose an application in the Open With dialog or select Use a custom command and browse to the program with which you wish to open this type." -msgstr "也可以在以此開啟對話窗內選擇應用程式,或是選取使用自訂指令來瀏覽您希望開啟此類型檔案的程式。" - -#: Thunar.xml:277(para) -msgid "The action you have chosen is now added to the list of actions for that particular file type. If you enabled the Use as default for this kind of file option or there was no prior action associated with the type, the newly added action is the default." -msgstr "您選擇的動作現在已加入該特定檔案類型的動作清單內。若您啟用了設為此類檔案的預設動作選項,或是之前都沒有任何動作和該類型檔案相關聯的話,新加入的動作將成為預設動作。" - -#: Thunar.xml:283(para) -msgid "You may also add actions using the Open With button under FileProperties...." -msgstr "您也可以透過檔案屬性...之下的以此開啟按鈕來加入動作。" - -#: Thunar.xml:290(title) -msgid "Modifying Actions" -msgstr "修改動作" - -#: Thunar.xml:292(para) -msgid "To modify the actions associated with a file or file type, perform the following steps:" -msgstr "若要修改與檔案或檔案類型相關聯的動作,請執行下列步驟:" - -#: Thunar.xml:298(para) -msgid "In the main area, select a file of the type for which you want to modify the action." -msgstr "在主要區域內,選取您想要修改動作的類型的檔案。" - -#: Thunar.xml:303(para) -#: Thunar.xml:383(para) -msgid "Choose FileProperties... from the main menu." -msgstr "從主選單選擇檔案屬性...。" - -#: Thunar.xml:308(para) -msgid "Select the new default action using the Open With button or add a new action by choosing Open With Other Application... from the drop down menu." -msgstr "使用以此開啟按鈕來選取新的預設動作,或是從下拉式選單選擇以其它應用程式開啟...來加入新動作。" - -#: Thunar.xml:315(para) -msgid "To remove a previously added action for a file type, bring up the Open With dialog as described above, right-click the action you want to remove and choose Remove Launcher." -msgstr "若要為某檔案類型移除之前加入的動作,如上述方式叫出以此開啟對話窗,對您想要移除的動作點擊右鍵,接著選擇移除啟動器。" - -#: Thunar.xml:324(title) -#: Thunar.xml:361(phrase) -msgid "File Properties" -msgstr "檔案屬性" - -#: Thunar.xml:326(para) -msgid "The file properties window shows more information about any file or folder in the file manager. With this window, you can also do the following:" -msgstr "檔案管理員內的檔案屬性視窗會顯示更多有關任何檔案或資料夾的資訊。有了該視窗,您可以進行以下的操作:" - -#: Thunar.xml:333(para) -msgid "Change the icon for special files, such as application launchers and URL links." -msgstr "為特殊檔案變更圖示,像是應用程式啟動器與 URL 連結。" - -#: Thunar.xml:338(para) -msgid "Add or remove emblems for a file or folder." -msgstr "加入或移除檔案或資料夾的標記" - -#: Thunar.xml:343(para) -msgid "Change the UNIX file permissions for a file or folder." -msgstr "為檔案或資料夾變更 UNIX 檔案權限。" - -#: Thunar.xml:348(para) -msgid "Choose which application is used to open a file and other files of the same type." -msgstr "選擇用來開啟某檔案以及其它同類型檔案的應用程式。" - -#: Thunar.xml:366(para) -msgid "To open the file properties window, perform the following steps:" -msgstr "若要開啟檔案屬性視窗,請執行下載步驟:" - -#: Thunar.xml:372(para) -msgid "Select the file or folder whose properties you want to examine or change. You cannot select multiple items at once and display the properties that are in common to all items currently." -msgstr "選取您想要檢視或變更屬性的檔案或資料夾。您無法同時選取多個項目並顯示它們的屬性,目前對於所有項目都不能這樣操作。" - -#: Thunar.xml:386(para) -msgid "Right-click the selected item and choose Properties... from the context menu." -msgstr "對選取的項目點擊右鍵,接著從情境選單內選擇屬性...。" - -#: Thunar.xml:389(para) -msgid "Press AltReturn." -msgstr "按下 AltEnter。" - -#: Thunar.xml:379(para) -msgid "Do one of the following: " -msgstr "執行下列動作之一:" - -#: Thunar.xml:400(title) -msgid "Using Removable Media" -msgstr "使用可移除式媒體" - -#: Thunar.xml:403(title) -msgid "Accessing Removable Media" -msgstr "存取可移除式媒體" - -#: Thunar.xml:405(para) -msgid "Thunar supports removable media if it was built with support for HAL, or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is suggested to use HAL rather than the native support provided by Thunar." -msgstr "" - -#: Thunar.xml:412(title) -msgid "To Mount Media" -msgstr "掛載媒體" - -#: Thunar.xml:414(para) -msgid "To mount media is to make the file system of the media available for access. When you mount media, the file system of the media is attached as a subdirectory to your file system." -msgstr "掛載 媒體是要讓媒體的檔案系統可供存取。當您掛載媒體時,該媒體的檔案系統會以子目錄的方式連接至您的檔案系統。" - -#: Thunar.xml:419(para) -msgid "To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If xfdesktop is running and configured to display File/launcher icons this object will also be added to your desktop." -msgstr "若要存取媒體,請將媒體插入適當的裝置,或是將新裝置接上您的電腦 (例:將 USB 隨身碟插入您的 USB 連接埠)。接著一個代表該媒體的物件會加入檔案管理員的側窗格內。如果 xfdesktop 正在執行中,並且被設置為會顯示檔案/啟動器圖示的話,此物件也會加入至您的桌面上。" - -#: Thunar.xml:426(para) -msgid "To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, click on the Floppy Drive object in the side pane. The file manager will now add the file system of the media to your file system hierarchy and display the contents of the floppy diskette in the main area." -msgstr "若要實際掛載媒體,請點擊代表該媒體的物件。比如說您要掛載軟碟片的話,就點擊側窗格內的軟碟機。接著,檔案管理員將立刻將該媒體的檔案系統加入至您的檔案系統階層目錄內,並且在主要區域內顯示軟碟片的內容。" - -#: Thunar.xml:434(title) -msgid "To Eject Media" -msgstr "退出媒體" - -#: Thunar.xml:436(para) -msgid "If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and choose Unmount Volume. After a short period of time, a notification will appear to inform you that it is now safe to remove the media or disconnect the drive from the computer." -msgstr "如果媒體的裝置屬於機動型裝置 (例:光碟機),在側窗格或是桌面上對該媒體物件點擊右鍵,接著選擇退出儲存裝置。該媒體將在幾秒後從裝置中退出。如果媒體的裝置屬於非機動型 (例:軟碟機或 USB 隨身碟),對該媒體物件點擊右鍵,接著選擇卸載儲存裝置。一小段時間後,系統會顯示通知以通知您現在從電腦移除媒體或是斷開裝置連接是安全的。" - -#: Thunar.xml:451(phrase) -msgid "Unmount notification" -msgstr "" - -#: Thunar.xml:456(para) -msgid "However this notification will only be displayed if support for libnotify is enabled, and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. If notification support is not available, wait until the context menu disappears before you remove the media or disconnect the drive." -msgstr "" - -#: Thunar.xml:464(para) -msgid "Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also check command line applications running in Terminal windows." -msgstr "" - -#: Thunar.xml:470(para) -msgid "Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you might lose data or cause your system to crash." -msgstr "" - -#: Thunar.xml:479(title) -msgid "Management of Removable Drives and Media" -msgstr "" - -#: Thunar.xml:481(para) -msgid "Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on your system. Note however that this feature requires HAL support." -msgstr "" - -#: Thunar.xml:487(para) -msgid "Now, if HAL support is available and thunar-volman is installed on your system, you can choose to enable the Volume Management feature of Thunar. Therefore, open the file manager preferences, go to the Advanced page and check the Enable Volume Management button." -msgstr "" - -#: Thunar.xml:494(para) -msgid "The next step is to customize the management of removable drives and media to your needs. Click on the Configure link in the Volume Management section, right below the button. The Removable Drives and Media configuration dialog will be displayed." -msgstr "" - -#: Thunar.xml:507(phrase) -msgid "Removable Drives and Media" -msgstr "可移除式裝置與媒體" - -#: Thunar.xml:512(para) -msgid "If you have used the gnome-volume-manager previously, you should feel right at home, because it was designed to look and behave similar to gnome-volume-manager. The preferences are divided by device categories to make it easy to locate the option for you specific device." -msgstr "" - -#: Thunar.xml:519(para) -msgid "The Storage page contains the most important options. As the name suggests these options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The Removable Storage options are described in detail below." -msgstr "" - -#: Thunar.xml:527(guilabel) -msgid "Mount removable drives when hot-plugged" -msgstr "" - -#: Thunar.xml:529(para) -msgid "Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives or USB sticks) when such drives are plugged into the computer." -msgstr "" - -#: Thunar.xml:533(para) -msgid "This option must be enabled for certain other features to work with removable drives. For example, if you disable this option, certain kinds of portable music players cannot be detected any more and so, even if you enabled the Play music files when connected option on the Multimedia page, the specified command will not be run when you hot-plug your portable music player." -msgstr "" - -#: Thunar.xml:544(guilabel) -msgid "Mount removable media when inserted" -msgstr "" - -#: Thunar.xml:546(para) -msgid "Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) when you insert the media into the drive." -msgstr "" - -#: Thunar.xml:550(para) -msgid "This option must be enabled for certain other features to work with removable media. For example, if you disable this option, it is impossible to detect whether the removable media has auto-run capabilities, and so the Auto-run programs on new drives and media option has no effect for removable media." -msgstr "" - -#: Thunar.xml:560(guilabel) -msgid "Browse removable media when inserted" -msgstr "" - -#: Thunar.xml:562(para) -msgid "Enable this option to automatically display the content of newly inserted media in the file manager. Note however, that the contents will only be displayed if no other action was possible or you choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run capabilities and the Auto-run programs on new drives and media option is enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose to ignore the auto-run the contents will be displayed in the file manager." -msgstr "" - -#: Thunar.xml:574(guilabel) -msgid "Auto-run programs on new drives and media" -msgstr "" - -#: Thunar.xml:576(para) -msgid "Enable this option to make use of auto-run capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-run mechanism. To enhance security, you will always be prompted to confirm the auto-run." -msgstr "" - -#: Thunar.xml:582(para) -msgid "If the Windows emulator WINE is installed on your system, the auto-run mechanism will also try to run autorun.exe files using WINE." -msgstr "" - -#: Thunar.xml:590(guilabel) -msgid "Auto-open files on new drives and media" -msgstr "" - -#: Thunar.xml:592(para) -msgid "Enable this option to make of auto-open capabilities of certain removable drives and media. See the Desktop Application Autostart Specification for details about the auto-open mechanism. To enhance security, you will always be prompted to confirm the auto-open." -msgstr "" - -#: Thunar.xml:602(para) -msgid "The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive or a certain kind of external device is connected. The command can use three special variables, that will be substituted when the command is run:" -msgstr "" - -#: Thunar.xml:610(literal) -msgid "%d" -msgstr "" - -#: Thunar.xml:612(para) -msgid "Each appearance of %d in the command will be substituted with the device file path of the newly added device. For example, if you have plugged in an USB stick, the device file path will be /dev/da0s1 or /dev/sda1." -msgstr "" - -#: Thunar.xml:617(para) -msgid "If no device file is associated with the device or the device file could not be found for some reason, the variable %d will be substituted with the empty string." -msgstr "" - -#: Thunar.xml:625(literal) -msgid "%h" -msgstr "" - -#: Thunar.xml:627(para) -msgid "Each appearance of %h in the command will be substituted with the HAL UDI of the newly added device." -msgstr "" - -#: Thunar.xml:635(literal) -msgid "%m" -msgstr "" - -#: Thunar.xml:637(para) -msgid "Each appearance of %m in the command will be substituted with the mount point where the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) or if the automatic mounting was disabled, %m will be substituted with the empty string." -msgstr "" - -#: Thunar.xml:648(title) -msgid "Troubleshooting the Volume Manager" -msgstr "" - -#: Thunar.xml:650(para) -msgid "Useful tips to trouble shoot the volume manager in case it does not work as expected." -msgstr "" - -#: Thunar.xml:656(para) -msgid "Make sure Thunar is running as daemon. The volume manager depends on this, as it is not a daemon by itself. By default, Xfce automatically spawns Thunar as daemon on startup. If it got killed for some reason, open the Run program (using the keyboard shortcut AltF2 or right-click on the desktop and choose Run Program... from the desktop menu), enter Thunar --daemon and click Run." -msgstr "" - -#: Thunar.xml:668(para) -msgid "Try running thunar-volman from a Terminal window after hot-plugging the drive or inserting the media. First, you need to figure out the HAL UDI of the new device using lshal or hal-device. Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in a Terminal window and watch the output for errors or warnings." -msgstr "" - -#: Thunar.xml:678(para) -msgid "If it still refuses to work, ask on the Xfce Forum or the thunar-dev mailing list for help." -msgstr "" - -#: Thunar.xml:689(title) -msgid "File Management Preferences" -msgstr "檔案管理偏好設定" - -#: Thunar.xml:691(para) -msgid "Use the File Manager Preferences dialog to set your Thunar file manager preferences. To open the preferences dialog, choose EditPreferences... from the menu bar, or click on the File Manager button in the Xfce Settings Manager." -msgstr "使用檔案管理員偏好設定對話窗來設定您的 Thunar 檔案管理員偏好設定。若要開啟該偏好設定對話窗,請從選單列中選擇編輯偏好設定...,或是點擊 Xfce 設定值管理員內的 檔案管理員按鈕。" - -#: Thunar.xml:697(para) -msgid "The File Manager Preferences dialog is divided into four pages with different options, each described in a separate section below. Basically you can set preferences in the following categories:" -msgstr "檔案管理員偏好設定對話窗分為四個有不同的選項的頁面,每個頁面的選項都位於下方的獨立區塊內。基本上您可以於下列分類內設定偏好設定:" - -#: Thunar.xml:703(para) -msgid "The default settings for the views." -msgstr "檢視的預設值。" - -#: Thunar.xml:704(para) -msgid "The default settings for the side pane." -msgstr "側窗格的預設值。" - -#: Thunar.xml:705(para) -msgid "The behavior of the file manager windows." -msgstr "檔案管理員視窗的行為。" - -#: Thunar.xml:706(para) -msgid "Advanced features of the file manager." -msgstr "檔案管理員的進階功能。" - -#: Thunar.xml:709(para) -msgid "Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that is included with the Thunar distribution describes all available options in detail." -msgstr "Thunar 也支援一堆所謂的隱藏選項,可以控制許多檔案管理員的進階功能,但是為了保持偏好設定對話窗的簡單設計,它們沒有被納入偏好設定中。Thunar 發行內所包含的 README.thunarrc 檔案有所有可用選項的詳細描述。" - -#: Thunar.xml:718(title) -#: Thunar.xml:733(phrase) -msgid "Views Preferences" -msgstr "檢視偏好設定" - -#: Thunar.xml:720(para) -msgid "You can specify a default view, select sort options and display options. You can also specify whether thumbnails should be displayed for file types that support this." -msgstr "您可以指定預設檢視、選取排序選項與顯示選項。您也可以指定那些支援縮圖的檔案類型是否要顯示縮圖。" - -#: Thunar.xml:740(guilabel) -msgid "View new folder using" -msgstr "檢視新資料夾的設定" - -#: Thunar.xml:742(para) -msgid "Select the default view for folders. When you open a new window, the is displayed in the view that you select. This can be either the icon view, the compact list view or the detailed list view. You can also select Last Active View here to use the view you used for the last active window." -msgstr "選取檢視資料夾時的預設檢視設定。當您開啟新視窗時,顯示您所選取的檢視方式。它可以是圖示檢視、簡潔清單檢視、詳細清單檢視。您也可以在這裡選取上次的檢視狀態以使用您最後一次開啟視窗所使用的檢視方式。" - -#: Thunar.xml:752(guilabel) -msgid "Sort folders before files" -msgstr "將資料夾排在檔案前面" - -#: Thunar.xml:754(para) -msgid "Select this option to list folders before files when you sort a folder." -msgstr "選取此選項以讓您排序資料夾的內容時讓內含的資料夾排在檔案前面。" - -#: Thunar.xml:761(guilabel) -msgid "Show thumbnails" -msgstr "顯示縮圖" - -#: Thunar.xml:763(para) -msgid "Select this option to show thumbnails of image files and other supported files. The file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder." -msgstr "選取此選項以顯示影像檔與其它支援本功能檔案的縮圖。檔案管理員會在使用者「家資料夾」內隱藏的 .thumbnails 目錄內,為每個資料夾儲存縮圖檔案。" - -#: Thunar.xml:768(para) -msgid "See if you want to extend the basic thumbnail functionality provided by Thunar with support for additional file types." -msgstr "如果您想要擴展 Thunar 提供的基本縮圖功能,為它加入額外檔案類型支援的話,請見 。" - -#: Thunar.xml:777(guilabel) -msgid "Text beside icons" -msgstr "文字位於圖示旁" - -#: Thunar.xml:779(para) -msgid "Select this options to place the icon captions for items in the icon view beside the icon rather than under the icon." -msgstr "選取此選項以在圖示檢視內,將項目的圖示說明放置在圖示的旁邊而不是在圖示的下方。" - -#: Thunar.xml:790(title) -#: Thunar.xml:803(phrase) -msgid "Side Pane Preferences" -msgstr "側窗格偏好設定" - -#: Thunar.xml:792(para) -msgid "You can select display options for the shortcuts pane and the tree pane." -msgstr "您可以為捷徑窗格與樹狀窗格選取顯示選項。" - -#: Thunar.xml:808(para) -msgid "The side pane can either display a list of shortcuts for folders in your file system, which is the default, or a tree view of your file system. This page allows you to select the size of the icons for the shortcuts and the tree pane. You can also specify whether emblems should be displayed." -msgstr "側窗格還可以顯示一份您檔案系統內資料夾的捷徑清單 (預設情況),或是顯示您檔案系統的樹狀檢視。此頁面讓您可以為捷徑與樹狀窗格選取圖示大小。您也可以指定是否要顯示標記。" - -#: Thunar.xml:817(guilabel) -msgid "Icon Size" -msgstr "圖示大小" - -#: Thunar.xml:819(para) -msgid "The size of the icons displayed in the side, ranging from Very Small (around 16x16 pixels) to Very Large (around 128x128 pixels)." -msgstr "在側邊要顯示的圖示大小,範圍從最小 (大約 16x16 像素) 到最大 (大約 128x128 像素)。" - -#: Thunar.xml:827(guilabel) -msgid "Show Icon Emblems" -msgstr "顯示圖示標記" - -#: Thunar.xml:829(para) -msgid "Select this option to display emblems for folders in the side pane. You can assign emblems to folders in the Properties dialog. Select a folder in the main area and choose FileProperties... from the main menu, or right-click the folder and select Properties... from the context menu." -msgstr "選取此選項以在側窗格內顯示資料夾的標記。您可以在屬性對話窗內指定資料夾的標記。在主要區域內選取一份資料夾,接著選擇從主選單選擇檔案屬性...,或是對該資料夾點擊右鍵並從情境選單內選取屬性...。" - -#: Thunar.xml:843(title) -#: Thunar.xml:856(phrase) -msgid "Behavior Preferences" -msgstr "行為偏好設定" - -#: Thunar.xml:845(para) -msgid "You can select the preferred behavior to interact with the file manager." -msgstr "您可以選取和檔案管理員互動的偏好行為。" - -#: Thunar.xml:863(guilabel) -msgid "Single click to active items" -msgstr "單點擊以啟用項目" - -#: Thunar.xml:865(para) -msgid "Select this option to perform the default action for an item when you click on the item. When this option is selected, and you point to an item, the title of the item is underlined and the item will be selected automatically after a short delay." -msgstr "選取此選項以在您點擊某項目時為該項目執行預設動作。當選取了此選項,而您指向某個項目,該項目的標題會被加上底線,並且在一小段延遲時間後該項目將會被自動選取。" - -#: Thunar.xml:871(para) -msgid "This delay can be configured below the option. You can also disable the automatic selection of items by moving the selector to the left-most position." -msgstr "此延遲時間可以在該選項的下方調整。您也可以停用自動項目選取,只要將滑桿移動至最左方的位置即可。" - -#: Thunar.xml:880(guilabel) -msgid "Double click to activate items" -msgstr "雙點擊以啟用項目" - -#: Thunar.xml:882(para) -msgid "Select this option to perform the default action for an item when you double click on the item, and select the item with a single click." -msgstr "選取此選項以在您雙次點擊某項目時為該項目執行預設動作,而單次點擊則是用來選取項目。" - -#: Thunar.xml:893(title) -#: Thunar.xml:906(phrase) -msgid "Advanced Preferences" -msgstr "進階偏好設定" - -#: Thunar.xml:895(para) -msgid "You can control advanced features of the file manager." -msgstr "您可以控制檔案管理員的進階功能。" - -#: Thunar.xml:913(guilabel) -msgid "Folder Permissions" -msgstr "資料夾權限" - -#: Thunar.xml:915(para) -msgid "Choose the action that should be performed when you change the permissions of a folder in the Properties dialog. You can choose to let Thunar ask everytime when you change folder permissions, tell it to default to applying the new permissions to the folder only or to apply them recursively to the folder contents as well." -msgstr "選擇您在屬性對話窗內變更權限時應該要執行的動作。您可以選擇讓 Thunar 在您變更資料夾權限時每次都問,或是請它預設為只套用到資料夾本身,或是遞迴地套用到資料夾所含內容。" - -#: Thunar.xml:925(guilabel) -msgid "Volume Management" -msgstr "儲存裝置管理" - -#: Thunar.xml:927(para) -msgid "If Thunar was installed with support for HAL and the thunar-volman package is also installed, you can enable the integrated volume manager. See for details about this feature." -msgstr "如果 Thunar 安裝時有加入 HAL 支援,並且同時也有安裝 thunar-volman 套件的話,您可以啟用整合的儲存裝置管理員。請見 以取得此功能的詳細資訊。" - -#: Thunar.xml:940(title) -msgid "Customizing Thunar" -msgstr "自訂 Thunar" - -#: Thunar.xml:942(para) -msgid "This chapter describes how to customize certain parts of the file manager to your own needs." -msgstr "本章旨在描述如何自訂檔案管理員的某些部份以符合您自身的需求。" - -#: Thunar.xml:948(title) -msgid "The \"Send To\" Menu" -msgstr "" - -#: Thunar.xml:950(para) -msgid "Thunar includes a Send To menu, which provides possible targets where files and folders can be sent to. To access the Send To menu, choose FileSend To from the main menu, or right-click on a file or folder and choose Send To." -msgstr "" - -#: Thunar.xml:964(phrase) -msgid "\"Send To\" Menu" -msgstr "" - -#: Thunar.xml:969(para) -msgid "By default, the Send To menu includes an entry named Desktop (Create Link) for all files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from the Send To menu, so you do not need to manually mount it." -msgstr "" - -#: Thunar.xml:979(para) -msgid "In addition Thunar also ships the thunar-sendto-email plugin, which adds the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will be prompted whether to pack the files into a ZIP archive, and send the ZIP archive." -msgstr "" - -#: Thunar.xml:987(para) -msgid "Like most other features of Thunar, the Send to menu can be easily extended by users and application developers with new targets, using standard desktop entry files. These files must be installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the $XDG_DATA_DIRS variable)." -msgstr "" - -#: Thunar.xml:996(para) -msgid "The MimeType of the target .desktop specifies the types of files for which this action should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. If you do not specify any MimeType your entry will show up for all file types." -msgstr "" - -#: Thunar.xml:1004(para) -msgid "A complete example using the postr application is shown below:" -msgstr "" - -#: Thunar.xml:1008(programlisting) -#, no-wrap -msgid "" -"\n" -"# postr.desktop - Integrate postr into\n" -"# the \"Send To\" menu.\n" -"[Desktop Entry]\n" -"Type=Application\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"TryExec=postr\n" -"Exec=postr %F\n" -"Icon=postr\n" -"Name=Flickr\n" -"MimeType=image/jpeg;" -msgstr "" - -#: Thunar.xml:1021(para) -msgid "If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, which can be used to upload JPEG images to Flickr." -msgstr "" - -#: Thunar.xml:1027(para) -msgid "The Thunar Project Wiki contains additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with new examples." -msgstr "" - -#: Thunar.xml:1036(title) -msgid "Thumbnailers" -msgstr "" - -#: Thunar.xml:1038(para) -msgid "Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. Users may however dynamically extend this basic functionality with thumbnailers for additional file types." -msgstr "" - -#: Thunar.xml:1045(para) -msgid "If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the format specified by the Thumbnail Management Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, which might produce a less optimal result than generating the thumbnail with the requested dimensions." -msgstr "" - -#: Thunar.xml:1054(para) -msgid "Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format." -msgstr "" - -#: Thunar.xml:1063(title) -msgid "Thumbnailer Description File Format" -msgstr "" - -#: Thunar.xml:1065(para) -msgid "Thumbnailer description files utilize the Desktop Entry Format with a special Type of X-Thumbnailer and special field X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format." -msgstr "" - -#: Thunar.xml:1071(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=Your Thumbnailer\n" -"MimeType=your-supported/mime-type;\n" -"X-Thumbnailer-Exec=your-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1080(para) -msgid "The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown in the example above. The Type field must have the special value X-Thumbnailer, otherwise your thumbnailer will not be recognized. The Name value describes your thumbnailer." -msgstr "" - -#: Thunar.xml:1086(para) -msgid "The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will be substituted when the thumbnailer is run. Recognized field codes are as follows:" -msgstr "" - -#: Thunar.xml:1093(varname) -msgid "%i" -msgstr "" - -#: Thunar.xml:1095(para) -msgid "The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the thumbnailer was invoked or an absolute path." -msgstr "" - -#: Thunar.xml:1101(varname) -msgid "%o" -msgstr "" - -#: Thunar.xml:1103(para) -msgid "The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain third party tools." -msgstr "" - -#: Thunar.xml:1110(varname) -msgid "%s" -msgstr "" - -#: Thunar.xml:1112(para) -msgid "The desired size of the generated thumbnail in pixels. This parameter is optional." -msgstr "" - -#: Thunar.xml:1117(varname) -msgid "%u" -msgstr "" - -#: Thunar.xml:1119(para) -msgid "Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with GNOME." -msgstr "" - -#: Thunar.xml:1125(varname) -msgid "%%" -msgstr "" - -#: Thunar.xml:1127(para) -msgid "Will be substituted with a single %." -msgstr "" - -#: Thunar.xml:1132(para) -msgid "You need to include atleast %o and %i or %u, otherwise your thumbnailer will be useless." -msgstr "" - -#: Thunar.xml:1137(para) -msgid "The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews." -msgstr "" - -#: Thunar.xml:1143(title) -msgid "Example EPS Thumbnailer" -msgstr "" - -#: Thunar.xml:1145(para) -msgid "This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes convert to generate a thumbnail at the requested size." -msgstr "" - -#: Thunar.xml:1151(programlisting) -#, no-wrap -msgid "" -"\n" -"#!/bin/sh\n" -"#\n" -"# eps-thumbnailer - Example thumbnailer script for EPS files.\n" -"#\n" -"# Usage: esp-thumbnailer eps-file png-file size\n" -"#\n" -"\n" -"# command line parameters\n" -"ifile=$1\n" -"ofile=$2\n" -"size=$3\n" -"\n" -"# invoke convert (ImageMagick)\n" -"exec convert \"eps:$ifile\" -scale \"$sizex$size\" \"png:$ofile\"" -msgstr "" - -#: Thunar.xml:1167(para) -msgid "Save this script above to a file eps-thumbnailer, make sure the file is executable and install it to /usr/local/bin." -msgstr "" - -#: Thunar.xml:1172(screen) -#, no-wrap -msgid "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" -msgstr "" -"\n" -"$ chmod +x eps-thumbnailer\n" -"$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer" - -#: Thunar.xml:1176(para) -msgid "Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this:" -msgstr "" - -#: Thunar.xml:1180(programlisting) -#, no-wrap -msgid "" -"\n" -"[Desktop Entry]\n" -"Version=1.0\n" -"Encoding=UTF-8\n" -"Type=X-Thumbnailer\n" -"Name=EPS Thumbnailer\n" -"TryExec=convert\n" -"MimeType=image/x-eps;\n" -"X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s" -msgstr "" - -#: Thunar.xml:1190(para) -msgid "This file must be installed to /usr/local/share/thumbnailers (create the folder if it does not exists)." -msgstr "" - -#: Thunar.xml:1195(screen) -#, no-wrap -msgid "" -"\n" -"$ sudo install -d /usr/local/share/thumbnailers\n" -"$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop" -msgstr "" - -#: Thunar.xml:1199(para) -msgid "The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if the convert utility is not present." -msgstr "" - -#: Thunar.xml:1205(para) -msgid "The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed in the libexec subfolder of your installation prefix (sbin on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as follows:" -msgstr "" - -#: Thunar.xml:1216(screen) -#, no-wrap -msgid "$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1" -msgstr "" - -#: Thunar.xml:1218(para) -msgid "But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in your home folder, rather than a system wide location." -msgstr "" - -#: Thunar.xml:1223(para) -msgid "Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using" -msgstr "" - -#: Thunar.xml:1229(screen) -#, no-wrap -msgid "$ Thunar -q" -msgstr "$ Thunar -q" - -#: Thunar.xml:1231(para) -msgid "to terminate any running instance, and afterwards restart it from your launcher." -msgstr "" - -#: Thunar.xml:1237(title) -msgid "Cleaning up Thumbnails" -msgstr "" - -#: Thunar.xml:1239(para) -msgid "The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new thumbnailer, it might help to clean up the thumbnail cache using" -msgstr "" - -#: Thunar.xml:1245(screen) -#, no-wrap -msgid "$ rm -rf ~/.thumbnails/" -msgstr "$ rm -rf ~/.thumbnails/" - -#: Thunar.xml:1247(para) -msgid "which will also give you some free space in your home folder. Since all the information stored within this folder was automatically generated from files in your file system, you will not loose any sensitive data." -msgstr "" - -#: Thunar.xml:1257(title) -msgid "Advanced Topics" -msgstr "進階內容" - -#: Thunar.xml:1261(title) -msgid "To Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1263(para) -msgid "To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast one of the files. Thunar includes a bulk renamer, which can be run separately using the command Thunar -B or from within Thunar by selecting two or more files in the main area and pressing F2 or choosing EditRename... from the main menu." -msgstr "" - -#: Thunar.xml:1278(phrase) -msgid "Bulk Rename Files" -msgstr "" - -#: Thunar.xml:1283(para) -msgid "The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the name and the suffix of the files. Thunar currently supports the following Bulk Renamers:" -msgstr "" - -#: Thunar.xml:1290(para) -msgid "Remove characters." -msgstr "移除字元。" - -#: Thunar.xml:1291(para) -#, fuzzy -msgid "Numbering files." -msgstr "將檔案編號。" - -#: Thunar.xml:1292(para) -msgid "Insert Date or Time." -msgstr "插入日期或時間。" - -#: Thunar.xml:1293(para) -msgid "Insert or overwrite characters." -msgstr "插入或覆寫字元。" - -#: Thunar.xml:1294(para) -msgid "Search and replace characters." -msgstr "搜尋並取代字元。" - -#: Thunar.xml:1295(para) -msgid "Convert to uppercase, lowercase or camlcase." -msgstr "轉換為大寫、小寫或駱駝式寫法。" - -#: Thunar.xml:1298(para) -msgid "Additional Bulk Renamers may be installed as plugins for Thunar. Check the Thunar Plugins website for currently available extensions. The Thunar Project Wiki contains further details about this feature. Feel free to add more information to the Wiki." -msgstr "" - -#: Thunar.xml:1308(title) -msgid "The UNIX File System" -msgstr " UNIX 檔案系統" - -#: Thunar.xml:1310(para) -msgid "While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all incarnations of UNIX, including Linux." -msgstr "既然 Thunar 檔案管理員已經幫您把使用檔案的瑣碎細節給處理好了,一般使用者其實可以不必管這些細節的東西。不過稍微了解一下整體性的觀點,有時候對您也會十分有用的哦。本章節將會初淺地介紹 UNIX 檔案系統的基本概念,這些概念在每一種 UNIX 上都可以套用,當然也包括了 Linux。" - -#: Thunar.xml:1318(title) -msgid "Folders and Paths" -msgstr "檔案與路徑" - -#: Thunar.xml:1320(para) -msgid "In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down from a single top level folder, which is called the root directory (the term directory is often used instead of folder) and displayed as File System in Thunar. This means that you can get from any folder to any other by going up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach your target." -msgstr "在 UNIX 檔案系統中,所有的資料夾都可以像摸藤找地瓜一樣 ;匯歸到同一個最初始的源頭目錄。這一個目錄,我們叫它 根目錄 (我們比較常用 目錄 這個字眼而不是用資料夾) 而在 Thunar 裡則是顯示為檔案系統 。這表示在開枝散葉的樹狀結構中,您可以很有條理地在各個資料夾裡層層往上推,最後都是殊途同歸;然後再來清楚地往下尋找您想要找到的資料夾,一切都有條不紊。" - -#: Thunar.xml:1329(para) -msgid "The position of any file or folder in the tree can be described by its path. The path is the list of folders you would have to descend through to get to the target folder or file, starting from the top level folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The leading / in these paths represents the top level folder." -msgstr "在系統裡任何檔案或資料夾的位置都能用所謂的路徑 來描述。 路徑會以根目錄為起始,條列出您指定的檔案或資料夾的精確位置。舉個例子來看: /home/luke 就是表示從根目錄算起,luke 是位於 home 底下的子目錄,而/home/luke/myfile.txt 表示檔案 myfile.txt 就放在子目錄裡。最前面的反斜線 / 就是代表根目錄的意思。" - -#: Thunar.xml:1338(para) -msgid "Every user has their own folder to hold their personal files and settings. This folder is called the home directory and is displayed in Thunar as special icon with the users login name. The folder is similar to the My Files folder known from Windows. The home directories of the various users in a system are usually located below the /home folder. For example /home/luke would be the home directory of the user with the login name luke, while /home/jane would be the home directory for the user with the login name jane." -msgstr "每位使用者都擁有自己的目錄以置放自己的檔案和相關的設定。這個目錄稱為家目錄 ,您在 Thunar 工具列上會看到一個標示著您登入帳號的特別小圖示。這個目錄有點類似您在 Windows 底下常看到的 我的文件夾。 系統使用者的家目錄 通常是被放在 /home 這個目錄底下。比如說 /home/luke 這個目錄就是登入帳號為 luke這個用戶的家目錄。同樣地 /home/jane也就是登入帳號為jane這個使用者的家目錄。" - -#: Thunar.xml:1350(title) -msgid "File Types" -msgstr "檔案類型" - -#: Thunar.xml:1352(para) -msgid "You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other operating systems had to introduce new concepts for every new technology." -msgstr "也許您有聽說在 UNIX 底下任何東西都是「檔案」, 時至今日 UNIX 的本色依然如此。事實上就連硬體設備也被當作特別的「檔案」。或許乍聽之下會有點奇怪,這卻正是 Unix 具有韌性和延展性的強項之一。如此安排讓 Unix 數十年來不管面對怎樣的新科技,核心架構依然單純合理。不像其他的作業系統需要不斷花時間更改它們的架構內容才有辦法跟上時代。" - -#: Thunar.xml:1359(para) -msgid "These are the four most important types of files in the UNIX file system." -msgstr "在 UNIX 系統中,有四種最重要的檔案類型您不可不知。" - -#: Thunar.xml:1364(title) -msgid "Ordinary Files" -msgstr "實質檔案" - -#: Thunar.xml:1366(para) -msgid "An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents and video files. The term file is often used to refer to an ordinary file." -msgstr "實質檔案的定義包含文字、程式、或其它具體的資料。像是影像檔、音訊檔、辦公文件、影片檔等這些常見的東西。一般我們講的 檔案 其實就是在說這些實質檔案。" - -#: Thunar.xml:1373(title) -msgid "Folder Files" -msgstr "目錄檔" - -#: Thunar.xml:1375(para) -msgid "Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a mapping of file names to file references for every file contained within this folder." -msgstr "資料夾在 UNIX 裡也是一種檔案。我們要把它視作一種特殊檔案,主要的功用在於儲存資料夾中每個實質檔案依照其檔名所產生的對應關係並且處理和安置這些關聯性。" - -#: Thunar.xml:1382(title) -msgid "Symbolic Link Files" -msgstr "符號連結檔" - -#: Thunar.xml:1384(para) -msgid "A Symbolic link (often called a symlink) is a special file that contains a path to another file in the file system. Symbolic link files therefore do not contain any useful information themselves, but just refer to other files." -msgstr "符號連結 (常被稱為 symlink) 是一種特殊的檔案,內含檔案系統上另一個檔案的路徑。符號連結檔案除了指向其它檔案以外,本身並未包含太多有用的資訊。" - -#: Thunar.xml:1392(title) -msgid "Device Files" -msgstr "裝置檔" - -#: Thunar.xml:1394(para) -msgid "As mentioned earlier (most) devices are also accessed through the file system. These special device files are usually located in the /dev folder. For example the special file /dev/hda represents the first IDE disk on Linux." -msgstr "前面提到既然硬體是「檔案」,它們當然也位於檔案系統之中。這些特殊的「硬體檔」通常都擺在 /dev 這個資料夾。比方說「硬體檔」 /dev/hda 就代表您的Linux 裡頭第一顆(a) IDE 硬碟(hd)。" - -#: Thunar.xml:1406(title) -msgid "Frequently Asked Questions" -msgstr "常見問題集" - -#: Thunar.xml:1408(para) -msgid "The intent of this section is to collect the quite numerous frequently asked questions that relate to working with Thunar. If you know of a question that is missing from this page, please file a request." -msgstr "以下章節的內容,是我們在各方搜集整理當您在使用 Thunar 時,可能會遇上的常見狀況及其簡易解答。如果您知道一些有用的問題卻沒列在裡頭,請經由 file a request告訴我們。" - -#: Thunar.xml:1417(title) -msgid "Why doesn't Thunar execute files marked as executable?" -msgstr "在 Thunar 裡頭看到的可執行檔為什麼不能執行?" - -#: Thunar.xml:1419(para) -msgid "For security reasons Thunar only executes files of type application/x-desktop, application/x-executable and application/x-shellscript. For desktop files the execution feature will only be enabled if the desktop file is of type Application and a valid Exec line is given or of type Link and a valid URL is given. For the other types the feature is available if the file is marked executable for the current user." -msgstr "為了系統安全 Thunar 只能夠執行 application/x-desktopapplication/x-executable 還有application/x-shellscript這幾種執行檔。放在桌面上的程式圖示除非在Application這欄有設定並且有標明 Exec 這一行否則無法執行,此外像 Link(連結) 這種桌面圖示沒有輸入正確的 URL (網址)的話也會執行失敗。其他類型的執行檔除非目前的使用者有為它們加上可執行的內容屬性,不然也是不會動的。" - -#: Thunar.xml:1428(para) -msgid "Also note that for application/x-executable and application/x-shellscript, the types of the file don't really need to match these types exactly, but it is suffice if the detected type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for one of the above." -msgstr "另外也要注意屬於 application/x-executable 以及 application/x-shellscript的執行檔。這些類型的程式碼不需要真的符合內建對應的檔案類型就能執行。只要執行檔的父程序符合上述兩種執行檔之一,或者其 MIME-類型是上述執行檔類型的別名的話,就能夠被執行。" - -#: Thunar.xml:1437(title) -msgid "Where does Thunar store the metadata associated with files?" -msgstr "Thunar 都把設定檔案關聯類型的資料放在哪裡呢?" - -#: Thunar.xml:1439(para) -msgid "Thunar associates various settings with files/folders, which we call metadata. This metadata for all files is stored in tdb database file, which is called the metafile. The database file is stored in $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined using the tdbtool, which is part of the Thunar distribution (located in the tdb/ subdirectory)." -msgstr "Thunar 能夠處理許多類型的檔案與資料夾,全靠我們叫作元始資料的法寶。這種聯繫所有檔案類型的元始資料是以 tdb 資料庫型式儲存的,而這個資料庫檔又稱為元始檔案(metafile)。儲存的檔案放在 $XDG_CACHE_HOME/Thunar/metafile.tdb 這裡,您可以用tdbtool來檢查一下,在 Thunar 公布的原始碼中附有這個工具。(放在原始碼解開後的 tdb/ 子目錄裡)。" - -#: Thunar.xml:1450(title) -msgid "Where does Thunar store its preferences?" -msgstr "請問 Thunar 的功能設定放在哪裡呢?" - -#: Thunar.xml:1452(para) -msgid "Thunar stores the user configurable preferences (and hidden settings) in an .ini file, which is located at $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined using a text editor. See docs/README.thunarrc for an overview of the various preferences." -msgstr "Thunar 將可供使用者調整的設定 (以及隱藏的設定值) 放在一個 .ini 檔案中,它位於 $XDG_CONFIG_HOME/Thunar/thunarrc 這個檔案裡頭,您可以使用文字編輯器來直接加以修改。請參考 docs/README.thunarrc 說明檔案以便認識這些設定選項。" - -#: Thunar.xml:1462(title) -msgid "How to use mouse gestures in Thunar?" -msgstr "要怎麼在 Thunar 裡頭使用滑鼠手勢?" - -#: Thunar.xml:1464(para) -msgid "Thunar currently features basic support for so called mouse gestures in its icon view. You can use these mouse gestures by holding down the middle mouse button (usually the mouse wheel) while the mouse pointer is on the background area of the icon view component (any area that is not covered by an icon or a text). Now you can move the cursor into four directions to perform certain actions, which are described below." -msgstr "Thunar 現在使用圖示檢視模式時可以玩到一種叫作滑鼠手勢 的新功能。要使用滑鼠手勢 您需要按住滑鼠中鍵 (也就是滾輪的地方) 不放,然後在檔案總管空白的地方就會出現之前沒看過的箭頭游標 (請注意不要點到任何檔案圖示或文字)。 現在您可以上下左右動動看這個游標,我們將為您說明指到這四個方向有什麼作用。" - -#: Thunar.xml:1474(guilabel) -msgid "Left" -msgstr "向左" - -#: Thunar.xml:1474(member) -msgid " - opens the previous visited folder" -msgstr " - 回去前一個目錄" - -#: Thunar.xml:1475(guilabel) -msgid "Up" -msgstr "往上" - -#: Thunar.xml:1475(member) -msgid " - opens the parent folder" -msgstr " - 跳到往上一層的目錄" - -#: Thunar.xml:1476(guilabel) -msgid "Right" -msgstr "向右" - -#: Thunar.xml:1476(member) -msgid " - opens the next visited folder" -msgstr " - 跳到往後一個目錄" - -#: Thunar.xml:1477(guilabel) -msgid "Down" -msgstr "往下" - -#: Thunar.xml:1477(member) -msgid " - reloads the current folder" -msgstr " - 重新整理現在這個目錄" - -#: Thunar.xml:1482(title) -msgid "How do I assign different keyboard shortcuts?" -msgstr "我要怎樣才能改成我想要的快速鍵?" - -#: Thunar.xml:1484(para) -msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to." -msgstr "如果您想要更改快速鍵,Thunar 支援標準的 GTK+ 行為方便您改動快速鍵:只要將滑鼠游標指到程式選單中您可以反白的操作選項那裡,然後馬上按下您想要的快速鍵組合就行了。" - -#: Thunar.xml:1490(para) -msgid "To delete a keyboard assignment, press the Backspace key while you are on the menu entry." -msgstr "要消除您不想要的快速鍵,同樣也是滑鼠擺到程式選單可以反白的操作選項那裡然後按下消去鍵( Backspace )即可。" - -#: Thunar.xml:1495(para) -msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:" -msgstr "如果設定的快速鍵沒有更動,那麼您需要自行啟用 GTK+ 的這個好用之處。有3種方法可以幫您做到:" - -#: Thunar.xml:1502(para) -msgid "If you are running Xfce 4.3 or above then you can enable Editable menu accelerators in the User Interface Preferences dialog." -msgstr "如果您有執行 Xfce 4.3 或更新的版本,請在使用者介面自定 設定中心的地方勾選 自定程式選單功能 選項即可。" - -#: Thunar.xml:1510(para) -msgid "If you are running GNOME then you can enable Editable menu accelerators in the Menu and Toolbars control center dialog." -msgstr "如果您在執行 GNOME 桌面,則在控制台中 選單及工具列 的地方勾選 自定程式選單功能 。" - -#: Thunar.xml:1518(para) -msgid "Otherwise put the following in your ~/.gtkrc-2.0 file (create the file if it doesn't exist):gtk-can-change-accels=1" -msgstr "最後手段就是在您的 ~/.gtkrc-2.0 設定檔(沒有的話請自行建立)裡加上這一段 :gtk-can-change-accels=1" - -#: Thunar.xml:1527(title) -msgid "Where does Thunar store the keyboard shortcuts?" -msgstr "那麼 Thunar 是把快速鍵的設定放在哪裡呢?" - -#: Thunar.xml:1529(para) -msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting with ; are comments. See the GTK+ documentation for details about the file format." -msgstr "自定的快速鍵會存成標準的 GTK+ accel 對映格式然後擺在 $XDG_CONFIG_HOME/Thunar/accels.scm這個檔案裡。您若看到每行最前面有 ; 就是註解停用的。請參考 GTK+ 文件以便深入了解這種檔案格式的細節。" - -#: Thunar.xml:1536(para) -msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg is part of $XDG_CONFIG_DIRS (the default for most Linux distributions), you can install system wide defaults to /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup." -msgstr "如果您是軟體包裝人員或是系統管理員,那麼也許會想要提供一組全域適用的預設快速鍵,而不是採用Thunar 原始碼中提供的設定。您可以建立像 Thunar/accels.scm 的檔案,放在 $XDG_CONFIG_DIRS 的資料夾裡。舉例來說,如果 /etc/xdg 屬於 $XDG_CONFIG_DIRS (大多數 Linux 套件的預設路徑)的話,您就可以把全域使用的快速鍵放在/etc/xdg/Thunar/accels.scm這邊。Thunar 在初次啟動時就會載入這裡的快速鍵設定。" - -#: Thunar.xml:1549(title) -msgid "Support" -msgstr "程式支援" - -#: Thunar.xml:1551(para) -msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:" -msgstr "對這份手冊以及介紹的程式若發現錯誤或有其他建議,請用錯誤回報系統http://bugzilla.xfce.org/告訴我們。一份描述妥當的錯誤回報,能夠加快我們改善的進度。而妥當的回報主要有兩項重點:" - -#: Thunar.xml:1559(para) -msgid "Reproducible. If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps." -msgstr "出錯屢試不爽。如果開發人員在他那邊沒有辦法重現出錯的步驟,也就無從得知如何修理了。請儘量提供您如何操作時的細節。" - -#: Thunar.xml:1566(para) -msgid "Specific. The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." -msgstr "軟硬體環境 The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it." - -#: Thunar.xml:1573(para) -msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file HACKING - especially the section labeled Coding Style - before you start hacking up the source." -msgstr "如果您想要下一版能加入一些新功能,請清楚地跟我們講為何加入的功能可以讓程式更好用。假若您提出的新功能真地讓我們覺得夠好夠讚非加不可,下一版的程式可能就會有哦。懂得修改程式的您如果能夠提供實作新功能的 patch ,那麼下一版會出現的機會就更大了。不過請先閱讀網站上的 HACKING 說明 - 尤其是 Coding Style 這一節 - 這樣合作起來才會更愉快哦。" - -#: Thunar.xml:1583(para) -msgid "Else, if you have questions about the use or installation of this software, please ask on the thunar-dev mailing list or point your IRC client to irc.freenode.net, join the channel #thunar and ask for help." -msgstr "最後,如果您在使用或安裝本軟體時有什麼問題,請洽詢 thunar-dev mailing list ,或是使用 IRC 聊天軟體連上 irc.freenode.net,加入我們的頻道 #thunar ,裡面會有熱心的人幫您。" - -#: Thunar.xml:1592(title) -msgid "About @PACKAGE_NAME@" -msgstr "關於 @PACKAGE_NAME@" - -#: Thunar.xml:1594(para) -msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (benny@xfce.org). Visit the Thunar website for more information." -msgstr "@PACKAGE_NAME@ 是由 Benedikt Meurer (benny@xfce.org)所撰寫。請造訪 Thunar 網站以獲得更多資訊。" - -#: Thunar.xml:1599(para) -msgid "This documentation was written by Benedikt Meurer (benny@xfce.org). The latest version of this document is always available from the Thunar website." -msgstr "本文件撰寫人為 Benedikt Meurer (benny@xfce.org)。最新版本的文件內容可自這裡 Thunar website取得。" - -#: Thunar.xml:1605(para) -msgid "This software is distributed 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." -msgstr "本軟體依自由軟體基金會所訂立的 GNU General Public License 授權條款散布;乃依該授權條款的 2 版為基準,(如您有意願) 亦准許採用其後續版本。" - -#: Thunar.xml:1611(para) -msgid "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." -msgstr "本軟體應有隨附一份 GNU General Public License 授權條款; 如果您沒有找到,請來信告知 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 -#: Thunar.xml:0(None) -msgid "translator-credits" -msgstr "Cosmo Chene , 2006.Cheng-Chia Tseng , 2010" - diff -Nru thunar-1.2.3/docs/manual/thunar.css thunar-1.6.10/docs/manual/thunar.css --- thunar-1.2.3/docs/manual/thunar.css 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/docs/manual/thunar.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ -body address -{ - line-height: 1.3; - margin: .6em 0; -} - -body blockquote -{ - margin-top: .75em; - line-height: 1.5; - margin-bottom: .75em; -} - -html body -{ - margin: 1em 8% 1em 10%; - line-height: 1.2; - background-color: #ffffff; -} - -body pre -{ - margin: .75em 0; - line-height: 1.3; - color: #4f3f3f; - font-weight: bold; -} - -body div -{ - margin: 0; -} - -dl -{ - margin: .8em 0; - line-height: 1.2; -} - -.legalnotice -{ - font-size: small; - font-variant: small-caps; -} - -h1,h2,h3,h4,h5,h6, -div.example p b, -.question, -div.table p b, -div.procedure p b -{ - color: #990000; -} - -.option -{ - color: #0000ca; - font-weight: bold; -} - -.parameter -{ - color: #007a00; - font-weight: bold; -} - -a -{ - color: #000000; -} - -a:hover -{ - color: #3c3c3c; - border-bottom: 1px dotted #dc0000; -} - -hr -{ - background-color: #9c9c9c; - border-style: none; - height: 1px; -} - -ul li -{ - list-style-type: square; -} - -.programlisting, .screen -{ - background-color: #F8F9FD; - border-color: #907777; - border-width: 1px; - border-style: solid; - padding: 0.5em; -} - -/* vim:set ts=2 sw=2 et ai: */ diff -Nru thunar-1.2.3/docs/manual/Thunar-html.xsl thunar-1.6.10/docs/manual/Thunar-html.xsl --- thunar-1.2.3/docs/manual/Thunar-html.xsl 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/docs/manual/Thunar-html.xsl 1970-01-01 00:00:00.000000000 +0000 @@ -1,254 +0,0 @@ - - - - - - - - - - - - - - - - -1 - - - -
- -
-
-
- - -0 - - - text-align: left; - -stylesheet-images/ - -.gif - - - - - - - - #fdf9f8 - 0 - 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100% - - - - - 0 - - - 0 - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - 100% - - - - - - - - - - - - - - - - - - - - - - - - No convertLength function available. - - - - - - - - - - - - - - - - - - - - - - - No adjustColumnWidths function available. - - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
- diff -Nru thunar-1.2.3/docs/manual/Thunar.xml thunar-1.6.10/docs/manual/Thunar.xml --- thunar-1.2.3/docs/manual/Thunar.xml 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/docs/manual/Thunar.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,1622 +0,0 @@ - - - - -]> -
- - - - Thunar File Manager - - &date; - - - 2004 - 2005 - 2006 - 2007 - Benedikt Meurer - - - - - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 or - any later version published by the Free Software Foundation; with no - Invariant Sections, with no Front-Cover Texts, and with no Back-Cover - Texts. The complete license text is available from the Free Software Foundation. - - - - - - Benedikt - Meurer - - Software developer - os-cillation - System development -
benny@xfce.org
-
-
-
- - - This manual describes version &version; of &application;. - -
- - - Introduction to &application; - - - Thunar is a new modern file manager for the Xfce Desktop Environment. Thunar has been designed from the ground up to - be fast and easy-to-use. Its user interface is clean and intuitive, and does not include any confusing or useless - options by default. Thunar is fast and responsive with a good start up time and folder load time. - - - - The Thunar file manager thereby provides an integrated access point to your files and applications. You can use the - file manager to do the following: - - - - Create folders and documents. - Display your files and folders. - Manage your files and folders. - Run and manage custom actions. - Access Removable Media. - - - - - - The File Manager Window - - - By default the file manager window consists of a shortcut pane on the left side, the main area on the right - and a pathbar above the main area. - - - - - - - - - - File Manager Window - - - - - - The Shortcut Pane provides shortcuts to different folders on your system. The first - shortcut will lead to your Home Folder, the folder you store all your personal data, - and will therefore have the name of the current user. The second shortcut will take you to the trash bin, - which stores deleted files that can be recovered later. The third shortcut takes you to the Desktop - Folder, which contains the files and folders that are displayed on the desktop. The fourth - shortcut will take you to the root of your file system - you may want to explore it a bit, even though - it may be confusing to you if you are new to Linux/Unix. Just click on the different folders and see what is - inside. - - - - Below the File System shortcut, the removable drives and media will be displayed. In - the screenshot above, you can see a Floppy Drive shortcut. Click on these shortcuts - to access the data stored on the removable drives and media. See - for further details. - - - - The remaining shortcuts are user defined. Add your own shortcuts by simply dragging folders to the - Shortcuts Pane. This will allow you to access important folders instantly. To - remove a previously added shortcut, right-click on the shortcut and choose Remove Shortcut. - To rename a previously added shortcut, right-click on the shortcut and choose Rename Shortcut. - Note that these actions affect only the shortcut, not the folder referenced by the shortcuts. - - - - The main area will always display the contents of the current folder. Double click on - folders to enter them, and right-click on files or folders to get a context-menu offering some choices of - what to do with it. Select multiple files by dragging a rectangle over them with the mouse. Alternatively, - select one file, hold down the Shift key, and increase or decrease the selection using - the arrow keys. - - - - The pathbar will always show the path you took to get to the folder you are currently - at. You can click on any pathbar button to change to the folder it represents. Right-click on a pathbar - button to bring up a context-menu with some options. - - - - - Customizing the Appearance - - - There are many ways to customize the appearance of the file manager windows. In case you do not like the - way the icons are displayed, choose ViewView as Detailed List - from the main menu to have the contents of the current folder displayed as a list. - - - - You can have the file manager windows display a location bar instead of the pathbar by choosing - ViewLocation SelectorToolbar Style - from the main menu. - - - - In case you prefer a treeview in the left pane, choose - ViewSide PaneTree - from the main menu. - - - - Visible Columns in the Detailed List View - - - If you prefer to display the contents of the folder as a list, using the Detailed List View, you can - customize the columns displayed in the list view. To customize the visible columns, choose - ViewConfigure Columns... from the main menu. - - - - - - - - - - Visible Columns - - - - - - - Visible Columns - - - Select the columns you want to be displayed from the list of available columns. Click Move Up - or Move Down to change the order of the columns. Click Use Default to - revert your changes. - - - - - - Column Sizing - - - Select the option Automatically expand columns as needed if you want the list view columns - to expand automatically if the needed to ensure the text is fully visible. - - - - - - - - - - - Working with Files and Folders - - - - Opening Files - - - When you open a file, the file manager performs the default action for that file type. For example, opening a text file - will display it in the default text editor, while opening an image file will display the image in the default image - viewer. - - - - The file manager checks the extension of a file to determine the type of a file. If the file has no known extension, the - file manager examines the contents of the file. - - - - Executing the Default Action - - - To execute the default for a file, double-click on the file. For example, the default action for audio files is to - play the it with the default music playing application. In this case, you can double-click on the file to open the - file in the music player. - - - - You can set Thunar preferences so that you click once on a file to execute the default - action. For information, see . - - - - - Executing Non-Default Actions - - - To execute actions other than the default action for a file, select the file that you want to perform an action on. - Choose the desired action from the Open With choices available in File menu - or an Open With submenu. - - - - - Adding Actions - - - To add actions associated with a file type, perform the following steps: - - - - - - In the main area, select a file of the type to which you want to add an action. - - - - - Choose FileOpen With Other Application... - from the main menu. - - - - - Either choose an application in the Open With dialog or select Use a custom command - and browse to the program with which you wish to open this type. - - - - - - The action you have chosen is now added to the list of actions for that particular file type. If you enabled the - Use as default for this kind of file option or there was no prior action associated with the - type, the newly added action is the default. - - - - You may also add actions using the Open With button under - FileProperties.... - - - - - Modifying Actions - - - To modify the actions associated with a file or file type, perform the following steps: - - - - - - In the main area, select a file of the type for which you want to modify the action. - - - - - Choose FileProperties... from the main menu. - - - - - Select the new default action using the Open With button or add a new action by choosing - Open With Other Application... from the drop down menu. - - - - - - To remove a previously added action for a file type, bring up the Open With dialog as described - above, right-click the action you want to remove and choose Remove Launcher. - - - - - - - File Properties - - - The file properties window shows more information about any file or folder in the file manager. With this window, you can also - do the following: - - - - - - Change the icon for special files, such as application launchers and URL links. - - - - - Add or remove emblems for a file or folder. - - - - - Change the UNIX file permissions for a file or folder. - - - - - Choose which application is used to open a file and other files of the same type. - - - - - - - - - - - - File Properties - - - - - - To open the file properties window, perform the following steps: - - - - - - Select the file or folder whose properties you want to examine or change. You cannot - select multiple items at once and display the properties that are in common to all - items currently. - - - - - Do one of the following: - - - Choose FileProperties... from the main menu. - - - Right-click the selected item and choose Properties... from the context menu. - - - Press AltReturn. - - - - - - - - - - - Using Removable Media - - - Accessing Removable Media - - - Thunar supports removable media if it was built with support for HAL, - or if you are using FreeBSD. Note however that on FreeBSD 6.0 or newer, it is - suggested to use HAL rather than the native support provided by Thunar. - - - - To Mount Media - - - To mount media is to make the file system of the media available for access. When you mount media, the - file system of the media is attached as a subdirectory to your file system. - - - - To access media, insert the media in the appropriate device, or connect the new device to your computer (i.e. connect an USB - stick to one of your USB ports). An object that represents the media is added to the side pane of the file manager. If - xfdesktop is running and configured to display File/launcher icons this - object will also be added to your desktop. - - - - To actually mount the media, click on the object that represents the media. For example, to mount a floppy diskette, - click on the Floppy Drive object in the side pane. The file manager will now add the file system - of the media to your file system hierarchy and display the contents of the floppy diskette in the main area. - - - - - To Eject Media - - - If the drive for the media is a motorized drive (i.e. a CD-ROM drive), right-click on the media object in the side pane - or on the desktop and choose Eject Volume. The media is ejected from the drive after a few seconds. - If the drive for the media is not motorized (i.e. a floppy drive or an USB stick), right-click on the media object and - choose Unmount Volume. After a short period of time, a notification will appear to inform you - that it is now safe to remove the media or disconnect the drive from the computer. - - - - - - - - - - Unmount notification - - - - - - However this notification will only be displayed if support for libnotify is enabled, - and you have installed a notification daemon. A notification daemon for Xfce is available from the Xfce Goodies Project. - If notification support is not available, wait until the context menu disappears before you remove the media or disconnect - the drive. - - - - Be aware that you cannot eject or unmount media that is still in use by one or more applications. Therefore if the file - manager refuses to eject media, make sure you close all applications that were accessing the media, and be sure to also - check command line applications running in Terminal windows. - - - - Make sure to unmount removable media before ejecting. Do not eject a diskette from the floppy drive before your unmount - the diskette. Do not remove an USB stick before you unmount the flash drive. If you do not unmount the media first you - might lose data or cause your system to crash. - - - - - - Management of Removable Drives and Media - - - Thunar is also able to automatically manage removable drives and media if the thunar-volman package is installed on - your system. Note however that this feature requires HAL support. - - - - Now, if HAL support is available and thunar-volman is installed on your system, you - can choose to enable the Volume Management feature of Thunar. Therefore, open the file - manager preferences, go to the Advanced page and check the Enable Volume - Management button. - - - - The next step is to customize the management of removable drives and media to your needs. Click on the - Configure link in the Volume Management section, right below - the button. The Removable Drives and Media configuration dialog will be displayed. - - - - - - - - - - Removable Drives and Media - - - - - - If you have used the gnome-volume-manager previously, you should feel right at - home, because it was designed to look and behave similar to gnome-volume-manager. - The preferences are divided by device categories to make it easy to locate the option for you specific - device. - - - - The Storage page contains the most important options. As the name suggests these - options apply only to storage devices like external harddisk drives, USB sticks and CD-ROMs. The - Removable Storage options are described in detail below. - - - - - Mount removable drives when hot-plugged - - - Enable this option to automatically mount file systems on removable drives (i.e. external harddisk drives - or USB sticks) when such drives are plugged into the computer. - - - This option must be enabled for certain other features to work with removable drives. For example, - if you disable this option, certain kinds of portable music players cannot be detected any more and - so, even if you enabled the Play music files when connected option on the - Multimedia page, the specified command will not be run when you hot-plug your - portable music player. - - - - - - Mount removable media when inserted - - - Enable this option to automatically mount file systems on removable media (i.e. CD-ROMs or DVDs) - when you insert the media into the drive. - - - This option must be enabled for certain other features to work with removable media. For example, - if you disable this option, it is impossible to detect whether the removable media has auto-run - capabilities, and so the Auto-run programs on new drives and media option - has no effect for removable media. - - - - - - Browse removable media when inserted - - - Enable this option to automatically display the content of newly inserted media in the file manager. - Note however, that the contents will only be displayed if no other action was possible or you - choose to ignore the other possible actions. For example, if you insert a CD-ROM with auto-run - capabilities and the Auto-run programs on new drives and media option is - enabled, you will be prompted whether you want to allow or ignore the auto-run. If you choose - to ignore the auto-run the contents will be displayed in the file manager. - - - - - - Auto-run programs on new drives and media - - - Enable this option to make use of auto-run capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-run mechanism. To enhance security, - you will always be prompted to confirm the auto-run. - - - If the Windows emulator WINE is installed on your - system, the auto-run mechanism will also try to run autorun.exe files using WINE. - - - - - - Auto-open files on new drives and media - - - Enable this option to make of auto-open capabilities of certain removable drives and media. See - the Desktop - Application Autostart Specification for details about the auto-open mechanism. To enhance security, - you will always be prompted to confirm the auto-open. - - - - - - - The remaining options allow you to specify a command to run when a certain kind of media is inserted into a drive - or a certain kind of external device is connected. The command can use three special variables, that will be - substituted when the command is run: - - - - - %d - - - Each appearance of %d in the command will be substituted with the device file path of - the newly added device. For example, if you have plugged in an USB stick, the device file path will be - /dev/da0s1 or /dev/sda1. - - - If no device file is associated with the device or the device file could not be found for some reason, - the variable %d will be substituted with the empty string. - - - - - - %h - - - Each appearance of %h in the command will be substituted with the HAL UDI of the newly - added device. - - - - - - %m - - - Each appearance of %m in the command will be substituted with the mount point where - the newly added device was mounted. If the device cannot be mounted (for example printers or keyboards) - or if the automatic mounting was disabled, %m will be substituted with the empty - string. - - - - - - - Troubleshooting the Volume Manager - - - Useful tips to trouble shoot the volume manager in case it does not work as expected. - - - - - - Make sure Thunar is running as daemon. The volume manager depends - on this, as it is not a daemon by itself. By default, Xfce - automatically spawns Thunar as daemon on startup. If it got killed - for some reason, open the Run program (using the keyboard shortcut - AltF2 or right-click on the desktop - and choose Run Program... from the desktop menu), enter Thunar - --daemon and click Run. - - - - - - Try running thunar-volman from a Terminal - window after hot-plugging the drive or inserting the media. First, you need to figure out the - HAL UDI of the new device using lshal or hal-device. - Once you know the UDI, run thunar-volman --device-added <udi-of-your-device> in - a Terminal window and watch the output for errors or warnings. - - - - - - If it still refuses to work, ask on the Xfce Forum or - the thunar-dev mailing list - for help. - - - - - - - - File Management Preferences - - - Use the File Manager Preferences dialog to set your Thunar file manager - preferences. To open the preferences dialog, choose EditPreferences... - from the menu bar, or click on the File Manager button in the Xfce Settings Manager. - - - - The File Manager Preferences dialog is divided into four pages with different options, each described in - a separate section below. Basically you can set preferences in the following categories: - - - - The default settings for the views. - The default settings for the side pane. - The behavior of the file manager windows. - Advanced features of the file manager. - - - - Thunar also supports a bunch of so-called Hidden Options, which control several advanced features of the - file manager, but are not included in the preferences in order to keep the preferences dialog simple. The README.thunarrc file that - is included with the Thunar distribution describes all available options in detail. - - - - - Views Preferences - - - You can specify a default view, select sort options and display options. You can - also specify whether thumbnails should be displayed for file types that support - this. - - - - - - - - - - Views Preferences - - - - - - - View new folder using - - - Select the default view for folders. When you open a new window, the is displayed - in the view that you select. This can be either the icon view, the compact list view - or the detailed list view. You can also select Last Active View - here to use the view you used for the last active window. - - - - - - Sort folders before files - - - Select this option to list folders before files when you sort a folder. - - - - - - Show thumbnails - - - Select this option to show thumbnails of image files and other supported files. The - file manager stores the thumbnail files for each folder in the hidden .thumbnails directory in the user's Home Folder. - - - See if you want to extend the basic - thumbnail functionality provided by Thunar with support - for additional file types. - - - - - - Text beside icons - - - Select this options to place the icon captions for items in the icon view beside the - icon rather than under the icon. - - - - - - - - - Side Pane Preferences - - - You can select display options for the shortcuts pane and the tree pane. - - - - - - - - - - Side Pane Preferences - - - - - - The side pane can either display a list of shortcuts for folders in your file system, which - is the default, or a tree view of your file system. This page allows you to select the size - of the icons for the shortcuts and the tree pane. You can also specify whether emblems should - be displayed. - - - - - Icon Size - - - The size of the icons displayed in the side, ranging from Very Small (around - 16x16 pixels) to Very Large (around 128x128 pixels). - - - - - - Show Icon Emblems - - - Select this option to display emblems for folders in the side pane. You can assign emblems to - folders in the Properties dialog. Select a folder in the main area and - choose FileProperties... - from the main menu, or right-click the folder and select Properties... - from the context menu. - - - - - - - - - Behavior Preferences - - - You can select the preferred behavior to interact with the file manager. - - - - - - - - - - Behavior Preferences - - - - - - - Single click to active items - - - Select this option to perform the default action for an item when you - click on the item. When this option is selected, and you point to an - item, the title of the item is underlined and the item will be - selected automatically after a short delay. - - - This delay can be configured below the option. You can also disable the - automatic selection of items by moving the selector to the left-most - position. - - - - - - Double click to activate items - - - Select this option to perform the default action for an item when you - double click on the item, and select the item with a single click. - - - - - - - - - Advanced Preferences - - - You can control advanced features of the file manager. - - - - - - - - - - Advanced Preferences - - - - - - - Folder Permissions - - - Choose the action that should be performed when you change the permissions of a folder in - the Properties dialog. You can choose to let Thunar - ask everytime when you change folder permissions, tell it to default to applying the new permissions - to the folder only or to apply them recursively to the folder contents as well. - - - - - - Volume Management - - - If Thunar was installed with support for HAL and the thunar-volman - package is also installed, you can enable the integrated volume manager. See - for details about this feature. - - - - - - - - - - Customizing Thunar - - - This chapter describes how to customize certain parts of the file manager to your own needs. - - - - - The "Send To" Menu - - - Thunar includes a Send To menu, which provides possible targets where files and folders can - be sent to. To access the Send To menu, choose - FileSend To from the main menu, or right-click - on a file or folder and choose Send To. - - - - - - - - - - "Send To" Menu - - - - - - By default, the Send To menu includes an entry named Desktop (Create Link) for all - files and folders, which simply creates a link on the desktop for each selected file. In addition, if the Shortcuts - Pane is active, the menu also includes an entry called Side Pane (Create Shortcut) for folders, - which allows users to add new shortcuts to the side pane. Following these entries, Thunar lists - the removable drives currently plugged into the computer. In the screenshot above, the Floppy Drive - represents a possible target where files can be sent to. Note that the device is mounted automatically once selected from - the Send To menu, so you do not need to manually mount it. - - - - In addition Thunar also ships the thunar-sendto-email plugin, which adds - the entry Mail Recipient to the menu, that opens the mail composer with the selected files attach to the - new email. If the selection contains atleast one folder, the selected items are added to a ZIP archive before attaching them - to the email. Otherwise, if the selection contains multiple files, or a single file, which is larger than 200Kib, the user will - be prompted whether to pack the files into a ZIP archive, and send the ZIP archive. - - - - Like most other features of Thunar, the Send to menu can be easily extended - by users and application developers with new targets, using standard desktop entry files. These files must be - installed into one of the $XDG_DATA_DIRS/Thunar/sendto/ folders (see the XDG Base Directory Specification for details about the - $XDG_DATA_DIRS variable). - - - - The MimeType of the target .desktop specifies the types of files for which this action - should be available in the Send To menu. For example, say you want to add entry for a Flickr uploader tool, then this entry should only show up if the selection contains JPEG - files (other file formats are not supported by Flickr) and so you should add a line MimeType=image/jpeg;. - If you do not specify any MimeType your entry will show up for all file types. - - - - A complete example using the postr application is shown below: - - - -# postr.desktop - Integrate postr into -# the "Send To" menu. -[Desktop Entry] -Type=Application -Version=1.0 -Encoding=UTF-8 -TryExec=postr -Exec=postr %F -Icon=postr -Name=Flickr -MimeType=image/jpeg; - - - If you install this file to ~/.local/share/Thunar/sendto/ (create the folder if - it does not exist yet), the Send To menu for JPEG files will show the new entry Flickr, - which can be used to upload JPEG images to Flickr. - - - - The Thunar Project Wiki contains - additional examples of useful targets for the Send To menu. Feel free to extend the Wiki page with - new examples. - - - - - - Thumbnailers - - - Thunar uses small utilities to create thumbnails of certain file types and displays the thumbnails as preview of the - file content. These small tools are called thumbnailers. Thunar ships with thumbnailers for image and font files, and - makes use of the installed thumbnailers from GNOME automatically if it was installed with support for gconf. - Users may however dynamically extend this basic functionality with thumbnailers for additional file types. - - - - If you plan to write a custom thumbnailers, you need to start with a program that accepts atleast two command line parameters, - the input file, which is of the file type you plan to support and the output file, which is a PNG file that complies with the - format specified by the Thumbnail Management - Standard. Additionally your program may also accept the desired size of the thumbnail, which is optional but highly - recommended. If you write the output file at an arbitrary image size, Thunar will afterwards scale it to the desired size, - which might produce a less optimal result than generating the thumbnail with the requested dimensions. - - - - Once your utility to generate the thumbnails is done, you will need to register your thumbnailer, so Thunar is able to locate - and use it. Therefore all you need to do is to install a description file for the thumbnailer (a .desktop file) - in one of the $XDG_DATA_DIRS/thumbnailers/ paths. For example, if you want to register the - thumbnailer for your user account only, you can install the file into the folder ~/.local/share/thumbnailers/. The .desktop for thumbnailers has the following format. - - - - Thumbnailer Description File Format - - - Thumbnailer description files utilize the Desktop - Entry Format with a special Type of X-Thumbnailer and special field - X-Thumbnailer-Exec with new field codes. Basically, a thumbnailer description file has the following format. - - - -[Desktop Entry] -Version=1.0 -Encoding=UTF-8 -Type=X-Thumbnailer -Name=Your Thumbnailer -MimeType=your-supported/mime-type; -X-Thumbnailer-Exec=your-thumbnailer %i %o %s - - - The Version and Encoding are mandated by the Desktop Entry Specification, just use the values shown - in the example above. The Type field must have the special value X-Thumbnailer, otherwise your - thumbnailer will not be recognized. The Name value describes your thumbnailer. - - - - The X-Thumbnailer-Exec field contains the command to run your thumbnailer, and supports certain field codes that will - be substituted when the thumbnailer is run. Recognized field codes are as follows: - - - - - %i - - The local path to the input file for which to create a thumbnail. May be either a path relative to the directory from which the - thumbnailer was invoked or an absolute path. - - - - - %o - - The local path to the output file where to store the generated thumbnail. The output file must be written as valid PNG file according - to the thumbnail standard (see above). Note that the path may not end with .png, which matters if you invoke certain - third party tools. - - - - - %s - - The desired size of the generated thumbnail in pixels. This parameter is optional. - - - - - %u - - Similar to %i, but substituted with the URI of the file, rather than the path. This was added for compatibility with - GNOME. - - - - - %% - - Will be substituted with a single %. - - - - - - You need to include atleast %o and %i or %u, otherwise your thumbnailer will - be useless. - - - - The MimeType lists the MIME types - separated by semicolon - for which your thumbnailer is able to create previews. - - - - - Example EPS Thumbnailer - - - This example demonstrates how to write and install a new thumbnailer for .eps files, which uses the - convert utility that ships as part of ImageMagick. First, we start with a simple script that invokes - convert to generate a thumbnail at the requested size. - - - -#!/bin/sh -# -# eps-thumbnailer - Example thumbnailer script for EPS files. -# -# Usage: esp-thumbnailer eps-file png-file size -# - -# command line parameters -ifile=$1 -ofile=$2 -size=$3 - -# invoke convert (ImageMagick) -exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile" - - - Save this script above to a file eps-thumbnailer, make sure the file is executable and install it - to /usr/local/bin. - - - -$ chmod +x eps-thumbnailer -$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer - - - Next we need to create the thumbnail description file eps-thumbnailer.desktop, which looks like this: - - - -[Desktop Entry] -Version=1.0 -Encoding=UTF-8 -Type=X-Thumbnailer -Name=EPS Thumbnailer -TryExec=convert -MimeType=image/x-eps; -X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s - - - This file must be installed to /usr/local/share/thumbnailers (create the folder if - it does not exists). - - - -$ sudo install -d /usr/local/share/thumbnailers -$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop - - - The eps-thumbnailer.desktop file uses the special key TryExec, which, if specified, - names a command that must be present on the system for the thumbnailer to be useful. In this case, our script is useless if - the convert utility is not present. - - - - The last step is to regenerate the thumbnailer cache, so Thunar will pick up our thumbnailer. The thumbnailer cache is located - at $XDG_CACHE_HOME/Thunar/thumbnailers.cache (unless overridden by your or your system administrator, the - $XDG_CACHE_HOME points to the folder ~/.cache/). The thumbnailers - cache is regenerated periodically by Thunar, but you can force to regenerate it by invoking the - thunar-vfs-update-thumbnailers-cache-1 utility, that ships as part of Thunar. This utility is usually installed - in the libexec subfolder of your installation prefix (sbin - on Debian/Ubuntu). So for example, if Thunar is installed in /usr, invoke the utility as - follows: - - - $ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1 - - - But make sure you run the program from your user account, not the superuser account, since the thumbnailers cache is stored in - your home folder, rather than a system wide location. - - - - Now, if Thunar is compiled with support for file alteration monitoring (using the FAM or Gamin services), it will automatically - pick up the new thumbnailers cache within a few seconds and afterwards be able to generate thumbnails using your custom - thumbnailers. Otherwise you might need to completely restart Thunar to apply the changes, using - - - $ Thunar -q - - - to terminate any running instance, and afterwards restart it from your launcher. - - - - - Cleaning up Thumbnails - - - The generated thumbnails are stored in the folder ~/.thumbnails/ complying with the Thumbnail Management Standard. While testing a new - thumbnailer, it might help to clean up the thumbnail cache using - - - $ rm -rf ~/.thumbnails/ - - - which will also give you some free space in your home folder. Since all the information stored within this folder was automatically - generated from files in your file system, you will not loose any sensitive data. - - - - - - - - Advanced Topics - - - - To Bulk Rename Files - - - To bulk rename files means to rename multiple files at once using some criterion, that applies to atleast - one of the files. Thunar includes a bulk renamer, which can be run separately using the command - Thunar -B or from within Thunar by selecting two or more files in the main area - and pressing F2 or choosing - EditRename... from the main menu. - - - - - - - - - - Bulk Rename Files - - - - - - The Bulk Renamers can be applied to the name of the files, the suffix of the files or both to the - name and the suffix of the files. Thunar currently supports the following Bulk - Renamers: - - - - Remove characters. - Numbering files. - Insert Date or Time. - Insert or overwrite characters. - Search and replace characters. - Convert to uppercase, lowercase or camlcase. - - - - Additional Bulk Renamers may be installed as plugins for Thunar. Check - the Thunar Plugins website for currently available - extensions. The Thunar Project Wiki - contains further details about this feature. Feel free to add more information to the Wiki. - - - - - - The UNIX File System - - - While the Thunar file manager does a good job at abstracting the details of the underlying file system, so the user - does not need to care about them, it is sometimes useful to understand the basic concepts to get the whole picture. - This section tries to give a brief introduction to the concepts of the UNIX file system, which is used today by all - incarnations of UNIX, including Linux. - - - - Folders and Paths - - - In a UNIX file system all folders are arranged in a simple inverted tree structure descending and branching down - from a single top level folder, which is called the root directory (the term - directory is often used instead of folder) and displayed as - File System in Thunar. This means that you can get from any folder to any other by going - up the tree until you reach a common point, then down the tree through the appropriate subfolders until you reach - your target. - - - - The position of any file or folder in the tree can be described by its path. The path is the - list of folders you would have to descend through to get to the target folder or file, starting from the top level - folder. For example /home/luke is the subfolder luke of the subfolder home of the top level folder, - and /home/luke/myfile.txt is the file myfile.txt in that subfolder. The - leading / in these paths represents the top level folder. - - - - Every user has their own folder to hold their personal files and settings. This folder is called the home - directory and is displayed in Thunar as special icon with the users login name. The folder is similar to - the My Files folder known from Windows. The home directories of the various - users in a system are usually located below the /home folder. For example - /home/luke would be the home directory of the user with the login name - luke, while /home/jane would be - the home directory for the user with the login name jane. - - - - - File Types - - - You may have already heard that everything is a file in UNIX. This is true for most objects present in UNIX systems - today. In fact even devices are represented as a special files. While this may not make sense at first sight, it is - one of the strengths of UNIX and its derivates, and has helped it to maintain a simple core over the years where other - operating systems had to introduce new concepts for every new technology. - - - - These are the four most important types of files in the UNIX file system. - - - - Ordinary Files - - - An ordinary file may contain text, a program or other data. This includes image files, audio files, office documents - and video files. The term file is often used to refer to an ordinary file. - - - - - Folder Files - - - Folders are also files in the UNIX file system. To be exact a folder is a special file, which contains a - mapping of file names to file references for every file contained within this folder. - - - - - Symbolic Link Files - - - A Symbolic link (often called a symlink) is a special file that contains a path to - another file in the file system. Symbolic link files therefore do not contain any useful information - themselves, but just refer to other files. - - - - - Device Files - - - As mentioned earlier (most) devices are also accessed through the file system. These special device files are - usually located in the /dev folder. For example the special file - /dev/hda represents the first IDE disk on Linux. - - - - - - - - - Frequently Asked Questions - - - The intent of this section is to collect the quite numerous frequently asked - questions that relate to working with Thunar. If you know of a question that - is missing from this page, please file - a request. - - - - Why doesn't Thunar execute files marked as executable? - - - For security reasons Thunar only executes files of type application/x-desktop, - application/x-executable and application/x-shellscript. For - desktop files the execution feature will only be enabled if the desktop file is of type - Application and a valid Exec line is given or of type - Link and a valid URL is given. For the other types the feature - is available if the file is marked executable for the current user. - - - - Also note that for application/x-executable and application/x-shellscript, - the types of the file don't really need to match these types exactly, but it is suffice if the detected - type has a parent that matches one of the two types listed above, or if the MIME-type is an alias for - one of the above. - - - - - Where does Thunar store the metadata associated with files? - - - Thunar associates various settings with files/folders, which we call metadata. - This metadata for all files is stored in tdb database file, which is called - the metafile. The database file is stored in - $XDG_CACHE_HOME/Thunar/metafile.tdb and can be examined - using the tdbtool, which is part of the Thunar distribution - (located in the tdb/ subdirectory). - - - - - Where does Thunar store its preferences? - - - Thunar stores the user configurable preferences (and hidden settings) in - an .ini file, which is located at - $XDG_CONFIG_HOME/Thunar/thunarrc and can be examined - using a text editor. See docs/README.thunarrc for an - overview of the various preferences. - - - - - How to use mouse gestures in Thunar? - - - Thunar currently features basic support for so called mouse gestures - in its icon view. You can use these mouse gestures by holding down - the middle mouse button (usually the mouse wheel) while the mouse pointer is on the - background area of the icon view component (any area that is not covered by - an icon or a text). Now you can move the cursor into four directions to - perform certain actions, which are described below. - - - - Left - opens the previous visited folder - Up - opens the parent folder - Right - opens the next visited folder - Down - reloads the current folder - - - - - How do I assign different keyboard shortcuts? - - - If you want to rebind a shortcut, Thunar supports the standard GTK+ way - of changing shortcuts: simply hover over the menu option with the mouse - pointer and press the keyboard shortcut you want to rebind it to. - - - - To delete a keyboard assignment, press the Backspace key - while you are on the menu entry. - - - - If the shortcut doesn't change, then you need to enable the feature in - GTK+. This can be achieved in 3 ways: - - - - - - If you are running Xfce 4.3 or above then you can enable Editable - menu accelerators in the User Interface Preferences - dialog. - - - - - - If you are running GNOME then you can enable Editable menu - accelerators in the Menu and Toolbars control - center dialog. - - - - - - Otherwise put the following in your ~/.gtkrc-2.0 file - (create the file if it doesn't exist):gtk-can-change-accels=1 - - - - - - - Where does Thunar store the keyboard shortcuts? - - - The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a - file located at $XDG_CONFIG_HOME/Thunar/accels.scm. Lines starting - with ; are comments. See the GTK+ documentation for details about the - file format. - - - - If you are a packager or a system administrator and want to provide a system wide default - for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you - can create a file Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. - For example, if /etc/xdg is part of $XDG_CONFIG_DIRS - (the default for most Linux distributions), you can install system wide defaults to - /etc/xdg/Thunar/accels.scm. Thunar will then load shortcuts from this file on first startup. - - - - - - - Support - - - To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at http://bugzilla.xfce.org/. - Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities: - - - - - - Reproducible. If the developer cannot see the bug himself - to prove that it exists, he will most probably not be able to fix it at all. Every detail you - can provide helps. - - - - - Specific. The quicker the developer can isolate the problem - to a specific area, the more likely he will expediently fix it. - - - - - - In case you want to request a new feature, please make clear why you consider it a worth - addition for the application. It is more likely that a new feature gets added if you provide - good arguments for the feature. It will increase the chance of addition even more if you - provide a patch that implements the requested feature, but make sure that you read the file - HACKING - - especially the section labeled Coding Style - before you start hacking - up the source. - - - - Else, if you have questions about the use or installation of this software, please ask on the - thunar-dev mailing - list or point your IRC client to irc.freenode.net, - join the channel #thunar and ask for help. - - - - - About &application; - - - &application; was written by Benedikt Meurer (benny@xfce.org). Visit the - Thunar website for more information. - - - - This documentation was written by Benedikt Meurer (benny@xfce.org). The latest - version of this document is always available from the Thunar website. - - - - This software is distributed 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. - - - - 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. - - - -
- diff -Nru thunar-1.2.3/docs/papers/Makefile.am thunar-1.6.10/docs/papers/Makefile.am --- thunar-1.2.3/docs/papers/Makefile.am 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/docs/papers/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -# $Id$ - EXTRA_DIST = \ HackingOnThunar.odt diff -Nru thunar-1.2.3/docs/papers/Makefile.in thunar-1.6.10/docs/papers/Makefile.in --- thunar-1.2.3/docs/papers/Makefile.in 2011-09-20 20:28:12.000000000 +0000 +++ thunar-1.6.10/docs/papers/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 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,9 +13,52 @@ # PARTICULAR PURPOSE. @SET_MAKE@ - -# $Id$ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,24 +79,36 @@ host_triplet = @host@ target_triplet = @target@ subdir = docs/papers -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -114,6 +168,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -121,11 +179,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -133,7 +187,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -145,6 +199,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -156,10 +214,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -179,6 +233,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -221,7 +276,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -229,12 +283,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -272,6 +327,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -338,11 +395,11 @@ clean-libtool: -rm -rf .libs _libs -tags: TAGS -TAGS: +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -389,10 +446,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -473,15 +535,16 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/docs/README.thunarrc thunar-1.6.10/docs/README.thunarrc --- thunar-1.2.3/docs/README.thunarrc 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/docs/README.thunarrc 1970-01-01 00:00:00.000000000 +0000 @@ -1,253 +0,0 @@ -The Thunar Configuration File (thunarrc) -======================================== - - Thunar stores most of its preferences in the thunarrc file, which is located - in $XDG_CONFIG_HOME/Thunar/thunarrc. Many, but not all, of the settings are - configurable from the preferences dialog, which is available from the Edit - menu of every Thunar window. - - The following list gives a brief overview of the preferences known to Thunar: - - * DefaultView (ThunarDetailsView/ThunarIconView/void) - - The name of the widget class, which should be used for the view pane - in new Thunar windows, or "void" to use the last selected view from - LastView preference. - - * LastCompactViewZoomLevel (THUNAR_ZOOM_LEVEL_SMALLEST/ - THUNAR_ZOOM_LEVEL_SMALLER/ - THUNAR_ZOOM_LEVEL_SMALL/ - THUNAR_ZOOM_LEVEL_NORMAL/ - THUNAR_ZOOM_LEVEL_LARGE/ - THUNAR_ZOOM_LEVEL_LARGER/ - THUNAR_ZOOM_LEVEL_LARGEST) - - The last selected zoom level for the compact list view. - - * LastDetailsViewZoomLevel (THUNAR_ZOOM_LEVEL_SMALLEST/ - THUNAR_ZOOM_LEVEL_SMALLER/ - THUNAR_ZOOM_LEVEL_SMALL/ - THUNAR_ZOOM_LEVEL_NORMAL/ - THUNAR_ZOOM_LEVEL_LARGE/ - THUNAR_ZOOM_LEVEL_LARGER/ - THUNAR_ZOOM_LEVEL_LARGEST) - - The last selected zoom level for the detailed list view. - - * LastDetailsViewColumnOrder - - A comma separated list of columns, which specifies the order of - information that appears in the detailed list view. Valid names - for the detailed list columns are: - - - THUNAR_COLUMN_DATE_ACCESSED - - THUNAR_COLUMN_DATE_MODIFIED - - THUNAR_COLUMN_GROUP - - THUNAR_COLUMN_MIME_TYPE - - THUNAR_COLUMN_NAME - - THUNAR_COLUMN_OWNER - - THUNAR_COLUMN_PERMISSIONS - - THUNAR_COLUMN_SIZE - - THUNAR_COLUMN_TYPE - - * LastDetailsViewColumnWidths - - A comma separated list of column widths, used if the details view - is in fixed column mode. The exact format of this list should be - considered an implementation detail and may change in future - versions of Thunar. - - * LastDetailsViewFixedColumns (FALSE/TRUE) - - Whether to use fixed column widths in the detailed list view. - - * LastDetailsViewVisibleColumns - - The comma separated list of visible columns in the detailed list - view. Valid names for the detailed list columns are: - - - THUNAR_COLUMN_DATE_ACCESSED - - THUNAR_COLUMN_DATE_MODIFIED - - THUNAR_COLUMN_GROUP - - THUNAR_COLUMN_MIME_TYPE - - THUNAR_COLUMN_NAME - - THUNAR_COLUMN_OWNER - - THUNAR_COLUMN_PERMISSIONS - - THUNAR_COLUMN_SIZE - - THUNAR_COLUMN_TYPE - - * LastIconViewZoomLevel (THUNAR_ZOOM_LEVEL_SMALLEST/ - THUNAR_ZOOM_LEVEL_SMALLER/ - THUNAR_ZOOM_LEVEL_SMALL/ - THUNAR_ZOOM_LEVEL_NORMAL/ - THUNAR_ZOOM_LEVEL_LARGE/ - THUNAR_ZOOM_LEVEL_LARGER/ - THUNAR_ZOOM_LEVEL_LARGEST) - - The last selected zoom level for the icon view. - - * LastLocationBar (ThunarLocationButtons/ThunarLocationEntry/void) - - The name of the widget class which should be used for the location bar - in Thunar windows or "void" to hide the location bar completely. - - * LastSeparatorPosition (0...) - - The position of the gutter in the main window, which separates the - side pane from the main view. - - * LastShowHidden (FALSE/TRUE) - - Determines whether hidden files should be shown by default in newly - opened Thunar windows. - - * LastSidePane (ThunarShortcutsPane/void) - - The name of the widget class which should be used for the side pane - in Thunar windows or "void" to hide the side pane completely. - - * LastSortColumn (THUNAR_COLUMN_DATE_ACCESSED/ - THUNAR_COLUMN_DATE_MODIFIED/ - THUNAR_COLUMN_GROUP/ - THUNAR_COLUMN_MIME_TYPE/ - THUNAR_COLUMN_NAME/ - THUNAR_COLUMN_OWNER/ - THUNAR_COLUMN_PERMISSIONS/ - THUNAR_COLUMN_SIZE/ - THUNAR_COLUMN_TYPE) - - The default sort column for new views. - - * LastSortOrder (GTK_SORT_ASCENDING/GTK_SORT_DESCENDING) - - The default sort order for new views. - - * LastStatusbarVisible (FALSE/TRUE) - - Determines whether to display a statusbar in new windows by - default. - - * LastView (ThunarDetailsView/ThunarIconView) - - The name of the widget class which should be used for the main view - component in Thunar windows if the DefaultView preference is "void". - - * LastWindowHeight (1..4096) - - The last known height of a Thunar window, which will be used as - default height for newly created windows. - - * LastWindowWidth (1..4096) - - The last known width of a Thunar window, which will be used as - default width for newly created windows. - - * MiscVolumeManagement (FALSE/TRUE) - - This option requires both HAL and the thunar-volman package - to be installed. If enabled and Thunar runs as daemon (see the - --daemon command line option), Thunar will watch for new devices - being added and perform appropriate volume management, which - means that if you plug in a new device, that is handled by the - volume manager, it will try to automatically spawn the appropriate - application or mount the device if it contains a mountable - volume (i.e. an USB stick). - - * MiscCaseSensitive (FALSE/TRUE) - - Determines whether the sorting should be done in a case-sensitive - manner. The default is FALSE. - - * MiscDateStyle (THUNAR_DATE_STYLE_SIMPLE/ - THUNAR_DATE_STYLE_SHORT/ - THUNAR_DATE_STYLE_LONG) - - This option controls how dates are shown in the user interface - (i.e. the modification date of a file in the detailed list view). - - * MiscFoldersFirst (FALSE/TRUE) - - Determines whether folder should be sorted before files. - - * MiscHorizontalWheelNavigates (FALSE/TRUE) - - Controls whether the horizontal mouse wheel is used to navigate back - and forth within a Thunar view, or whether it should be used for - horizontal scrolling. - - * MiscRecursivePermissions (THUNAR_RECURSIVE_PERMISSIONS_ASK/ - THUNAR_RECURSIVE_PERMISSIONS_ALWAYS/ - THUNAR_RECURSIVE_PERMISSIONS_NEVER) - - Determines whether to apply permissions recursively everytime the - permissions are altered by the user. - - * MiscRememberGeometry (FALSE/TRUE) - - Whether Thunar should remember the size of windows and apply - that size to new windows. If TRUE the width and height are - saved to LastWindowWidth and LastWindowHeight. If FALSE the - user may specify the start size in LastWindowWith and - LastWindowHeight. This option is enabled by default. - - * MiscShowAboutTemplates (FALSE/TRUE) - - Whether to display the "About Templates" dialog, when opening the - Templates folder from the Go menu. - - * MiscShowThumbnails (FALSE/TRUE) - - Whether to generate and display thumbnails for previewable files. - - * MiscSingleClick (FALSE/TRUE) - - Whether to use single click navigation instead of the default double - click navigation. - - * MiscSingleClickTimeout (0...2000) - - If MiscSingleClick mode is enabled this is the amount of time in - milliseconds after which the item under the mouse pointer will be - selected automatically. A value of 0 disables the automatic selec- - tion. - - * MiscTextBesidesIcons (FALSE/TRUE) - - Controls whether the icon view should display the file names beside - the file icons instead of below the file icons. - - * ShortcutsIconEmblems (FALSE/TRUE) - - Determines whether to display emblems for file icons (if defined) in - the shortcuts side pane. - - * ShortcutsIconSize (THUNAR_ICON_SIZE_SMALLEST/ - THUNAR_ICON_SIZE_SMALLER/ - THUNAR_ICON_SIZE_SMALL/ - THUNAR_ICON_SIZE_NORMAL/ - THUNAR_ICON_SIZE_LARGE/ - THUNAR_ICON_SIZE_LARGER/ - THUNAR_ICON_SIZE_LARGEST) - - The icon size to use for the icons displayed in the shortcuts side - pane. - - * TreeIconEmblems (FALSE/TRUE) - - Determines whether to display emblems for file icons (if defined) in - the tree side pane. - - * TreeIconSize (THUNAR_ICON_SIZE_SMALLEST/ - THUNAR_ICON_SIZE_SMALLER/ - THUNAR_ICON_SIZE_SMALL/ - THUNAR_ICON_SIZE_NORMAL/ - THUNAR_ICON_SIZE_LARGE/ - THUNAR_ICON_SIZE_LARGER/ - THUNAR_ICON_SIZE_LARGEST) - - The icon size to use for the icons displayed in the tree side pane. - - - -Additional information can be found on the Thunar Project Wiki: -http://thunar.xfce.org/pwiki/documentation/advanced_settings diff -Nru thunar-1.2.3/docs/reference/Makefile.am thunar-1.6.10/docs/reference/Makefile.am --- thunar-1.2.3/docs/reference/Makefile.am 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/docs/reference/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -# $Id$ - -SUBDIRS = \ - thunarx - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/docs/reference/Makefile.in thunar-1.6.10/docs/reference/Makefile.in --- thunar-1.2.3/docs/reference/Makefile.in 2011-09-20 20:28:12.000000000 +0000 +++ thunar-1.6.10/docs/reference/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,693 +0,0 @@ -# Makefile.in generated by automake 1.11.1 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@ - -# $Id$ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = docs/reference -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_CFLAGS = @DBUS_CFLAGS@ -DBUS_LIBS = @DBUS_LIBS@ -DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ -DBUS_VERSION = @DBUS_VERSION@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXIF_CFLAGS = @EXIF_CFLAGS@ -EXIF_LIBS = @EXIF_LIBS@ -EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ -EXIF_VERSION = @EXIF_VERSION@ -EXO_CFLAGS = @EXO_CFLAGS@ -EXO_LIBS = @EXO_LIBS@ -EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ -EXO_VERSION = @EXO_VERSION@ -FGREP = @FGREP@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ -GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO_CFLAGS = @GIO_CFLAGS@ -GIO_LIBS = @GIO_LIBS@ -GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ -GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ -GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ -GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ -GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ -GIO_VERSION = @GIO_VERSION@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ -GTHREAD_LIBS = @GTHREAD_LIBS@ -GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ -GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ -GTK_VERSION = @GTK_VERSION@ -GUDEV_CFLAGS = @GUDEV_CFLAGS@ -GUDEV_LIBS = @GUDEV_LIBS@ -GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ -GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_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@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ -LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ -LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ -LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSM_CFLAGS = @LIBSM_CFLAGS@ -LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ -LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ -LIBTOOL = @LIBTOOL@ -LIBX11_CFLAGS = @LIBX11_CFLAGS@ -LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ -LIBX11_LIBS = @LIBX11_LIBS@ -LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ -LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ -LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ -LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ -LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ -LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ -LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ -LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ -LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ -LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ -LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ -LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ -PCRE_VERSION = @PCRE_VERSION@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ -PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ -PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ -THUNARX_VERINFO = @THUNARX_VERINFO@ -THUNARX_VERSION_API = @THUNARX_VERSION_API@ -THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ -THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ -THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_ARGS = @XGETTEXT_ARGS@ -XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -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 = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xfconf_query_found = @xfconf_query_found@ -SUBDIRS = \ - thunarx - -all: all-recursive - -.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 docs/reference/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/reference/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 -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(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) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: - -# 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/VFaXHq0iMc/thunar-1.2.3/docs/reference/thunarx/html/abstraction.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/reference/thunarx/html/abstraction.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/reference/thunarx/html/bulk-rename.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/reference/thunarx/html/bulk-rename.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/reference/thunarx/html/home.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/reference/thunarx/html/home.png differ diff -Nru thunar-1.2.3/docs/reference/thunarx/html/index.html thunar-1.6.10/docs/reference/thunarx/html/index.html --- thunar-1.2.3/docs/reference/thunarx/html/index.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/index.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ - - - - -Thunar Extensions Reference Manual - - - - - - - -
-
-
-
-
-
-

-Benedikt Meurer -

-
- -os-cillation
System development
Software developer
-
-
-
-

-Jannis Pohlmann -

- -
-
-

Version 1.2.3 -

-
-
-
-

- Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 or - any later version published by the Free Software Foundation; with no - Invariant Sections, with no Front-Cover Texts, and with no Back-Cover - Texts. The complete license text is available from the Free Software Foundation. -

-
-

January 2010

-
-
-
-
-
I. Overview
-
II. Writing Extensions
-
III. Fundamentals
-
-Version information — Variables and functions to check the library version -
-
IV. Abstraction Layer
-
-
-ThunarxFileInfo — Abstraction of a file handled within the file manager -
-
-ThunarxPropertyPage — The base class for pages added to the properties dialog -
-
-ThunarxProviderPlugin — The interface to the plugin type registration -
-
-ThunarxRenamer — The abstract base class for bulk renamers -
-
-
V. Providers
-
-
-ThunarxMenuProvider — The interface to extensions that provide additional menu items -
-
-ThunarxPropertyPageProvider — The interface to extensions that provide additional property pages -
-
-ThunarxPreferencesProvider — The interface to extensions that provide preferences -
-
-ThunarxRenamerProvider — The interface to extensions that provide additional bulk renamers -
-
-
VI. Using Thunar extensions in applications
-
-ThunarxProviderFactory — The provider factory support for applications -
-
Index
-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/index.sgml thunar-1.6.10/docs/reference/thunarx/html/index.sgml --- thunar-1.2.3/docs/reference/thunarx/html/index.sgml 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/index.sgml 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ix01.html thunar-1.6.10/docs/reference/thunarx/html/ix01.html --- thunar-1.2.3/docs/reference/thunarx/html/ix01.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ix01.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,198 +0,0 @@ - - - - -Index - - - - - - - - - - - - - - - -
-

-Index

-
-

T

-
-
ThunarxFileInfo, ThunarxFileInfo -
-
ThunarxFileInfo::changed, The "changed" signal -
-
ThunarxFileInfo::renamed, The "renamed" signal -
-
ThunarxFileInfoIface, ThunarxFileInfoIface -
-
ThunarxMenuProvider, ThunarxMenuProvider -
-
ThunarxMenuProviderIface, ThunarxMenuProviderIface -
-
ThunarxPreferencesProvider, ThunarxPreferencesProvider -
-
ThunarxPreferencesProviderIface, ThunarxPreferencesProviderIface -
-
ThunarxPropertyPage, ThunarxPropertyPage -
-
ThunarxPropertyPage:label, The "label" property -
-
ThunarxPropertyPage:label-widget, The "label-widget" property -
-
ThunarxPropertyPageProvider, ThunarxPropertyPageProvider -
-
ThunarxPropertyPageProviderIface, ThunarxPropertyPageProviderIface -
-
ThunarxProviderFactory, ThunarxProviderFactory -
-
ThunarxProviderPlugin, ThunarxProviderPlugin -
-
ThunarxProviderPlugin:resident, The "resident" property -
-
ThunarxProviderPluginIface, ThunarxProviderPluginIface -
-
ThunarxRenamer, ThunarxRenamer -
-
ThunarxRenamer::changed, The "changed" signal -
-
ThunarxRenamer:help-url, The "help-url" property -
-
ThunarxRenamer:name, The "name" property -
-
ThunarxRenamerClass, ThunarxRenamerClass -
-
ThunarxRenamerProvider, ThunarxRenamerProvider -
-
ThunarxRenamerProviderIface, ThunarxRenamerProviderIface -
-
thunarx_check_version, thunarx_check_version () -
-
THUNARX_CHECK_VERSION, THUNARX_CHECK_VERSION() -
-
THUNARX_DEFINE_ABSTRACT_TYPE, THUNARX_DEFINE_ABSTRACT_TYPE() -
-
THUNARX_DEFINE_ABSTRACT_TYPE_WITH_CODE, THUNARX_DEFINE_ABSTRACT_TYPE_WITH_CODE() -
-
THUNARX_DEFINE_TYPE, THUNARX_DEFINE_TYPE() -
-
THUNARX_DEFINE_TYPE_EXTENDED, THUNARX_DEFINE_TYPE_EXTENDED() -
-
THUNARX_DEFINE_TYPE_WITH_CODE, THUNARX_DEFINE_TYPE_WITH_CODE() -
-
thunarx_file_info_changed, thunarx_file_info_changed () -
-
thunarx_file_info_get_filesystem_info, thunarx_file_info_get_filesystem_info () -
-
thunarx_file_info_get_file_info, thunarx_file_info_get_file_info () -
-
thunarx_file_info_get_location, thunarx_file_info_get_location () -
-
thunarx_file_info_get_mime_type, thunarx_file_info_get_mime_type () -
-
thunarx_file_info_get_name, thunarx_file_info_get_name () -
-
thunarx_file_info_get_parent_uri, thunarx_file_info_get_parent_uri () -
-
thunarx_file_info_get_uri, thunarx_file_info_get_uri () -
-
thunarx_file_info_get_uri_scheme, thunarx_file_info_get_uri_scheme () -
-
thunarx_file_info_has_mime_type, thunarx_file_info_has_mime_type () -
-
thunarx_file_info_is_directory, thunarx_file_info_is_directory () -
-
thunarx_file_info_list_copy, thunarx_file_info_list_copy () -
-
thunarx_file_info_list_free, thunarx_file_info_list_free () -
-
thunarx_file_info_renamed, thunarx_file_info_renamed () -
-
THUNARX_IMPLEMENT_INTERFACE, THUNARX_IMPLEMENT_INTERFACE() -
-
thunarx_major_version, thunarx_major_version -
-
THUNARX_MAJOR_VERSION, THUNARX_MAJOR_VERSION -
-
thunarx_menu_provider_get_dnd_actions, thunarx_menu_provider_get_dnd_actions () -
-
thunarx_menu_provider_get_file_actions, thunarx_menu_provider_get_file_actions () -
-
thunarx_menu_provider_get_folder_actions, thunarx_menu_provider_get_folder_actions () -
-
thunarx_micro_version, thunarx_micro_version -
-
THUNARX_MICRO_VERSION, THUNARX_MICRO_VERSION -
-
thunarx_minor_version, thunarx_minor_version -
-
THUNARX_MINOR_VERSION, THUNARX_MINOR_VERSION -
-
thunarx_preferences_provider_get_actions, thunarx_preferences_provider_get_actions () -
-
thunarx_property_page_get_label, thunarx_property_page_get_label () -
-
thunarx_property_page_get_label_widget, thunarx_property_page_get_label_widget () -
-
thunarx_property_page_new, thunarx_property_page_new () -
-
thunarx_property_page_new_with_label_widget, thunarx_property_page_new_with_label_widget () -
-
thunarx_property_page_provider_get_pages, thunarx_property_page_provider_get_pages () -
-
thunarx_property_page_set_label, thunarx_property_page_set_label () -
-
thunarx_property_page_set_label_widget, thunarx_property_page_set_label_widget () -
-
thunarx_provider_factory_get_default, thunarx_provider_factory_get_default () -
-
thunarx_provider_factory_list_providers, thunarx_provider_factory_list_providers () -
-
thunarx_provider_plugin_add_interface, thunarx_provider_plugin_add_interface () -
-
thunarx_provider_plugin_get_resident, thunarx_provider_plugin_get_resident () -
-
thunarx_provider_plugin_register_enum, thunarx_provider_plugin_register_enum () -
-
thunarx_provider_plugin_register_flags, thunarx_provider_plugin_register_flags () -
-
thunarx_provider_plugin_register_type, thunarx_provider_plugin_register_type () -
-
thunarx_provider_plugin_set_resident, thunarx_provider_plugin_set_resident () -
-
thunarx_renamer_changed, thunarx_renamer_changed () -
-
thunarx_renamer_get_actions, thunarx_renamer_get_actions () -
-
thunarx_renamer_get_help_url, thunarx_renamer_get_help_url () -
-
thunarx_renamer_get_name, thunarx_renamer_get_name () -
-
thunarx_renamer_load, thunarx_renamer_load () -
-
thunarx_renamer_process, thunarx_renamer_process () -
-
thunarx_renamer_provider_get_renamers, thunarx_renamer_provider_get_renamers () -
-
thunarx_renamer_save, thunarx_renamer_save () -
-
thunarx_renamer_set_help_url, thunarx_renamer_set_help_url () -
-
thunarx_renamer_set_name, thunarx_renamer_set_name () -
-
THUNARX_TYPE_FILE_INFO_LIST, THUNARX_TYPE_FILE_INFO_LIST -
-
-
-
- - - \ No newline at end of file Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/reference/thunarx/html/left.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/reference/thunarx/html/left.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/reference/thunarx/html/menu-provider.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/reference/thunarx/html/menu-provider.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/reference/thunarx/html/right.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/reference/thunarx/html/right.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/reference/thunarx/html/say-hello.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/reference/thunarx/html/say-hello.png differ diff -Nru thunar-1.2.3/docs/reference/thunarx/html/style.css thunar-1.6.10/docs/reference/thunarx/html/style.css --- thunar-1.2.3/docs/reference/thunarx/html/style.css 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/style.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,266 +0,0 @@ -.synopsis, .classsynopsis -{ - /* tango:aluminium 1/2 */ - background: #eeeeec; - border: solid 1px #d3d7cf; - padding: 0.5em; -} -.programlisting -{ - /* tango:sky blue 0/1 */ - background: #e6f3ff; - border: solid 1px #729fcf; - padding: 0.5em; -} -.variablelist -{ - padding: 4px; - margin-left: 3em; -} -.variablelist td:first-child -{ - vertical-align: top; -} - -@media screen { - sup a.footnote - { - position: relative; - top: 0em ! important; - - } - /* this is needed so that the local anchors are displayed below the naviagtion */ - div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] - { - display: inline-block; - position: relative; - top:-5em; - } - /* this seems to be a bug in the xsl style sheets when generating indexes */ - div.index div.index - { - top: 0em; - } - /* make space for the fixed navigation bar and add space at the bottom so that - * link targets appear somewhat close to top - */ - body - { - padding-top: 3.2em; - padding-bottom: 20em; - } - /* style and size the navigation bar */ - table.navigation#top - { - position: fixed; - /* tango:scarlet red 0/1 */ - background: #ffe6e6; - border: solid 1px #ef2929; - margin-top: 0; - margin-bottom: 0; - top: 0; - left: 0; - height: 3em; - z-index: 10; - } - .navigation a, .navigation a:visited - { - /* tango:scarlet red 3 */ - color: #a40000; - } - .navigation a:hover - { - /* tango:scarlet red 1 */ - color: #ef2929; - } - td.shortcuts - { - /* tango:scarlet red 1 */ - color: #ef2929; - font-size: 80%; - white-space: nowrap; - } -} -@media print { - table.navigation { - visibility: collapse; - display: none; - } - div.titlepage table.navigation { - visibility: visible; - display: table; - /* tango:scarlet red 0/1 */ - background: #ffe6e6; - border: solid 1px #ef2929; - margin-top: 0; - margin-bottom: 0; - top: 0; - left: 0; - height: 3em; - } -} - -.navigation .title -{ - font-size: 200%; -} - -div.gallery-float -{ - float: left; - padding: 10px; -} -div.gallery-float img -{ - border-style: none; -} -div.gallery-spacer -{ - clear: both; -} - -a, a:visited -{ - text-decoration: none; - /* tango:sky blue 2 */ - color: #3465a4; -} -a:hover -{ - text-decoration: underline; - /* tango:sky blue 1 */ - color: #729fcf; -} - -div.table table -{ - border-collapse: collapse; - border-spacing: 0px; - /* tango:aluminium 3 */ - border: solid 1px #babdb6; -} - -div.table table td, div.table table th -{ - /* tango:aluminium 3 */ - border: solid 1px #babdb6; - padding: 3px; - vertical-align: top; -} - -div.table table th -{ - /* tango:aluminium 2 */ - background-color: #d3d7cf; -} - -hr -{ - /* tango:aluminium 3 */ - color: #babdb6; - background: #babdb6; - border: none 0px; - height: 1px; - clear: both; -} - -.footer -{ - padding-top: 3.5em; - /* tango:aluminium 3 */ - color: #babdb6; - text-align: center; - font-size: 80%; -} - -.warning -{ - /* tango:orange 0/1 */ - background: #ffeed9; - border-color: #ffb04f; -} -.note -{ - /* tango:chameleon 0/0.5 */ - background: #d8ffb2; - border-color: #abf562; -} -.note, .warning -{ - padding: 0.5em; - border-width: 1px; - border-style: solid; -} -.note h3, .warning h3 -{ - margin-top: 0.0em -} -.note p, .warning p -{ - margin-bottom: 0.0em -} - -/* blob links */ -h2 .extralinks, h3 .extralinks -{ - float: right; - /* tango:aluminium 3 */ - color: #babdb6; - font-size: 80%; - font-weight: normal; -} - -.annotation -{ - /* tango:aluminium 5 */ - color: #555753; - font-size: 80%; - font-weight: normal; -} - -/* code listings */ - -.listing_code .programlisting .cbracket { color: #a40000; } /* tango: scarlet red 3 */ -.listing_code .programlisting .comment { color: #a1a39d; } /* tango: aluminium 4 */ -.listing_code .programlisting .function { color: #000000; font-weight: bold; } -.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */ -.listing_code .programlisting .keyword { color: #4e9a06; } /* tango: chameleon 3 */ -.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ -.listing_code .programlisting .normal { color: #000000; } -.listing_code .programlisting .number { color: #75507b; } /* tango: plum 2 */ -.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ -.listing_code .programlisting .string { color: #c17d11; } /* tango: chocolate 2 */ -.listing_code .programlisting .type { color: #000000; } -.listing_code .programlisting .type a { color: #11326b; } /* tango: sky blue 4 */ -.listing_code .programlisting .symbol { color: #ce5c00; } /* tango: orange 3 */ - -.listing_frame { - /* tango:sky blue 1 */ - border: solid 1px #729fcf; - padding: 0px; -} - -.listing_lines, .listing_code { - margin-top: 0px; - margin-bottom: 0px; - padding: 0.5em; -} -.listing_lines { - /* tango:sky blue 0.5 */ - background: #a6c5e3; - /* tango:aluminium 6 */ - color: #2e3436; -} -.listing_code { - /* tango:sky blue 0 */ - background: #e6f3ff; -} -.listing_code .programlisting { - /* override from previous */ - border: none 0px; - padding: 0px; -} -.listing_lines pre, .listing_code pre { - margin: 0px; -} - diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx-abstraction-layer.html thunar-1.6.10/docs/reference/thunarx/html/thunarx-abstraction-layer.html --- thunar-1.2.3/docs/reference/thunarx/html/thunarx-abstraction-layer.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx-abstraction-layer.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ - - - - -Part IV. Abstraction Layer - - - - - - - - - - - - - - - - -
-

-Part IV. Abstraction Layer

-
-

Table of Contents

-
-
-ThunarxFileInfo — Abstraction of a file handled within the file manager -
-
-ThunarxPropertyPage — The base class for pages added to the properties dialog -
-
-ThunarxProviderPlugin — The interface to the plugin type registration -
-
-ThunarxRenamer — The abstract base class for bulk renamers -
-
-
-

- In order to hide the internals of the file manager from the extensions, the thunarx library provides an abstraction layer, which includes - interfaces accessible to the extension, that are implemented by the file manager at runtime. -

-

- -

-

- Currently the abstraction layer consists of the interface ThunarxFileInfo, which provides - extensions with a way to access information about a file handled within - the file manager, the class ThunarxPropertyPage, which - is the base class for widgets that can be added to the properties dialog by - extensions, the interface ThunarxProviderPlugin, which - hides the details of dynamic type registration from the extensions, and the - class ThunarxRenamer, which - is the abstract base class for renamers that can be used in the bulk rename - dialog provided by Thunar to rename multiple files at once. -

-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx.devhelp thunar-1.6.10/docs/reference/thunarx/html/thunarx.devhelp --- thunar-1.2.3/docs/reference/thunarx/html/thunarx.devhelp 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx.devhelp 1970-01-01 00:00:00.000000000 +0000 @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx.devhelp2 thunar-1.6.10/docs/reference/thunarx/html/thunarx.devhelp2 --- thunar-1.2.3/docs/reference/thunarx/html/thunarx.devhelp2 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx.devhelp2 1970-01-01 00:00:00.000000000 +0000 @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ThunarxFileInfo.html thunar-1.6.10/docs/reference/thunarx/html/ThunarxFileInfo.html --- thunar-1.2.3/docs/reference/thunarx/html/ThunarxFileInfo.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ThunarxFileInfo.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,681 +0,0 @@ - - - - -ThunarxFileInfo - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

ThunarxFileInfo

-

ThunarxFileInfo — Abstraction of a file handled within the file manager

-
-
-

Stability Level

-Stable, unless otherwise indicated -
- -
-

Object Hierarchy

-
-  GInterface
-   +----ThunarxFileInfo
-
-
-
-

Prerequisites

-

-ThunarxFileInfo requires - GObject.

-
-
-

Signals

-
-  "changed"                                        : Run First
-  "renamed"                                        : Run First
-
-
-
-

Description

-

- The ThunarxFileInfo interface provides extensions with - a way to access information about a file handled within the file manager. -

-
-
-

Details

-
-

ThunarxFileInfoIface

-
typedef struct {
-  /* virtual methods */
-  gchar     *(*get_name)            (ThunarxFileInfo *file_info);
-
-  gchar     *(*get_uri)             (ThunarxFileInfo *file_info);
-  gchar     *(*get_parent_uri)      (ThunarxFileInfo *file_info);
-  gchar     *(*get_uri_scheme)      (ThunarxFileInfo *file_info);
-
-  gchar     *(*get_mime_type)       (ThunarxFileInfo *file_info);
-  gboolean   (*has_mime_type)       (ThunarxFileInfo *file_info,
-                                     const gchar     *mime_type);
-
-  gboolean   (*is_directory)        (ThunarxFileInfo *file_info);
-
-  GFileInfo *(*get_file_info)       (ThunarxFileInfo *file_info);
-  GFileInfo *(*get_filesystem_info) (ThunarxFileInfo *file_info);
-  GFile     *(*get_location)        (ThunarxFileInfo *file_info);
-
-
-  /* signals */
-  void (*changed) (ThunarxFileInfo *file_info);
-  void (*renamed) (ThunarxFileInfo *file_info);
-} ThunarxFileInfoIface;
-
-

- Interface with virtual methods implemented by the file manager and accessible - from the extensions. -

-
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

get_name ()

See thunarx_file_info_get_name(). -

get_uri ()

See thunarx_file_info_get_uri(). -

get_parent_uri ()

See thunarx_file_info_get_parent_uri(). -

get_uri_scheme ()

See thunarx_file_info_get_uri_scheme(). -

get_mime_type ()

See thunarx_file_info_get_mime_type(). -

has_mime_type ()

See thunarx_file_info_has_mime_type(). -

is_directory ()

See thunarx_file_info_is_directory(). -

get_file_info ()

See thunarx_file_info_get_file_info(). -

get_filesystem_info ()

See thunarx_filesystem_info_get_filesystem_info(). -

get_location ()

See thunarx_location_get_location(). -

changed ()

See thunarx_file_info_changed(). -

renamed ()

See thunarx_file_info_renamed(). -
-
-
-
-

ThunarxFileInfo

-
typedef struct _ThunarxFileInfo ThunarxFileInfo;
-

- File info type, which is mapped to the real file info implementation - within the file manager. -

-
-
-
-

thunarx_file_info_get_name ()

-
gchar *             thunarx_file_info_get_name          (ThunarxFileInfo *file_info);
-

-Returns the real name of the file represented -by file_info in the local file system encoding. -You can use g_filename_display_name() or similar -functions to generate an UTF-8 version of the -name, which is suitable for use in the user -interface. -

-

-The caller is responsible to free the returned -string using g_free() when no longer needed. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

Returns :

the real name of the file represented - by file_info. -
-
-
-
-

thunarx_file_info_get_uri ()

-
gchar *             thunarx_file_info_get_uri           (ThunarxFileInfo *file_info);
-

-Returns the escaped, fully qualified URI -of the file object represented by file_info. -You may use g_filename_from_uri() and similar -functions to work with the returned URI. -

-

-The caller is responsible to free the returned -string using g_free() when no longer needed. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

Returns :

the fully qualified URI of file_info. -
-
-
-
-

thunarx_file_info_get_parent_uri ()

-
gchar *             thunarx_file_info_get_parent_uri    (ThunarxFileInfo *file_info);
-

-Returns the URI to the parent file of -file_info or NULL if file_info has -no parent. Note that the parent URI -may be of a different type than the -URI of file_info. For example, the -parent of "file:///" is "computer:///". -

-

-The caller is responsible to free the -returned string using g_free() when no -longer needed. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

Returns :

the parent URI for file_info - or NULL. -
-
-
-
-

thunarx_file_info_get_uri_scheme ()

-
gchar *             thunarx_file_info_get_uri_scheme    (ThunarxFileInfo *file_info);
-

-Returns the URI scheme of the file represented -by file_info. E.g. if file_info refers to the -file "file:///usr/home", the return value will -be "file". -

-

-The caller is responsible to free the returned -string using g_free() when no longer needed. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

Returns :

the URI scheme for file_info. -
-
-
-
-

thunarx_file_info_get_mime_type ()

-
gchar *             thunarx_file_info_get_mime_type     (ThunarxFileInfo *file_info);
-

-Returns the MIME-type of the file represented by -file_info or NULL if no MIME-type is known for -file_info. -

-

-The caller is responsible to free the returned -string using g_free() when no longer needed. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

Returns :

the MIME-type for file_info or - NULL. -
-
-
-
-

thunarx_file_info_has_mime_type ()

-
gboolean            thunarx_file_info_has_mime_type     (ThunarxFileInfo *file_info,
-                                                         const gchar *mime_type);
-

-Checks whether file_info is of the given mime_type -or whether the MIME-type of file_info is a subclass -of mime_type. -

-

-This is the preferred way for most extensions to check -whether they support a given file or not, and you should -consider using this method rather than -thunarx_file_info_get_mime_type(). A simple example would -be a menu extension that performs a certain action on -text files. In this case you want to check whether a given -ThunarxFileInfo refers to any kind of text file, not only -to "text/plain" (e.g. this also includes "text/xml" and -"application/x-desktop"). -

-

-But you should be aware that this method may take some -time to test whether mime_type is valid for file_info, -so don't call it too often. -

-
-- - - - - - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

mime_type :

a MIME-type (e.g. "text/plain"). -

Returns :

TRUE if mime_type is valid for file_info, - else FALSE. -
-
-
-
-

thunarx_file_info_is_directory ()

-
gboolean            thunarx_file_info_is_directory      (ThunarxFileInfo *file_info);
-

-Checks whether file_info refers to a directory. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

Returns :

TRUE if file_info is a directory. -
-
-
-
-

thunarx_file_info_get_file_info ()

-
GFileInfo *         thunarx_file_info_get_file_info     (ThunarxFileInfo *file_info);
-

-Returns the GFileInfo associated with file_info, -which includes additional information about the file_info -as queried from GIO earlier. The caller is responsible to free the -returned GFileInfo object using g_object_unref() when -no longer needed. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

Returns :

the GFileInfo object associated with file_info, - which MUST be freed using g_object_unref(). -
-
-
-
-

thunarx_file_info_get_filesystem_info ()

-
GFileInfo *         thunarx_file_info_get_filesystem_info
-                                                        (ThunarxFileInfo *file_info);
-

-Returns the GFileInfo which includes additional information about -the filesystem file_info resides on. The caller is responsible to -free the returned GFileInfo object using g_object_unref() when -no longer needed. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

Returns :

the GFileInfo containing information about the - filesystem of file_info or NULL if no filesystem - information is available. It MUST be released using - g_object_unref(). -
-
-
-
-

thunarx_file_info_get_location ()

-
GFile *             thunarx_file_info_get_location      (ThunarxFileInfo *file_info);
-

-Returns the GFile file_info points to. The GFile is a more -powerful tool than just the URI or the path. The caller -is responsible to release the returned GFile using g_object_unref() -when no longer needed. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

Returns :

the GFile to which file_info points. It MUST be - released using g_object_unref(). -
-
-
-
-

thunarx_file_info_changed ()

-
void                thunarx_file_info_changed           (ThunarxFileInfo *file_info);
-

-Emits the ::changed signal on file_info. This method should not -be invoked by Thunar plugins, instead the file manager itself -will use this method to emit ::changed whenever it notices a -change on file_info. -

-
-- - - - -

file_info :

a ThunarxFileInfo. -
-
-
-
-

thunarx_file_info_renamed ()

-
void                thunarx_file_info_renamed           (ThunarxFileInfo *file_info);
-

-Emits the ::renamed signal on file_info. This method should -not be invoked by Thunar plugins, instead the file manager -will emit this signal whenever the user renamed the file_info. -

-

-The plugins should instead connect to the ::renamed signal -and update it's internal state and it's user interface -after the file manager renamed a file. -

-
-- - - - -

file_info :

a ThunarxFileInfo. -
-
-
-
-

THUNARX_TYPE_FILE_INFO_LIST

-
#define THUNARX_TYPE_FILE_INFO_LIST (thunarx_file_info_list_get_type ())
-
-

- The GType for a boxed type holding a GList of ThunarxFileInfos. - See thunarx_file_info_list_copy() and thunarx_file_info_list_free(). -

-
-
-
-

thunarx_file_info_list_copy ()

-
GList *             thunarx_file_info_list_copy         (GList *file_infos);
-

-Does a deep copy of file_infos and returns the -new list. -

-
-- - - - - - - - - - -

file_infos :

a GList of ThunarxFileInfos. -

Returns :

a copy of file_infos. -
-
-
-
-

thunarx_file_info_list_free ()

-
void                thunarx_file_info_list_free         (GList *file_infos);
-

-Frees the resources allocated for the file_infos -list and decreases the reference count on the -ThunarxFileInfos contained within. -

-
-- - - - -

file_infos :

a GList of ThunarxFileInfos. -
-
-
-
-

Signal Details

-
-

The "changed" signal

-
void                user_function                      (ThunarxFileInfo *file_info,
-                                                        gpointer         user_data)      : Run First
-

-Emitted whenever the system notices a change to file_info. -

-

-Thunar plugins should use this signal to stay informed about -changes to a file_info for which they currently display -information (i.e. in a ThunarxPropertyPage), and update -it's user interface whenever a change is noticed on file_info. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo. -

user_data :

user data set when the signal handler was connected.
-
-
-
-

The "renamed" signal

-
void                user_function                      (ThunarxFileInfo *file_info,
-                                                        gpointer         user_data)      : Run First
-

-Emitted when the file_info is renamed to another -name. -

-

-For example, within Thunar, ThunarFolder uses this -signal to reregister it's VFS directory monitor, after -the corresponding file was renamed. -

-
-- - - - - - - - - - -

file_info :

a ThunarxFileInfo -

user_data :

user data set when the signal handler was connected.
-
-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx-fundamentals.html thunar-1.6.10/docs/reference/thunarx/html/thunarx-fundamentals.html --- thunar-1.2.3/docs/reference/thunarx/html/thunarx-fundamentals.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx-fundamentals.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ - - - - -Part III. Fundamentals - - - - - - - - - - - - - - - - -
-

-Part III. Fundamentals

-
-

Table of Contents

-
-Version information — Variables and functions to check the library version -
-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ThunarxMenuProvider.html thunar-1.6.10/docs/reference/thunarx/html/ThunarxMenuProvider.html --- thunar-1.2.3/docs/reference/thunarx/html/ThunarxMenuProvider.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ThunarxMenuProvider.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,436 +0,0 @@ - - - - -ThunarxMenuProvider - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

ThunarxMenuProvider

-

ThunarxMenuProvider — The interface to extensions that provide additional menu items

-
-
-

Stability Level

-Stable, unless otherwise indicated -
-
-

Synopsis

-
-#include <thunarx/thunarx.h>
-
-                    ThunarxMenuProviderIface;
-                    ThunarxMenuProvider;
-GList *             thunarx_menu_provider_get_file_actions
-                                                        (ThunarxMenuProvider *provider,
-                                                         GtkWidget *window,
-                                                         GList *files);
-GList *             thunarx_menu_provider_get_folder_actions
-                                                        (ThunarxMenuProvider *provider,
-                                                         GtkWidget *window,
-                                                         ThunarxFileInfo *folder);
-GList *             thunarx_menu_provider_get_dnd_actions
-                                                        (ThunarxMenuProvider *provider,
-                                                         GtkWidget *window,
-                                                         ThunarxFileInfo *folder,
-                                                         GList *files);
-
-
-
-

Object Hierarchy

-
-  GInterface
-   +----ThunarxMenuProvider
-
-
-
-

Prerequisites

-

-ThunarxMenuProvider requires - GObject.

-
-
-

Description

-

- The ThunarxMenuProvider interface is implemented by - extensions which provide additional menu items that should be displayed in - the file or folder context menus for certain types of files. -

-

- Extensions that implement this interface should do its best to respond as - fast as possible to method invokations by the file manager. That said, when - the file manager calls the thunarx_menu_provider_get_file_actions() or the - thunarx_menu_provider_get_folder_actions() method, the implementation in the - extension should use only the thunarx_file_info_has_mime_type() and - thunarx_file_info_is_directory() methods to determine the actions that should - be added to the file manager's context menu. Don't perform any complicated I/O - to determine the action list, as that would block the whole file manager process. -

-

- The GtkActions returned from the - thunarx_menu_provider_get_file_actions() and thunarx_menu_provider_get_folder_actions() - methods must be namespaced with the module to avoid collision with internal file manager - actions and actions provided by other extensions. For example, the menu action provided - by the ThunarOpenTerminal extension should be - called ThunarOpenTerminal::open-terminal. -

-
-

Example 5. Menu provider example

-
-
-static void   hello_menu_provider_init (ThunarxMenuProviderIface *iface);
-static GList *hello_get_file_actions   (ThunarxMenuProvider      *provider,
-                                        GtkWidget                *window,
-                                        GList                    *files);
-THUNARX_DEFINE_TYPE_WITH_CODE (Hello, hello, G_TYPE_OBJECT,
-                               THUNARX_IMPLEMENT_INTERFACE (THUNARX_TYPE_MENU_PROVIDER,
-                                                            hello_menu_provider_init));
-static void
-hello_menu_provider_init (ThunarxMenuProviderIface *iface)
-{
-  iface->get_file_actions = hello_get_file_actions;
-}
-static void
-hello_activated (GtkWidget *window)
-{
-  GtkWidget *dialog;
-  dialog = gtk_message_dialog_new (GTK_WINDOW (window),
-                                   GTK_DIALOG_MODAL
-                                   | GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_INFO,
-                                   GTK_BUTTONS_OK,
-                                   "Hello World!");
-  gtk_dialog_run (GTK_DIALOG (dialog));
-  gtk_widget_destroy (dialog);
-}
-static GList*
-hello_get_file_actions (ThunarxMenuProvider *provider,
-                        GtkWidget           *window,
-                        GList               *files)
-{
-  GtkAction *action;
-  GClosure  *closure;
-  action = gtk_action_new ("Hello::say-hello", "Say hello", "Say hello", NULL);
-  closure = g_cclosure_object_new_swap (G_CALLBACK (hello_activated), G_OBJECT (window));
-  g_signal_connect_closure (G_OBJECT (action), "activate", closure, TRUE);
-  return g_list_append (NULL, action);
-}
-

- The above example will add an item Say hello - to the file context menus as shown in the picture below: -

-

- -

-
-
-
-
-
-

Details

-
-

ThunarxMenuProviderIface

-
typedef struct {
-  GList *(*get_file_actions)    (ThunarxMenuProvider *provider,
-                                 GtkWidget           *window,
-                                 GList               *files);
-
-  GList *(*get_folder_actions)  (ThunarxMenuProvider *provider,
-                                 GtkWidget           *window,
-                                 ThunarxFileInfo     *folder);
-
-  GList *(*get_dnd_actions)     (ThunarxMenuProvider *provider,
-                                 GtkWidget           *window,
-                                 ThunarxFileInfo     *folder,
-                                 GList               *files);
-} ThunarxMenuProviderIface;
-
-

- Interface with virtual methods implemented by extensions that provide - additional menu items for the file manager's context menus. -

-

- Providers don't need to implement all of the virtual methods listed in - the interface. -

-
-- - - - - - - - - - - - - - -

get_file_actions ()

See thunarx_menu_provider_get_file_actions(). -

get_folder_actions ()

See thunarx_menu_provider_get_folder_actions(). -

get_dnd_actions ()

See thunarx_menu_provider_get_dnd_actions(). -
-
-
-
-

ThunarxMenuProvider

-
typedef struct _ThunarxMenuProvider ThunarxMenuProvider;
-

- Menu provider type. -

-
-
-
-

thunarx_menu_provider_get_file_actions ()

-
GList *             thunarx_menu_provider_get_file_actions
-                                                        (ThunarxMenuProvider *provider,
-                                                         GtkWidget *window,
-                                                         GList *files);
-

-Returns the list of GtkActions that provider has to offer for -files. -

-

-As a special note, this method automatically takes a reference on the -provider for every GtkAction object returned from the real implementation -of this method in provider. This is to make sure that the extension stays -in memory for atleast the time that the actions are used. If the extension -wants to stay in memory for a longer time, it'll need to take care of this -itself (e.g. by taking an additional reference on the provider itself, -that's released at a later time). -

-

-The caller is responsible to free the returned list of actions using -something like this when no longer needed: -

-
- - - - - - - -
1
-2
g_list_foreach (list, (GFunc) g_object_unref, NULL);
-g_list_free (list);
-
- -

-

-
-- - - - - - - - - - - - - - - - - - -

provider :

a ThunarxMenuProvider. -

window :

the GtkWindow within which the actions will be used. -

files :

the list of ThunarxFileInfos to which the actions will be applied. -

Returns :

the list of GtkActions that provider has to offer - for files. -
-
-
-
-

thunarx_menu_provider_get_folder_actions ()

-
GList *             thunarx_menu_provider_get_folder_actions
-                                                        (ThunarxMenuProvider *provider,
-                                                         GtkWidget *window,
-                                                         ThunarxFileInfo *folder);
-

-Returns the list of GtkActions that provider has to offer for -folder. -

-

-As a special note, this method automatically takes a reference on the -provider for every GtkAction object returned from the real implementation -of this method in provider. This is to make sure that the extension stays -in memory for atleast the time that the actions are used. If the extension -wants to stay in memory for a longer time, it'll need to take care of this -itself (e.g. by taking an additional reference on the provider itself, -that's released at a later time). -

-

-The caller is responsible to free the returned list of actions using -something like this when no longer needed: -

-
- - - - - - - -
1
-2
g_list_foreach (list, (GFunc) g_object_unref, NULL);
-g_list_free (list);
-
- -

-

-
-- - - - - - - - - - - - - - - - - - -

provider :

a ThunarxMenuProvider. -

window :

the GtkWindow within which the actions will be used. -

folder :

the folder to which the actions should will be applied. -

Returns :

the list of GtkActions that provider has to offer - for folder. -
-
-
-
-

thunarx_menu_provider_get_dnd_actions ()

-
GList *             thunarx_menu_provider_get_dnd_actions
-                                                        (ThunarxMenuProvider *provider,
-                                                         GtkWidget *window,
-                                                         ThunarxFileInfo *folder,
-                                                         GList *files);
-

-Returns the list of GtkActions that provider has to offer for -dropping the files into the folder. For example, the thunar-archive-plugin -provides Extract Here actions when dropping archive -files into a folder that is writable by the user. -

-

-As a special note, this method automatically takes a reference on the -provider for every GtkAction object returned from the real implementation -of this method in provider. This is to make sure that the extension stays -in memory for atleast the time that the actions are used. If the extension -wants to stay in memory for a longer time, it'll need to take care of this -itself (e.g. by taking an additional reference on the provider itself, -that's released at a later time). -

-

-The caller is responsible to free the returned list of actions using -something like this when no longer needed: -

-
- - - - - - - -
1
-2
g_list_foreach (list, (GFunc) g_object_unref, NULL);
-g_list_free (list);
-
- -

-

-
-- - - - - - - - - - - - - - - - - - - - - - -

provider :

a ThunarxMenuProvider. -

window :

the GtkWindow within which the actions will be used. -

folder :

the folder into which the files are being dropped -

files :

the list of ThunarxFileInfos for the files that are - being dropped to folder in window. -

Returns :

the list of GtkActions that provider has to offer - for dropping files to folder. - -
-

Since 0.4.1

-
-
-
-

See Also

-

- The description of the ThunarxFileInfo - interface. -

-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx-overview.html thunar-1.6.10/docs/reference/thunarx/html/thunarx-overview.html --- thunar-1.2.3/docs/reference/thunarx/html/thunarx-overview.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx-overview.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - -Part I. Overview - - - - - - - - - - - - - - - - -
-

-Part I. Overview

-

- The Thunar Extension Framework (thunarx) provides - developers with an easy way to extend the basic functionality provided by - the Thunar File Manager. - The thunarx library includes interfaces that can - be implemented by extensions for various purposes. -

-

- It is based on the GLib Dynamic Type - System and loads the extensions on demand to reduce the system resources - allocated for the file manager process. -

-
-

-Goals

-

- The Thunar Extension Framework was developed with the following goals in mind: -

-
    -
  1. - It should be easy to extend the functionality of the file manager in certain - ways. -
  2. -
  3. - The internals of the file manager should be hidden from the extensions to be - able to maintain API/ABI compatibility for extensions over various major - releases of the file manager. -
  4. -
  5. - Provide basic compatibility with the Nautilus Extension Framework, - so vendors don't need to write several versions of their extensions for the various - file managers. With the current implementation it should be easy to write a small - wrapper library for generic extensions that can be loaded into both Thunar and - Nautilus. -
  6. -
  7. - Extensions should not be loaded into memory until they are actually required to - save system resources. This differs from the way Nautilus handles extensions and - therefore people that already know how to write Nautilus extensions must be - careful when writing extensions for Thunar, because Thunar actually unloads the - extension when it's no longer needed. The GTypePlugin - and GTypeModule - sections in the GObject - Reference Manual provide details about the handling of dynamic type plugins. -
  8. -
  9. - Permit developers to write extensions in languages other than C. -
  10. -
-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ThunarxPreferencesProvider.html thunar-1.6.10/docs/reference/thunarx/html/ThunarxPreferencesProvider.html --- thunar-1.2.3/docs/reference/thunarx/html/ThunarxPreferencesProvider.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ThunarxPreferencesProvider.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,276 +0,0 @@ - - - - -ThunarxPreferencesProvider - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

ThunarxPreferencesProvider

-

ThunarxPreferencesProvider — The interface to extensions that provide preferences

-
-
-

Stability Level

-Stable, unless otherwise indicated -
- -
-

Object Hierarchy

-
-  GInterface
-   +----ThunarxPreferencesProvider
-
-
-
-

Prerequisites

-

-ThunarxPreferencesProvider requires - GObject.

-
-
-

Description

-

- The ThunarxPreferencesProvider interface is implemented by extensions that - want to register additional actions in the preferences menu of the file - manager. In general this should only be done by extensions that are closely - tied to the file manager (for example, the thunar-uca is - such an extension, while an extension that just adds Compress - file and Uncompress file to the - context menu of compressed files should not add their own preferences to - the file manager menu, because it should use desktop-wide settings for - archive managers instead). -

-

- The GtkActions returned from the - thunarx_preferences_provider_get_actions() method must be namespaced with the - model to avoid collision with internal file manager actions and actions provided - by other extensions. For example, the preferences action provided by the - thunar-uca extension is called - ThunarUca::manage-actions. -

-
-

Example 6. Preferences provider example

-
- - - - - - - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
static void hello_preferences_provider_init (ThunarxPreferencesProviderIface *iface);
-static void hello_get_actions               (ThunarxPreferencesProvider      *provider,
-                                             GtkWidget                       *window);
-THUNARX_DEFINE_TYPE_WITH_CODE (Hello, hello, G_TYPE_OBJECT,
-                               THUNARX_IMPLEMENT_INTERFACE (THUNARX_TYPE_PREFERENCES_PROVIDER,
-                                                            hello_preferences_provider_init));
-static void
-hello_preferences_provider_init (ThunarxPreferencesProviderIface *iface)
-{
-  iface->get_actions = hello_get_actions;
-}
-static void
-hello_activated (GtkWidget *window)
-{
-  GtkWidget *dialog;
-  dialog = gtk_message_dialog_new (GTK_WINDOW (window),
-                                   GTK_DIALOG_MODAL
-                                   | GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_INFO,
-                                   GTK_BUTTONS_OK,
-                                   "Hello World!");
-  gtk_dialog_run (GTK_DIALOG (dialog));
-  gtk_widget_destroy (dialog);
-}
-static GList*
-hello_get_actions (ThunarxPreferencesProvider *provider,
-                   GtkWidget                  *window)
-{
-  GtkAction *action;
-  GClosure  *closure;
-  action = gtk_action_new ("Hello::say-hello", "Say hello", "Say hello", NULL);
-  closure = g_cclosure_object_new_swap (G_CALLBACK (hello_activated), G_OBJECT (window));
-  g_signal_connect_closure (G_OBJECT (action), "activate", closure, TRUE);
-  return g_list_prepend (NULL, action);
-}
-
- -
-
-
-
-

Details

-
-

ThunarxPreferencesProviderIface

-
typedef struct {
-  GList *(*get_actions) (ThunarxPreferencesProvider *provider,
-                         GtkWidget                  *window);
-} ThunarxPreferencesProviderIface;
-
-

- Interface with virtual methods implementation by extensions that - want to install preferences actions in the file managers menu. -

-

- Providers don't need to implement all of the virtual methods listed - in the interface. -

-
-- - - - -

get_actions ()

See thunarx_preferences_provider_get_actions(). -
-
-
-
-

ThunarxPreferencesProvider

-
typedef struct _ThunarxPreferencesProvider ThunarxPreferencesProvider;
-

- Preferences provider type. -

-
-
-
-

thunarx_preferences_provider_get_actions ()

-
GList *             thunarx_preferences_provider_get_actions
-                                                        (ThunarxPreferencesProvider *provider,
-                                                         GtkWidget *window);
-

-Returns the list of GtkActions that provider has to offer -as preferences within window. These actions will usually be added -to the builtin list of preferences in the "Edit" menu of the file -manager's window. -

-

-Plugin writers that implement this interface should make sure to -choose descriptive action names and tooltips, and not to crowd the -"Edit" menu too much. That said, think twice before implementing -this interface, as too many preference actions will render the -file manager useless over time! -

-

-The caller is responsible to free the returned list of actions using -something like this when no longer needed: -

-
- - - - - - - -
1
-2
g_list_foreach (list, (GFunc) g_object_unref, NULL);
-g_list_free (list);
-
- -

-

-
-- - - - - - - - - - - - - - -

provider :

a ThunarxPreferencesProvider. -

window :

the GtkWindow within which the actions will be used. -

Returns :

the list of GtkActions that provider has - to offer as preferences within window. -
-
-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ThunarxPropertyPage.html thunar-1.6.10/docs/reference/thunarx/html/ThunarxPropertyPage.html --- thunar-1.2.3/docs/reference/thunarx/html/ThunarxPropertyPage.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ThunarxPropertyPage.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,665 +0,0 @@ - - - - -ThunarxPropertyPage - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

ThunarxPropertyPage

-

ThunarxPropertyPage — The base class for pages added to the properties dialog

-
-
-

Stability Level

-Stable, unless otherwise indicated -
-
-

Synopsis

-
-#include <thunarx/thunarx.h>
-
-                    ThunarxPropertyPage;
-GtkWidget *         thunarx_property_page_new           (const gchar *label);
-GtkWidget *         thunarx_property_page_new_with_label_widget
-                                                        (GtkWidget *label_widget);
-const gchar *       thunarx_property_page_get_label     (ThunarxPropertyPage *property_page);
-void                thunarx_property_page_set_label     (ThunarxPropertyPage *property_page,
-                                                         const gchar *label);
-GtkWidget *         thunarx_property_page_get_label_widget
-                                                        (ThunarxPropertyPage *property_page);
-void                thunarx_property_page_set_label_widget
-                                                        (ThunarxPropertyPage *property_page,
-                                                         GtkWidget *label_widget);
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GInitiallyUnowned
-         +----GtkObject
-               +----GtkWidget
-                     +----GtkContainer
-                           +----GtkBin
-                                 +----ThunarxPropertyPage
-
-
-
-

Implemented Interfaces

-

-ThunarxPropertyPage implements - AtkImplementorIface and GtkBuildable.

-
-
-

Properties

-
-  "label"                    gchar*                : Read / Write
-  "label-widget"             GtkWidget*            : Read / Write
-
-
-
-

Description

-

- The class for pages that can be added to Thunar's file properties dialog - by extensions implementing the ThunarxPropertyPageProvider interface. The - pages returned by extensions from thunarx_property_page_provider_get_pages() - method are instances of this class or a derived class. Note that extensions - do not need to subclass ThunarxPropertyPage, but may also instantiate it - directly and add widgets to it, but I strongly suggest to create a subclass - as it usually leads to better modularization and thereby better maintainability - in the code. -

-

- To pick up the TagPage example from the thunarx_property_page_provider_get_pages() - description again, you'd create a new class TagPage, that inherits ThunarxPropertyPage - (using the THUNARX_DEFINE_TYPE macro), which provides several user interface elements - in the property, and defines atleast one property named "file", which - is the ThunarxFileInfo whose tags are displayed in the property page. For example, the - tag-page.h header file would look like this (this is really just - an example of the suggested way to implement property pages, you may of course choose - a different way): -

-
- - - - - - - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
##ifndef __TAG_PAGE_H__
-##define __TAG_PAGE_H__
-##include <thunarx/thunarx.h>
-G_BEGIN_DECLS;
-typedef struct _TagPageClass TagPageClass;
-typedef struct _TagPage      TagPage;
-#define TAG_TYPE_PAGE            (tag_page_get_type ())
-#define TAG_PAGE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAG_TYPE_PAGE, TagPage))
-#define TAG_PAGE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), TAG_TYPE_PAGE, TagPageClass))
-#define TAG_IS_PAGE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAG_TYPE_PAGE))
-#define TAG_IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAG_TYPE_PAGE))
-#define TAG_PAGE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), TAG_TYPE_PAGE, TagPageClass))
-/* these two functions are implemented automatically by the THUNARX_DEFINE_TYPE macro */
-GType            tag_page_get_type      (void) G_GNUC_CONST;
-void             tag_page_register_type (ThunarxProviderPlugin *plugin);
-GtkWidget       *tag_page_new           (ThunarxFileInfo       *file) G_GNUC_MALLOC;
-ThunarxFileInfo *tag_page_get_file      (TagPage               *tag_page);
-void             tag_page_set_file      (TagPage               *tag_page,
-                                         ThunarxFileInfo       *file);
-G_END_DECLS;
-##endif /* !__TAG_PAGE_H__ */
-
- -

- And the tag-page.c source file could look like this: -

-
- - - - - - - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
##include "tag-page.h"
-/* Property identifiers */
-enum
-{
-  PROP_0,
-  PROP_FILE,
-};
-static void tag_page_class_init   (TagPageClass *klass);
-static void tag_page_init         (TagPage          *tag_page);
-static void tag_page_finalize     (GObject          *object);
-static void tag_page_get_property (GObject          *object,
-                                   guint             prop_id,
-                                   GValue           *value,
-                                   GParamSpec       *pspec);
-static void tag_page_set_property (GObject          *object,
-                                   guint             prop_id,
-                                   const GValue     *value,
-                                   GParamSpec       *pspec);
-static void tag_page_file_changed (ThunarxFileInfo  *file,
-                                   TagPage          *tag_page);
-struct _TagPageClass
-{
-  ThunarxPropertyPageClass __parent__;
-};
-struct _TagPage
-{
-  ThunarxPropertyPage __parent__;
-  ThunarxFileInfo    *file;
-  /* your widgets... */
-};
-/* implements the tag_page_get_type() and tag_page_register_type() functions */
-THUNARX_DEFINE_TYPE (TagPage, tag_page, THUNARX_TYPE_PROPERTY_PAGE);
-static void
-tag_page_class_init (TagPageClass *klass)
-{
-  GObjectClass *gobject_class;
-  gobject_class = G_OBJECT_CLASS (klass);
-  gobject_class->finalize = tag_page_finalize;
-  gobject_class->get_property = tag_page_get_property;
-  gobject_class->set_property = tag_page_set_property;
-  /**
-   * TagPage:file:
-   *
-   * The <a class="link" href="ThunarxFileInfo.html" title="ThunarxFileInfo">ThunarxFileInfo</a> displayed by this <GTKDOCLINK HREF="TagPage">TagPage</GTKDOCLINK>.
-   **/
-  g_object_class_install_property (gobject_class,
-                                   PROP_FILE,
-                                   g_param_spec_object ("file", "file", "file,
-                                                        THUNARX_TYPE_FILE_INFO,
-                                                        G_PARAM_READWRITE));
-}
-static void
-tag_page_init (TagPage *tag_page)
-{
-  GtkWidget *table;
-  /* you can of course also use a GtkVBox here, or whatever */
-  table = gtk_table_new (2, 2, FALSE);
-  gtk_container_add (GTK_CONTAINER (tag_page), table);
-  gtk_widget_show (table);
-  /* add your widgets to the table... */
-}
-static void
-tag_page_finalize (GObject *object)
-{
-  TagPage *tag_page = TAG_PAGE (object);
-  /* disconnect from the file */
-  tag_page_set_file (tag_page, NULL);
-  /* release any additional resources... */
-  (*G_OBJECT_CLASS (tag_page_parent_class)->finalize) (object);
-}
-static void
-tag_page_get_property (GObject    *object,
-                       guint       prop_id,
-                       GValue     *value,
-                       GParamSpec *pspec)
-{
-  TagPage *tag_page = TAG_PAGE (object);
-  switch (prop_id)
-    {
-    case PROP_FILE:
-      g_value_set_object (value, tag_page_get_file (tag_page));
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-    }
-}
-static void
-tag_page_set_property (GObject      *object,
-                       guint         prop_id,
-                       const GValue *value,
-                       GParamSpec   *pspec)
-{
-  TagPage *tag_page = TAG_PAGE (object);
-  switch (prop_id)
-    {
-    case PROP_FILE:
-      tag_page_set_file (tag_page, g_value_get_object (value));
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-    }
-}
-static void
-tag_page_file_changed (ThunarxFileInfo *file,
-                       TagPage         *tag_page)
-{
-  /* update your user interface elements in the tag_page
-   * to display the new state of the file...
-   */
-}
-GtkWidget*
-tag_page_new (ThunarxFileInfo *file)
-{
-  return g_object_new (TAG_TYPE_PAGE, "file", file, NULL);
-}
-ThunarxFileInfo*
-tag_page_get_file (TagPage *tag_page)
-{
-  g_return_val_if_fail (TAG_IS_PAGE (tag_page), NULL);
-  return tag_page->file;
-}
-void
-tag_page_set_file (TagPage         *tag_page,
-                   ThunarxFileInfo *file)
-{
-  g_return_if_fail (TAG_IS_PAGE (tag_page));
-  g_return_if_fail (file == NULL || THUNARX_IS_FILE_INFO (file));
-  if (tag_page->file != NULL)
-    {
-      g_signal_handlers_disconnect_by_func (tag_page->file, tag_page_file_changed, tag_page);
-      g_object_unref (G_OBJECT (tag_page->file));
-    }
-  tag_page->file = file;
-  if (file != NULL)
-    {
-      g_object_ref (file);
-      tag_page_file_changed (file, tag_page);
-      g_signal_connect (file, "changed", G_CALLBACK (tag_page_file_changed), tag_page);
-    }
-  g_object_notify (G_OBJECT (tag_page), "file");
-}
-
- -

- If this seems to be too complicated to you, just don't follow the suggestion. But keep in mind, that - while the above solution is a little longer than a less structured solution, it yields great flexbility - and maintainability. For example the TagPage class described above, once filled with user interface - elements, may be used for a standalone MP3-Tag editor out of the box (i.e. as an action returned from - the thunarx_renamer_get_actions() method). -

-

- What is important to remember is that you should connect to the "changed" signal - of the ThunarxFileInfos you are displaying, and update the user interface whenever the file - changes. -

-
-
-

Details

-
-

ThunarxPropertyPage

-
typedef struct _ThunarxPropertyPage ThunarxPropertyPage;
-

- Base instance type for property pages. -

-
-
-
-

thunarx_property_page_new ()

-
GtkWidget *         thunarx_property_page_new           (const gchar *label);
-

-Allocates a new ThunarxPropertyPage widget and sets its label to the -specified label. If label is NULL, the label is omitted. -

-
-- - - - - - - - - - -

label :

the text to use as the label of the page. -

Returns :

the newly allocated ThunarxPropertyPage - widget. -
-
-
-
-

thunarx_property_page_new_with_label_widget ()

-
GtkWidget *         thunarx_property_page_new_with_label_widget
-                                                        (GtkWidget *label_widget);
-

-Allocates a new ThunarxPropertyPage widget and sets its label to -the specified label_widget. -

-
-- - - - - - - - - - -

label_widget :

a GtkWidget, which should be used as label. -

Returns :

the newly allocated ThunarxPropertyPage widget. -
-
-
-
-

thunarx_property_page_get_label ()

-
const gchar *       thunarx_property_page_get_label     (ThunarxPropertyPage *property_page);
-

-If the property_page's label widget is a GtkLabel, returns the text -in the label widget (the property_page will have a GtkLabel for the -label widget if a non-NULL argument was passed to thunarx_property_page_new()). -

-
-- - - - - - - - - - -

property_page :

a ThunarxPropertyPage. -

Returns :

the text in the label or NULL if there was no label widget or - the label widget was not a GtkLabel. The returned string is - owned by the property_page and must not be modified or freed. -
-
-
-
-

thunarx_property_page_set_label ()

-
void                thunarx_property_page_set_label     (ThunarxPropertyPage *property_page,
-                                                         const gchar *label);
-

-Sets the text of the label. If label is NULL, the current label is -removed. -

-
-- - - - - - - - - - -

property_page :

a ThunarxPropertyPage. -

label :

the text to use as the label of the page. -
-
-
-
-

thunarx_property_page_get_label_widget ()

-
GtkWidget *         thunarx_property_page_get_label_widget
-                                                        (ThunarxPropertyPage *property_page);
-

-Returns the label widget for the property_page. See -thunarx_property_page_set_label_widget(). -

-
-- - - - - - - - - - -

property_page :

a ThunarxPropertyPage. -

Returns :

the label widget or NULL if there is none. -
-
-
-
-

thunarx_property_page_set_label_widget ()

-
void                thunarx_property_page_set_label_widget
-                                                        (ThunarxPropertyPage *property_page,
-                                                         GtkWidget *label_widget);
-

-Sets the label widget for the property_page. This is the widget -that will appear in the notebook header for the property_page. -

-
-- - - - - - - - - - -

property_page :

a ThunarxPropertyPage. -

label_widget :

the new label widget. -
-
-
-
-

Property Details

-
-

The "label" property

-
  "label"                    gchar*                : Read / Write
-

Text of the page's label.

-

Default value: NULL

-
-
-
-

The "label-widget" property

-
  "label-widget"             GtkWidget*            : Read / Write
-

A widget to display in place of the usual page label.

-
-
-
-

See Also

-

- The description of the ThunarxPropertyPageProvider interface. -

-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ThunarxPropertyPageProvider.html thunar-1.6.10/docs/reference/thunarx/html/ThunarxPropertyPageProvider.html --- thunar-1.2.3/docs/reference/thunarx/html/ThunarxPropertyPageProvider.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ThunarxPropertyPageProvider.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,226 +0,0 @@ - - - - -ThunarxPropertyPageProvider - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

ThunarxPropertyPageProvider

-

ThunarxPropertyPageProvider — The interface to extensions that provide additional property pages

-
-
-

Stability Level

-Stable, unless otherwise indicated -
- -
-

Object Hierarchy

-
-  GInterface
-   +----ThunarxPropertyPageProvider
-
-
-
-

Prerequisites

-

-ThunarxPropertyPageProvider requires - GObject.

-
-
-

Description

-

- To add a property page to the file properties dialog, extensions must implement the - ThunarxPropertyPageProvider interface. This interface has only one virtual - method, get_pages, that is passed a list of ThunarxFileInfo objects and returns a list - of ThunarxPropertyPage objects. -

-
-
-

Details

-
-

ThunarxPropertyPageProvider

-
typedef struct _ThunarxPropertyPageProvider ThunarxPropertyPageProvider;
-

- Property page provider type. -

-
-
-
-

ThunarxPropertyPageProviderIface

-
typedef struct {
-  GList *(*get_pages) (ThunarxPropertyPageProvider *provider,
-                       GList                       *files);
-} ThunarxPropertyPageProviderIface;
-
-

- Interface with virtual methods implemented by extensions that provide - additional pages for the file properties dialog. -

-
-- - - - -

get_pages ()

see thunarx_property_page_provider_get_pages(). -
-
-
-
-

thunarx_property_page_provider_get_pages ()

-
GList *             thunarx_property_page_provider_get_pages
-                                                        (ThunarxPropertyPageProvider *provider,
-                                                         GList *files);
-

-Returns the list of ThunarxPropertyPages that provider has to offer for files. -

-

-Extensions that implement this interface, must first check whether they support all the -ThunarxFileInfos in the list of files. Most extensions will probably only support -ThunarxPropertyPages for exactly one file of a certain type. For example an MP3-Tag -editor property page will most probably support only a single audio file, and so the method -would be implemented like this -

-
- - - - - - - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
GList*
-tag_provider_get_pages (ThunarxPropertyPageProvider *property_page_provider,
-                        GList                       *files)
-{
-  if (g_list_length (files) != 1)
-    return NULL;
-  else if (!thunarx_file_info_has_mime_type (files->data, "audio/mp3"))
-    return NULL;
-  else
-    return g_list_append (NULL, tag_page_new (files->data));
-}
-
- -

-where tag_page_new() allocates a new TagPage instance for a ThunarxFileInfo object -passed to it. See the description of the ThunarxPropertyPage class for additional -information about the TagPage example class. -

-

-As a special note, this method automatically takes a reference on the -provider for every ThunarxPropertyPage object returned from the real implementation -of this method in provider. This is to make sure that the extension stays -in memory for atleast the time that the pages are used. If the extension -wants to stay in memory for a longer time, it'll need to take care of this -itself (e.g. by taking an additional reference on the provider itself, -that's released at a later time). -

-

-The caller is responsible to free the returned list of pages using -something like this when no longer needed: -

-
- - - - - - - -
1
-2
-3
g_list_foreach (list, (GFunc) g_object_ref_sink, NULL);
-g_list_foreach (list, (GFunc) g_object_unref, NULL);
-g_list_free (list);
-
- -

-

-
-- - - - - - - - - - - - - - -

provider :

a ThunarxPropertyPageProvider. -

files :

the list of ThunarxFileInfos for which a properties dialog will be displayed. -

Returns :

the list of ThunarxPropertyPages that provider has to offer - for files. -
-
-
-
-

See Also

-

- The description of the ThunarxPropertyPage class. -

-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ThunarxProviderFactory.html thunar-1.6.10/docs/reference/thunarx/html/ThunarxProviderFactory.html --- thunar-1.2.3/docs/reference/thunarx/html/ThunarxProviderFactory.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ThunarxProviderFactory.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,166 +0,0 @@ - - - - -ThunarxProviderFactory - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

ThunarxProviderFactory

-

ThunarxProviderFactory — The provider factory support for applications

-
-
-

Stability Level

-Stable, unless otherwise indicated -
- -
-

Object Hierarchy

-
-  GObject
-   +----ThunarxProviderFactory
-
-
-
-

Description

-

- The ThunarxProviderFactory class allows applications to use Thunar plugins. It handles - the loading of the installed extensions and instantiates providers for the application. - For example, Thunar uses this class to access the installed extensions. -

-
-
-

Details

-
-

ThunarxProviderFactory

-
typedef struct _ThunarxProviderFactory ThunarxProviderFactory;
-

- The ThunarxProviderFactory struct contains only private data. It should - only be accessed with the methods described below. -

-
-
-
-

thunarx_provider_factory_get_default ()

-
ThunarxProviderFactory * thunarx_provider_factory_get_default
-                                                        (void);
-

-Returns a reference to the default ThunarxProviderFactory -instance. -

-

-The caller is responsible to free the returned object -using g_object_unref() when no longer needed. -

-
-- - - - -

Returns :

a reference to the default - ThunarxProviderFactory instance. -
-
-
-
-

thunarx_provider_factory_list_providers ()

-
GList *             thunarx_provider_factory_list_providers
-                                                        (ThunarxProviderFactory *factory,
-                                                         GType type);
-

-Returns all providers of the given type. -

-

-The caller is responsible to release the returned -list of providers using code like this: -

-
- - - - - - - -
1
-2
g_list_foreach (list, (GFunc) g_object_unref, NULL);
-g_list_free (list);
-
- -

-

-
-- - - - - - - - - - - - - - -

factory :

a ThunarxProviderFactory instance. -

type :

the provider GType. -

Returns :

the of providers for type. -
-
-
- -
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ThunarxProviderPlugin.html thunar-1.6.10/docs/reference/thunarx/html/ThunarxProviderPlugin.html --- thunar-1.2.3/docs/reference/thunarx/html/ThunarxProviderPlugin.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ThunarxProviderPlugin.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,790 +0,0 @@ - - - - -ThunarxProviderPlugin - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

ThunarxProviderPlugin

-

ThunarxProviderPlugin — The interface to the plugin type registration

-
-
-

Stability Level

-Stable, unless otherwise indicated -
-
-

Synopsis

-
-#include <thunarx/thunarx.h>
-
-                    ThunarxProviderPlugin;
-                    ThunarxProviderPluginIface;
-gboolean            thunarx_provider_plugin_get_resident
-                                                        (const ThunarxProviderPlugin *plugin);
-void                thunarx_provider_plugin_set_resident
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         gboolean resident);
-GType               thunarx_provider_plugin_register_type
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         GType type_parent,
-                                                         const gchar *type_name,
-                                                         const GTypeInfo *type_info,
-                                                         GTypeFlags type_flags);
-void                thunarx_provider_plugin_add_interface
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         GType instance_type,
-                                                         GType interface_type,
-                                                         const GInterfaceInfo *interface_info);
-GType               thunarx_provider_plugin_register_enum
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         const gchar *name,
-                                                         const GEnumValue *const_static_values);
-GType               thunarx_provider_plugin_register_flags
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         const gchar *name,
-                                                         const GFlagsValue *const_static_values);
-#define             THUNARX_DEFINE_TYPE                 (TN,
-                                                         t_n,
-                                                         T_P)
-#define             THUNARX_DEFINE_TYPE_WITH_CODE       (TN,
-                                                         t_n,
-                                                         T_P,
-                                                         _C_)
-#define             THUNARX_DEFINE_ABSTRACT_TYPE        (TN,
-                                                         t_n,
-                                                         T_P)
-#define             THUNARX_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN,
-                                                         t_n,
-                                                         T_P,
-                                                         _C_)
-#define             THUNARX_DEFINE_TYPE_EXTENDED        (TypeName,
-                                                         type_name,
-                                                         TYPE_PARENT,
-                                                         flags,
-                                                         CODE)
-#define             THUNARX_IMPLEMENT_INTERFACE         (TYPE_IFACE,
-                                                         iface_init)
-
-
-
-

Object Hierarchy

-
-  GInterface
-   +----ThunarxProviderPlugin
-
-
-
-

Properties

-
-  "resident"                 gboolean              : Read / Write
-
-
-
-

Description

-

- ThunarxProviderPlugin is the interface to the file manager's type plugin loader implementation. It - provides methods to extensions - also called provider plugins - to register dynamic - types and control certain aspects of the plugin (see thunarx_provider_plugin_set_resident()). -

-
-
-

Details

-
-

ThunarxProviderPlugin

-
typedef struct _ThunarxProviderPlugin ThunarxProviderPlugin;
-

- The ThunarxProviderPlugin struct is just a typedef for - the interface instance type. -

-
-
-
-

ThunarxProviderPluginIface

-
typedef struct {
-  gboolean (*get_resident)    (const ThunarxProviderPlugin *plugin);
-  void     (*set_resident)    (ThunarxProviderPlugin       *plugin,
-                               gboolean                     resident);
-
-  GType    (*register_type)   (ThunarxProviderPlugin       *plugin,
-                               GType                        type_parent,
-                               const gchar                 *type_name,
-                               const GTypeInfo             *type_info,
-                               GTypeFlags                   type_flags);
-  void     (*add_interface)   (ThunarxProviderPlugin       *plugin,
-                               GType                        instance_type,
-                               GType                        interface_type,
-                               const GInterfaceInfo        *interface_info);
-  GType    (*register_enum)   (ThunarxProviderPlugin       *plugin,
-                               const gchar                 *name,
-                               const GEnumValue            *const_static_values);
-  GType    (*register_flags)  (ThunarxProviderPlugin       *plugin,
-                               const gchar                 *name,
-                               const GFlagsValue           *const_static_values);
-} ThunarxProviderPluginIface;
-
-

- Interface with virtual methods implemented by the file manager and - accessible from the extensions. -

-
-- - - - - - - - - - - - - - - - - - - - - - - - - - -

get_resident ()

see thunarx_provider_plugin_get_resident(). -

set_resident ()

see thunarx_provider_plugin_set_resident(). -

register_type ()

see thunarx_provider_plugin_register_type(). -

add_interface ()

see thunarx_provider_plugin_add_interface(). -

register_enum ()

see thunarx_provider_plugin_register_enum(). -

register_flags ()

see thunarx_provider_plugin_register_flags(). -
-
-
-
-

thunarx_provider_plugin_get_resident ()

-
gboolean            thunarx_provider_plugin_get_resident
-                                                        (const ThunarxProviderPlugin *plugin);
-

-Determines whether the application is allowed to unload plugin -from memory when no longer needed and reload it on demand. If -FALSE is returned, then the application may unload plugin, else -if TRUE is returned the application will take care that plugin -is never unloaded from memory during the lifetime of the application. -

-
-- - - - - - - - - - -

plugin :

a ThunarxProviderPlugin. -

Returns :

TRUE if plugin will be kept in memory once loaded - for the first time. -
-
-
-
-

thunarx_provider_plugin_set_resident ()

-
void                thunarx_provider_plugin_set_resident
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         gboolean resident);
-

-This method is used to instruct the application that plugin must be -kept in memory during the lifetime of the application. The default -is to allow the application to unload plugin from the memory when -no longer needed. If this method is invoked with a resident value -of TRUE then the application will never try to unload plugin. -

-

-This method has no effect unless called from the -thunar_extension_initialize method of the plugin. -

-
-- - - - - - - - - - -

plugin :

a ThunarxProviderPlugin. -

resident :

-TRUE to make plugin resident in memory. -
-
-
-
-

thunarx_provider_plugin_register_type ()

-
GType               thunarx_provider_plugin_register_type
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         GType type_parent,
-                                                         const gchar *type_name,
-                                                         const GTypeInfo *type_info,
-                                                         GTypeFlags type_flags);
-

-Looks up or registers a type that is implemented with a particular type plugin. If a type with name type_name -was previously registered, the GType identifier for the type is returned, otherwise the type is newly registered, -and the resulting GType identifier returned. -

-

-When reregistering a type (typically because a module is unloaded then reloaded, and reinitialized), module and -type_parent must be the same as they were previously. -

-
-- - - - - - - - - - - - - - - - - - - - - - - - - - -

plugin :

a ThunarxProviderPlugin. -

type_parent :

the type for the parent class. -

type_name :

name for the type. -

type_info :

type information structure. -

type_flags :

flags field providing details about the type. -

Returns :

the new or existing type id. -
-
-
-
-

thunarx_provider_plugin_add_interface ()

-
void                thunarx_provider_plugin_add_interface
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         GType instance_type,
-                                                         GType interface_type,
-                                                         const GInterfaceInfo *interface_info);
-

-Registers an additional interface for a type, whose interface lives in the given type plugin. -If the interface was already registered for the type in this plugin, nothing will be done. -

-

-As long as any instances of the type exist, the type plugin will not be unloaded. -

-
-- - - - - - - - - - - - - - - - - - -

plugin :

a ThunarxProviderPlugin. -

instance_type :

type to which to add the interface. -

interface_type :

interface type to add. -

interface_info :

type information structure. -
-
-
-
-

thunarx_provider_plugin_register_enum ()

-
GType               thunarx_provider_plugin_register_enum
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         const gchar *name,
-                                                         const GEnumValue *const_static_values);
-

-Looks up or registers an enumeration that is implemented with a particular type plugin. If a type -with name name was previously registered, the GType identifier for the type is returned, -otherwise the type is newly registered, and the resulting GType identifier returned. -

-

-As long as any instances of the type exist, the type plugin will not be unloaded. -

-
-- - - - - - - - - - - - - - - - - - -

plugin :

a ThunarxProviderPlugin. -

name :

the name for the type. -

const_static_values :

an array of GEnumValue structs for the possible enumeration values. - The array is terminated by a struct with all members being 0. -

Returns :

the new or existing type id. -
-
-
-
-

thunarx_provider_plugin_register_flags ()

-
GType               thunarx_provider_plugin_register_flags
-                                                        (ThunarxProviderPlugin *plugin,
-                                                         const gchar *name,
-                                                         const GFlagsValue *const_static_values);
-

-Looks up or registers a flags type that is implemented with a particular type plugin. If a type with name -qname was previously registered, the GType identifier for the type is returned, otherwise the type is newly -registered, and the resulting GType identifier returned. -

-

-As long as any instances of the type exist, the type plugin will not be unloaded. -

-
-- - - - - - - - - - - - - - - - - - -

plugin :

a ThunarxProviderPlugin. -

name :

name for the type. -

const_static_values :

an array of GFlagsValue structs for the possible flags values. - The array is terminated by a struct with all members being 0. -

Returns :

the new or existing type id. -
-
-
-
-

THUNARX_DEFINE_TYPE()

-
#define THUNARX_DEFINE_TYPE(TN, t_n, T_P)                         THUNARX_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
-
-

- A convenience macro for plugin type implementations, which declares a class - initialization function, a static variable named t_n_parent_class - pointing to the parent and a static variable named t_n_type containing - the GType of the type to define. Furthermore, it defines a t_n_get_type() - function and a t_n_register_type() function. See THUNARX_DEFINE_TYPE_EXTENDED() - for an example. -

-
-- - - - - - - - - - - - - - -

TN :

the name of the new type, in Camel case. -

t_n :

the name of the new type, in lowercase, with words separated by '_'. -

T_P :

the GType of the parent type. -
-
-
-
-

THUNARX_DEFINE_TYPE_WITH_CODE()

-
#define THUNARX_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_)          THUNARX_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, _C_)
-
-

- A convenience macro for plugin type implementations. Similar to THUNARX_DEFINE_TYPE(), but - allows to insert custom code into the *_get_type() function, e.g. interface - implemenations via THUNARX_IMPLEMENT_INTERFACE(). See THUNARX_DEFINE_TYPE_EXTENDED() for - an example. -

-
-- - - - - - - - - - - - - - - - - - -

TN :

the name of the new type, in Camel case. -

t_n :

the name of the new type, in lowercase, with words separated by '_'. -

T_P :

the GType of the parent type. -

_C_ :

custom code that gets inserted in the *_get_type() function. -
-
-
-
-

THUNARX_DEFINE_ABSTRACT_TYPE()

-
#define THUNARX_DEFINE_ABSTRACT_TYPE(TN, t_n, T_P)                THUNARX_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, {})
-
-

- A convenience macro for plugin type implementations. Similar to THUNARX_DEFINE_TYPE(), but defines - an abstract type. See THUNARX_DEFINE_TYPE_EXTENDED() for an example. -

-
-- - - - - - - - - - - - - - -

TN :

the name of the new type, in Camel case. -

t_n :

the name of the new type, in lowercase, with words separated by '_'. -

T_P :

the GType of the parent type. -
-
-
-
-

THUNARX_DEFINE_ABSTRACT_TYPE_WITH_CODE()

-
#define THUNARX_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_) THUNARX_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, _C_)
-
-

- A convenience macro for plugin type implementations. Similar to THUNARX_DEFINE_TYPE_WITH_CODE(), but defines - an abstract type and allows to insert custom code into the *_get_type() function, e.g. interface - implementations via THUNARX_IMPLEMENT_INTERFACE(). See THUNARX_DEFINE_TYPE_EXTENDED() for an example. -

-
-- - - - - - - - - - - - - - - - - - -

TN :

the name of the new type, in Camel case. -

t_n :

the name of the new type, in lowercase, with words separated by '_'. -

T_P :

the GType of the parent type. -

_C_ :

custom code that gets inserted in the *_get_type() function. -
-
-
-
-

THUNARX_DEFINE_TYPE_EXTENDED()

-
#define             THUNARX_DEFINE_TYPE_EXTENDED(TypeName, type_name, TYPE_PARENT, flags, CODE)
-

- The most general convenience macro for plugin type implementations, on which THUNARX_DEFINE_TYPE(), THUNARX_DEFINE_TYPE_WITH_CODE(), - THUNARX_DEFINE_ABSTRACT_TYPE() and THUNARX_DEFINE_ABSTRACT_TYPE_WITH_CODE() are based. -

-
- - - - - - - -
1
-2
-3
-4
-5
-6
THUNARX_DEFINE_TYPE_EXTENDED (FooExtension,
-                              foo_extension,
-                              G_TYPE_OBJECT,
-                              0,
-                              THUNARX_IMPLEMENT_INTERFACE (TYPE_BAR,
-                                                           foo_extension_bar_init));
-
- -

- expands to -

-
- - - - - - - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
static gpointer foo_extension_parent_class = NULL;
-static GType    foo_extension_type = G_TYPE_INVALID;
-static void     foo_extension_init              (FooExtension *self);
-static void     foo_extension_class_init        (FooExtensionClass *klass);
-static void     foo_extension_class_intern_init (FooExtensionClass *klass)
-{
-  foo_extension_parent_class = g_type_class_peek_parent (klass);
-  foo_extension_class_init (klass);
-}
-GType
-foo_extension_get_type (void)
-{
-  return foo_extension_type;
-}
-void
-foo_extension_register_type (ThunarxProviderPlugin *plugin)
-{
-  GType thunarx_define_type_id;
-  static const thunarx_define_type_info =
-  {
-    sizeof (FooExtensionClass),
-    NULL,
-    NULL,
-    (GClassInitFunc) foo_extension_class_intern_init,
-    NULL,
-    NULL,
-    sizeof (FooExtension),
-    0,
-    (GInstanceInitFunc) foo_extension_init,
-    NULL,
-  };
-  thunarx_define_type_id = thunarx_provider_plugin_register_type (thunarx_define_type_plugin, G_TYPE_OBJECT,
-                                                                  "FooExtension", &thunarx_define_type_info, 0);
-  {
-    static const GInterfaceInfo thunarx_implement_interface_info =
-    {
-      (GInterfaceInitFunc) foo_extension_bar_init,
-    };
-    thunarx_provider_plugin_add_interface (thunarx_define_type_plugin, thunarx_define_type_id,
-                                           TYPE_BAR, &thunarx_implement_interface_info);
-  };
-  foo_extension_type = thunarx_define_type_id;
-}
-
- -

- The only pieces which have to be manually provided are the definitions of the instance and - class structure and the definitions of the instance and class init functions. -

-
-- - - - - - - - - - - - - - - - - - - - - - -

TypeName :

The name of the new type, in Camel case. -

type_name :

The name of the new type, in lowercase, with words separated by '_'. -

TYPE_PARENT :

The GType of the parent type. -

flags :

GTypeFlags to pass to thunarx_provider_plugin_register_type(). -

CODE :

Custom code that gets inserted in the *_register_type() function. -
-
-
-
-

THUNARX_IMPLEMENT_INTERFACE()

-
#define             THUNARX_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init)
-

- A convenience macro to ease interface addition in the _C_ section of THUNARX_DEFINE_TYPE_WITH_CODE() - or THUNARX_DEFINE_ABSTRACT_TYPE_WITH_CODE(). See THUNARX_DEFINE_TYPE_EXTENDED() for an example. -

-

- Note that this macro can only be used together with the THUNARX_DEFINE_* macros, since - it depends on variable names used by those macros. -

-
-- - - - - - - - - - -

TYPE_IFACE :

the GType of the interface to add. -

iface_init :

the interface init function. -
-
-
-
-

Property Details

-
-

The "resident" property

-
  "resident"                 gboolean              : Read / Write
-

-Tells whether a plugin must reside in memory once loaded for -the first time. See thunarx_provider_plugin_get_resident() and -thunarx_provider_plugin_set_resident() for more details. -

-

Default value: FALSE

-
-
-
-

See Also

-

- ThunarxProviderFactory -

-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx-providers.html thunar-1.6.10/docs/reference/thunarx/html/thunarx-providers.html --- thunar-1.2.3/docs/reference/thunarx/html/thunarx-providers.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx-providers.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ - - - - -Part V. Providers - - - - - - - - - - - - - - - - -
-

-Part V. Providers

-
-

Table of Contents

-
-
-ThunarxMenuProvider — The interface to extensions that provide additional menu items -
-
-ThunarxPropertyPageProvider — The interface to extensions that provide additional property pages -
-
-ThunarxPreferencesProvider — The interface to extensions that provide preferences -
-
-ThunarxRenamerProvider — The interface to extensions that provide additional bulk renamers -
-
-
-

- The extensions interact with the file manager by implementing so called - providers. This is a concept adopted from the Nautilus - Extension Framework. -

-

- Providers are interfaces in the thunarx - library that describe the functionality provided by a certain extension. For - example, when the file manager pops up the file context menu, it'll first lookup - all extensions that implement the interface ThunarxMenuProvider - ask those extensions for the list of additional actions. -

-

- -

-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ThunarxRenamer.html thunar-1.6.10/docs/reference/thunarx/html/ThunarxRenamer.html --- thunar-1.2.3/docs/reference/thunarx/html/ThunarxRenamer.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ThunarxRenamer.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,683 +0,0 @@ - - - - -ThunarxRenamer - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

ThunarxRenamer

-

ThunarxRenamer — The abstract base class for bulk renamers

-
-
-

Synopsis

-
-#include <thunarx/thunarx.h>
-
-                    ThunarxRenamer;
-                    ThunarxRenamerClass;
-const gchar *       thunarx_renamer_get_help_url        (ThunarxRenamer *renamer);
-void                thunarx_renamer_set_help_url        (ThunarxRenamer *renamer,
-                                                         const gchar *help_url);
-const gchar *       thunarx_renamer_get_name            (ThunarxRenamer *renamer);
-void                thunarx_renamer_set_name            (ThunarxRenamer *renamer,
-                                                         const gchar *name);
-gchar *             thunarx_renamer_process             (ThunarxRenamer *renamer,
-                                                         ThunarxFileInfo *file,
-                                                         const gchar *text,
-                                                         guint index);
-void                thunarx_renamer_load                (ThunarxRenamer *renamer,
-                                                         GHashTable *settings);
-void                thunarx_renamer_save                (ThunarxRenamer *renamer,
-                                                         GHashTable *settings);
-GList *             thunarx_renamer_get_actions         (ThunarxRenamer *renamer,
-                                                         GtkWindow *window,
-                                                         GList *files);
-void                thunarx_renamer_changed             (ThunarxRenamer *renamer);
-
-
-
-

Object Hierarchy

-
-  GObject
-   +----GInitiallyUnowned
-         +----GtkObject
-               +----GtkWidget
-                     +----GtkContainer
-                           +----GtkBox
-                                 +----GtkVBox
-                                       +----ThunarxRenamer
-
-
-
-

Implemented Interfaces

-

-ThunarxRenamer implements - AtkImplementorIface, GtkBuildable and GtkOrientable.

-
-
-

Properties

-
-  "help-url"                 gchar*                : Read / Write
-  "name"                     gchar*                : Read / Write / Construct Only
-
-
-
-

Signals

-
-  "changed"                                        : Run First
-
-
-
-

Description

-

- The abstract base class ThunarxRenamer is implemented by - extensions which provide additional bulk renamers that should be used in - the bulk rename dialog. -

-

- Derived classes must override the thunarx_renamer_process() method, which - is called by the bulk rename dialog for every file to generate a new name. For - example, the ThunarSbrReplaceRenamer class included in the - thunar-sbr plugin (which is part of the Thunar distribution) - provides a bulk renamer, named Search & Replace, - which allows the user to rename multiple files by searching for a pattern in - each file name and, if the pattern is found, replacing it with the specified - replacement text. -

-

- -

-

- The active ThunarxRenamers user interface is displayed in a frame - below the file list, as shown in the screenshot above. Derived classes should try - to limit the number of widgets displayed in the main user interface. For example, - if you have more than six settings, you should consider adding an Advanced, - button which opens a dialog with the additional settings. -

-
-
-

Details

-
-

ThunarxRenamer

-
typedef struct _ThunarxRenamer ThunarxRenamer;
-

- Abstract base instance type for bulk renamers. -

-
-
-
-

ThunarxRenamerClass

-
typedef struct {
-  /* virtual methods */
-  gchar *(*process)     (ThunarxRenamer  *renamer,
-                         ThunarxFileInfo *file,
-                         const gchar     *text,
-                         guint            index);
-
-  void   (*load)        (ThunarxRenamer  *renamer,
-                         GHashTable      *settings);
-  void   (*save)        (ThunarxRenamer  *renamer,
-                         GHashTable      *settings);
-
-  GList *(*get_actions) (ThunarxRenamer  *renamer,
-                         GtkWindow       *window,
-                         GList           *files);
-
-
-  /* signals */
-  void (*changed) (ThunarxRenamer *renamer);
-} ThunarxRenamerClass;
-
-

- Abstract base class with virtual methods implemented by extensions - that provide additional bulk renamers for the integrated bulk - rename module in Thunar. -

-
-- - - - - - - - - - - - - - - - - - - - - - -

process ()

see thunarx_renamer_process(). -

load ()

see thunarx_renamer_load(). -

save ()

see thunarx_renamer_save(). -

get_actions ()

see thunarx_renamer_get_actions(). -

changed ()

see thunarx_renamer_changed(). -
-
-
-
-

thunarx_renamer_get_help_url ()

-
const gchar *       thunarx_renamer_get_help_url        (ThunarxRenamer *renamer);
-

-Returns the URL of the documentation for renamer -or NULL if no specific documentation is available -for renamer and the general documentation of the -Thunar renamers should be displayed instead. -

-
-- - - - - - - - - - -

renamer :

a ThunarxRenamer. -

Returns :

the URL of the documentation for renamer. -
-
-
-
-

thunarx_renamer_set_help_url ()

-
void                thunarx_renamer_set_help_url        (ThunarxRenamer *renamer,
-                                                         const gchar *help_url);
-

-The URL to the documentation of this ThunarxRenamer. -Derived classes can set this property to point to the -documentation for the specific renamer. The documentation -of the specific renamer in turn should contain a link to -the general Thunar renamer documentation. -

-

-May also be unset, in which case the general Thunar renamer -documentation will be shown when the user clicks the "Help" -button. -

-
-- - - - - - - - - - -

renamer :

a ThunarxRenamer. -

help_url :

the new URL to the documentation of renamer. -
-
-
-
-

thunarx_renamer_get_name ()

-
const gchar *       thunarx_renamer_get_name            (ThunarxRenamer *renamer);
-

-Returns the user visible name for renamer, previously -set with thunarx_renamer_set_name(). -

-
-- - - - - - - - - - -

renamer :

a ThunarxRenamer. -

Returns :

the user visible name for renamer. -
-
-
-
-

thunarx_renamer_set_name ()

-
void                thunarx_renamer_set_name            (ThunarxRenamer *renamer,
-                                                         const gchar *name);
-

-Sets the user visible name for renamer to name. This method should -only be called by derived classes and prior to returning the renamer -is returned from thunarx_renamer_provider_get_renamers(). -

-
-- - - - - - - - - - -

renamer :

a ThunarxRenamer. -

name :

the new user visible name for renamer. -
-
-
-
-

thunarx_renamer_process ()

-
gchar *             thunarx_renamer_process             (ThunarxRenamer *renamer,
-                                                         ThunarxFileInfo *file,
-                                                         const gchar *text,
-                                                         guint index);
-

-Determines the replacement for text (which is the relevant -part of the full file name, i.e. either the suffix, the name -or the name and the suffix). -

-

-The caller is responsible to free the returned string using -g_free() when no longer needed. -

-
-- - - - - - - - - - - - - - - - - - - - - - -

renamer :

a ThunarxRenamer. -

file :

the ThunarxFileInfo for the file whose new - name - according to renamer - should be - determined. -

text :

the part of the filename to which the - renamer should be applied. -

index :

-

Returns :

the string with which to replace text. -
-
-
-
-

thunarx_renamer_load ()

-
void                thunarx_renamer_load                (ThunarxRenamer *renamer,
-                                                         GHashTable *settings);
-

-Tells renamer to load its internal settings from the specified -settings. The settings hash table contains previously saved -settings, see thunarx_renamer_save(), as key/value pairs of -strings. That is, both the keys and the values are strings. -

-

-Implementations of ThunarxRenamer may decide to override this -method to perform custom loading of settings. If you do not -override this method, the default method of ThunarxRenamer -will be used, which simply loads all GObject properties -provided by renamers class (excluding the ones -provided by the parent classes) from the settings. The -GObject properties must be transformable to strings and -from strings. -

-

-If you decide to override this method for your ThunarxRenamer -implementation, you should also override thunarx_renamer_save(). -

-
-- - - - - - - - - - -

renamer :

a ThunarxRenamer. -

settings :

a GHashTable which contains the previously saved - settings for renamer as key/value pairs of strings. -
-
-
-
-

thunarx_renamer_save ()

-
void                thunarx_renamer_save                (ThunarxRenamer *renamer,
-                                                         GHashTable *settings);
-

-Tells renamer to save its internal settings to the specified -settings, which can afterwards be loaded by thunarx_renamer_load(). -

-

-The strings saved to settings must be allocated by g_strdup(), -both the keys and the values. For example to store the string -Bar for the setting Foo, -you'd use: -

-
- - - - - - - -
1
g_hash_table_replace (settings, g_strdup ("Foo"), g_strdup ("Bar"));
-
- -

-

-

-Implementations of ThunarxRenamer may decide to override this -method to perform custom saving of settings. If you do not overrride -this method, the default method of ThunarxRenamer will be used, -which simply stores all GObject properties provided by the -renamers class (excluding the ones provided by the parent -classes) to the settings. The GObject properties must be transformable -to strings. -

-

-If you decide to override this method for your ThunarxRenamer -implementation, you should also override thunarx_renamer_load(). -

-
-- - - - - - - - - - -

renamer :

a ThunarxRenamer. -

settings :

a GHashTable to which the current settings of renamer - should be stored as key/value pairs of strings. -
-
-
-
-

thunarx_renamer_get_actions ()

-
GList *             thunarx_renamer_get_actions         (ThunarxRenamer *renamer,
-                                                         GtkWindow *window,
-                                                         GList *files);
-

-Returns the list of GtkActions provided by renamer for -the given list of files. By default, this method returns NULL -(the empty list), but derived classes may override this method -to provide additional actions for files in the bulk renamer -dialog list. -

-

-The returned GtkActions will be displayed in the file's -context menu of the bulk renamer dialog, when this renamer is -active. For example, an ID3-Tag based renamer may add an action -"Edit Tags" to the context menus of supported media files and, -when activated, display a dialog (which should be transient and -modal for window, if not NULL), which allows the users to edit -media file tags on-the-fly. -

-

-Derived classes that override this method should always check -first if all the ThunarxFileInfos in the list of files -are supported, and only return actions that can be performed on -this specific list of files. For example, the ID3-Tag renamer -mentioned above, should first check whether all items in files -are actually audio files. The thunarx_file_info_has_mime_type() -of the ThunarxFileInfo interface can be used to easily test -whether a file in the files list is of a certain MIME type. -

-

-Some actions may only work properly if only a single file ist -selected (for example, the ID3-Tag renamer will probably only -supporting editing one file at a time). In this case you have -basicly two options: Either you can return NULL here if files -does not contain exactly one item, or you can return the actions -as usual, but make them insensitive, using: -

-
- - - - - - - -
1
gtk_action_set_sensitive (action, FALSE);
-
- -

-The latter has the advantage that the user will still notice the -existance of the action and probably realize that it can only be -applied to a single item at once. -

-

-The caller is responsible to free the returned list using something -like the following: -

-
- - - - - - - -
1
-2
g_list_foreach (list, (GFunc) g_object_unref, NULL);
-g_list_free (list);
-
- -

-

-

-As a special note, this method automatically takes a reference on the -renamer for every GtkAction object returned from the real implementation -of this method in renamer. This is to make sure that the extension stays -in memory for atleast the time that the actions are used. -

-

-The GtkActions returned from this method must be namespaced with -the module to avoid collision with internal file manager actions and -actions provided by other extensions. For example, the menu action -provided by the ID3-Tag renamer mentioned above, should be named -TagRenamer::edit-tags (if TagRenamer -is the class name). For additional information about the way GtkActions -should be returned from extensions and the way they are used, read the -description of the ThunarxMenuProvider interface or read the introduction -provided with this reference manual. -

-

-A note of warning concerning the window parameter. Plugins should -avoid taking a reference on window, as that might introduce a -circular reference and can thereby cause a quite large memory leak. -Instead, if window is not NULL, add a weak reference using the -g_object_weak_ref() or g_object_add_weak_pointer() method. But don't -forget to release the weak reference if window survived the lifetime -of your action (which is likely to be the case in most situations). -

-
-- - - - - - - - - - - - - - - - - - -

renamer :

a ThunarxRenamer. -

window :

a GtkWindow or NULL. -

files :

a GList of ThunarxFileInfos. -

Returns :

the list of GtkActions provided by renamer - for the given list of files. -
-
-
-
-

thunarx_renamer_changed ()

-
void                thunarx_renamer_changed             (ThunarxRenamer *renamer);
-

-This method should be used by derived classes -to emit the "changed" signal for renamer. See -the documentation of the "changed" signal for -details. -

-
-- - - - -

renamer :

a ThunarxRenamer. -
-
-
-
-

Property Details

-
-

The "help-url" property

-
  "help-url"                 gchar*                : Read / Write
-

-The URL to the documentation of this ThunarxRenamer. -Derived classes can set this property to point to the -documentation for the specific renamer. The documentation -of the specific renamer in turn should contain a link to -the general Thunar renamer documentation. -

-

-May also be unset, in which case the general Thunar renamer -documentation will be shown when the user clicks the "Help" -button. -

-

Default value: NULL

-
-
-
-

The "name" property

-
  "name"                     gchar*                : Read / Write / Construct Only
-

-The user visible name of the renamer, that is displayed -in the bulk rename dialog of the file manager. Derived -classes should set a useful name. -

-

Default value: NULL

-
-
-
-

Signal Details

-
-

The "changed" signal

-
void                user_function                      (ThunarxRenamer *renamer,
-                                                        gpointer        user_data)      : Run First
-

-Derived classes should emit this signal using the -thunarx_renamer_changed() method whenever the user -changed a setting in the renamer GUI. -

-

-The file manager will then invoke thunarx_renamer_process() -for all files that should be renamed and update the preview. -

-
-- - - - - - - - - - -

renamer :

a ThunarxRenamer. -

user_data :

user data set when the signal handler was connected.
-
-
-
-

See Also

-

- The description of the ThunarxRenamerProvider - interface. -

-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/ThunarxRenamerProvider.html thunar-1.6.10/docs/reference/thunarx/html/ThunarxRenamerProvider.html --- thunar-1.2.3/docs/reference/thunarx/html/ThunarxRenamerProvider.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/ThunarxRenamerProvider.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,179 +0,0 @@ - - - - -ThunarxRenamerProvider - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

ThunarxRenamerProvider

-

ThunarxRenamerProvider — The interface to extensions that provide additional bulk renamers

-
-
-

Synopsis

-
-#include <thunarx/thunarx.h>
-
-                    ThunarxRenamerProvider;
-                    ThunarxRenamerProviderIface;
-GList *             thunarx_renamer_provider_get_renamers
-                                                        (ThunarxRenamerProvider *provider);
-
-
-
-

Object Hierarchy

-
-  GInterface
-   +----ThunarxRenamerProvider
-
-
-
-

Prerequisites

-

-ThunarxRenamerProvider requires - GObject.

-
-
-

Description

-

- The ThunarxRenamerProvider interface is implemented by - extensions which provide additional bulk renamers that should be used by the - bulk rename dialog in Thunar. -

-
-
-

Details

-
-

ThunarxRenamerProvider

-
typedef struct _ThunarxRenamerProvider ThunarxRenamerProvider;
-

- Bulk renamer provider type. -

-
-
-
-

ThunarxRenamerProviderIface

-
typedef struct {
-  GList *(*get_renamers) (ThunarxRenamerProvider *provider);
-} ThunarxRenamerProviderIface;
-
-

- Interface with virtual methods implemented by extensions that provide - additional bulk renamers for the integrated bulk renamer in Thunar. -

-
-- - - - -

get_renamers ()

see thunarx_renamer_provider_get_renamers(). -
-
-
-
-

thunarx_renamer_provider_get_renamers ()

-
GList *             thunarx_renamer_provider_get_renamers
-                                                        (ThunarxRenamerProvider *provider);
-

-Returns the list of ThunarxRenamers provided by the -specified provider. -

-

-The real implementation of this method MUST return the ThunarxRenamers -with floating references (the default for g_object_new() on GtkWidget -derived types). -

-

-The returned ThunarxRenamers will be reffed and sinked automatically -by this function. -

-

-As a special note, this method automatically takes a reference on the -provider for every ThunarxRenamer returned from the real implementation -of this method in provider. This is to make sure that the extension stays -in memory for atleast the time that the renamers are used. If the extension -wants to stay in memory for a longer time, it'll need to take care of this -itself (e.g. by taking an additional reference on the provider itself, -that's released at a later time). -

-

-The caller is responsible to free the returned list of renamers using -something like this when no longer needed: -

-
- - - - - - - -
1
-2
g_list_foreach (list, (GFunc) g_object_unref, NULL);
-g_list_free (list);
-
- -

-

-
-- - - - - - - - - - -

provider :

a ThunarxRenamerProvider. -

Returns :

the list of ThunarxRenamers provided by the - specified provider. -
-
-
-
-

See Also

-

- The description of the abstract base class - ThunarxRenamer. -

-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx-using-extensions.html thunar-1.6.10/docs/reference/thunarx/html/thunarx-using-extensions.html --- thunar-1.2.3/docs/reference/thunarx/html/thunarx-using-extensions.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx-using-extensions.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ - - - - -Part VI. Using Thunar extensions in applications - - - - - - - - - - - - - - - - -
-

-Part VI. Using Thunar extensions in applications

-
-

Table of Contents

-
-ThunarxProviderFactory — The provider factory support for applications -
-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx-Variables-and-functions-to-check-the-library-version.html thunar-1.6.10/docs/reference/thunarx/html/thunarx-Variables-and-functions-to-check-the-library-version.html --- thunar-1.2.3/docs/reference/thunarx/html/thunarx-Variables-and-functions-to-check-the-library-version.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx-Variables-and-functions-to-check-the-library-version.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,288 +0,0 @@ - - - - -Version information - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-

Version information

-

Version information — Variables and functions to check the library version

-
-
-

Stability Level

-Stable, unless otherwise indicated -
-
-

Synopsis

-
-#include <thunarx/thunarx.h>
-
-extern              const guint thunarx_major_version;
-extern              const guint thunarx_minor_version;
-extern              const guint thunarx_micro_version;
-const gchar *       thunarx_check_version               (guint required_major,
-                                                         guint required_minor,
-                                                         guint required_micro);
-#define             THUNARX_MAJOR_VERSION
-#define             THUNARX_MINOR_VERSION
-#define             THUNARX_MICRO_VERSION
-#define             THUNARX_CHECK_VERSION               (major,
-                                                         minor,
-                                                         micro)
-
-
-
-

Description

-

- The Thunar Extension library provides version information, - which should be used by extensions. -

-
-
-

Details

-
-

thunarx_major_version

-
extern const guint thunarx_major_version;
-
-

-The major version number of the -thunarx library (e.g. in -version 0.5.1 this is 0). -

-

-This variable is in the library, so represents the -thunarx library you have -linked against. Contrast with the THUNARX_MAJOR_VERSION macro, which -represents the major version of the -thunarx headers you have -included. -

-
-
-
-

thunarx_minor_version

-
extern const guint thunarx_minor_version;
-
-

-The minor version number of the -thunarx library (e.g. in -version 0.5.1 this is 5). -

-

-This variable is in the library, so represents the -thunarx library you have -linked against. Contrast with the THUNARX_MINOR_VERSION macro, which -represents the minor version of the -thunarx headers you have -included. -

-
-
-
-

thunarx_micro_version

-
extern const guint thunarx_micro_version;
-
-

-The micro version number of the -thunarx library (e.g. in -version 0.5.1 this is 1). -

-

-This variable is in the library, so represents the -thunarx library you have -linked against. Contrast with the THUNARX_MICRO_VERSION macro, which -represents the micro version of the -thunarx headers you have -included. -

-
-
-
-

thunarx_check_version ()

-
const gchar *       thunarx_check_version               (guint required_major,
-                                                         guint required_minor,
-                                                         guint required_micro);
-

-Checks that the thunarx library -in use is compatible with the given version. Generally you would pass in -the constants THUNARX_MAJOR_VERSION, THUNARX_MINOR_VERSION and -THUNARX_VERSION_MICRO as the three arguments to this function; that produces -a check that the library in use is compatible with the version of -thunarx the extension was -compiled against. -

-

-This function should be called by extensions in the -thunar_extension_initialize() method to verify that the thunarx library used by file manager is -compatible with the version the extension was compiled with. -

-

-

-
-

Example 3. Checking the runtime version of the Thunar Extension library

-
- - - - - - - -
1
-2
-3
-4
-5
-6
const gchar *mismatch;
-mismatch = thunarx_check_version (THUNARX_VERSION_MAJOR,
-                                  THUNARX_VERSION_MINOR,
-                                  THUNARX_VERSION_MICRO);
-if (G_UNLIKELY (mismatch != NULL))
-  g_error ("Version mismatch: %s", mismatch);
-
- -
-


-

-
-- - - - - - - - - - - - - - - - - - -

required_major :

the required major version. -

required_minor :

the required minor version. -

required_micro :

the required micro version. -

Returns :

NULL if the library is compatible with the given version, - or a string describing the version mismatch. The returned - string is owned by the library and must not be freed or - modified by the caller. -
-
-
-
-

THUNARX_MAJOR_VERSION

-
#define THUNARX_MAJOR_VERSION 1
-
-

- The major version number of the thunarx library. - Like thunarx_major_version, but from the headers used at application compile time, rather - than from the library linked against at application run time. -

-
-
-
-

THUNARX_MINOR_VERSION

-
#define THUNARX_MINOR_VERSION 3
-
-

- The minor version number of the thunarx library. - Like thunarx_minor_version, but from the headers used at application compile time, rather - than from the library linked against at application run time. -

-
-
-
-

THUNARX_MICRO_VERSION

-
#define THUNARX_MICRO_VERSION 0
-
-

- The micro version number of the thunarx library. - Like thunarx_micro_version, but from the headers used at application compile time, rather - than from the library linked against at application run time. -

-
-
-
-

THUNARX_CHECK_VERSION()

-
#define             THUNARX_CHECK_VERSION(major,minor,micro)
-

- Checks the version of the thunarx library. Returns - TRUE if the version of the thunarx header files is - the same as or newer than the passed-in version. -

-
-

Example 4. Checking the version of the Thunar Extension library

-
- - - - - - - -
1
-2
if (!THUNARX_CHECK_VERSION (0, 1, 0))
-  g_error ("Thunarx version 0.1.0 or above is required");
-
- -
-
-- - - - - - - - - - - - - - -

major :

the major version number. -

minor :

the minor version number -

micro :

the micro version number. -
-
-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx-writing-extensions-advanced-topics.html thunar-1.6.10/docs/reference/thunarx/html/thunarx-writing-extensions-advanced-topics.html --- thunar-1.2.3/docs/reference/thunarx/html/thunarx-writing-extensions-advanced-topics.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx-writing-extensions-advanced-topics.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - -Advanced topics - - - - - - - - - - - - - - - - -
-

-Advanced topics

-

- This section provides a short introduction to some of the advanced topics in the - Thunar Extension Framework. -

-
-

-Memory-Resident Extensions

-

- Some extensions may not play well with Thunar's on-demand loading and unloading - of extensions. For example, an extension that uses a desktop library, which in - turn registers additional static GTypes will not work after being loaded and - unloaded for the first time. For these kind of extensions, Thunar provides the - option to make extensions memory resident, which means the - extension will be loaded once and afterwards will never be unloaded again until - Thunar exits. -

-

- Such extensions must set the resident property of the provider plugin in its - thunar_extension_initialize() function to TRUE, using the thunarx_provider_plugin_set_resident() - method. -

-
-

Example 2. Making an extension memory resident

-
- - - - - - - -
1
-2
-3
-4
-5
-6
-7
-8
-9
G_MODULE_EXPORT void
-thunar_extension_initialize (ThunarxProviderPlugin *plugin)
-{
-  /* setup the types for the extension */
-  ...
-
-  /* ensure that the extension will never be unloaded */
-  thunarx_provider_plugin_set_resident (plugin, TRUE);
-}
-
- -
-
-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx-writing-extensions-getting-started.html thunar-1.6.10/docs/reference/thunarx/html/thunarx-writing-extensions-getting-started.html --- thunar-1.2.3/docs/reference/thunarx/html/thunarx-writing-extensions-getting-started.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx-writing-extensions-getting-started.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,253 +0,0 @@ - - - - -Getting Started - - - - - - - - - - - - - - - - -
-

-Getting Started

-

- Providers are ThunarxProviderPlugins loaded from shared libraries - installed in $libdir/thunarx-2/. The shared libraries are linked against the - thunarx-2 library. -

-

- The extensions must provide three public functions, thunar_extension_initialize(), - thunar_extension_shutdown() and thunar_extension_list_types(). -

-

- thunar_extension_initialize() is passed a ThunarxProviderPlugin - object, and is responsible to register all GTypes required by the extension. thunar_extension_shutdown() should - perform any extension-specific shutdown required prior to unloading the extension. thunar_extension_list_types() - returns an array of GTypes that represent the types of the providers exported by the extension. Thunar will instantiate - objects of those types when needed. -

-
-

Example 1. Basic Structure of an extension

-
- - - - - - - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
#include <gmodule.h>
-#include <thunarx/thunarx.h>
-
-static GType type_list[1];
-
-static void
-foo_extension_register_type (ThunarxProviderPlugin *plugin)
-{
-  static const GTypeInfo info =
-  {
-    sizeof (FooExtensionClass),
-    NULL,
-    NULL,
-    (GClassInitFunc) foo_extension_class_init,
-    NULL,
-    NULL,
-    sizeof (FooExtension),
-    0,
-    (GInstanceInitFunc) foo_extension_init,
-    NULL,
-  };
-
-  type_list[0] = thunarx_provider_plugin_register_type (plugin,
-                                                        G_TYPE_OBJECT,
-                                                        "FooExtension",
-                                                        &info, 0);
-
-  /* implement the desired provider interfaces */
-}
-
-static GType
-foo_extension_get_type (void)
-{
-  return type_list[0];
-}
-
-G_MODULE_EXPORT void
-thunar_extension_initialize (ThunarxProviderPlugin *plugin)
-{
-  const gchar *mismatch;
-
-  /* verify the versions */
-  mismatch = thunarx_check_version (THUNARX_MAJOR_VERSION,
-                                    THUNARX_MINOR_VERSION,
-                                    THUNARX_MICRO_VERSION);
-  if (G_UNLIKELY (mismatch != NULL))
-    {
-      g_warning ("Version mismatch: %s", mismatch);
-      return;
-    }
-
-  foo_extension_register_type (plugin);
-}
-
-G_MODULE_EXPORT void
-thunar_extension_shutdown (void)
-{
-  /* any extension-specific shutdown */
-}
-
-G_MODULE_EXPORT void
-thunar_extension_list_types (const GType **types,
-                             gint         *n_types)
-{
-  *types = type_list;
-  *n_types = G_N_ELEMENTS (type_list);
-}
-
- -
-

- You should check the TexOpenTerminal extension, which is included in the Thunar - distribution in the examples/tex-open-terminal directory, for a more - complete example of how to write a Thunar extension. -

-
-

-Compiling Thunar Extensions

-

- To compile a Thunar extension, you need to tell the compiler where to find the - thunarx header files and library. This - is done with the pkg-config utility. -

-

- The following interactive shell session demonstrates how pkg-config - is used (the actual output on your system will be different): -

-
-$ pkg-config --cflags thunarx-2
--DXTHREADS -DXUSE_MTSAFE_API -I/opt/local/include/thunarx-2 -I/usr/local/include/atk-1.0 \
--I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/X11R6/include/gtk-2.0 \
--I/usr/X11R6/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/X11R6/include/pango-1.0 \
--I/usr/local/include/freetype2 -I/usr/local/include
-$ pkg-config --libs thunarx-2
--Wl,--rpath -Wl,/usr/local/lib -L/usr/local/lib -L/usr/X11R6/lib -L/opt/local/lib -lthunarx-2
-

-

-

- The easiest way to compile an extension is to use the backticks - feature of the shell. If you enclose a command in backticks (not single - quotes), then its output will be substituted into the command line before - execution. So to compile an extension, you would type the following: -

-
-$ gcc -shared -fPIC -DPIC `pkg-config --cflags --libs thunarx-2` foo.c -o foo.so
-

-

-
-
-

-Installing Thunar Extensions

-

- To determine the directory where extensions must be installed on your local system, - you can use the following command (as mentioned above, the output will be different - on your system): -

-
-$ pkg-config --variable=extensionsdir thunarx-2
-/opt/local/lib/thunarx-2
-

-

-

- For example, to install the extension foo.so on your system, - you would type the following: -

-
-$ install -d `pkg-config --variable=extensionsdir thunarx-2`
-$ install -c -m 0755 foo.so `pkg-config --variable=extensionsdir thunarx-2`/foo.so
-

-

-
-
- - - \ No newline at end of file diff -Nru thunar-1.2.3/docs/reference/thunarx/html/thunarx-writing-extensions.html thunar-1.6.10/docs/reference/thunarx/html/thunarx-writing-extensions.html --- thunar-1.2.3/docs/reference/thunarx/html/thunarx-writing-extensions.html 2011-09-20 20:28:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/html/thunarx-writing-extensions.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - -Part II. Writing Extensions - - - - - - - - - - - - - - - - -
-

-Part II. Writing Extensions

-

- This section explains the basic steps required to write an extension for the Thunar File Manager using the C language interface. It is - just a short introduction and not meant to provide extensive details about the internal workings - of the file manager. -

-
-

-Basic Concepts

-
-

-Extensions and Providers

-

- Thunar Extensions are shared libraries that extend the basic functionality - provided by the Thunar File Manager. An extension exports one or more GObjects, called providers, to Thunar. -

-

- Providers implement one or more of the GInterfaces included with - the thunarx library. The currently exported interfaces - include the ThunarxMenuProvider for adding context menu - items to the file views, the ThunarxPropertyPageProvider for adding pages to the - file properties dialog, the ThunarxPreferencesProvider for adding actions to the - preferences section of the main menu, and the ThunarxRenamerProvider for adding renamers to the bulk - rename dialog. -

-
-
-

-ThunarxFileInfo

-

- Thunar passes file references to the provider using ThunarxFileInfo - objects. The ThunarxFileInfo interface provides access to the file - information that Thunar has already read - mime type, URI, name, etc. Extensions should use the data from - the ThunarxFileInfo rather than reading it themselves, to - prevent excessive I/O. -

-

- There is exactly one ThunarxFileInfo per file, and it is kept around - for as long as Thunar is interested in the file. Extensions can use this information to manage lifecycles of - its own data - e.g. when the ThunarxFileInfo goes away, it is safe - for the extension to forget any private data for that file. -

-
-
-

-Names

-

- Most objects created by the extensions need names, e.g. the GtkActions - returned from the ThunarxMenuProviders. These names must be - namespaced with the name of the extension. For example the main action returned from the - TexOpenTerminal extension (which can be found in the examples/tex-open-terminal subdirectory of the Thunar distribution) should be called - TexOpenTerminal::open-terminal. The namespace must be global among the providers exported by - a certain extension. -

-
-
-

-Types

-

- Thunar extensions are loaded as GTypeModules. This means that all GTypes - created by the extension must be registered with the GTypeModule, using - thunarx_provider_plugin_register_type() - function (or one of the convenience macros like THUNARX_DEFINE_TYPE()) - rather than g_type_register_static(). All types - exported by an extension must be registered in - thunar_extension_initialize(). -

-
-
-
- - - \ No newline at end of file Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/docs/reference/thunarx/html/up.png and /tmp/6ogtt7rGai/thunar-1.6.10/docs/reference/thunarx/html/up.png differ diff -Nru thunar-1.2.3/docs/reference/thunarx/Makefile.am thunar-1.6.10/docs/reference/thunarx/Makefile.am --- thunar-1.2.3/docs/reference/thunarx/Makefile.am 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/Makefile.am 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -# $Id$ - -AUTOMAKE_OPTIONS = 1.8 - -# The name of the module. -DOC_MODULE=thunarx - -# The top-level SGML file. -DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml - -# Extra options to supply to gtkdoc-scan -SCAN_OPTIONS=--deprecated-guards="EXO_DISABLE_DEPRECATED" - -# Extra options to pass to gtkdoc-scangobj -SCANGOBJ_OPTIONS=--type-init-func="gtk_type_init(0);g_type_class_ref(G_TYPE_OBJECT)" - -# The directory containing the source code. Relative to $(srcdir) -DOC_SOURCE_DIR=../../../thunarx - -# Extra options to supply to gtkdoc-mkdb -MKDB_OPTIONS=--sgml-mode --output-format=xml - -# Extra options to supply to gtkdoc-fixref -FIXXREF_OPTIONS= - -# Used for dependencies -HFILE_GLOB=$(top_srcdir)/thunarx/*.h -CFILE_GLOB=$(top_srcdir)/thunarx/*.c - -# Header files to ignore when scanning -IGNORE_HFILES=thunarx-alias.h - -# Extra files to add when scanning (relative to $srcdir) -EXTRA_HFILES= - -# Images to copy into HTML directory -HTML_IMAGES = \ - $(srcdir)/images/abstraction.png \ - $(srcdir)/images/bulk-rename.png \ - $(srcdir)/images/menu-provider.png \ - $(srcdir)/images/say-hello.png - -# Extra SGML files that are included by DOC_MAIN_SGML_FILE -content_files = \ - version.xml - -# CFLAGS and LDFLAGS for compiling scan program. Only needed -# if $(DOC_MODULE).types is non-empty. -INCLUDES = \ - -I$(top_srcdir) \ - -I$(top_builddir) \ - $(GTK_CFLAGS) \ - $(GTK_DOC_EXTRA_CFLAGS) - -GTKDOC_LIBS = \ - $(top_builddir)/thunarx/libthunarx-$(THUNARX_VERSION_API).la - -include $(top_srcdir)/gtk-doc.make - -# Other files to distribute -EXTRA_DIST += \ - version.xml.in - -# required for gtk-doc -dist-hook: all - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/docs/reference/thunarx/Makefile.in thunar-1.6.10/docs/reference/thunarx/Makefile.in --- thunar-1.2.3/docs/reference/thunarx/Makefile.in 2011-09-20 20:28:12.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/Makefile.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,803 +0,0 @@ -# Makefile.in generated by automake 1.11.1 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@ - -# $Id$ - -# -*- mode: makefile -*- - -#################################### -# Everything below here is generic # -#################################### -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/version.xml.in $(top_srcdir)/gtk-doc.make -subdir = docs/reference/thunarx -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = version.xml -CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALL_LINGUAS = @ALL_LINGUAS@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DBUS_CFLAGS = @DBUS_CFLAGS@ -DBUS_LIBS = @DBUS_LIBS@ -DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ -DBUS_VERSION = @DBUS_VERSION@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXIF_CFLAGS = @EXIF_CFLAGS@ -EXIF_LIBS = @EXIF_LIBS@ -EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ -EXIF_VERSION = @EXIF_VERSION@ -EXO_CFLAGS = @EXO_CFLAGS@ -EXO_LIBS = @EXO_LIBS@ -EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ -EXO_VERSION = @EXO_VERSION@ -FGREP = @FGREP@ -GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ -GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ -GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ -GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO_CFLAGS = @GIO_CFLAGS@ -GIO_LIBS = @GIO_LIBS@ -GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ -GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ -GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ -GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ -GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ -GIO_VERSION = @GIO_VERSION@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ -GTHREAD_LIBS = @GTHREAD_LIBS@ -GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ -GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ -GTK_VERSION = @GTK_VERSION@ -GUDEV_CFLAGS = @GUDEV_CFLAGS@ -GUDEV_LIBS = @GUDEV_LIBS@ -GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ -GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_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@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ -LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ -LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ -LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSM_CFLAGS = @LIBSM_CFLAGS@ -LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ -LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ -LIBTOOL = @LIBTOOL@ -LIBX11_CFLAGS = @LIBX11_CFLAGS@ -LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ -LIBX11_LIBS = @LIBX11_LIBS@ -LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ -LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ -LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ -LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ -LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ -LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ -LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ -LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ -LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ -LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ -LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ -LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -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@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ -PCRE_VERSION = @PCRE_VERSION@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ -PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ -PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ -THUNARX_VERINFO = @THUNARX_VERINFO@ -THUNARX_VERSION_API = @THUNARX_VERSION_API@ -THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ -THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ -THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_ARGS = @XGETTEXT_ARGS@ -XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -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@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -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 = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xfconf_query_found = @xfconf_query_found@ -AUTOMAKE_OPTIONS = 1.8 - -# The name of the module. -DOC_MODULE = thunarx - -# The top-level SGML file. -DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml - -# Extra options to supply to gtkdoc-scan -SCAN_OPTIONS = --deprecated-guards="EXO_DISABLE_DEPRECATED" - -# Extra options to pass to gtkdoc-scangobj -SCANGOBJ_OPTIONS = --type-init-func="gtk_type_init(0);g_type_class_ref(G_TYPE_OBJECT)" - -# The directory containing the source code. Relative to $(srcdir) -DOC_SOURCE_DIR = ../../../thunarx - -# Extra options to supply to gtkdoc-mkdb -MKDB_OPTIONS = --sgml-mode --output-format=xml - -# Extra options to supply to gtkdoc-fixref -FIXXREF_OPTIONS = - -# Used for dependencies -HFILE_GLOB = $(top_srcdir)/thunarx/*.h -CFILE_GLOB = $(top_srcdir)/thunarx/*.c - -# Header files to ignore when scanning -IGNORE_HFILES = thunarx-alias.h - -# Extra files to add when scanning (relative to $srcdir) -EXTRA_HFILES = - -# Images to copy into HTML directory -HTML_IMAGES = \ - $(srcdir)/images/abstraction.png \ - $(srcdir)/images/bulk-rename.png \ - $(srcdir)/images/menu-provider.png \ - $(srcdir)/images/say-hello.png - - -# Extra SGML files that are included by DOC_MAIN_SGML_FILE -content_files = \ - version.xml - - -# CFLAGS and LDFLAGS for compiling scan program. Only needed -# if $(DOC_MODULE).types is non-empty. -INCLUDES = \ - -I$(top_srcdir) \ - -I$(top_builddir) \ - $(GTK_CFLAGS) \ - $(GTK_DOC_EXTRA_CFLAGS) - -GTKDOC_LIBS = \ - $(top_builddir)/thunarx/libthunarx-$(THUNARX_VERSION_API).la - -@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = -@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute - -# We set GPATH here; this gives us semantics for GNU make -# which are more like other make's VPATH, when it comes to -# whether a source that is a target of one rule is then -# searched for in VPATH/GPATH. -# -GPATH = $(srcdir) -TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) -SETUP_FILES = \ - $(content_files) \ - $(DOC_MAIN_SGML_FILE) \ - $(DOC_MODULE)-sections.txt \ - $(DOC_MODULE)-overrides.txt - - -# Other files to distribute -EXTRA_DIST = $(SETUP_FILES) version.xml.in -DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \ - html-build.stamp pdf-build.stamp \ - setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp - -SCANOBJ_FILES = \ - $(DOC_MODULE).args \ - $(DOC_MODULE).hierarchy \ - $(DOC_MODULE).interfaces \ - $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).signals - -REPORT_FILES = \ - $(DOC_MODULE)-undocumented.txt \ - $(DOC_MODULE)-undeclared.txt \ - $(DOC_MODULE)-unused.txt - -CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) -@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = -@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp -@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = -@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.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 docs/reference/thunarx/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/reference/thunarx/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 -$(am__aclocal_m4_deps): -version.xml: $(top_builddir)/config.status $(srcdir)/version.xml.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook -check-am: all-am -check: check-am -all-am: Makefile all-local -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: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -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-libtool 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-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-local - -.MAKE: install-am install-strip - -.PHONY: all all-am all-local check check-am clean clean-generic \ - clean-libtool clean-local dist-hook distclean \ - distclean-generic distclean-libtool 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-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-local - - -@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) -@ENABLE_GTK_DOC_FALSE@all-local: - -docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) - -$(REPORT_FILES): sgml-build.stamp - -#### setup #### - -setup-build.stamp: - -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - echo 'gtk-doc: Preparing build'; \ - files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ - if test "x$$files" != "x" ; then \ - for file in $$files ; do \ - test -f $(abs_srcdir)/$$file && \ - cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \ - done \ - fi; \ - test -f $(abs_srcdir)/tmpl && \ - cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \ - fi - @touch setup-build.stamp - -setup.stamp: setup-build.stamp - @true - -#### scan #### - -scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) - @echo 'gtk-doc: Scanning header files' - @_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ - done ; \ - gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) - @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \ - else \ - for i in $(SCANOBJ_FILES) ; do \ - test -f $$i || touch $$i ; \ - done \ - fi - @touch scan-build.stamp - -$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp - @true - -#### templates #### - -tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt - @echo 'gtk-doc: Rebuilding template files' - @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) - @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - if test -w $(abs_srcdir) ; then \ - cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \ - fi \ - fi - @touch tmpl-build.stamp - -tmpl.stamp: tmpl-build.stamp - @true - -$(srcdir)/tmpl/*.sgml: - @true - -#### xml #### - -sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) - @echo 'gtk-doc: Building XML' - @-chmod -R u+w $(srcdir) - @_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ - done ; \ - gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) - @touch sgml-build.stamp - -sgml.stamp: sgml-build.stamp - @true - -#### html #### - -html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo 'gtk-doc: Building HTML' - @rm -rf html - @mkdir html - @mkhtml_options=""; \ - gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ - if test "$(?)" = "0"; then \ - mkhtml_options=--path="$(abs_srcdir)"; \ - fi; \ - cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) - -@test "x$(HTML_IMAGES)" = "x" || \ - for file in $(HTML_IMAGES) ; do \ - if test -f $(abs_srcdir)/$$file ; then \ - cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ - fi; \ - if test -f $(abs_builddir)/$$file ; then \ - cp $(abs_builddir)/$$file $(abs_builddir)/html; \ - fi; \ - done; - @echo 'gtk-doc: Fixing cross-references' - @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) - @touch html-build.stamp - -#### pdf #### - -pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo 'gtk-doc: Building PDF' - @rm -rf $(DOC_MODULE).pdf - @mkpdf_imgdirs=""; \ - if test "x$(HTML_IMAGES)" != "x"; then \ - for img in $(HTML_IMAGES); do \ - part=`dirname $$img`; \ - echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \ - if test $$? != 0; then \ - mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \ - fi; \ - done; \ - fi; \ - gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) - @touch pdf-build.stamp - -############## - -clean-local: - rm -f *~ *.bak - rm -rf .libs - -distclean-local: - rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ - $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt - if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ - rm -rf tmpl; \ - fi - -maintainer-clean-local: clean - rm -rf xml html - -install-data-local: - @installfiles=`echo $(srcdir)/html/*`; \ - if test "$$installfiles" = '$(srcdir)/html/*'; \ - then echo '-- Nothing to install' ; \ - else \ - if test -n "$(DOC_MODULE_VERSION)"; then \ - installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ - else \ - installdir="$(DESTDIR)$(TARGET_DIR)"; \ - fi; \ - $(mkinstalldirs) $${installdir} ; \ - for i in $$installfiles; do \ - echo '-- Installing '$$i ; \ - $(INSTALL_DATA) $$i $${installdir}; \ - done; \ - if test -n "$(DOC_MODULE_VERSION)"; then \ - mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ - $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ - mv -f $${installdir}/$(DOC_MODULE).devhelp \ - $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \ - fi; \ - $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ - fi - -uninstall-local: - @if test -n "$(DOC_MODULE_VERSION)"; then \ - installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ - else \ - installdir="$(DESTDIR)$(TARGET_DIR)"; \ - fi; \ - rm -rf $${installdir} - -# -# Require gtk-doc when making dist -# -@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: -@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc: -@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist" -@ENABLE_GTK_DOC_FALSE@ @false - -dist-hook: dist-check-gtkdoc dist-hook-local - mkdir $(distdir)/tmpl - mkdir $(distdir)/html - -cp $(build)/tmpl/*.sgml $(distdir)/tmpl - cp $(builddir)/html/* $(distdir)/html - -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/ - -cp $(build)/$(DOC_MODULE).types $(distdir)/ - -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/ - cd $(distdir) && rm -f $(DISTCLEANFILES) - $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html - -.PHONY : dist-hook-local docs - -# required for gtk-doc -dist-hook: all - -# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: - -# 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 thunar-1.2.3/docs/reference/thunarx/thunarx-docs.sgml thunar-1.6.10/docs/reference/thunarx/thunarx-docs.sgml --- thunar-1.2.3/docs/reference/thunarx/thunarx-docs.sgml 2010-01-08 23:55:18.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/thunarx-docs.sgml 1970-01-01 00:00:00.000000000 +0000 @@ -1,498 +0,0 @@ - - - - - - - - - - - - - - -]> - - - - Thunar Extensions Reference Manual - Version &version; - &date; - - - 2005 - Benedikt Meurer - - - - 2010 - Jannis Pohlmann - - - - - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 or - any later version published by the Free Software Foundation; with no - Invariant Sections, with no Front-Cover Texts, and with no Back-Cover - Texts. The complete license text is available from the Free Software Foundation. - - - - - - Benedikt - Meurer - -
benny@xfce.org
- os-cillation - System development - Software developer -
-
- - Jannis - Pohlmann - -
jannis@xfce.org
-
-
-
-
- - - Overview - - - The Thunar Extension Framework (thunarx) provides - developers with an easy way to extend the basic functionality provided by - the Thunar File Manager. - The thunarx library includes interfaces that can - be implemented by extensions for various purposes. - - - - It is based on the GLib Dynamic Type - System and loads the extensions on demand to reduce the system resources - allocated for the file manager process. - - - - Goals - - - The Thunar Extension Framework was developed with the following goals in mind: - - - - - It should be easy to extend the functionality of the file manager in certain - ways. - - - - The internals of the file manager should be hidden from the extensions to be - able to maintain API/ABI compatibility for extensions over various major - releases of the file manager. - - - - Provide basic compatibility with the Nautilus Extension Framework, - so vendors don't need to write several versions of their extensions for the various - file managers. With the current implementation it should be easy to write a small - wrapper library for generic extensions that can be loaded into both Thunar and - Nautilus. - - - - Extensions should not be loaded into memory until they are actually required to - save system resources. This differs from the way Nautilus handles extensions and - therefore people that already know how to write Nautilus extensions must be - careful when writing extensions for Thunar, because Thunar actually unloads the - extension when it's no longer needed. The GTypePlugin - and GTypeModule - sections in the GObject - Reference Manual provide details about the handling of dynamic type plugins. - - - - Permit developers to write extensions in languages other than C. - - - - - - - Writing Extensions - - - This section explains the basic steps required to write an extension for the Thunar File Manager using the C language interface. It is - just a short introduction and not meant to provide extensive details about the internal workings - of the file manager. - - - - Basic Concepts - - - Extensions and Providers - - - Thunar Extensions are shared libraries that extend the basic functionality - provided by the Thunar File Manager. An extension exports one or more GObjects, called providers, to Thunar. - - - - Providers implement one or more of the GInterfaces included with - the thunarx library. The currently exported interfaces - include the ThunarxMenuProvider for adding context menu - items to the file views, the ThunarxPropertyPageProvider for adding pages to the - file properties dialog, the ThunarxPreferencesProvider for adding actions to the - preferences section of the main menu, and the ThunarxRenamerProvider for adding renamers to the bulk - rename dialog. - - - - - ThunarxFileInfo - - - Thunar passes file references to the provider using ThunarxFileInfo - objects. The ThunarxFileInfo interface provides access to the file - information that Thunar has already read - mime type, URI, name, etc. Extensions should use the data from - the ThunarxFileInfo rather than reading it themselves, to - prevent excessive I/O. - - - - There is exactly one ThunarxFileInfo per file, and it is kept around - for as long as Thunar is interested in the file. Extensions can use this information to manage lifecycles of - its own data - e.g. when the ThunarxFileInfo goes away, it is safe - for the extension to forget any private data for that file. - - - - - Names - - - Most objects created by the extensions need names, e.g. the GtkActions - returned from the ThunarxMenuProviders. These names must be - namespaced with the name of the extension. For example the main action returned from the - TexOpenTerminal extension (which can be found in the examples/tex-open-terminal subdirectory of the Thunar distribution) should be called - TexOpenTerminal::open-terminal. The namespace must be global among the providers exported by - a certain extension. - - - - - Types - - - Thunar extensions are loaded as GTypeModules. This means that all GTypes - created by the extension must be registered with the GTypeModule, using - thunarx_provider_plugin_register_type() - function (or one of the convenience macros like THUNARX_DEFINE_TYPE()) - rather than g_type_register_static(). All types - exported by an extension must be registered in - thunar_extension_initialize(). - - - - - - Getting Started - - - Providers are ThunarxProviderPlugins loaded from shared libraries - installed in $libdir/thunarx-2/. The shared libraries are linked against the - thunarx-2 library. - - - - The extensions must provide three public functions, thunar_extension_initialize(), - thunar_extension_shutdown() and thunar_extension_list_types(). - - - - thunar_extension_initialize() is passed a ThunarxProviderPlugin - object, and is responsible to register all GTypes required by the extension. thunar_extension_shutdown() should - perform any extension-specific shutdown required prior to unloading the extension. thunar_extension_list_types() - returns an array of GTypes that represent the types of the providers exported by the extension. Thunar will instantiate - objects of those types when needed. - - - - Basic Structure of an extension - - -#include <gmodule.h> -#include <thunarx/thunarx.h> - -static GType type_list[1]; - -static void -foo_extension_register_type (ThunarxProviderPlugin *plugin) -{ - static const GTypeInfo info = - { - sizeof (FooExtensionClass), - NULL, - NULL, - (GClassInitFunc) foo_extension_class_init, - NULL, - NULL, - sizeof (FooExtension), - 0, - (GInstanceInitFunc) foo_extension_init, - NULL, - }; - - type_list[0] = thunarx_provider_plugin_register_type (plugin, - G_TYPE_OBJECT, - "FooExtension", - &info, 0); - - /* implement the desired provider interfaces */ -} - -static GType -foo_extension_get_type (void) -{ - return type_list[0]; -} - -G_MODULE_EXPORT void -thunar_extension_initialize (ThunarxProviderPlugin *plugin) -{ - const gchar *mismatch; - - /* verify the versions */ - mismatch = thunarx_check_version (THUNARX_MAJOR_VERSION, - THUNARX_MINOR_VERSION, - THUNARX_MICRO_VERSION); - if (G_UNLIKELY (mismatch != NULL)) - { - g_warning ("Version mismatch: %s", mismatch); - return; - } - - foo_extension_register_type (plugin); -} - -G_MODULE_EXPORT void -thunar_extension_shutdown (void) -{ - /* any extension-specific shutdown */ -} - -G_MODULE_EXPORT void -thunar_extension_list_types (const GType **types, - gint *n_types) -{ - *types = type_list; - *n_types = G_N_ELEMENTS (type_list); -} - - - - You should check the TexOpenTerminal extension, which is included in the Thunar - distribution in the examples/tex-open-terminal directory, for a more - complete example of how to write a Thunar extension. - - - - Compiling Thunar Extensions - - - To compile a Thunar extension, you need to tell the compiler where to find the - thunarx header files and library. This - is done with the pkg-config utility. - - - - The following interactive shell session demonstrates how pkg-config - is used (the actual output on your system will be different): - -$ pkg-config --cflags thunarx-2 --DXTHREADS -DXUSE_MTSAFE_API -I/opt/local/include/thunarx-2 -I/usr/local/include/atk-1.0 \ --I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/X11R6/include/gtk-2.0 \ --I/usr/X11R6/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/X11R6/include/pango-1.0 \ --I/usr/local/include/freetype2 -I/usr/local/include -$ pkg-config --libs thunarx-2 --Wl,--rpath -Wl,/usr/local/lib -L/usr/local/lib -L/usr/X11R6/lib -L/opt/local/lib -lthunarx-2 - - - - The easiest way to compile an extension is to use the backticks - feature of the shell. If you enclose a command in backticks (not single - quotes), then its output will be substituted into the command line before - execution. So to compile an extension, you would type the following: - -$ gcc -shared -fPIC -DPIC `pkg-config --cflags --libs thunarx-2` foo.c -o foo.so - - - - - Installing Thunar Extensions - - - To determine the directory where extensions must be installed on your local system, - you can use the following command (as mentioned above, the output will be different - on your system): - -$ pkg-config --variable=extensionsdir thunarx-2 -/opt/local/lib/thunarx-2 - - - - For example, to install the extension foo.so on your system, - you would type the following: - -$ install -d `pkg-config --variable=extensionsdir thunarx-2` -$ install -c -m 0755 foo.so `pkg-config --variable=extensionsdir thunarx-2`/foo.so - - - - - - Advanced topics - - - This section provides a short introduction to some of the advanced topics in the - Thunar Extension Framework. - - - - Memory-Resident Extensions - - - Some extensions may not play well with Thunar's on-demand loading and unloading - of extensions. For example, an extension that uses a desktop library, which in - turn registers additional static GTypes will not work after being loaded and - unloaded for the first time. For these kind of extensions, Thunar provides the - option to make extensions memory resident, which means the - extension will be loaded once and afterwards will never be unloaded again until - Thunar exits. - - - - Such extensions must set the resident property of the provider plugin in its - thunar_extension_initialize() function to TRUE, using the thunarx_provider_plugin_set_resident() - method. - - - - Making an extension memory resident - -G_MODULE_EXPORT void -thunar_extension_initialize (ThunarxProviderPlugin *plugin) -{ - /* setup the types for the extension */ - ... - - /* ensure that the extension will never be unloaded */ - thunarx_provider_plugin_set_resident (plugin, TRUE); -} - - - - - - - Fundamentals - - &thunarx-version-information; - - - - Abstraction Layer - - - In order to hide the internals of the file manager from the extensions, the thunarx library provides an abstraction layer, which includes - interfaces accessible to the extension, that are implemented by the file manager at runtime. - - - - - - - - Currently the abstraction layer consists of the interface ThunarxFileInfo, which provides - extensions with a way to access information about a file handled within - the file manager, the class ThunarxPropertyPage, which - is the base class for widgets that can be added to the properties dialog by - extensions, the interface ThunarxProviderPlugin, which - hides the details of dynamic type registration from the extensions, and the - class ThunarxRenamer, which - is the abstract base class for renamers that can be used in the bulk rename - dialog provided by Thunar to rename multiple files at once. - - - &ThunarxFileInfo; - &ThunarxPropertyPage; - &ThunarxProviderPlugin; - &ThunarxRenamer; - - - - Providers - - - The extensions interact with the file manager by implementing so called - providers. This is a concept adopted from the Nautilus - Extension Framework. - - - - Providers are interfaces in the thunarx - library that describe the functionality provided by a certain extension. For - example, when the file manager pops up the file context menu, it'll first lookup - all extensions that implement the interface ThunarxMenuProvider - ask those extensions for the list of additional actions. - - - - - - - &ThunarxMenuProvider; - &ThunarxPropertyPageProvider; - &ThunarxPreferencesProvider; - &ThunarxRenamerProvider; - - - - Using Thunar extensions in applications - - &ThunarxProviderFactory; - - - - Index - -
- - diff -Nru thunar-1.2.3/docs/reference/thunarx/thunarx-overrides.txt thunar-1.6.10/docs/reference/thunarx/thunarx-overrides.txt --- thunar-1.2.3/docs/reference/thunarx/thunarx-overrides.txt 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/thunarx-overrides.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ - diff -Nru thunar-1.2.3/docs/reference/thunarx/thunarx-sections.txt thunar-1.6.10/docs/reference/thunarx/thunarx-sections.txt --- thunar-1.2.3/docs/reference/thunarx/thunarx-sections.txt 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/thunarx-sections.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,199 +0,0 @@ -thunarx/thunarx.h - -
-thunarx-file-info -ThunarxFileInfo -ThunarxFileInfoIface -ThunarxFileInfo -thunarx_file_info_get_name -thunarx_file_info_get_uri -thunarx_file_info_get_parent_uri -thunarx_file_info_get_uri_scheme -thunarx_file_info_get_mime_type -thunarx_file_info_has_mime_type -thunarx_file_info_is_directory -thunarx_file_info_get_file_info -thunarx_file_info_get_filesystem_info -thunarx_file_info_get_location -thunarx_file_info_changed -thunarx_file_info_renamed -THUNARX_TYPE_FILE_INFO_LIST -thunarx_file_info_list_copy -thunarx_file_info_list_free - -THUNARX_TYPE_FILE_INFO -THUNARX_FILE_INFO -THUNARX_IS_FILE_INFO -THUNARX_FILE_INFO_GET_IFACE - -thunarx_file_info_get_type -thunarx_file_info_list_get_type -
- -
-thunarx-menu-provider -ThunarxMenuProvider -ThunarxMenuProviderIface -ThunarxMenuProvider -thunarx_menu_provider_get_file_actions -thunarx_menu_provider_get_folder_actions -thunarx_menu_provider_get_dnd_actions - -THUNARX_TYPE_MENU_PROVIDER -THUNARX_MENU_PROVIDER -THUNARX_IS_MENU_PROVIDER -THUNARX_MENU_PROVIDER_GET_IFACE - -thunarx_menu_provider_get_type -
- -
-thunarx-preferences-provider -ThunarxPreferencesProvider -ThunarxPreferencesProviderIface -ThunarxPreferencesProvider -thunarx_preferences_provider_get_actions - -THUNARX_TYPE_PREFERENCES_PROVIDER -THUNARX_PREFERENCES_PROVIDER -THUNARX_IS_PREFERENCES_PROVIDER -THUNARX_PREFERENCES_PROVIDER_GET_IFACE - -thunarx_preferences_provider_get_type -
- -
-thunarx-property-page -ThunarxPropertyPage -ThunarxPropertyPage -thunarx_property_page_new -thunarx_property_page_new_with_label_widget -thunarx_property_page_get_label -thunarx_property_page_set_label -thunarx_property_page_get_label_widget -thunarx_property_page_set_label_widget - -ThunarxPropertyPageClass -THUNARX_TYPE_PROPERTY_PAGE -THUNARX_PROPERTY_PAGE -THUNARX_PROPERTY_PAGE_CLASS -THUNARX_IS_PROPERTY_PAGE -THUNARX_IS_PROPERTY_PAGE_CLASS -THUNARX_PROPERTY_PAGE_GET_CLASS - -ThunarxPropertyPagePrivate -thunarx_property_page_get_type -
- -
-thunarx-property-page-provider -ThunarxPropertyPageProvider -ThunarxPropertyPageProvider -ThunarxPropertyPageProviderIface -thunarx_property_page_provider_get_pages - -THUNARX_TYPE_PROPERTY_PAGE_PROVIDER -THUNARX_PROPERTY_PAGE_PROVIDER -THUNARX_IS_PROPERTY_PAGE_PROVIDER -THUNARX_PROPERTY_PAGE_PROVIDER_GET_IFACE - -thunarx_property_page_provider_get_type -
- -
-thunarx-provider-factory -ThunarxProviderFactory -ThunarxProviderFactory -thunarx_provider_factory_get_default -thunarx_provider_factory_list_providers - -ThunarxProviderFactoryClass -THUNARX_TYPE_PROVIDER_FACTORY -THUNARX_PROVIDER_FACTORY -THUNARX_PROVIDER_FACTORY_CLASS -THUNARX_IS_PROVIDER_FACTORY -THUNARX_IS_PROVIDER_FACTORY_CLASS -THUNARX_PROVIDER_FACTORY_GET_CLASS - -thunarx_provider_factory_get_type -
- -
-thunarx-provider-plugin -ThunarxProviderPlugin -ThunarxProviderPlugin -ThunarxProviderPluginIface -thunarx_provider_plugin_get_resident -thunarx_provider_plugin_set_resident -thunarx_provider_plugin_register_type -thunarx_provider_plugin_add_interface -thunarx_provider_plugin_register_enum -thunarx_provider_plugin_register_flags -THUNARX_DEFINE_TYPE -THUNARX_DEFINE_TYPE_WITH_CODE -THUNARX_DEFINE_ABSTRACT_TYPE -THUNARX_DEFINE_ABSTRACT_TYPE_WITH_CODE -THUNARX_DEFINE_TYPE_EXTENDED -THUNARX_IMPLEMENT_INTERFACE - -THUNARX_TYPE_PROVIDER_PLUGIN -THUNARX_PROVIDER_PLUGIN -THUNARX_IS_PROVIDER_PLUGIN -THUNARX_PROVIDER_PLUGIN_GET_IFACE - -thunarx_provider_plugin_get_type -
- -
-thunarx-renamer -ThunarxRenamer -ThunarxRenamer -ThunarxRenamerClass -thunarx_renamer_get_help_url -thunarx_renamer_set_help_url -thunarx_renamer_get_name -thunarx_renamer_set_name -thunarx_renamer_process -thunarx_renamer_load -thunarx_renamer_save -thunarx_renamer_get_actions -thunarx_renamer_changed - -THUNARX_TYPE_RENAMER -THUNARX_RENAMER -THUNARX_RENAMER_CLASS -THUNARX_IS_RENAMER -THUNARX_IS_RENAMER_CLASS -THUNARX_RENAMER_GET_CLASS - -thunarx_renamer_get_type -
- -
-thunarx-renamer-provider -ThunarxRenamerProvider -ThunarxRenamerProvider -ThunarxRenamerProviderIface -thunarx_renamer_provider_get_renamers - -THUNARX_TYPE_RENAMER_PROVIDER -THUNARX_RENAMER_PROVIDER -THUNARX_IS_RENAMER_PROVIDER -THUNARX_RENAMER_PROVIDER_GET_IFACE - -thunarx_renamer_provider_get_type -
- -
-thunarx-version-information -Variables and functions to check the library version -thunarx_major_version -thunarx_minor_version -thunarx_micro_version -thunarx_check_version -THUNARX_MAJOR_VERSION -THUNARX_MINOR_VERSION -THUNARX_MICRO_VERSION -THUNARX_CHECK_VERSION -
- diff -Nru thunar-1.2.3/docs/reference/thunarx/version.xml thunar-1.6.10/docs/reference/thunarx/version.xml --- thunar-1.2.3/docs/reference/thunarx/version.xml 2011-09-20 20:28:32.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/version.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1.2.3 diff -Nru thunar-1.2.3/docs/reference/thunarx/version.xml.in thunar-1.6.10/docs/reference/thunarx/version.xml.in --- thunar-1.2.3/docs/reference/thunarx/version.xml.in 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/docs/reference/thunarx/version.xml.in 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -@PACKAGE_VERSION@ diff -Nru thunar-1.2.3/docs/Thunar.1 thunar-1.6.10/docs/Thunar.1 --- thunar-1.2.3/docs/Thunar.1 2011-02-06 23:16:59.000000000 +0000 +++ thunar-1.6.10/docs/Thunar.1 2015-05-22 20:45:54.000000000 +0000 @@ -1,13 +1,22 @@ '\" t .\" Title: Thunar .\" Author: [see the "Author" section] -.\" Generator: DocBook XSL Stylesheets v1.75.2 -.\" Date: 02/07/2011 +.\" Generator: DocBook XSL Stylesheets v1.78.0 +.\" Date: 05/22/2015 .\" Manual: [FIXME: manual] .\" Source: [FIXME: source] .\" Language: English .\" -.TH "THUNAR" "1" "02/07/2011" "[FIXME: source]" "[FIXME: manual]" +.TH "THUNAR" "1" "05/22/2015" "[FIXME: source]" "[FIXME: manual]" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -100,7 +109,7 @@ \fBThunar\fR was written by Benedikt Meurer -benny@xfce\&.org\&. +\&. .PP This manual page was written by Benedikt Meurer -benny@xfce\&.org\&. +\&. diff -Nru thunar-1.2.3/docs/Thunar.xml thunar-1.6.10/docs/Thunar.xml --- thunar-1.2.3/docs/Thunar.xml 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/docs/Thunar.xml 2015-05-22 20:31:54.000000000 +0000 @@ -1,6 +1,4 @@ diff -Nru thunar-1.2.3/examples/Makefile.am thunar-1.6.10/examples/Makefile.am --- thunar-1.2.3/examples/Makefile.am 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/examples/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -# $Id$ - SUBDIRS = \ tex-open-terminal diff -Nru thunar-1.2.3/examples/Makefile.in thunar-1.6.10/examples/Makefile.in --- thunar-1.2.3/examples/Makefile.in 2011-09-20 20:28:13.000000000 +0000 +++ thunar-1.6.10/examples/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 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,9 +13,52 @@ # PARTICULAR PURPOSE. @SET_MAKE@ - -# $Id$ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,36 +79,68 @@ host_triplet = @host@ target_triplet = @target@ subdir = examples -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -154,6 +228,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -161,11 +239,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -173,7 +247,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -185,6 +259,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -196,10 +274,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -219,6 +293,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -261,7 +336,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -269,12 +343,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -312,6 +387,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -385,22 +462,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -415,57 +495,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -481,12 +516,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -498,15 +528,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -515,6 +541,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -551,13 +592,10 @@ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -592,10 +630,15 @@ installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -673,22 +716,20 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/examples/nautilus-bulk-rename.py thunar-1.6.10/examples/nautilus-bulk-rename.py --- thunar-1.2.3/examples/nautilus-bulk-rename.py 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/examples/nautilus-bulk-rename.py 2015-05-22 20:31:54.000000000 +0000 @@ -1,7 +1,5 @@ #!/usr/bin/env python # -# $Id$ -# # Copyright (c) 2006 Benedikt Meurer # # This program is free software; you can redistribute it and/or modify it diff -Nru thunar-1.2.3/examples/tex-open-terminal/Makefile.am thunar-1.6.10/examples/tex-open-terminal/Makefile.am --- thunar-1.2.3/examples/tex-open-terminal/Makefile.am 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/examples/tex-open-terminal/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,6 +1,4 @@ -# $Id$ - -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_srcdir) \ -I$(top_srcdir)/examples \ @@ -18,6 +16,7 @@ tex_open_terminal_la_CFLAGS = \ $(GTK_CFLAGS) \ + $(LIBXFCE4UI_CFLAGS) \ $(PLATFORM_CFLAGS) tex_open_terminal_la_DEPENDENCIES = \ @@ -25,6 +24,7 @@ tex_open_terminal_la_LIBADD = \ $(top_builddir)/thunarx/libthunarx-$(THUNARX_VERSION_API).la \ + $(LIBXFCE4UI_LIBS) \ $(GTK_LIBS) tex_open_terminal_la_LDFLAGS = \ diff -Nru thunar-1.2.3/examples/tex-open-terminal/Makefile.in thunar-1.6.10/examples/tex-open-terminal/Makefile.in --- thunar-1.2.3/examples/tex-open-terminal/Makefile.in 2011-09-20 20:28:13.000000000 +0000 +++ thunar-1.6.10/examples/tex-open-terminal/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,9 +14,52 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,13 +80,14 @@ host_triplet = @host@ target_triplet = @target@ subdir = examples/tex-open-terminal -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -69,6 +112,12 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(extensionsdir)" LTLIBRARIES = $(extensions_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -76,13 +125,26 @@ tex_open_terminal_la-tex-open-terminal-plugin.lo \ tex_open_terminal_la-tex-open-terminal.lo tex_open_terminal_la_OBJECTS = $(am_tex_open_terminal_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = tex_open_terminal_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(tex_open_terminal_la_CFLAGS) $(CFLAGS) \ $(tex_open_terminal_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -93,24 +155,42 @@ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(tex_open_terminal_la_SOURCES) DIST_SOURCES = $(tex_open_terminal_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -172,6 +252,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -179,11 +263,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -191,7 +271,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -203,6 +283,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -214,10 +298,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -237,6 +317,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -279,7 +360,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -287,12 +367,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -330,6 +411,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -354,7 +437,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xfconf_query_found = @xfconf_query_found@ -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_srcdir) \ -I$(top_srcdir)/examples \ @@ -372,6 +455,7 @@ tex_open_terminal_la_CFLAGS = \ $(GTK_CFLAGS) \ + $(LIBXFCE4UI_CFLAGS) \ $(PLATFORM_CFLAGS) tex_open_terminal_la_DEPENDENCIES = \ @@ -379,6 +463,7 @@ tex_open_terminal_la_LIBADD = \ $(top_builddir)/thunarx/libthunarx-$(THUNARX_VERSION_API).la \ + $(LIBXFCE4UI_LIBS) \ $(GTK_LIBS) tex_open_terminal_la_LDFLAGS = \ @@ -425,9 +510,9 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-extensionsLTLIBRARIES: $(extensions_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(extensionsdir)" || $(MKDIR_P) "$(DESTDIR)$(extensionsdir)" @list='$(extensions_LTLIBRARIES)'; test -n "$(extensionsdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ @@ -435,6 +520,8 @@ else :; fi; \ done; \ test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(extensionsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(extensionsdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(extensionsdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(extensionsdir)"; \ } @@ -450,13 +537,16 @@ clean-extensionsLTLIBRARIES: -test -z "$(extensions_LTLIBRARIES)" || rm -f $(extensions_LTLIBRARIES) - @list='$(extensions_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -tex-open-terminal.la: $(tex_open_terminal_la_OBJECTS) $(tex_open_terminal_la_DEPENDENCIES) + @list='$(extensions_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +tex-open-terminal.la: $(tex_open_terminal_la_OBJECTS) $(tex_open_terminal_la_DEPENDENCIES) $(EXTRA_tex_open_terminal_la_DEPENDENCIES) $(AM_V_CCLD)$(tex_open_terminal_la_LINK) -rpath $(extensionsdir) $(tex_open_terminal_la_OBJECTS) $(tex_open_terminal_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -471,42 +561,37 @@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< tex_open_terminal_la-tex-open-terminal-plugin.lo: tex-open-terminal-plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tex_open_terminal_la_CFLAGS) $(CFLAGS) -MT tex_open_terminal_la-tex-open-terminal-plugin.lo -MD -MP -MF $(DEPDIR)/tex_open_terminal_la-tex-open-terminal-plugin.Tpo -c -o tex_open_terminal_la-tex-open-terminal-plugin.lo `test -f 'tex-open-terminal-plugin.c' || echo '$(srcdir)/'`tex-open-terminal-plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/tex_open_terminal_la-tex-open-terminal-plugin.Tpo $(DEPDIR)/tex_open_terminal_la-tex-open-terminal-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tex-open-terminal-plugin.c' object='tex_open_terminal_la-tex-open-terminal-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tex-open-terminal-plugin.c' object='tex_open_terminal_la-tex-open-terminal-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tex_open_terminal_la_CFLAGS) $(CFLAGS) -c -o tex_open_terminal_la-tex-open-terminal-plugin.lo `test -f 'tex-open-terminal-plugin.c' || echo '$(srcdir)/'`tex-open-terminal-plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tex_open_terminal_la_CFLAGS) $(CFLAGS) -c -o tex_open_terminal_la-tex-open-terminal-plugin.lo `test -f 'tex-open-terminal-plugin.c' || echo '$(srcdir)/'`tex-open-terminal-plugin.c tex_open_terminal_la-tex-open-terminal.lo: tex-open-terminal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tex_open_terminal_la_CFLAGS) $(CFLAGS) -MT tex_open_terminal_la-tex-open-terminal.lo -MD -MP -MF $(DEPDIR)/tex_open_terminal_la-tex-open-terminal.Tpo -c -o tex_open_terminal_la-tex-open-terminal.lo `test -f 'tex-open-terminal.c' || echo '$(srcdir)/'`tex-open-terminal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/tex_open_terminal_la-tex-open-terminal.Tpo $(DEPDIR)/tex_open_terminal_la-tex-open-terminal.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tex-open-terminal.c' object='tex_open_terminal_la-tex-open-terminal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tex-open-terminal.c' object='tex_open_terminal_la-tex-open-terminal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tex_open_terminal_la_CFLAGS) $(CFLAGS) -c -o tex_open_terminal_la-tex-open-terminal.lo `test -f 'tex-open-terminal.c' || echo '$(srcdir)/'`tex-open-terminal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tex_open_terminal_la_CFLAGS) $(CFLAGS) -c -o tex_open_terminal_la-tex-open-terminal.lo `test -f 'tex-open-terminal.c' || echo '$(srcdir)/'`tex-open-terminal.c mostlyclean-libtool: -rm -f *.lo @@ -514,26 +599,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -545,15 +619,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -562,6 +632,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -611,10 +696,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -699,20 +789,20 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean \ - clean-extensionsLTLIBRARIES clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-extensionsLTLIBRARIES install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-extensionsLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-extensionsLTLIBRARIES clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-extensionsLTLIBRARIES \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-extensionsLTLIBRARIES # Don't install/uninstall examples by default diff -Nru thunar-1.2.3/examples/tex-open-terminal/tex-open-terminal.c thunar-1.6.10/examples/tex-open-terminal/tex-open-terminal.c --- thunar-1.2.3/examples/tex-open-terminal/tex-open-terminal.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/examples/tex-open-terminal/tex-open-terminal.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -29,6 +29,7 @@ #include #endif +#include #include @@ -143,7 +144,6 @@ GtkWidget *window) { const gchar *path; - GtkWidget *dialog; GError *error = NULL; gchar *command; @@ -156,18 +156,10 @@ command = g_strdup_printf ("Terminal --working-directory \"%s\"", path); /* try to run the terminal command */ - if (!gdk_spawn_command_line_on_screen (gtk_widget_get_screen (window), command, &error)) + if (!xfce_spawn_command_line_on_screen (gtk_widget_get_screen (window), command, FALSE, FALSE, &error)) { /* display an error dialog */ - dialog = gtk_message_dialog_new (GTK_WINDOW (window), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - "Failed to open terminal in folder %s.", - path); - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s.", error->message); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + xfce_dialog_show_error (GTK_WINDOW (window), error, "Failed to open terminal in folder %s.", path); g_error_free (error); } diff -Nru thunar-1.2.3/examples/tex-open-terminal/tex-open-terminal.h thunar-1.6.10/examples/tex-open-terminal/tex-open-terminal.h --- thunar-1.2.3/examples/tex-open-terminal/tex-open-terminal.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/examples/tex-open-terminal/tex-open-terminal.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/examples/tex-open-terminal/tex-open-terminal-plugin.c thunar-1.6.10/examples/tex-open-terminal/tex-open-terminal-plugin.c --- thunar-1.2.3/examples/tex-open-terminal/tex-open-terminal-plugin.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/examples/tex-open-terminal/tex-open-terminal-plugin.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/examples/thunar-file-manager.py thunar-1.6.10/examples/thunar-file-manager.py --- thunar-1.2.3/examples/thunar-file-manager.py 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/examples/thunar-file-manager.py 2015-05-22 20:31:54.000000000 +0000 @@ -1,7 +1,5 @@ #!/usr/bin/env python # -# $Id$ -# # Copyright (c) 2006 Benedikt Meurer # # This program is free software; you can redistribute it and/or modify it diff -Nru thunar-1.2.3/examples/xfce-file-manager.py thunar-1.6.10/examples/xfce-file-manager.py --- thunar-1.2.3/examples/xfce-file-manager.py 2010-11-09 20:54:41.000000000 +0000 +++ thunar-1.6.10/examples/xfce-file-manager.py 2015-05-22 20:31:54.000000000 +0000 @@ -1,7 +1,5 @@ #!/usr/bin/env python # -# $Id$ -# # Copyright (c) 2006 Benedikt Meurer # # This program is free software; you can redistribute it and/or modify it diff -Nru thunar-1.2.3/FAQ thunar-1.6.10/FAQ --- thunar-1.2.3/FAQ 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/FAQ 2015-05-22 13:25:36.000000000 +0000 @@ -27,14 +27,7 @@ 3. Where does Thunar store the metadata associated with files? ============================================================== - Thunar associates various settings with files/folders, which we call metadata. - This metadata for all files is stored in tdb database file, which is called - the metafile. The database file is stored in - - $XDG_CACHE_HOME/Thunar/metafile.tdb - - and can be examined using the tdbtool, which is part of the Thunar - distribution (located in the tdb/ subdirectory). + Thunar uses the metadata daemon provided by GVFS. 4. Where does Thunar store its preferences? diff -Nru thunar-1.2.3/gtk-doc.make thunar-1.6.10/gtk-doc.make --- thunar-1.2.3/gtk-doc.make 2011-09-20 20:28:02.000000000 +0000 +++ thunar-1.6.10/gtk-doc.make 1970-01-01 00:00:00.000000000 +0000 @@ -1,264 +0,0 @@ -# -*- mode: makefile -*- - -#################################### -# Everything below here is generic # -#################################### - -if GTK_DOC_USE_LIBTOOL -GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -GTKDOC_RUN = $(LIBTOOL) --mode=execute -else -GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -GTKDOC_RUN = -endif - -# We set GPATH here; this gives us semantics for GNU make -# which are more like other make's VPATH, when it comes to -# whether a source that is a target of one rule is then -# searched for in VPATH/GPATH. -# -GPATH = $(srcdir) - -TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) - -SETUP_FILES = \ - $(content_files) \ - $(DOC_MAIN_SGML_FILE) \ - $(DOC_MODULE)-sections.txt \ - $(DOC_MODULE)-overrides.txt - -EXTRA_DIST = \ - $(SETUP_FILES) - -DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \ - html-build.stamp pdf-build.stamp \ - setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp - -SCANOBJ_FILES = \ - $(DOC_MODULE).args \ - $(DOC_MODULE).hierarchy \ - $(DOC_MODULE).interfaces \ - $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).signals - -REPORT_FILES = \ - $(DOC_MODULE)-undocumented.txt \ - $(DOC_MODULE)-undeclared.txt \ - $(DOC_MODULE)-unused.txt - -CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) - -if ENABLE_GTK_DOC -if GTK_DOC_BUILD_HTML -HTML_BUILD_STAMP=html-build.stamp -else -HTML_BUILD_STAMP= -endif -if GTK_DOC_BUILD_PDF -PDF_BUILD_STAMP=pdf-build.stamp -else -PDF_BUILD_STAMP= -endif - -all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) -else -all-local: -endif - -docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) - -$(REPORT_FILES): sgml-build.stamp - -#### setup #### - -setup-build.stamp: - -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - echo 'gtk-doc: Preparing build'; \ - files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ - if test "x$$files" != "x" ; then \ - for file in $$files ; do \ - test -f $(abs_srcdir)/$$file && \ - cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \ - done \ - fi; \ - test -f $(abs_srcdir)/tmpl && \ - cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \ - fi - @touch setup-build.stamp - - -setup.stamp: setup-build.stamp - @true - - -#### scan #### - -scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) - @echo 'gtk-doc: Scanning header files' - @_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ - done ; \ - gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) - @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \ - else \ - for i in $(SCANOBJ_FILES) ; do \ - test -f $$i || touch $$i ; \ - done \ - fi - @touch scan-build.stamp - -$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp - @true - -#### templates #### - -tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt - @echo 'gtk-doc: Rebuilding template files' - @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) - @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - if test -w $(abs_srcdir) ; then \ - cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \ - fi \ - fi - @touch tmpl-build.stamp - -tmpl.stamp: tmpl-build.stamp - @true - -$(srcdir)/tmpl/*.sgml: - @true - -#### xml #### - -sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) - @echo 'gtk-doc: Building XML' - @-chmod -R u+w $(srcdir) - @_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ - done ; \ - gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) - @touch sgml-build.stamp - -sgml.stamp: sgml-build.stamp - @true - -#### html #### - -html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo 'gtk-doc: Building HTML' - @rm -rf html - @mkdir html - @mkhtml_options=""; \ - gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ - if test "$(?)" = "0"; then \ - mkhtml_options=--path="$(abs_srcdir)"; \ - fi; \ - cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) - -@test "x$(HTML_IMAGES)" = "x" || \ - for file in $(HTML_IMAGES) ; do \ - if test -f $(abs_srcdir)/$$file ; then \ - cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ - fi; \ - if test -f $(abs_builddir)/$$file ; then \ - cp $(abs_builddir)/$$file $(abs_builddir)/html; \ - fi; \ - done; - @echo 'gtk-doc: Fixing cross-references' - @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) - @touch html-build.stamp - -#### pdf #### - -pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo 'gtk-doc: Building PDF' - @rm -rf $(DOC_MODULE).pdf - @mkpdf_imgdirs=""; \ - if test "x$(HTML_IMAGES)" != "x"; then \ - for img in $(HTML_IMAGES); do \ - part=`dirname $$img`; \ - echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \ - if test $$? != 0; then \ - mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \ - fi; \ - done; \ - fi; \ - gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) - @touch pdf-build.stamp - -############## - -clean-local: - rm -f *~ *.bak - rm -rf .libs - -distclean-local: - rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ - $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt - if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ - rm -rf tmpl; \ - fi - -maintainer-clean-local: clean - rm -rf xml html - -install-data-local: - @installfiles=`echo $(srcdir)/html/*`; \ - if test "$$installfiles" = '$(srcdir)/html/*'; \ - then echo '-- Nothing to install' ; \ - else \ - if test -n "$(DOC_MODULE_VERSION)"; then \ - installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ - else \ - installdir="$(DESTDIR)$(TARGET_DIR)"; \ - fi; \ - $(mkinstalldirs) $${installdir} ; \ - for i in $$installfiles; do \ - echo '-- Installing '$$i ; \ - $(INSTALL_DATA) $$i $${installdir}; \ - done; \ - if test -n "$(DOC_MODULE_VERSION)"; then \ - mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ - $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ - mv -f $${installdir}/$(DOC_MODULE).devhelp \ - $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \ - fi; \ - $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ - fi - -uninstall-local: - @if test -n "$(DOC_MODULE_VERSION)"; then \ - installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ - else \ - installdir="$(DESTDIR)$(TARGET_DIR)"; \ - fi; \ - rm -rf $${installdir} - -# -# Require gtk-doc when making dist -# -if ENABLE_GTK_DOC -dist-check-gtkdoc: -else -dist-check-gtkdoc: - @echo "*** gtk-doc must be installed and enabled in order to make dist" - @false -endif - -dist-hook: dist-check-gtkdoc dist-hook-local - mkdir $(distdir)/tmpl - mkdir $(distdir)/html - -cp $(build)/tmpl/*.sgml $(distdir)/tmpl - cp $(builddir)/html/* $(distdir)/html - -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/ - -cp $(build)/$(DOC_MODULE).types $(distdir)/ - -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/ - cd $(distdir) && rm -f $(DISTCLEANFILES) - $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html - -.PHONY : dist-hook-local docs diff -Nru thunar-1.2.3/icons/128x128/Makefile.am thunar-1.6.10/icons/128x128/Makefile.am --- thunar-1.2.3/icons/128x128/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/icons/128x128/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -0,0 +1,8 @@ +iconsdir = $(datadir)/icons/hicolor/128x128/apps +icons_DATA = \ + Thunar.png + +EXTRA_DIST = \ + $(icons_DATA) + +# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/icons/128x128/Makefile.in thunar-1.6.10/icons/128x128/Makefile.in --- thunar-1.2.3/icons/128x128/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/icons/128x128/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -0,0 +1,612 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = icons/128x128 +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(iconsdir)" +DATA = $(icons_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DBUS_CFLAGS = @DBUS_CFLAGS@ +DBUS_LIBS = @DBUS_LIBS@ +DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ +DBUS_VERSION = @DBUS_VERSION@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ +EXIF_VERSION = @EXIF_VERSION@ +EXO_CFLAGS = @EXO_CFLAGS@ +EXO_LIBS = @EXO_LIBS@ +EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ +EXO_VERSION = @EXO_VERSION@ +FGREP = @FGREP@ +GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ +GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ +GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ +GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ +GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ +GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ +GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ +GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ +GIO_VERSION = @GIO_VERSION@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ +GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ +GTHREAD_VERSION = @GTHREAD_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ +GTK_VERSION = @GTK_VERSION@ +GUDEV_CFLAGS = @GUDEV_CFLAGS@ +GUDEV_LIBS = @GUDEV_LIBS@ +GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ +GUDEV_VERSION = @GUDEV_VERSION@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ +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@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ +LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ +LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ +LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSM_CFLAGS = @LIBSM_CFLAGS@ +LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ +LIBSM_LIBS = @LIBSM_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ +LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ +LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ +LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ +LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ +LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ +LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ +LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ +LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ +LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ +LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ +LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ +LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +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@ +PCRE_CFLAGS = @PCRE_CFLAGS@ +PCRE_LIBS = @PCRE_LIBS@ +PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ +PCRE_VERSION = @PCRE_VERSION@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ +PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ +PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +THUNARX_VERINFO = @THUNARX_VERINFO@ +THUNARX_VERSION_API = @THUNARX_VERSION_API@ +THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ +THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ +THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_ARGS = @XGETTEXT_ARGS@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +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@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xfconf_query_found = @xfconf_query_found@ +iconsdir = $(datadir)/icons/hicolor/128x128/apps +icons_DATA = \ + Thunar.png + +EXTRA_DIST = \ + $(icons_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/128x128/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/128x128/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 +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconsDATA: $(icons_DATA) + @$(NORMAL_INSTALL) + @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ + done + +uninstall-iconsDATA: + @$(NORMAL_UNINSTALL) + @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(iconsdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool 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-iconsDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconsDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconsDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA + + +# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: + +# 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/VFaXHq0iMc/thunar-1.2.3/icons/128x128/Thunar.png and /tmp/6ogtt7rGai/thunar-1.6.10/icons/128x128/Thunar.png differ diff -Nru thunar-1.2.3/icons/16x16/Makefile.am thunar-1.6.10/icons/16x16/Makefile.am --- thunar-1.2.3/icons/16x16/Makefile.am 2011-01-29 17:29:32.000000000 +0000 +++ thunar-1.6.10/icons/16x16/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -# $Id$ - appsdir = $(datadir)/icons/hicolor/16x16/apps apps_DATA = \ Thunar.png @@ -8,8 +6,7 @@ stock_DATA = \ stock_folder-copy.png \ stock_folder-move.png \ - stock_thunar-shortcuts.png \ - stock_thunar-templates.png + stock_thunar-shortcuts.png EXTRA_DIST = \ $(apps_DATA) \ diff -Nru thunar-1.2.3/icons/16x16/Makefile.in thunar-1.6.10/icons/16x16/Makefile.in --- thunar-1.2.3/icons/16x16/Makefile.in 2011-09-20 20:28:13.000000000 +0000 +++ thunar-1.6.10/icons/16x16/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,9 +14,52 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,24 +80,35 @@ host_triplet = @host@ target_triplet = @target@ subdir = icons/16x16 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -77,8 +130,15 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(appsdir)" "$(DESTDIR)$(stockdir)" DATA = $(apps_DATA) $(stock_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -138,6 +198,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -145,11 +209,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -157,7 +217,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -169,6 +229,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -180,10 +244,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -203,6 +263,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -245,7 +306,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -253,12 +313,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -296,6 +357,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -328,8 +391,7 @@ stock_DATA = \ stock_folder-copy.png \ stock_folder-move.png \ - stock_thunar-shortcuts.png \ - stock_thunar-templates.png + stock_thunar-shortcuts.png EXTRA_DIST = \ $(apps_DATA) \ @@ -376,8 +438,11 @@ -rm -rf .libs _libs install-appsDATA: $(apps_DATA) @$(NORMAL_INSTALL) - test -z "$(appsdir)" || $(MKDIR_P) "$(DESTDIR)$(appsdir)" @list='$(apps_DATA)'; test -n "$(appsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(appsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(appsdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -391,13 +456,14 @@ @$(NORMAL_UNINSTALL) @list='$(apps_DATA)'; test -n "$(appsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(appsdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(appsdir)" && rm -f $$files + dir='$(DESTDIR)$(appsdir)'; $(am__uninstall_files_from_dir) install-stockDATA: $(stock_DATA) @$(NORMAL_INSTALL) - test -z "$(stockdir)" || $(MKDIR_P) "$(DESTDIR)$(stockdir)" @list='$(stock_DATA)'; test -n "$(stockdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(stockdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(stockdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -411,14 +477,12 @@ @$(NORMAL_UNINSTALL) @list='$(stock_DATA)'; test -n "$(stockdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(stockdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(stockdir)" && rm -f $$files -tags: TAGS -TAGS: + dir='$(DESTDIR)$(stockdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -468,10 +532,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -552,17 +621,17 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-appsDATA install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-stockDATA install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am uninstall uninstall-am uninstall-appsDATA \ - uninstall-stockDATA + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-appsDATA install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-stockDATA install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-appsDATA uninstall-stockDATA # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/icons/16x16/stock_folder-copy.png and /tmp/6ogtt7rGai/thunar-1.6.10/icons/16x16/stock_folder-copy.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/icons/16x16/stock_thunar-templates.png and /tmp/6ogtt7rGai/thunar-1.6.10/icons/16x16/stock_thunar-templates.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/icons/16x16/Thunar.png and /tmp/6ogtt7rGai/thunar-1.6.10/icons/16x16/Thunar.png differ diff -Nru thunar-1.2.3/icons/24x24/Makefile.am thunar-1.6.10/icons/24x24/Makefile.am --- thunar-1.2.3/icons/24x24/Makefile.am 2011-01-29 17:29:32.000000000 +0000 +++ thunar-1.6.10/icons/24x24/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -# $Id$ - iconsdir = $(datadir)/icons/hicolor/24x24/apps icons_DATA = \ Thunar.png diff -Nru thunar-1.2.3/icons/24x24/Makefile.in thunar-1.6.10/icons/24x24/Makefile.in --- thunar-1.2.3/icons/24x24/Makefile.in 2011-09-20 20:28:13.000000000 +0000 +++ thunar-1.6.10/icons/24x24/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,9 +14,52 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,24 +80,35 @@ host_triplet = @host@ target_triplet = @target@ subdir = icons/24x24 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -77,8 +130,15 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(iconsdir)" "$(DESTDIR)$(stockdir)" DATA = $(icons_DATA) $(stock_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -138,6 +198,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -145,11 +209,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -157,7 +217,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -169,6 +229,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -180,10 +244,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -203,6 +263,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -245,7 +306,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -253,12 +313,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -296,6 +357,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -374,8 +437,11 @@ -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) - test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)" @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -389,13 +455,14 @@ @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(iconsdir)" && rm -f $$files + dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) install-stockDATA: $(stock_DATA) @$(NORMAL_INSTALL) - test -z "$(stockdir)" || $(MKDIR_P) "$(DESTDIR)$(stockdir)" @list='$(stock_DATA)'; test -n "$(stockdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(stockdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(stockdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -409,14 +476,12 @@ @$(NORMAL_UNINSTALL) @list='$(stock_DATA)'; test -n "$(stockdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(stockdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(stockdir)" && rm -f $$files -tags: TAGS -TAGS: + dir='$(DESTDIR)$(stockdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -466,10 +531,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -550,17 +620,17 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconsDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-stockDATA install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am uninstall uninstall-am uninstall-iconsDATA \ - uninstall-stockDATA + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconsDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-stockDATA install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-iconsDATA uninstall-stockDATA # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/icons/24x24/stock_folder-copy.png and /tmp/6ogtt7rGai/thunar-1.6.10/icons/24x24/stock_folder-copy.png differ Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/icons/24x24/Thunar.png and /tmp/6ogtt7rGai/thunar-1.6.10/icons/24x24/Thunar.png differ diff -Nru thunar-1.2.3/icons/48x48/Makefile.am thunar-1.6.10/icons/48x48/Makefile.am --- thunar-1.2.3/icons/48x48/Makefile.am 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/icons/48x48/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -# $Id$ - iconsdir = $(datadir)/icons/hicolor/48x48/apps icons_DATA = \ Thunar.png diff -Nru thunar-1.2.3/icons/48x48/Makefile.in thunar-1.6.10/icons/48x48/Makefile.in --- thunar-1.2.3/icons/48x48/Makefile.in 2011-09-20 20:28:13.000000000 +0000 +++ thunar-1.6.10/icons/48x48/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,9 +14,52 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,24 +80,35 @@ host_triplet = @host@ target_triplet = @target@ subdir = icons/48x48 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -77,8 +130,15 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -138,6 +198,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -145,11 +209,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -157,7 +217,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -169,6 +229,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -180,10 +244,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -203,6 +263,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -245,7 +306,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -253,12 +313,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -296,6 +357,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -368,8 +431,11 @@ -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) - test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)" @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -383,14 +449,12 @@ @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(iconsdir)" && rm -f $$files -tags: TAGS -TAGS: + dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -440,10 +504,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -524,16 +593,16 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconsDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-iconsDATA + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconsDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/icons/48x48/Thunar.png and /tmp/6ogtt7rGai/thunar-1.6.10/icons/48x48/Thunar.png differ diff -Nru thunar-1.2.3/icons/64x64/Makefile.am thunar-1.6.10/icons/64x64/Makefile.am --- thunar-1.2.3/icons/64x64/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/icons/64x64/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -0,0 +1,8 @@ +iconsdir = $(datadir)/icons/hicolor/64x64/apps +icons_DATA = \ + Thunar.png + +EXTRA_DIST = \ + $(icons_DATA) + +# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/icons/64x64/Makefile.in thunar-1.6.10/icons/64x64/Makefile.in --- thunar-1.2.3/icons/64x64/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/icons/64x64/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -0,0 +1,612 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = icons/64x64 +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(iconsdir)" +DATA = $(icons_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DBUS_CFLAGS = @DBUS_CFLAGS@ +DBUS_LIBS = @DBUS_LIBS@ +DBUS_REQUIRED_VERSION = @DBUS_REQUIRED_VERSION@ +DBUS_VERSION = @DBUS_VERSION@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +EXIF_REQUIRED_VERSION = @EXIF_REQUIRED_VERSION@ +EXIF_VERSION = @EXIF_VERSION@ +EXO_CFLAGS = @EXO_CFLAGS@ +EXO_LIBS = @EXO_LIBS@ +EXO_REQUIRED_VERSION = @EXO_REQUIRED_VERSION@ +EXO_VERSION = @EXO_VERSION@ +FGREP = @FGREP@ +GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ +GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ +GDK_PIXBUF_REQUIRED_VERSION = @GDK_PIXBUF_REQUIRED_VERSION@ +GDK_PIXBUF_VERSION = @GDK_PIXBUF_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GIO_REQUIRED_VERSION = @GIO_REQUIRED_VERSION@ +GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@ +GIO_UNIX_LIBS = @GIO_UNIX_LIBS@ +GIO_UNIX_REQUIRED_VERSION = @GIO_UNIX_REQUIRED_VERSION@ +GIO_UNIX_VERSION = @GIO_UNIX_VERSION@ +GIO_VERSION = @GIO_VERSION@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ +GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ +GTHREAD_LIBS = @GTHREAD_LIBS@ +GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ +GTHREAD_VERSION = @GTHREAD_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ +GTK_VERSION = @GTK_VERSION@ +GUDEV_CFLAGS = @GUDEV_CFLAGS@ +GUDEV_LIBS = @GUDEV_LIBS@ +GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ +GUDEV_VERSION = @GUDEV_VERSION@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ +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@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ +LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ +LIBNOTIFY_REQUIRED_VERSION = @LIBNOTIFY_REQUIRED_VERSION@ +LIBNOTIFY_VERSION = @LIBNOTIFY_VERSION@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSM_CFLAGS = @LIBSM_CFLAGS@ +LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ +LIBSM_LIBS = @LIBSM_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ +LIBXFCE4PANEL_CFLAGS = @LIBXFCE4PANEL_CFLAGS@ +LIBXFCE4PANEL_LIBS = @LIBXFCE4PANEL_LIBS@ +LIBXFCE4PANEL_REQUIRED_VERSION = @LIBXFCE4PANEL_REQUIRED_VERSION@ +LIBXFCE4PANEL_VERSION = @LIBXFCE4PANEL_VERSION@ +LIBXFCE4UI_CFLAGS = @LIBXFCE4UI_CFLAGS@ +LIBXFCE4UI_LIBS = @LIBXFCE4UI_LIBS@ +LIBXFCE4UI_REQUIRED_VERSION = @LIBXFCE4UI_REQUIRED_VERSION@ +LIBXFCE4UI_VERSION = @LIBXFCE4UI_VERSION@ +LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@ +LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@ +LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@ +LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +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@ +PCRE_CFLAGS = @PCRE_CFLAGS@ +PCRE_LIBS = @PCRE_LIBS@ +PCRE_REQUIRED_VERSION = @PCRE_REQUIRED_VERSION@ +PCRE_VERSION = @PCRE_VERSION@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PLATFORM_CFLAGS = @PLATFORM_CFLAGS@ +PLATFORM_CPPFLAGS = @PLATFORM_CPPFLAGS@ +PLATFORM_LDFLAGS = @PLATFORM_LDFLAGS@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +THUNARX_VERINFO = @THUNARX_VERINFO@ +THUNARX_VERSION_API = @THUNARX_VERSION_API@ +THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ +THUNAR_VERSION_MICRO = @THUNAR_VERSION_MICRO@ +THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_ARGS = @XGETTEXT_ARGS@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +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@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xfconf_query_found = @xfconf_query_found@ +iconsdir = $(datadir)/icons/hicolor/64x64/apps +icons_DATA = \ + Thunar.png + +EXTRA_DIST = \ + $(icons_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/64x64/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/64x64/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 +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconsDATA: $(icons_DATA) + @$(NORMAL_INSTALL) + @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ + done + +uninstall-iconsDATA: + @$(NORMAL_UNINSTALL) + @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(iconsdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool 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-iconsDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconsDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconsDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA + + +# vi:set ts=8 sw=8 noet ai nocindent syntax=automake: + +# 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/VFaXHq0iMc/thunar-1.2.3/icons/64x64/Thunar.png and /tmp/6ogtt7rGai/thunar-1.6.10/icons/64x64/Thunar.png differ diff -Nru thunar-1.2.3/icons/Makefile.am thunar-1.6.10/icons/Makefile.am --- thunar-1.2.3/icons/Makefile.am 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/icons/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,9 +1,9 @@ -# $Id$ - SUBDIRS = \ 16x16 \ 24x24 \ 48x48 \ + 64x64 \ + 128x128 \ scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor diff -Nru thunar-1.2.3/icons/Makefile.in thunar-1.6.10/icons/Makefile.in --- thunar-1.2.3/icons/Makefile.in 2011-09-20 20:28:13.000000000 +0000 +++ thunar-1.6.10/icons/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 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,9 +13,52 @@ # PARTICULAR PURPOSE. @SET_MAKE@ - -# $Id$ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,36 +79,68 @@ host_triplet = @host@ target_triplet = @target@ subdir = icons -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -154,6 +228,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -161,11 +239,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -173,7 +247,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -185,6 +259,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -196,10 +274,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -219,6 +293,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -261,7 +336,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -269,12 +343,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -312,6 +387,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -340,6 +417,8 @@ 16x16 \ 24x24 \ 48x48 \ + 64x64 \ + 128x128 \ scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor @@ -384,22 +463,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -414,57 +496,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -480,12 +517,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -497,15 +529,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -514,6 +542,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -550,13 +593,10 @@ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -591,10 +631,15 @@ installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -673,22 +718,22 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-data-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-data-am \ + install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-hook install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-hook install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am install-data-hook: diff -Nru thunar-1.2.3/icons/scalable/Makefile.am thunar-1.6.10/icons/scalable/Makefile.am --- thunar-1.2.3/icons/scalable/Makefile.am 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/icons/scalable/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -# $Id$ - iconsdir = $(datadir)/icons/hicolor/scalable/apps icons_DATA = \ Thunar.svg diff -Nru thunar-1.2.3/icons/scalable/Makefile.in thunar-1.6.10/icons/scalable/Makefile.in --- thunar-1.2.3/icons/scalable/Makefile.in 2011-09-20 20:28:13.000000000 +0000 +++ thunar-1.6.10/icons/scalable/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,9 +14,52 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,24 +80,35 @@ host_triplet = @host@ target_triplet = @target@ subdir = icons/scalable -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -77,8 +130,15 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -138,6 +198,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -145,11 +209,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -157,7 +217,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -169,6 +229,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -180,10 +244,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -203,6 +263,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -245,7 +306,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -253,12 +313,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -296,6 +357,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -368,8 +431,11 @@ -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) - test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)" @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -383,14 +449,12 @@ @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(iconsdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(iconsdir)" && rm -f $$files -tags: TAGS -TAGS: + dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -440,10 +504,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -524,16 +593,16 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-iconsDATA install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-iconsDATA + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconsDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/INSTALL thunar-1.6.10/INSTALL --- thunar-1.2.3/INSTALL 2011-09-20 20:28:17.000000000 +0000 +++ thunar-1.6.10/INSTALL 2015-05-22 20:47:31.000000000 +0000 @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008, 2009 Free Software Foundation, Inc. +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, +Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -12,8 +12,8 @@ Basic Installation ================== - Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented @@ -226,6 +226,11 @@ and if that doesn't work, install pre-built binaries of GCC for HP-UX. + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended @@ -304,9 +309,10 @@ overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== @@ -362,4 +368,3 @@ `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. - diff -Nru thunar-1.2.3/install-sh thunar-1.6.10/install-sh --- thunar-1.2.3/install-sh 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/install-sh 2015-05-22 20:47:31.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,7 +35,7 @@ # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it +# 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written @@ -156,6 +156,10 @@ -s) stripcmd=$stripprog;; -t) dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac shift;; -T) no_target_directory=true;; @@ -186,6 +190,10 @@ fi shift # arg dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi @@ -194,13 +202,17 @@ echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call `install-sh -d' without argument. + # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,9 +240,9 @@ for src do - # Protect names starting with `-'. + # Protect names problematic for 'test' and other utilities. case $src in - -*) src=./$src;; + -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then @@ -252,12 +264,7 @@ echo "$0: no destination specified." >&2 exit 1 fi - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -347,7 +354,7 @@ if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. + # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in @@ -385,7 +392,7 @@ case $dstdir in /*) prefix='/';; - -*) prefix='./';; + [-=\(\)!]*) prefix='./';; *) prefix='';; esac @@ -403,7 +410,7 @@ for d do - test -z "$d" && continue + test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then diff -Nru thunar-1.2.3/ltmain.sh thunar-1.6.10/ltmain.sh --- thunar-1.2.3/ltmain.sh 2011-09-20 20:28:02.000000000 +0000 +++ thunar-1.6.10/ltmain.sh 2015-05-22 20:47:27.000000000 +0000 @@ -1,9 +1,12 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 -# libtool (GNU libtool) 2.4 +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# Copyright (C) 1996-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -23,885 +26,2112 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, -# or obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# along with this program. If not, see . -# Usage: $progname [OPTION]... [MODE-ARG]... -# -# Provide generalized library-building support services. -# -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --no-quiet, --no-silent -# print informational messages (default) -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print more informational messages than default -# --no-verbose don't print the extra informational messages -# --version print version information -# -h, --help, --help-all print short, long, or detailed help message -# -# MODE must be one of the following: -# -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory -# -# MODE-ARGS vary depending on the MODE. When passed as first option, -# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. -# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -# -# When reporting a bug, please describe a test case to reproduce it and -# include the following information: -# -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4 -# automake: $automake_version -# autoconf: $autoconf_version -# -# Report bugs to . -# GNU libtool home page: . -# General help using GNU software: . PROGRAM=libtool PACKAGE=libtool -VERSION=2.4 -TIMESTAMP="" -package_revision=1.3293 +VERSION=2.4.6 +package_revision=2.4.6 -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} -# NLS nuisances: We save the old values to restore during execute mode. -lt_user_locale= -lt_safe_locale= -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done -LC_ALL=C -LANGUAGE=C -export LANGUAGE LC_ALL -$lt_unset CDPATH +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. : ${CP="cp -f"} -test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} -: ${EGREP="/bin/grep -E"} -: ${FGREP="/bin/grep -F"} -: ${GREP="/bin/grep"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} -: ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} -: ${Xsed="$SED -e 1s/^X//"} - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -exit_status=$EXIT_SUCCESS - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" -dirname="s,/[^/]*$,," -basename="s,^.*/,," -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} # func_dirname may be replaced by extended shell implementation +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "${1}" | $SED "$basename"` -} # func_basename may be replaced by extended shell implementation +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -} # func_dirname_and_basename may be replaced by extended shell implementation +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname may be replaced by extended shell implementation +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" -# These SED scripts presuppose an absolute path with a trailing slash. -pathcar='s,^/\([^/]*\).*$,\1,' -pathcdr='s,^/[^/]*,,' -removedotparts=':dotsl - s@/\./@/@g - t dotsl - s,/\.$,/,' -collapseslashes='s@/\{1,\}@/@g' -finalslash='s,/*$,/,' +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. -# func_normal_abspath PATH -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -# value returned in "$func_normal_abspath_result" -func_normal_abspath () -{ - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` - while :; do - # Processed it all yet? - if test "$func_normal_abspath_tpath" = / ; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result" ; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. -# func_relative_path SRCDIR DSTDIR -# generates a relative path from SRCDIR to DSTDIR, with a trailing -# slash if non-empty, suitable for immediately appending a filename -# without needing to append a separator. -# value returned in "$func_relative_path_result" -func_relative_path () -{ - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=${func_dirname_result} - if test "x$func_relative_path_tlibdir" = x ; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test "x$func_stripname_result" != x ; then - func_relative_path_result=${func_relative_path_result}/${func_stripname_result} - fi +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS - # Normalisation. If bindir is libdir, return empty string, - # else relative path ending with a slash; either way, target - # file name can be directly appended. - if test ! -z "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result/" - func_relative_path_result=$func_stripname_result - fi -} +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 -# The name of this program: -func_dirname_and_basename "$progpath" -progname=$func_basename_result +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` -# Make sure we have an absolute path for reexecution: +# Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) - progdir=$func_dirname_result + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` - progpath="$progdir/$progname" + progpath=$progdir/$progname ;; *) - save_IFS="$IFS" - IFS=: + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do - IFS="$save_IFS" + IFS=$_G_IFS test -x "$progdir/$progname" && break done - IFS="$save_IFS" + IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` - progpath="$progdir/$progname" + progpath=$progdir/$progname ;; esac -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' -# Sed substitution that converts a w32 file name or path -# which contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-`\' parameter expansions in output of double_quote_subst that were -# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -# in input to double_quote_subst, that '$' was protected from expansion. -# Since each input `\' is now two `\'s, look for any number of runs of -# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -bs='\\' -bs2='\\\\' -bs4='\\\\\\\\' -dollar='\$' -sed_double_backslash="\ - s/$bs4/&\\ -/g - s/^$bs2$dollar/$bs&/ - s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g - s/\n//g" +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. -# Standard options: opt_dry_run=false -opt_help=false opt_quiet=false opt_verbose=false -opt_warning=: - -# func_echo arg... -# Echo program name prefixed message, along with the current mode -# name if it has been set yet. -func_echo () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }$*" -} -# func_verbose arg... -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $opt_verbose && func_echo ${1+"$@"} +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : + require_term_colors=: } -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} -# func_error arg... -# Echo program name prefixed message to standard error. -func_error () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 -} +## ----------------- ## +## Function library. ## +## ----------------- ## -# func_warning arg... -# Echo program name prefixed warning message to standard error. -func_warning () -{ - $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. - # bash bug again: - : -} -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - func_error ${1+"$@"} - exit $EXIT_FAILURE -} +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - func_error ${1+"$@"} - func_fatal_error "$help" -} -help="Try \`$progname --help' for more information." ## default + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd -# func_grep expression filename + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { + $debug_cmd + $GREP "$1" "$2" >/dev/null 2>&1 } -# func_mkdir_p directory-path +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { - my_directory_path="$1" - my_dir_list= + $debug_cmd - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + _G_directory_path=$1 + _G_dir_list= - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... - while test ! -d "$my_directory_path"; do + while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. - my_dir_list="$my_directory_path:$my_dir_list" + _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac + case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done - my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` - save_mkdir_p_IFS="$IFS"; IFS=':' - for my_dir in $my_dir_list; do - IFS="$save_mkdir_p_IFS" - # mkdir can fail with a `File exist' error if two processes + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! - $MKDIR "$my_dir" 2>/dev/null || : + $MKDIR "$_G_dir" 2>/dev/null || : done - IFS="$save_mkdir_p_IFS" + IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. - test -d "$my_directory_path" || \ - func_fatal_error "Failed to create \`$1'" + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" fi } -# func_mktempdir [string] +# func_mktempdir [BASENAME] +# ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. +# given, BASENAME is the basename for that directory. func_mktempdir () { - my_template="${TMPDIR-/tmp}/${1-$progname}" + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} - if test "$opt_dry_run" = ":"; then + if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" + _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` - if test ! -d "$my_tmpdir"; then + if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" + _G_tmpdir=$_G_template-${RANDOM-0}$$ - save_mktempdir_umask=`umask` + func_mktempdir_umask=`umask` umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || \ - func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi - $ECHO "$my_tmpdir" + $ECHO "$_G_tmpdir" } -# func_quote_for_eval arg -# Aesthetically quote ARG to be evaled later. -# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -# is double-quoted, suitable for a subsequent eval, whereas -# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -# which are still active within double quotes backslashified. +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. func_quote_for_eval () { + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + case $1 in - *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; *) - func_quote_for_eval_unquoted_result="$1" ;; + _G_arg=$1 ;; esac - case $func_quote_for_eval_unquoted_result in + case $_G_arg in # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and and variable - # expansion for a subsequent eval. + # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + _G_arg=\"$_G_arg\" ;; - *) - func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac + + func_quote_for_expand_result=$_G_arg } -# func_quote_for_expand arg -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () { - case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "$1" | $SED \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; - esac + $debug_cmd - case $my_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - my_arg="\"$my_arg\"" - ;; - esac + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} - func_quote_for_expand_result="$my_arg" + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result } -# func_show_eval cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () { - my_cmd="$1" - my_fail_exp="${2-:}" + $debug_cmd - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } + # Option defaults: + opt_verbose=false + opt_warning_types= - if ${opt_dry_run-false}; then :; else - eval "$my_cmd" - my_status=$? - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result } -# func_show_eval_locale cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () { - my_cmd="$1" - my_fail_exp="${2-:}" + $debug_cmd - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } + func_parse_options_result= - if ${opt_dry_run-false}; then :; else - eval "$lt_user_locale - $my_cmd" - my_status=$? - eval "$lt_safe_locale" - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} -# func_tr_sh -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result } -# func_version -# Echo version message to standard output and exit. -func_version () +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () { - $opt_debug + $debug_cmd - $SED -n '/(C)/!b go - :more - /\./!{ - N - s/\n# / / - b more - } - :go - /^# '$PROGRAM' (GNU /,/# warranty; / { - s/^# // - s/^# *$// - s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ - p - }' < "$progpath" - exit $? + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result } -# func_usage -# Echo short help message to standard output and exit. -func_usage () + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () { - $opt_debug + $debug_cmd - $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ - p - }' < "$progpath" - echo - $ECHO "run \`$progname --help | more' for full usage" - exit $? + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE } -# func_help [NOEXIT] -# Echo long help message to standard output and exit, -# unless 'noexit' is passed as argument. + +# func_help +# --------- +# Echo long help message to standard output and exit. func_help () { - $opt_debug + $debug_cmd - $SED -n '/^# Usage:/,/# Report bugs to/ { - :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* - s*\$host*'"$host"'* - s*\$SHELL*'"$SHELL"'* - s*\$LTCC*'"$LTCC"'* - s*\$LTCFLAGS*'"$LTCFLAGS"'* - s*\$LD*'"$LD"'* - s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ - p - d - } - /^# .* home page:/b print - /^# General help using/b print - ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret - fi + func_usage_message + $ECHO "$long_help_message" + exit 0 } -# func_missing_arg argname + +# func_missing_arg ARGNAME +# ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { - $opt_debug + $debug_cmd - func_error "missing argument for $1." + func_error "Missing argument for '$1'." exit_cmd=exit } -# func_split_short_opt shortopt +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. -func_split_short_opt () +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () { - my_sed_short_opt='1s/^\(..\).*$/\1/;q' - my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + $debug_cmd - func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` - func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -} # func_split_short_opt may be replaced by extended shell implementation + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} -# func_split_long_opt longopt -# Set func_split_long_opt_name and func_split_long_opt_arg shell -# variables after splitting LONGOPT at the `=' sign. -func_split_long_opt () +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () { - my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' - my_sed_long_arg='1s/^--[^=]*=//' + $debug_cmd - func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` - func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -} # func_split_long_opt may be replaced by extended shell implementation + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} -exit_cmd=: +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + exit $? +} -magic="%%%MAGIC variable%%%" -magic_exe="%%%MAGIC EXE variable%%%" +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: -# Global variables. -nonopt= -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () { - eval "${1}=\$${1}\${2}" -} # func_append may be replaced by extended shell implementation + $debug_cmd -# func_append_quoted var value -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -func_append_quoted () -{ - func_quote_for_eval "${2}" - eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -} # func_append_quoted may be replaced by extended shell implementation + _G_message=$* + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} -# func_arith arithmetic-term... -func_arith () + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () { - func_arith_result=`expr "${@}"` -} # func_arith may be replaced by extended shell implementation + $debug_cmd + $warning_func ${1+"$@"} +} -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -} # func_len may be replaced by extended shell implementation +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" -# func_lo2o object -func_lo2o () +# Additional text appended to 'usage_message' in response to '--help'. +func_help () { - func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -} # func_lo2o may be replaced by extended shell implementation + $debug_cmd + func_usage_message + $ECHO "$long_help_message -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -} # func_xform may be replaced by extended shell implementation +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.6 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi -# func_fatal_configuration arg... +# func_fatal_configuration ARG... +# ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { - func_error ${1+"$@"} - func_error "See the $PACKAGE documentation for more information." - func_fatal_error "Fatal configuration error." + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." } # func_config +# ----------- # Display the configuration for all the tags in this script. func_config () { @@ -919,17 +2149,19 @@ exit $? } + # func_features +# ------------- # Display the features supported by this script. func_features () { echo "host: $host" - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi - if test "$build_old_libs" = yes; then + if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" @@ -938,284 +2170,297 @@ exit $? } -# func_enable_tag tagname + +# func_enable_tag TAGNAME +# ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { - # Global variable: - tagname="$1" + # Global variable: + tagname=$1 - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf="/$re_begincf/,/$re_endcf/p" - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac } + # func_check_version_match +# ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF - else - cat >&2 <<_LT_EOF + else + cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF - fi - else - cat >&2 <<_LT_EOF + fi + else + cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF - fi + fi - exit $EXIT_MISMATCH - fi + exit $EXIT_MISMATCH + fi } -# Shorthand for --mode=foo, only valid as the first argument -case $1 in -clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; -compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; -execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; -finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; -install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; -link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; -uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; -esac +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + nonopt= + preserve_args= -# Option defaults: -opt_debug=: -opt_dry_run=false -opt_config=false -opt_preserve_dup_deps=false -opt_features=false -opt_finish=false -opt_help=false -opt_help_all=false -opt_silent=: -opt_verbose=: -opt_silent=false -opt_verbose=false + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep -# Parse options once, thoroughly. This comes as soon as possible in the -# script to make things like `--version' happen as quickly as we can. -{ - # this just eases exit handling - while test $# -gt 0; do - opt="$1" - shift - case $opt in - --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" - $opt_debug - ;; - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - --config) - opt_config=: -func_config - ;; - --dlopen|-dlopen) - optarg="$1" - opt_dlopen="${opt_dlopen+$opt_dlopen -}$optarg" - shift - ;; - --preserve-dup-deps) - opt_preserve_dup_deps=: - ;; - --features) - opt_features=: -func_features - ;; - --finish) - opt_finish=: -set dummy --mode finish ${1+"$@"}; shift - ;; - --help) - opt_help=: - ;; - --help-all) - opt_help_all=: -opt_help=': help-all' - ;; - --mode) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_mode="$optarg" -case $optarg in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; -esac - shift - ;; - --no-silent|--no-quiet) - opt_silent=false -func_append preserve_args " $opt" - ;; - --no-verbose) - opt_verbose=false -func_append preserve_args " $opt" - ;; - --silent|--quiet) - opt_silent=: -func_append preserve_args " $opt" - opt_verbose=false - ;; - --verbose|-v) - opt_verbose=: -func_append preserve_args " $opt" -opt_silent=false - ;; - --tag) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_tag="$optarg" -func_append preserve_args " $opt $optarg" -func_enable_tag "$optarg" - shift - ;; - - -\?|-h) func_usage ;; - --help) func_help ;; - --version) func_version ;; - - # Separate optargs to long options: - --*=*) - func_split_long_opt "$opt" - set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-n*|-v*) - func_split_short_opt "$opt" - set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) break ;; - -*) func_fatal_help "unrecognized option \`$opt'" ;; - *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - # Validate options: +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd - # save first non-option argument - if test "$#" -gt 0; then - nonopt="$opt" - shift - fi + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; - # preserve --debug - test "$opt_debug" = : || func_append preserve_args " --debug" + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - $opt_help || { - # Sanity checks first: - func_check_version_match + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test "$opt_mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift fi - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$opt_mode' for more information." - } + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } - # Bail if the options were screwed - $exit_cmd $EXIT_FAILURE + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result } +func_add_hook func_validate_options libtool_validate_options + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift @@ -1223,24 +2468,52 @@ ## Main. ## ## ----------- ## +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + # func_lalib_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. +# True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. +# True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be -# fatal anyway. Works if `file' does not exist. +# fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no @@ -1248,13 +2521,13 @@ for lalib_p_l in 1 2 3 4 do read lalib_p_line - case "$lalib_p_line" in + case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi - test "$lalib_p" = yes + test yes = "$lalib_p" } # func_ltwrapper_script_p file @@ -1263,7 +2536,8 @@ # determined imposters. func_ltwrapper_script_p () { - func_lalib_p "$1" + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file @@ -1288,7 +2562,7 @@ { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file @@ -1307,11 +2581,13 @@ # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { - $opt_debug + $debug_cmd + save_ifs=$IFS; IFS='~' for cmd in $1; do - IFS=$save_ifs + IFS=$sp$nl eval cmd=\"$cmd\" + IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs @@ -1323,10 +2599,11 @@ # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing -# `FILE.' does not work on cygwin managed mounts. +# 'FILE.' does not work on cygwin managed mounts. func_source () { - $opt_debug + $debug_cmd + case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; @@ -1353,10 +2630,10 @@ # store the result into func_replace_sysroot_result. func_replace_sysroot () { - case "$lt_sysroot:$1" in + case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result="=$func_stripname_result" + func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. @@ -1373,7 +2650,8 @@ # arg is usually of the form 'gcc ...' func_infer_tag () { - $opt_debug + $debug_cmd + if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do @@ -1392,7 +2670,7 @@ for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. @@ -1417,7 +2695,7 @@ # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" + func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi @@ -1433,15 +2711,15 @@ # but don't create it if we're doing a dry run. func_write_libtool_object () { - write_libobj=${1} - if test "$build_libtool_libs" = yes; then - write_lobj=\'${2}\' + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' else write_lobj=none fi - if test "$build_old_libs" = yes; then - write_oldobj=\'${3}\' + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' else write_oldobj=none fi @@ -1449,7 +2727,7 @@ $opt_dry_run || { cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$lt_sed_naive_backslashify"` + $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi @@ -1513,18 +2792,19 @@ # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { - $opt_debug + $debug_cmd + # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result="" + func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi @@ -1553,7 +2833,8 @@ # environment variable; do not put it in $PATH. func_cygpath () { - $opt_debug + $debug_cmd + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then @@ -1562,7 +2843,7 @@ fi else func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath @@ -1573,10 +2854,11 @@ # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { - $opt_debug + $debug_cmd + # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 @@ -1587,13 +2869,14 @@ # func_to_host_file_result to ARG1). func_convert_file_check () { - $opt_debug - if test -z "$2" && test -n "$1" ; then + $debug_cmd + + if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" - func_error " \`$1'" + func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: - func_to_host_file_result="$1" + func_to_host_file_result=$1 fi } # end func_convert_file_check @@ -1605,10 +2888,11 @@ # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { - $opt_debug + $debug_cmd + if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" - func_error " \`$3'" + func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. @@ -1617,7 +2901,7 @@ func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else - func_to_host_path_result="$3" + func_to_host_path_result=$3 fi fi } @@ -1629,9 +2913,10 @@ # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { - $opt_debug + $debug_cmd + case $4 in - $1 ) func_to_host_path_result="$3$func_to_host_path_result" + $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in @@ -1645,7 +2930,7 @@ ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## -# invoked via `$to_host_file_cmd ARG' +# invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. @@ -1656,7 +2941,8 @@ # in func_to_host_file_result. func_to_host_file () { - $opt_debug + $debug_cmd + $to_host_file_cmd "$1" } # end func_to_host_file @@ -1668,7 +2954,8 @@ # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { - $opt_debug + $debug_cmd + case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 @@ -1686,7 +2973,7 @@ # Copy ARG to func_to_host_file_result. func_convert_file_noop () { - func_to_host_file_result="$1" + func_to_host_file_result=$1 } # end func_convert_file_noop @@ -1697,11 +2984,12 @@ # func_to_host_file_result. func_convert_file_msys_to_w32 () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" - func_to_host_file_result="$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1713,8 +3001,9 @@ # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. @@ -1730,11 +3019,12 @@ # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1746,12 +3036,13 @@ # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result="$func_cygpath_result" + func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1764,13 +3055,14 @@ # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result="$func_cygpath_result" + func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1780,7 +3072,7 @@ ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# -# invoked via `$to_host_path_cmd ARG' +# invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. @@ -1804,10 +3096,11 @@ to_host_path_cmd= func_init_to_host_path_cmd () { - $opt_debug + $debug_cmd + if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd="func_convert_path_${func_stripname_result}" + to_host_path_cmd=func_convert_path_$func_stripname_result fi } @@ -1817,7 +3110,8 @@ # in func_to_host_path_result. func_to_host_path () { - $opt_debug + $debug_cmd + func_init_to_host_path_cmd $to_host_path_cmd "$1" } @@ -1828,7 +3122,7 @@ # Copy ARG to func_to_host_path_result. func_convert_path_noop () { - func_to_host_path_result="$1" + func_to_host_path_result=$1 } # end func_convert_path_noop @@ -1839,8 +3133,9 @@ # func_to_host_path_result. func_convert_path_msys_to_w32 () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; @@ -1848,7 +3143,7 @@ func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" @@ -1862,8 +3157,9 @@ # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" @@ -1882,14 +3178,15 @@ # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" @@ -1903,15 +3200,16 @@ # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result="$func_cygpath_result" + func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" @@ -1926,8 +3224,9 @@ # func_to_host_file_result. func_convert_path_nix_to_cygwin () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them @@ -1936,7 +3235,7 @@ func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result="$func_cygpath_result" + func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" @@ -1945,13 +3244,31 @@ # end func_convert_path_nix_to_cygwin +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + # func_mode_compile arg... func_mode_compile () { - $opt_debug + $debug_cmd + # Get the compilation command and the source file. base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" + srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal @@ -1964,12 +3281,12 @@ case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile - lastarg="$arg" + lastarg=$arg arg_mode=normal ;; target ) - libobj="$arg" + libobj=$arg arg_mode=normal continue ;; @@ -1979,7 +3296,7 @@ case $arg in -o) test -n "$libobj" && \ - func_fatal_error "you cannot specify \`-o' more than once" + func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; @@ -2008,12 +3325,12 @@ func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= - save_ifs="$IFS"; IFS=',' + save_ifs=$IFS; IFS=, for arg in $args; do - IFS="$save_ifs" + IFS=$save_ifs func_append_quoted lastarg "$arg" done - IFS="$save_ifs" + IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result @@ -2026,8 +3343,8 @@ # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # - lastarg="$srcfile" - srcfile="$arg" + lastarg=$srcfile + srcfile=$arg ;; esac # case $arg ;; @@ -2042,13 +3359,13 @@ func_fatal_error "you must specify an argument for -Xcompile" ;; target) - func_fatal_error "you must specify a target with \`-o'" + func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" - libobj="$func_basename_result" + libobj=$func_basename_result } ;; esac @@ -2059,7 +3376,7 @@ *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; @@ -2068,7 +3385,7 @@ case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) - func_fatal_error "cannot determine name of library object from \`$libobj'" + func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac @@ -2077,8 +3394,8 @@ for arg in $later; do case $arg in -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; @@ -2104,17 +3421,17 @@ func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name \`$libobj' may not contain shell special characters." + && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" - objname="$func_basename_result" - xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. - if test "$build_old_libs" = yes; then + if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" @@ -2126,16 +3443,16 @@ pic_mode=default ;; esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock else output_obj= need_locks=no @@ -2144,12 +3461,12 @@ # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then + if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done - elif test "$need_locks" = warn; then + elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: @@ -2157,7 +3474,7 @@ This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you +your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." @@ -2179,11 +3496,11 @@ qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile - if test "$pic_mode" != no; then + if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code @@ -2200,7 +3517,7 @@ func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - if test "$need_locks" = warn && + if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: @@ -2211,7 +3528,7 @@ This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you +your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." @@ -2227,20 +3544,20 @@ fi # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then + if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi - if test "$compiler_c_o" = yes; then + if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi @@ -2249,7 +3566,7 @@ func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - if test "$need_locks" = warn && + if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: @@ -2260,7 +3577,7 @@ This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you +your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." @@ -2280,7 +3597,7 @@ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked - if test "$need_locks" != no; then + if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi @@ -2290,7 +3607,7 @@ } $opt_help || { - test "$opt_mode" = compile && func_mode_compile ${1+"$@"} + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () @@ -2310,7 +3627,7 @@ Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated @@ -2329,16 +3646,16 @@ -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler -COMPILE-COMMAND is a command to be used in creating a \`standard' object file +COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." ;; execute) @@ -2351,7 +3668,7 @@ -dlopen FILE add the directory containing FILE to the library path -This mode sets the library path environment variable according to \`-dlopen' +This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated @@ -2370,7 +3687,7 @@ Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." +the '--dry-run' option if you just want to see what would be executed." ;; install) @@ -2380,7 +3697,7 @@ Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. +either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: @@ -2406,7 +3723,7 @@ -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE @@ -2420,7 +3737,8 @@ -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information @@ -2440,20 +3758,20 @@ -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) -All other options (arguments beginning with \`-') are ignored. +All other options (arguments beginning with '-') are ignored. -Every other argument is treated as a filename. Files ending in \`.la' are +Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; @@ -2464,7 +3782,7 @@ Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. @@ -2472,17 +3790,17 @@ ;; *) - func_fatal_help "invalid operation mode \`$opt_mode'" + func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo - $ECHO "Try \`$progname --help' for more information about other modes." + $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then - if test "$opt_help" = :; then + if test : = "$opt_help"; then func_mode_help else { @@ -2490,7 +3808,7 @@ for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do @@ -2498,7 +3816,7 @@ func_mode_help done } | - sed '1d + $SED '1d /^When reporting/,/^Report/{ H d @@ -2515,16 +3833,17 @@ # func_mode_execute arg... func_mode_execute () { - $opt_debug + $debug_cmd + # The first argument is the command name. - cmd="$nonopt" + cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ - || func_fatal_help "\`$file' is not a file" + || func_fatal_help "'$file' is not a file" dir= case $file in @@ -2534,7 +3853,7 @@ # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" + || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= @@ -2545,18 +3864,18 @@ if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ - func_warning "\`$file' was not linked with \`-export-dynamic'" + func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; @@ -2564,18 +3883,18 @@ *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result ;; *) - func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" + test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then @@ -2587,7 +3906,7 @@ # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. - libtool_execute_magic="$magic" + libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= @@ -2600,12 +3919,12 @@ if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. - file="$progdir/$program" + file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. - file="$progdir/$program" + file=$progdir/$program fi ;; esac @@ -2613,7 +3932,15 @@ func_append_quoted args "$file" done - if test "X$opt_dry_run" = Xfalse; then + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" @@ -2630,25 +3957,18 @@ done # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS + exec_cmd=\$cmd$args fi } -test "$opt_mode" = execute && func_mode_execute ${1+"$@"} +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { - $opt_debug + $debug_cmd + libs= libdirs= admincmds= @@ -2662,11 +3982,11 @@ if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else - func_warning "\`$opt' is not a valid libtool archive" + func_warning "'$opt' is not a valid libtool archive" fi else - func_fatal_error "invalid argument \`$opt'" + func_fatal_error "invalid argument '$opt'" fi done @@ -2681,12 +4001,12 @@ # Remove sysroot references if $opt_dry_run; then for lib in $libs; do - echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do - sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done @@ -2711,7 +4031,7 @@ fi # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS + $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" @@ -2722,27 +4042,27 @@ echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" - $ECHO " - use the \`$flag' linker flag" + $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo @@ -2761,18 +4081,20 @@ exit $EXIT_SUCCESS } -test "$opt_mode" = finish && func_mode_finish ${1+"$@"} +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { - $opt_debug + $debug_cmd + # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac; then + case $nonopt in *shtool*) :;; *) false;; esac + then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " @@ -2799,7 +4121,7 @@ opts= prev= install_type= - isdir=no + isdir=false stripme= no_mode=: for arg @@ -2812,7 +4134,7 @@ fi case $arg in - -d) isdir=yes ;; + -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg @@ -2830,7 +4152,7 @@ *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then - if test "x$prev" = x-m && test -n "$install_override_mode"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi @@ -2855,7 +4177,7 @@ func_fatal_help "you must specify an install program" test -n "$prev" && \ - func_fatal_help "the \`$prev' option requires an argument" + func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else @@ -2877,19 +4199,19 @@ dest=$func_stripname_result # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." - destdir="$func_dirname_result" - destname="$func_basename_result" + destdir=$func_dirname_result + destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ - func_fatal_help "\`$dest' is not a directory" + func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; @@ -2898,7 +4220,7 @@ case $file in *.lo) ;; *) - func_fatal_help "\`$destdir' must be an absolute directory name" + func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done @@ -2907,7 +4229,7 @@ # This variable tells wrapper scripts just to set variables rather # than running their programs. - libtool_install_magic="$magic" + libtool_install_magic=$magic staticlibs= future_libdirs= @@ -2927,7 +4249,7 @@ # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" + || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= @@ -2949,7 +4271,7 @@ fi func_dirname "$file" "/" "" - dir="$func_dirname_result" + dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then @@ -2963,7 +4285,7 @@ # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. @@ -2972,29 +4294,36 @@ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi - func_warning "relinking \`$file'" + func_warning "relinking '$file'" func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then - realname="$1" + realname=$1 shift - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T + srcname=$realname + test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' - tstripme="$stripme" + tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) - tstripme="" + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= ;; esac ;; @@ -3005,7 +4334,7 @@ if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on + # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname @@ -3016,14 +4345,14 @@ fi # Do each command in the postinstall commands. - lib="$destdir/$realname" + lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" - name="$func_basename_result" - instname="$dir/$name"i + name=$func_basename_result + instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. @@ -3035,11 +4364,11 @@ # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then - destfile="$destdir/$destname" + destfile=$destdir/$destname else func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" + destfile=$func_basename_result + destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. @@ -3049,11 +4378,11 @@ staticdest=$func_lo2o_result ;; *.$objext) - staticdest="$destfile" + staticdest=$destfile destfile= ;; *) - func_fatal_help "cannot copy a libtool object to \`$destfile'" + func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac @@ -3062,7 +4391,7 @@ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. - if test "$build_old_libs" = yes; then + if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result @@ -3074,23 +4403,23 @@ *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then - destfile="$destdir/$destname" + destfile=$destdir/$destname else func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" + destfile=$func_basename_result + destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install - stripped_ext="" + stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result - stripped_ext=".exe" + stripped_ext=.exe fi ;; esac @@ -3118,19 +4447,19 @@ # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script \`$wrapper'" + func_fatal_error "invalid libtool wrapper script '$wrapper'" - finalize=yes + finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi - libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "\`$lib' has not been installed in \`$libdir'" - finalize=no + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false fi done @@ -3138,29 +4467,29 @@ func_source "$wrapper" outputname= - if test "$fast_install" = no && test -n "$relink_command"; then + if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { - if test "$finalize" = yes; then + if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" - file="$func_basename_result" - outputname="$tmpdir/$file" + file=$func_basename_result + outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - $opt_silent || { + $opt_quiet || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else - func_error "error: relink \`$file' with the above command before installing it" + func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi - file="$outputname" + file=$outputname else - func_warning "cannot relink \`$file'" + func_warning "cannot relink '$file'" fi } else @@ -3197,15 +4526,17 @@ for file in $staticlibs; do func_basename "$file" - name="$func_basename_result" + name=$func_basename_result # Set up the ranlib parameters. - oldlib="$destdir/$name" + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. @@ -3213,18 +4544,18 @@ done test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" + func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } -test "$opt_mode" = install && func_mode_install ${1+"$@"} +test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p @@ -3232,16 +4563,17 @@ # a dlpreopen symbol table. func_generate_dlsyms () { - $opt_debug - my_outputname="$1" - my_originator="$2" - my_pic_p="${3-no}" - my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms="${my_outputname}S.c" + my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi @@ -3252,7 +4584,7 @@ "") ;; *.c) # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${my_outputname}.nm" + nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" @@ -3260,34 +4592,36 @@ func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif -#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST -#elif defined(__osf__) +#elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + /* External symbol declarations for the compiler. */\ " - if test "$dlself" = yes; then - func_verbose "generating symbol list for \`$output'" + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" @@ -3295,7 +4629,7 @@ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done @@ -3315,10 +4649,10 @@ # Prepare the list of exported symbols if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" + export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols - eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' @@ -3328,7 +4662,7 @@ } else $opt_dry_run || { - eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in @@ -3342,22 +4676,22 @@ fi for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from \`$dlprefile'" + func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" - name="$func_basename_result" + name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename="" + dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname" ; then + if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" - dlprefile_dlbasename="$func_basename_result" + dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" @@ -3365,7 +4699,7 @@ fi fi $opt_dry_run || { - if test -n "$dlprefile_dlbasename" ; then + if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" @@ -3421,6 +4755,11 @@ echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ @@ -3429,11 +4768,30 @@ void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[]; +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = -{\ - { \"$my_originator\", (void *) 0 }," +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi case $need_lib_prefix in no) @@ -3470,14 +4828,12 @@ # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) - if test "X$my_pic_p" != Xno; then - pic_flag_for_symtable=" $pic_flag" - fi + $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; @@ -3494,10 +4850,10 @@ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. - symfileobj="$output_objdir/${my_outputname}S.$objext" + symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then @@ -3515,7 +4871,7 @@ esac ;; *) - func_fatal_error "unknown suffix for \`$my_dlsyms'" + func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else @@ -3529,6 +4885,32 @@ fi } +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + # func_win32_libid arg # return the library type of file 'arg' # @@ -3538,8 +4920,9 @@ # Despite the name, also deal with 64 bit binaries. func_win32_libid () { - $opt_debug - win32_libid_type="unknown" + $debug_cmd + + win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import @@ -3549,16 +4932,29 @@ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' 1,100{ / I /{ - s,.*,import, + s|.*|import| p q } }'` + ;; + esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; @@ -3590,7 +4986,8 @@ # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { - $opt_debug + $debug_cmd + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } @@ -3607,7 +5004,8 @@ # specified import library. func_cygming_dll_for_implib_fallback_core () { - $opt_debug + $debug_cmd + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ @@ -3643,8 +5041,8 @@ /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the - # archive which possess that section. Heuristic: eliminate - # all those which have a first or second character that is + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually @@ -3655,30 +5053,6 @@ $SED -e '/^\./d;/^.\./d;q' } -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified @@ -3692,16 +5066,17 @@ # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { - $opt_debug - if func_cygming_gnu_implib_p "$1" ; then + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1" ; then + elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown - sharedlib_from_linklib_result="" + sharedlib_from_linklib_result= fi } @@ -3709,10 +5084,11 @@ # func_extract_an_archive dir oldlib func_extract_an_archive () { - $opt_debug - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - if test "$lock_old_archive_extraction" = yes; then + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" @@ -3721,7 +5097,7 @@ fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' - if test "$lock_old_archive_extraction" = yes; then + if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then @@ -3735,22 +5111,23 @@ # func_extract_archives gentop oldlib ... func_extract_archives () { - $opt_debug - my_gentop="$1"; shift + $debug_cmd + + my_gentop=$1; shift my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" - my_xlib="$func_basename_result" + my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in @@ -3762,7 +5139,7 @@ esac done extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" @@ -3775,22 +5152,23 @@ cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` - darwin_base_archive=`basename "$darwin_archive"` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" - $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do @@ -3812,7 +5190,7 @@ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done - func_extract_archives_result="$my_oldobjs" + func_extract_archives_result=$my_oldobjs } @@ -3827,7 +5205,7 @@ # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is +# will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () @@ -3838,7 +5216,7 @@ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. @@ -3895,9 +5273,9 @@ # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ which is used only on +# /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options which match +# (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and @@ -3930,7 +5308,7 @@ # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then - echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } @@ -3941,7 +5319,7 @@ lt_dump_args_N=1; for lt_arg do - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } @@ -3955,7 +5333,7 @@ *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} @@ -3965,7 +5343,7 @@ *) $ECHO "\ if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} @@ -3982,14 +5360,17 @@ # launches target application with the remaining arguments. func_exec_program () { - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac func_exec_program_core \${1+\"\$@\"} } @@ -4037,13 +5418,13 @@ test -n \"\$absdir\" && thisdir=\"\$absdir\" " - if test "$fast_install" = yes; then + if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" @@ -4060,7 +5441,7 @@ if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else - $ECHO \"\$relink_command_output\" >&2 + \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi @@ -4095,7 +5476,7 @@ fi # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" @@ -4115,7 +5496,7 @@ fi else # The program doesn't exist. - \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 @@ -4134,7 +5515,7 @@ cat < #include +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + /* declarations of non-ANSI functions */ -#if defined(__MINGW32__) +#if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif -#elif defined(__CYGWIN__) +#elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif -/* #elif defined (other platforms) ... */ +/* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ -#if defined(_MSC_VER) +#if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC -# ifndef _INTPTR_T_DEFINED -# define _INTPTR_T_DEFINED -# define intptr_t int -# endif -#elif defined(__MINGW32__) +#elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv -#elif defined(__CYGWIN__) +#elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" -/* #elif defined (other platforms) ... */ +/* #elif defined other platforms ... */ #endif -#if defined(PATH_MAX) +#if defined PATH_MAX # define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) +#elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 @@ -4228,8 +5607,8 @@ # define PATH_SEPARATOR ':' #endif -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 @@ -4262,10 +5641,10 @@ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ + if (stale) { free (stale); stale = 0; } \ } while (0) -#if defined(LT_DEBUGWRAPPER) +#if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; @@ -4294,11 +5673,16 @@ EOF cat < 0) && IS_PATH_SEPARATOR (new_value[len-1])) + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { - new_value[len-1] = '\0'; + new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); @@ -5057,9 +6441,15 @@ { EOF func_emit_wrapper yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' - + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' cat <<"EOF" } EOF @@ -5070,27 +6460,47 @@ # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { - $opt_debug + $debug_cmd + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + # func_mode_link arg... func_mode_link () { - $opt_debug + $debug_cmd + case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra + # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which has undefined symbols, in which case not + # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. @@ -5134,10 +6544,11 @@ module=no no_install=no objs= + os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no - preload=no + preload=false prev= prevarg= release= @@ -5149,7 +6560,7 @@ vinfo= vinfo_number=no weak_libs= - single_module="${wl}-single_module" + single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. @@ -5157,15 +6568,15 @@ do case $arg in -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then @@ -5198,7 +6609,7 @@ # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do - arg="$1" + arg=$1 shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result @@ -5215,21 +6626,21 @@ case $prev in bindir) - bindir="$arg" + bindir=$arg prev= continue ;; dlfiles|dlprefiles) - if test "$preload" = no; then + $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" - preload=yes - fi + preload=: + } case $arg in *.la | *.lo) ;; # We handle these cases below. force) - if test "$dlself" = no; then + if test no = "$dlself"; then dlself=needless export_dynamic=yes fi @@ -5237,9 +6648,9 @@ continue ;; self) - if test "$prev" = dlprefiles; then + if test dlprefiles = "$prev"; then dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless @@ -5249,7 +6660,7 @@ continue ;; *) - if test "$prev" = dlfiles; then + if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" @@ -5260,14 +6671,14 @@ esac ;; expsyms) - export_symbols="$arg" + export_symbols=$arg test -f "$arg" \ - || func_fatal_error "symbol file \`$arg' does not exist" + || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) - export_symbols_regex="$arg" + export_symbols_regex=$arg prev= continue ;; @@ -5285,7 +6696,13 @@ continue ;; inst_prefix) - inst_prefix_dir="$arg" + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. prev= continue ;; @@ -5309,21 +6726,21 @@ if test -z "$pic_object" || test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result - if test "$pic_object" != none; then + if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" + pic_object=$xdir$pic_object - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue @@ -5334,7 +6751,7 @@ fi # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then + if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= @@ -5342,23 +6759,23 @@ # A PIC object. func_append libobjs " $pic_object" - arg="$pic_object" + arg=$pic_object fi # Non-PIC object. - if test "$non_pic_object" != none; then + if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" + non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" + non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else @@ -5366,7 +6783,7 @@ if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result @@ -5374,24 +6791,29 @@ func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else - func_fatal_error "\`$arg' is not a valid libtool object" + func_fatal_error "'$arg' is not a valid libtool object" fi fi done else - func_fatal_error "link input file \`$arg' does not exist" + func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; precious_regex) - precious_files_regex="$arg" + precious_files_regex=$arg prev= continue ;; release) - release="-$arg" + release=-$arg prev= continue ;; @@ -5403,7 +6825,7 @@ func_fatal_error "only absolute run-paths are allowed" ;; esac - if test "$prev" = rpath; then + if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; @@ -5418,7 +6840,7 @@ continue ;; shrext) - shrext_cmds="$arg" + shrext_cmds=$arg prev= continue ;; @@ -5458,7 +6880,7 @@ esac fi # test -n "$prev" - prevarg="$arg" + prevarg=$arg case $arg in -all-static) @@ -5472,7 +6894,7 @@ -allow-undefined) # FIXME: remove this flag sometime in the future. - func_fatal_error "\`-allow-undefined' must not be used because it is the default" + func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) @@ -5504,7 +6926,7 @@ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi - if test "X$arg" = "X-export-symbols"; then + if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex @@ -5538,9 +6960,9 @@ func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" + func_fatal_error "require no space between '-L' and '$1'" else - func_fatal_error "need path for \`-L' option" + func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" @@ -5551,8 +6973,8 @@ *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of \`$dir'" - dir="$absdir" + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir ;; esac case "$deplibs " in @@ -5587,7 +7009,7 @@ ;; -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) @@ -5595,11 +7017,11 @@ ;; *-*-os2*) # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework @@ -5608,16 +7030,16 @@ ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; esac - elif test "X$arg" = "X-lc_r"; then + elif test X-lc_r = "X$arg"; then case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; @@ -5627,6 +7049,11 @@ continue ;; + -mllvm) + prev=mllvm + continue + ;; + -module) module=yes continue @@ -5643,7 +7070,8 @@ continue ;; - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" @@ -5655,7 +7083,7 @@ ;; -multi_module) - single_module="${wl}-multi_module" + single_module=$wl-multi_module continue ;; @@ -5669,8 +7097,8 @@ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. - func_warning "\`-no-install' is ignored for $host" - func_warning "assuming \`-no-fast-install' instead" + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; @@ -5688,6 +7116,11 @@ continue ;; + -os2dllname) + prev=os2dllname + continue + ;; + -o) prev=output ;; -precious-files-regex) @@ -5775,14 +7208,14 @@ func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= - save_ifs="$IFS"; IFS=',' + save_ifs=$IFS; IFS=, for flag in $args; do - IFS="$save_ifs" + IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done - IFS="$save_ifs" + IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; @@ -5791,15 +7224,15 @@ func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= - save_ifs="$IFS"; IFS=',' + save_ifs=$IFS; IFS=, for flag in $args; do - IFS="$save_ifs" + IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done - IFS="$save_ifs" + IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; @@ -5822,7 +7255,7 @@ # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; # Flags to be passed through unchanged, with rationale: @@ -5834,25 +7267,48 @@ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support - # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -fuse-ld=* Linker select flags for GCC + # -stdlib=* select c++ std lib with clang -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -fuse-ld=*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; *.$objext) @@ -5873,21 +7329,21 @@ if test -z "$pic_object" || test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result - if test "$pic_object" != none; then + test none = "$pic_object" || { # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" + pic_object=$xdir$pic_object - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue @@ -5898,7 +7354,7 @@ fi # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then + if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= @@ -5906,23 +7362,23 @@ # A PIC object. func_append libobjs " $pic_object" - arg="$pic_object" - fi + arg=$pic_object + } # Non-PIC object. - if test "$non_pic_object" != none; then + if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" + non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" + non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else @@ -5930,7 +7386,7 @@ if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result @@ -5938,7 +7394,7 @@ func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else - func_fatal_error "\`$arg' is not a valid libtool object" + func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; @@ -5954,11 +7410,11 @@ # A libtool-controlled library. func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then + if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= - elif test "$prev" = dlprefiles; then + elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= @@ -5973,7 +7429,7 @@ # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; esac # arg @@ -5985,9 +7441,9 @@ done # argument parsing loop test -n "$prev" && \ - func_fatal_help "the \`$prevarg' option requires an argument" + func_fatal_help "the '$prevarg' option requires an argument" - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" @@ -5996,20 +7452,23 @@ oldlibs= # calculate the name of the file, without its directory func_basename "$output" - outputname="$func_basename_result" - libobjs_save="$libobjs" + outputname=$func_basename_result + libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" + output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. @@ -6032,7 +7491,7 @@ # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac @@ -6040,7 +7499,7 @@ func_append libs " $deplib" done - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps @@ -6072,7 +7531,7 @@ case $file in *.la) ;; *) - func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done @@ -6080,7 +7539,7 @@ prog) compile_deplibs= finalize_deplibs= - alldeplibs=no + alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" @@ -6092,29 +7551,29 @@ for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... - if test "$linkmode,$pass" = "lib,link"; then + if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done - deplibs="$tmp_deplibs" + deplibs=$tmp_deplibs fi - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs deplibs= fi - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi - if test "$linkmode,$pass" = "lib,dlpreopen"; then + if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs @@ -6135,25 +7594,26 @@ esac done done - libs="$dlprefiles" + libs=$dlprefiles fi - if test "$pass" = dlopen; then + if test dlopen = "$pass"; then # Collect dlpreopened libraries - save_deplibs="$deplibs" + save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= - found=no + found=false case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - if test "$linkmode,$pass" = "prog,link"; then + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then + if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; @@ -6163,13 +7623,13 @@ continue ;; -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - func_warning "\`-l' is ignored for archives/objects" + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" @@ -6177,31 +7637,22 @@ for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" + lib=$searchdir/lib$name$search_ext if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes + if test .la = "$search_ext"; then + found=: else - found=no + found=false fi break 2 fi done done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library + if $found; then + # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then @@ -6209,19 +7660,19 @@ old_library= func_source "$lib" for l in $old_library $library_names; do - ll="$l" + ll=$l done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no + if test "X$ll" = "X$old_library"; then # only static version available + found=false func_dirname "$lib" "" "." - ladir="$func_dirname_result" + ladir=$func_dirname_result lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi @@ -6230,15 +7681,25 @@ *) ;; esac fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue fi ;; # -l *.ltframework) - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" - if test "$linkmode" = lib ; then + if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; @@ -6251,18 +7712,18 @@ case $linkmode in lib) deplibs="$deplib $deplibs" - test "$pass" = conv && continue + test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) - if test "$pass" = conv; then + if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi - if test "$pass" = scan; then + if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" @@ -6273,13 +7734,13 @@ func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) - func_warning "\`-L' is ignored for archives/objects" + func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) - if test "$pass" = link; then + if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result @@ -6297,7 +7758,7 @@ lib=$func_resolve_sysroot_result ;; *.$libext) - if test "$pass" = conv; then + if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi @@ -6308,21 +7769,26 @@ case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) - valid_a_lib=no + valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes + valid_a_lib=: fi ;; pass_all) - valid_a_lib=yes + valid_a_lib=: ;; esac - if test "$valid_a_lib" != yes; then + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" @@ -6330,18 +7796,13 @@ echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." - else - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) - if test "$pass" != link; then + if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" @@ -6352,10 +7813,10 @@ esac # linkmode ;; # *.$libext *.lo | *.$objext) - if test "$pass" = conv; then + if test conv = "$pass"; then deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" @@ -6368,22 +7829,20 @@ continue ;; %DEPLIBS%) - alldeplibs=yes + alldeplibs=: continue ;; esac # case $deplib - if test "$found" = yes || test -f "$lib"; then : - else - func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ - || func_fatal_error "\`$lib' is not a valid libtool archive" + || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." - ladir="$func_dirname_result" + ladir=$func_dirname_result dlname= dlopen= @@ -6413,30 +7872,30 @@ done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi - if test "$pass" = conv; then + if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for \`$lib'" + func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac @@ -6450,26 +7909,26 @@ # Get the name of the library we link against. linklib= if test -n "$old_library" && - { test "$prefer_static_libs" = yes || - test "$prefer_static_libs,$installed" = "built,no"; }; then + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do - linklib="$l" + linklib=$l done fi if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" + func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't @@ -6483,40 +7942,40 @@ # We need an absolute path. case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" - abs_ladir="$ladir" + abs_ladir=$ladir fi ;; esac func_basename "$lib" - laname="$func_basename_result" + laname=$func_basename_result # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then + if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir else - dir="$lt_sysroot$libdir" - absdir="$lt_sysroot$libdir" + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" + dir=$ladir + absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi @@ -6525,11 +7984,11 @@ name=$func_stripname_result # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi - case "$host" in + case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both @@ -6573,9 +8032,9 @@ if test -z "$libdir"; then # Link the convenience library - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then + elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else @@ -6585,14 +8044,14 @@ fi - if test "$linkmode" = prog && test "$pass" != link; then + if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: fi tmp_libs= @@ -6604,14 +8063,14 @@ ;; esac # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then + if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac @@ -6621,15 +8080,15 @@ continue fi # $linkmode = prog... - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in + case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac @@ -6658,9 +8117,9 @@ esac fi # $linkmode,$pass = prog,link... - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue @@ -6669,19 +8128,19 @@ link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes; then + if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then + { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in - *cygwin* | *mingw* | *cegcc*) + *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) - if test "$installed" = no; then + if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi @@ -6691,24 +8150,24 @@ # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule="" + dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule="$dlpremoduletest" + dlopenmodule=$dlpremoduletest break fi done - if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. @@ -6736,43 +8195,43 @@ # figure out the soname set dummy $library_names shift - realname="$1" + realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then - soname="$dlname" + soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in - *cygwin* | mingw* | *cegcc*) + *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result - versuffix="-$major" + versuffix=-$major ;; esac eval soname=\"$soname_spec\" else - soname="$realname" + soname=$realname fi # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" + soroot=$soname func_basename "$soroot" - soname="$func_basename_result" + soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else - func_verbose "extracting exported symbol list from \`$soname'" + func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for \`$soname'" + func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library @@ -6780,58 +8239,58 @@ linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" - if test "$linkmode" = prog || test "$opt_mode" != relink; then + if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" + if test no = "$hardcode_direct"; then + add=$dir/$linklib case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; + *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) - # if the lib is a (non-dlopened) module then we can not + # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null ; then + $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then + if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else - add="$dir/$old_library" + add=$dir/$old_library fi elif test -n "$old_library"; then - add="$dir/$old_library" + add=$dir/$old_library fi fi esac - elif test "$hardcode_minus_L" = no; then + elif test no = "$hardcode_minus_L"; then case $host in - *-*-sunos*) add_shlibpath="$dir" ;; + *-*-sunos*) add_shlibpath=$dir ;; esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name else lib_linked=no fi ;; relink) - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -6840,10 +8299,10 @@ ;; esac fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name else lib_linked=no fi @@ -6851,7 +8310,7 @@ *) lib_linked=no ;; esac - if test "$lib_linked" != yes; then + if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi @@ -6861,15 +8320,15 @@ *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && - test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; @@ -6878,33 +8337,33 @@ fi fi - if test "$linkmode" = prog || test "$opt_mode" = relink; then + if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then + add=-l$name + elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib else - add="$libdir/$linklib" + add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" + add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -6913,10 +8372,10 @@ ;; esac fi - add="-l$name" + add=-l$name fi - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else @@ -6924,43 +8383,43 @@ test -n "$add" && deplibs="$add $deplibs" fi fi - elif test "$linkmode" = prog; then + elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi - elif test "$build_libtool_libs" = yes; then + elif test yes = "$build_libtool_libs"; then # Not a shared library - if test "$deplibs_check_method" != pass_all; then + if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo - $ECHO "*** Warning: This system can not link to static lib archive $lib." + $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then + if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." + echo "*** 'nm' from GNU binutils and a full rebuild may help." fi - if test "$build_old_libs" = no; then + if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else @@ -6973,11 +8432,11 @@ fi fi # link shared/static library? - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do @@ -6991,12 +8450,12 @@ *) func_append temp_deplibs " $libdir";; esac done - dependency_libs="$temp_deplibs" + dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do @@ -7006,7 +8465,7 @@ func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; @@ -7015,12 +8474,12 @@ func_append tmp_libs " $func_resolve_sysroot_result" done - if test "$link_all_deplibs" != no; then + if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in - -L*) path="$deplib" ;; + -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result @@ -7028,12 +8487,12 @@ dir=$func_dirname_result # We need an absolute path. case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of \`$dir'" - absdir="$dir" + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir fi ;; esac @@ -7041,35 +8500,35 @@ case $host in *-*-darwin*) depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do depdepl=$tmp done - if test -f "$absdir/$objdir/$depdepl" ; then - depdepl="$absdir/$objdir/$depdepl" - darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi - func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) - path="-L$absdir/$objdir" + path=-L$absdir/$objdir ;; esac else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" + func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ - func_warning "\`$deplib' seems to be moved" + func_warning "'$deplib' seems to be moved" - path="-L$absdir" + path=-L$absdir fi ;; esac @@ -7081,23 +8540,23 @@ fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs - if test "$pass" = link; then - if test "$linkmode" = "prog"; then + if test link = "$pass"; then + if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then + if test dlopen != "$pass"; then + test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do @@ -7107,12 +8566,12 @@ esac done newlib_search_path= - fi + } - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else + if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" + else + vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order @@ -7170,62 +8629,93 @@ eval $var=\"$tmp_libs\" done # for var fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= - for i in $dependency_libs ; do + for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) - i="" + i= ;; esac - if test -n "$i" ; then + if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" + if test prog = "$linkmode"; then + dlfiles=$newdlfiles fi - if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles fi case $linkmode in oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for archives" + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for archives" ;; + func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for archives" + func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ - func_warning "\`-R' is ignored for archives" + func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for archives" + func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ - func_warning "\`-release' is ignored for archives" + func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ - func_warning "\`-export-symbols' is ignored for archives" + func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no - oldlibs="$output" + oldlibs=$output func_append objs "$old_deplibs" ;; lib) - # Make sure we only generate libraries of the form `libNAME.la'. + # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" @@ -7234,10 +8724,10 @@ eval libname=\"$libname_spec\" ;; *) - test "$module" = no && \ - func_fatal_help "libtool library \`$output' must begin with \`lib'" + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" - if test "$need_lib_prefix" != no; then + if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result @@ -7251,8 +8741,8 @@ esac if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" @@ -7261,21 +8751,21 @@ fi fi - test "$dlself" != no && \ - func_warning "\`-dlopen self' is ignored for libtool libraries" + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift - test "$#" -gt 1 && \ - func_warning "ignoring multiple \`-rpath's for a libtool library" + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" - install_libdir="$1" + install_libdir=$1 oldlibs= if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so + # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" @@ -7284,20 +8774,20 @@ fi test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ - func_warning "\`-release' is ignored for convenience libraries" + func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. - save_ifs="$IFS"; IFS=':' + save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift - IFS="$save_ifs" + IFS=$save_ifs test -n "$7" && \ - func_fatal_help "too many parameters to \`-version-info'" + func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts @@ -7305,41 +8795,42 @@ case $vinfo_number in yes) - number_major="$1" - number_minor="$2" - number_revision="$3" + number_major=$1 + number_minor=$2 + number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix - # which has an extra 1 added just for fun + # that has an extra 1 added just for fun # case $version_type in - darwin|linux|osf|windows|none) + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result - age="$number_minor" - revision="$number_revision" + age=$number_minor + revision=$number_revision ;; - freebsd-aout|freebsd-elf|qnx|sunos) - current="$number_major" - revision="$number_minor" - age="0" + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result - age="$number_minor" - revision="$number_minor" + age=$number_minor + revision=$number_minor lt_irix_increment=no ;; esac ;; no) - current="$1" - revision="$2" - age="$3" + current=$1 + revision=$2 + age=$3 ;; esac @@ -7347,30 +8838,30 @@ case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - func_error "CURRENT \`$current' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - func_error "REVISION \`$revision' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - func_error "AGE \`$age' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then - func_error "AGE \`$age' is greater than the current interface number \`$current'" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. @@ -7385,26 +8876,36 @@ # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result - versuffix="$major.$age.$revision" + versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac ;; freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; + major=.$current + versuffix=.$current.$revision ;; freebsd-elf) - major=".$current" - versuffix=".$current" + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision ;; irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then + if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 @@ -7415,69 +8916,74 @@ nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac - verstring="$verstring_prefix$major.$revision" + verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision - while test "$loop" -ne 0; do + while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result - verstring="$verstring_prefix$major.$iface:$verstring" + verstring=$verstring_prefix$major.$iface:$verstring done - # Before this point, $major must not contain `.'. + # Before this point, $major must not contain '.'. major=.$major - versuffix="$major.$revision" + versuffix=$major.$revision ;; - linux) + linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result - versuffix="$major.$age.$revision" + versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age - while test "$loop" -ne 0; do + while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result - verstring="$verstring:${iface}.0" + verstring=$verstring:$iface.0 done # Make executables depend on our current version. - func_append verstring ":${current}.0" + func_append verstring ":$current.0" ;; qnx) - major=".$current" - versuffix=".$current" + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current ;; sunos) - major=".$current" - versuffix=".$current.$revision" + major=.$current + versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. + # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result - versuffix="-$major" + versuffix=-$major ;; *) - func_fatal_configuration "unknown library version type \`$version_type'" + func_fatal_configuration "unknown library version type '$version_type'" ;; esac @@ -7491,42 +8997,45 @@ verstring= ;; *) - verstring="0.0" + verstring=0.0 ;; esac - if test "$need_version" = no; then + if test no = "$need_version"; then versuffix= else - versuffix=".0.0" + versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then + if test yes,no = "$avoid_version,$need_version"; then major= versuffix= - verstring="" + verstring= fi # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi fi else # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" + allow_undefined_flag=$no_undefined_flag fi fi - func_generate_dlsyms "$libname" "$libname" "yes" + func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= + test " " = "$libobjs" && libobjs= - if test "$opt_mode" != relink; then + if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= @@ -7535,8 +9044,8 @@ case $p in *.$objext | *.gcno) ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue @@ -7552,11 +9061,11 @@ fi # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. @@ -7577,13 +9086,13 @@ *) func_append finalize_rpath " $libdir" ;; esac done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" + old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in @@ -7593,7 +9102,7 @@ done # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" + old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in @@ -7602,7 +9111,7 @@ esac done - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) @@ -7626,7 +9135,7 @@ ;; *) # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then + if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; @@ -7642,9 +9151,9 @@ # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? - release="" - versuffix="" - major="" + release= + versuffix= + major= newdeplibs= droppeddeps=no case $deplibs_check_method in @@ -7673,20 +9182,20 @@ -l*) func_stripname -l '' "$i" name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" - i="" + i= ;; esac fi - if test -n "$i" ; then + if test -n "$i"; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then func_append newdeplibs " $i" else droppeddeps=yes @@ -7716,20 +9225,20 @@ $opt_dry_run || $RM conftest if $LTCC $LTCFLAGS -o conftest conftest.c $i; then ldd_output=`ldd conftest` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" - i="" + i= ;; esac fi - if test -n "$i" ; then + if test -n "$i"; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then func_append newdeplibs " $i" else droppeddeps=yes @@ -7766,24 +9275,24 @@ -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= ;; esac fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` if test -n "$file_magic_glob"; then libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` else libnameglob=$libname fi - test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` + test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - if test "$want_nocaseglob" = yes; then + if test yes = "$want_nocaseglob"; then shopt -s nocaseglob potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` $nocaseglob @@ -7801,25 +9310,25 @@ # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? - potlib="$potent_lib" + potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= break 2 fi done done fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." @@ -7827,7 +9336,7 @@ echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then + if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" @@ -7850,30 +9359,30 @@ -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= ;; esac fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test + potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= break 2 fi done done fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." @@ -7881,7 +9390,7 @@ echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then + if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" @@ -7897,18 +9406,18 @@ done # Gone through all deplibs. ;; none | unknown | *) - newdeplibs="" + newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo - if test "X$deplibs_check_method" = "Xnone"; then + if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." @@ -7932,8 +9441,8 @@ ;; esac - if test "$droppeddeps" = yes; then - if test "$module" = yes; then + if test yes = "$droppeddeps"; then + if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" @@ -7942,12 +9451,12 @@ if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." + echo "*** 'nm' from GNU binutils and a full rebuild may help." fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else @@ -7958,14 +9467,14 @@ echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." - if test "$allow_undefined" = no; then + if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else @@ -8011,7 +9520,7 @@ *) func_append new_libs " $deplib" ;; esac done - deplibs="$new_libs" + deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= @@ -8019,20 +9528,25 @@ dlname= # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - if test "$hardcode_into_libs" = yes; then + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= - rpath="$finalize_rpath" - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" + hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in @@ -8050,19 +9564,15 @@ elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) func_apped perm_rpath " $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. @@ -8075,8 +9585,8 @@ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi - shlibpath="$finalize_shlibpath" - test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi @@ -8086,19 +9596,19 @@ eval library_names=\"$library_names_spec\" set dummy $library_names shift - realname="$1" + realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else - soname="$realname" + soname=$realname fi if test -z "$dlname"; then dlname=$soname fi - lib="$output_objdir/$realname" + lib=$output_objdir/$realname linknames= for link do @@ -8112,7 +9622,7 @@ delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi @@ -8121,31 +9631,31 @@ cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile - if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. - orig_export_symbols="$export_symbols" + orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes - fi + } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' + save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do - IFS="$save_ifs" + IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in @@ -8159,7 +9669,7 @@ try_normal_branch=no ;; esac - if test "$try_normal_branch" = yes \ + if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then @@ -8170,7 +9680,7 @@ output_la=$func_basename_result save_libobjs=$libobjs save_output=$output - output=${output_objdir}/${output_la}.nm + output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" @@ -8193,8 +9703,8 @@ break fi done - IFS="$save_ifs" - if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi @@ -8202,16 +9712,16 @@ fi if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine + # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. @@ -8230,11 +9740,11 @@ ;; esac done - deplibs="$tmp_deplibs" + deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && - test "$compiler_needs_object" = yes && + test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. @@ -8245,7 +9755,7 @@ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience @@ -8254,18 +9764,18 @@ fi fi - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then + if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds @@ -8283,7 +9793,7 @@ fi fi - if test "X$skipped_export" != "X:" && + if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then @@ -8316,8 +9826,8 @@ last_robj= k=1 - if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then - output=${output_objdir}/${output_la}.lnkscript + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs @@ -8329,14 +9839,14 @@ func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= - if test "$compiler_needs_object" = yes; then + if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi @@ -8351,7 +9861,7 @@ else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext + output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result @@ -8363,13 +9873,13 @@ func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result - if test "X$objlist" = X || + if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. - if test "$k" -eq 1 ; then + if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" @@ -8379,10 +9889,10 @@ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi - last_robj=$output_objdir/$output_la-${k}.$objext + last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result - output=$output_objdir/$output_la-${k}.$objext + output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result @@ -8394,9 +9904,9 @@ # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" - eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" @@ -8404,9 +9914,9 @@ output= fi - if ${skipped_export-false}; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. @@ -8415,16 +9925,16 @@ if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi - fi + } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' + save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do - IFS="$save_ifs" - $opt_silent || { + IFS=$save_ifs + $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } @@ -8432,7 +9942,7 @@ lt_exit=$? # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -8441,7 +9951,7 @@ exit $lt_exit } done - IFS="$save_ifs" + IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' @@ -8449,18 +9959,18 @@ fi fi - if ${skipped_export-false}; then + ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine + # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. @@ -8469,7 +9979,7 @@ export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi - fi + } libobjs=$output # Restore the value of output. @@ -8483,7 +9993,7 @@ # value of $libobjs for piecewise linking. # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then + if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else @@ -8505,7 +10015,7 @@ # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles @@ -8513,11 +10023,12 @@ test "X$libobjs" = "X " && libobjs= fi - save_ifs="$IFS"; IFS='~' + save_ifs=$IFS; IFS='~' for cmd in $cmds; do - IFS="$save_ifs" + IFS=$sp$nl eval cmd=\"$cmd\" - $opt_silent || { + IFS=$save_ifs + $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } @@ -8525,7 +10036,7 @@ lt_exit=$? # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -8534,10 +10045,10 @@ exit $lt_exit } done - IFS="$save_ifs" + IFS=$save_ifs # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then @@ -8557,39 +10068,39 @@ done # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then + if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. - dlname="$soname" + dlname=$soname fi fi ;; obj) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for objects" + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for objects" ;; + func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for objects" + func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ - func_warning "\`-R' is ignored for objects" + func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for objects" + func_warning "'-version-info' is ignored for objects" test -n "$release" && \ - func_warning "\`-release' is ignored for objects" + func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object \`$output' from non-libtool objects" + func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" @@ -8597,7 +10108,7 @@ ;; *) libobj= - obj="$output" + obj=$output ;; esac @@ -8610,17 +10121,19 @@ # the extraction. reload_conv_objs= gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else - gentop="$output_objdir/${obj}x" + gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience @@ -8629,12 +10142,12 @@ fi # If we're not building shared, we need to use non_pic_objs - test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs - output="$obj" + output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. @@ -8646,7 +10159,7 @@ exit $EXIT_SUCCESS fi - if test "$build_libtool_libs" != yes; then + test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi @@ -8656,12 +10169,12 @@ # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS - fi + } - if test -n "$pic_flag" || test "$pic_mode" != default; then + if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" - output="$libobj" + output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi @@ -8678,16 +10191,14 @@ output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for programs" + func_warning "'-version-info' is ignored for programs" test -n "$release" && \ - func_warning "\`-release' is ignored for programs" + func_warning "'-release' is ignored for programs" - test "$preload" = yes \ - && test "$dlopen_support" = unknown \ - && test "$dlopen_self" = unknown \ - && test "$dlopen_self_static" = unknown && \ - func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) @@ -8701,11 +10212,11 @@ *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). - if test "$tagname" = CXX ; then + if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) - func_append compile_command " ${wl}-bind_at_load" - func_append finalize_command " ${wl}-bind_at_load" + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" ;; esac fi @@ -8741,7 +10252,7 @@ *) func_append new_libs " $deplib" ;; esac done - compile_deplibs="$new_libs" + compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" @@ -8765,7 +10276,7 @@ if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" + hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in @@ -8788,7 +10299,7 @@ fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; @@ -8805,10 +10316,10 @@ # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" + libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi - compile_rpath="$rpath" + compile_rpath=$rpath rpath= hardcode_libdirs= @@ -8816,7 +10327,7 @@ if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" + hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in @@ -8841,45 +10352,43 @@ # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" + libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi - finalize_rpath="$rpath" + finalize_rpath=$rpath - if test -n "$libobjs" && test "$build_old_libs" = yes; then + if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi - func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi - wrappers_required=yes + wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=no + wrappers_required=false ;; *cygwin* | *mingw* ) - if test "$build_libtool_libs" != yes; then - wrappers_required=no - fi + test yes = "$build_libtool_libs" || wrappers_required=false ;; *) - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - wrappers_required=no + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false fi ;; esac - if test "$wrappers_required" = no; then + $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" + link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 @@ -8892,12 +10401,12 @@ fi # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status - fi + } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" @@ -8927,9 +10436,9 @@ fi fi - if test "$no_install" = yes; then + if test yes = "$no_install"; then # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" + link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. @@ -8946,27 +10455,28 @@ exit $EXIT_SUCCESS fi - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "\`$output' will be relinked during installation" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` @@ -9023,8 +10533,8 @@ func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 @@ -9045,7 +10555,7 @@ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host" ; then + if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result @@ -9068,25 +10578,27 @@ # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience build_libtool_libs=no - else + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then - func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" - fi + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs @@ -9094,13 +10606,13 @@ fi # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles @@ -9121,7 +10633,7 @@ : else echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs @@ -9130,7 +10642,7 @@ for obj in $save_oldobjs do func_basename "$obj" - objbase="$func_basename_result" + objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) @@ -9152,6 +10664,8 @@ esac done fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" @@ -9197,18 +10711,18 @@ else # the above command should be used before it gets too long oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then + if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist - if test "X$oldobjs" = "X" ; then + if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" @@ -9225,7 +10739,7 @@ case $output in *.la) old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" + test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior @@ -9240,30 +10754,31 @@ fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then + if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do - if test "$installed" = yes; then + if test yes = "$installed"; then if test -z "$install_libdir"; then break fi - output="$output_objdir/$outputname"i + output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" + func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) @@ -9279,23 +10794,23 @@ *) func_append newdependency_libs " $deplib" ;; esac done - dependency_libs="$newdependency_libs" + dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" + func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done - dlfiles="$newdlfiles" + dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in @@ -9305,34 +10820,34 @@ # didn't already link the preopened objects directly into # the library: func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" + func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done - dlprefiles="$newdlprefiles" + dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done - dlfiles="$newdlfiles" + dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done - dlprefiles="$newdlprefiles" + dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin @@ -9348,10 +10863,9 @@ case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. - if test "x$bindir" != x ; - then + if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result$dlname + tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname @@ -9360,7 +10874,7 @@ esac $ECHO > $output "\ # $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. @@ -9374,7 +10888,7 @@ # The name of the static archive. old_library='$old_library' -# Linker flags that can not go in dependency_libs. +# Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. @@ -9400,7 +10914,7 @@ # Directory that this library needs to be installed in: libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then + if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi @@ -9415,27 +10929,29 @@ exit $EXIT_SUCCESS } -{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi # func_mode_uninstall arg... func_mode_uninstall () { - $opt_debug - RM="$nonopt" + $debug_cmd + + RM=$nonopt files= - rmforce= + rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. - libtool_install_magic="$magic" + libtool_install_magic=$magic for arg do case $arg in - -f) func_append RM " $arg"; rmforce=yes ;; + -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac @@ -9448,18 +10964,18 @@ for file in $files; do func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then - odir="$objdir" + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir else - odir="$dir/$objdir" + odir=$dir/$objdir fi func_basename "$file" - name="$func_basename_result" - test "$opt_mode" = uninstall && odir="$dir" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates - if test "$opt_mode" = clean; then + if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; @@ -9474,11 +10990,11 @@ elif test -d "$file"; then exit_status=1 continue - elif test "$rmforce" = yes; then + elif $rmforce; then continue fi - rmfiles="$file" + rmfiles=$file case $name in *.la) @@ -9492,7 +11008,7 @@ done test -n "$old_library" && func_append rmfiles " $odir/$old_library" - case "$opt_mode" in + case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; @@ -9503,12 +11019,12 @@ uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; @@ -9524,21 +11040,19 @@ func_source $dir/$name # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then + if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then + if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) - if test "$opt_mode" = clean ; then + if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) @@ -9565,12 +11079,12 @@ # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi - if test "X$noexename" != "X$name" ; then - func_append rmfiles " $odir/lt-${noexename}.c" + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" fi fi fi @@ -9579,7 +11093,7 @@ func_show_eval "$RM $rmfiles" 'exit_status=1' done - # Try to remove the ${objdir}s in the directories where we deleted files + # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" @@ -9589,16 +11103,17 @@ exit $exit_status } -{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi test -z "$opt_mode" && { - help="$generic_help" + help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$opt_mode'" + func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" @@ -9609,7 +11124,7 @@ # The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting +# where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support @@ -9632,5 +11147,3 @@ # mode:shell-script # sh-indentation:2 # End: -# vi:sw=2 - diff -Nru thunar-1.2.3/Makefile.am thunar-1.6.10/Makefile.am --- thunar-1.2.3/Makefile.am 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/Makefile.am 2015-05-22 20:44:49.000000000 +0000 @@ -17,11 +17,12 @@ # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301, USA. +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + SUBDIRS = \ icons \ pixmaps \ po \ - tdb \ thunarx \ thunar \ docs \ @@ -29,11 +30,12 @@ plugins distclean-local: - rm -rf *.spec *.cache *~ + rm -rf *.cache *~ + find . -type f -name Makefile -delete + find . -type f -name Makefile.in -delete -rpm: dist - rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz - @rm -f $(PACKAGE)-$(VERSION).tar.gz +distuninstallcheck_listfiles = \ + find . -type f -print | grep -v ./share/icons/hicolor/icon-theme.cache .PHONY: ChangeLog @@ -44,29 +46,19 @@ dist-hook: ChangeLog -thunar_scriptsdir = $(libdir)/Thunar -thunar_scripts_SCRIPTS = \ - ThunarBulkRename \ - ThunarHelp +thunar_scriptsdir = $(HELPER_PATH_PREFIX)/Thunar +thunar_scripts_SCRIPTS = \ + ThunarBulkRename ThunarBulkRename: ThunarBulkRename.in Makefile $(AM_V_GEN) ( \ rm -f ThunarBulkRename.gen ThunarBulkRename \ - && sed -e "s,\@bindir\@,$(bindir),g" \ + && $(SED) -e "s,\@bindir\@,$(bindir),g" \ < $(srcdir)/ThunarBulkRename.in \ > ThunarBulkRename.gen \ && mv ThunarBulkRename.gen ThunarBulkRename \ ) -ThunarHelp: ThunarHelp.in Makefile - $(AM_V_GEN) ( \ - rm -f ThunarHelp.gen ThunarHelp \ - && sed -e "s,\@docdir\@,$(docdir),g" \ - < $(srcdir)/ThunarHelp.in \ - > ThunarHelp.gen \ - && mv ThunarHelp.gen ThunarHelp \ - ) - desktopdir = $(datadir)/applications desktop_in_in_files = \ Thunar.desktop.in.in \ @@ -74,40 +66,59 @@ Thunar-folder-handler.desktop.in.in desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in) %.desktop.in: %.desktop.in.in - $(AM_V_GEN) sed -e "s,\@libdir\@,$(libdir),g" < $< > $@ + $(AM_V_GEN) $(SED) -e "s,\@HELPERDIR\@,$(HELPER_PATH_PREFIX),g" < $< > $@ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ +# +# .appdata +# +@INTLTOOL_XML_RULE@ +appdatadir = $(datadir)/appdata +appdata_DATA = $(appdata_in_files:.xml.in=.xml) +appdata_in_files = thunar.appdata.xml.in + if HAVE_DBUS servicedir = $(datadir)/dbus-1/services service_in_files = org.xfce.FileManager.service.in org.xfce.Thunar.service.in service_DATA = $(service_in_files:.service.in=.service) %.service: %.service.in - $(AM_V_GEN) sed -e "s,\@bindir\@,$(bindir),g" < $< > $@ + $(AM_V_GEN) $(SED) -e "s,\@bindir\@,$(bindir),g" < $< > $@ endif +polkit_policydir = $(datadir)/polkit-1/actions +polkit_in_in_files = \ + org.xfce.thunar.policy.in.in +polkit_in_files = $(polkit_in_in_files:.policy.in.in=.policy.in) +%.policy.in: %.policy.in.in + sed -e "s,\@bindir\@,$(bindir),g" < $< > $@ +polkit_policy_DATA = $(polkit_in_files:.policy.in=.policy) +@INTLTOOL_POLICY_RULE@ + EXTRA_DIST = \ FAQ \ HACKING \ ThunarBulkRename.in \ - Thunar.spec.in \ - ThunarHelp.in \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ $(desktop_in_in_files) \ - $(service_in_files) + $(service_in_files) \ + $(appdata_in_files) \ + $(polkit_in_in_files) + +CLEANFILES = $(appdata_DATA) DISTCLEANFILES = \ ThunarBulkRename \ - Thunar.spec \ - ThunarHelp \ intltool-extract \ intltool-merge \ intltool-update \ $(desktop_in_files) \ $(desktop_DATA) \ - $(service_DATA) + $(service_DATA) \ + $(polkit_in_files) \ + $(polkit_policy_DATA) DISTCHECK_CONFIGURE_FLAGS = \ --enable-gtk-doc \ diff -Nru thunar-1.2.3/Makefile.in thunar-1.6.10/Makefile.in --- thunar-1.2.3/Makefile.in 2011-09-20 20:28:17.000000000 +0000 +++ thunar-1.6.10/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 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. @@ -36,6 +35,51 @@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -56,22 +100,21 @@ host_triplet = @host@ target_triplet = @target@ subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/Thunar.spec.in \ - $(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS COPYING \ - COPYING.LIB ChangeLog INSTALL NEWS THANKS TODO compile \ - config.guess config.sub depcomp install-sh ltmain.sh missing \ - mkinstalldirs +DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ + $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(srcdir)/config.h.in COPYING COPYING.LIB THANKS TODO compile \ + config.guess config.sub install-sh missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = Thunar.spec +CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ @@ -94,40 +137,85 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(thunar_scriptsdir)" \ - "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(servicedir)" + "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(desktopdir)" \ + "$(DESTDIR)$(polkit_policydir)" "$(DESTDIR)$(servicedir)" SCRIPTS = $(thunar_scripts_SCRIPTS) -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -DATA = $(desktop_DATA) $(service_DATA) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(appdata_DATA) $(desktop_DATA) $(polkit_policy_DATA) \ + $(service_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -153,9 +241,11 @@ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print +DIST_ARCHIVES = $(distdir).tar.bz2 +DIST_TARGETS = dist-bzip2 +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -215,6 +305,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -222,11 +316,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -234,7 +324,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -246,6 +336,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -257,10 +351,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -280,6 +370,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -322,7 +413,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -330,12 +420,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -373,6 +464,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -397,21 +490,23 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xfconf_query_found = @xfconf_query_found@ +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} SUBDIRS = \ icons \ pixmaps \ po \ - tdb \ thunarx \ thunar \ docs \ examples \ plugins -thunar_scriptsdir = $(libdir)/Thunar +distuninstallcheck_listfiles = \ + find . -type f -print | grep -v ./share/icons/hicolor/icon-theme.cache + +thunar_scriptsdir = $(HELPER_PATH_PREFIX)/Thunar thunar_scripts_SCRIPTS = \ - ThunarBulkRename \ - ThunarHelp + ThunarBulkRename desktopdir = $(datadir)/applications desktop_in_in_files = \ @@ -421,31 +516,41 @@ desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in) desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) +appdatadir = $(datadir)/appdata +appdata_DATA = $(appdata_in_files:.xml.in=.xml) +appdata_in_files = thunar.appdata.xml.in @HAVE_DBUS_TRUE@servicedir = $(datadir)/dbus-1/services @HAVE_DBUS_TRUE@service_in_files = org.xfce.FileManager.service.in org.xfce.Thunar.service.in @HAVE_DBUS_TRUE@service_DATA = $(service_in_files:.service.in=.service) +polkit_policydir = $(datadir)/polkit-1/actions +polkit_in_in_files = \ + org.xfce.thunar.policy.in.in + +polkit_in_files = $(polkit_in_in_files:.policy.in.in=.policy.in) +polkit_policy_DATA = $(polkit_in_files:.policy.in=.policy) EXTRA_DIST = \ FAQ \ HACKING \ ThunarBulkRename.in \ - Thunar.spec.in \ - ThunarHelp.in \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ $(desktop_in_in_files) \ - $(service_in_files) + $(service_in_files) \ + $(appdata_in_files) \ + $(polkit_in_in_files) +CLEANFILES = $(appdata_DATA) DISTCLEANFILES = \ ThunarBulkRename \ - Thunar.spec \ - ThunarHelp \ intltool-extract \ intltool-merge \ intltool-update \ $(desktop_in_files) \ $(desktop_DATA) \ - $(service_DATA) + $(service_DATA) \ + $(polkit_in_files) \ + $(polkit_policy_DATA) DISTCHECK_CONFIGURE_FLAGS = \ --enable-gtk-doc \ @@ -455,7 +560,7 @@ $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -am--refresh: +am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ @@ -491,10 +596,8 @@ $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ - else :; fi + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -506,12 +609,13 @@ distclean-hdr: -rm -f config.h stamp-h1 -Thunar.spec: $(top_builddir)/config.status $(srcdir)/Thunar.spec.in - cd $(top_builddir) && $(SHELL) ./config.status $@ install-thunar_scriptsSCRIPTS: $(thunar_scripts_SCRIPTS) @$(NORMAL_INSTALL) - test -z "$(thunar_scriptsdir)" || $(MKDIR_P) "$(DESTDIR)$(thunar_scriptsdir)" @list='$(thunar_scripts_SCRIPTS)'; test -n "$(thunar_scriptsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(thunar_scriptsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(thunar_scriptsdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ @@ -539,9 +643,7 @@ @list='$(thunar_scripts_SCRIPTS)'; test -n "$(thunar_scriptsdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(thunar_scriptsdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(thunar_scriptsdir)" && rm -f $$files + dir='$(DESTDIR)$(thunar_scriptsdir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo @@ -551,10 +653,34 @@ distclean-libtool: -rm -f libtool config.lt +install-appdataDATA: $(appdata_DATA) + @$(NORMAL_INSTALL) + @list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(appdatadir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(appdatadir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(appdatadir)" || exit $$?; \ + done + +uninstall-appdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(appdata_DATA)'; test -n "$(appdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(appdatadir)'; $(am__uninstall_files_from_dir) install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) - test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -568,13 +694,35 @@ @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(desktopdir)" && rm -f $$files + dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) +install-polkit_policyDATA: $(polkit_policy_DATA) + @$(NORMAL_INSTALL) + @list='$(polkit_policy_DATA)'; test -n "$(polkit_policydir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(polkit_policydir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(polkit_policydir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(polkit_policydir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(polkit_policydir)" || exit $$?; \ + done + +uninstall-polkit_policyDATA: + @$(NORMAL_UNINSTALL) + @list='$(polkit_policy_DATA)'; test -n "$(polkit_policydir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(polkit_policydir)'; $(am__uninstall_files_from_dir) install-serviceDATA: $(service_DATA) @$(NORMAL_INSTALL) - test -z "$(servicedir)" || $(MKDIR_P) "$(DESTDIR)$(servicedir)" @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(servicedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(servicedir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -588,27 +736,28 @@ @$(NORMAL_UNINSTALL) @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(servicedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(servicedir)" && rm -f $$files + dir='$(DESTDIR)$(servicedir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -623,57 +772,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -689,12 +793,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -706,15 +805,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -723,9 +818,31 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) @@ -761,13 +878,10 @@ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -799,36 +913,41 @@ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz - $(am__remove_distdir) + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) dist-tarZ: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) + $(am__post_remove_distdir) dist-shar: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) + $(am__post_remove_distdir) -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another @@ -839,8 +958,8 @@ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -850,17 +969,19 @@ *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && ../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -883,13 +1004,21 @@ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 - $(am__remove_distdir) + $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ @@ -910,7 +1039,7 @@ all-am: Makefile $(SCRIPTS) $(DATA) config.h installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(thunar_scriptsdir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(servicedir)"; do \ + for dir in "$(DESTDIR)$(thunar_scriptsdir)" "$(DESTDIR)$(appdatadir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(polkit_policydir)" "$(DESTDIR)$(servicedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive @@ -923,13 +1052,19 @@ installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -961,7 +1096,8 @@ info-am: -install-data-am: install-desktopDATA install-serviceDATA \ +install-data-am: install-appdataDATA install-desktopDATA \ + install-polkit_policyDATA install-serviceDATA \ install-thunar_scriptsSCRIPTS install-dvi: install-dvi-recursive @@ -1008,38 +1144,39 @@ ps-am: -uninstall-am: uninstall-desktopDATA uninstall-serviceDATA \ +uninstall-am: uninstall-appdataDATA uninstall-desktopDATA \ + uninstall-polkit_policyDATA uninstall-serviceDATA \ uninstall-thunar_scriptsSCRIPTS -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ - ctags-recursive install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) all install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-generic \ - clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \ - dist-zip distcheck distclean distclean-generic distclean-hdr \ - distclean-libtool distclean-local distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-data \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-local distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-appdataDATA 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-serviceDATA \ - install-strip install-thunar_scriptsSCRIPTS installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ + install-pdf-am install-polkit_policyDATA install-ps \ + install-ps-am install-serviceDATA install-strip \ + install-thunar_scriptsSCRIPTS installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-desktopDATA \ - uninstall-serviceDATA uninstall-thunar_scriptsSCRIPTS + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-appdataDATA uninstall-desktopDATA \ + uninstall-polkit_policyDATA uninstall-serviceDATA \ + uninstall-thunar_scriptsSCRIPTS distclean-local: - rm -rf *.spec *.cache *~ - -rpm: dist - rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz - @rm -f $(PACKAGE)-$(VERSION).tar.gz + rm -rf *.cache *~ + find . -type f -name Makefile -delete + find . -type f -name Makefile.in -delete .PHONY: ChangeLog @@ -1053,25 +1190,24 @@ ThunarBulkRename: ThunarBulkRename.in Makefile $(AM_V_GEN) ( \ rm -f ThunarBulkRename.gen ThunarBulkRename \ - && sed -e "s,\@bindir\@,$(bindir),g" \ + && $(SED) -e "s,\@bindir\@,$(bindir),g" \ < $(srcdir)/ThunarBulkRename.in \ > ThunarBulkRename.gen \ && mv ThunarBulkRename.gen ThunarBulkRename \ ) - -ThunarHelp: ThunarHelp.in Makefile - $(AM_V_GEN) ( \ - rm -f ThunarHelp.gen ThunarHelp \ - && sed -e "s,\@docdir\@,$(docdir),g" \ - < $(srcdir)/ThunarHelp.in \ - > ThunarHelp.gen \ - && mv ThunarHelp.gen ThunarHelp \ - ) %.desktop.in: %.desktop.in.in - $(AM_V_GEN) sed -e "s,\@libdir\@,$(libdir),g" < $< > $@ + $(AM_V_GEN) $(SED) -e "s,\@HELPERDIR\@,$(HELPER_PATH_PREFIX),g" < $< > $@ @INTLTOOL_DESKTOP_RULE@ + +# +# .appdata +# +@INTLTOOL_XML_RULE@ @HAVE_DBUS_TRUE@%.service: %.service.in -@HAVE_DBUS_TRUE@ $(AM_V_GEN) sed -e "s,\@bindir\@,$(bindir),g" < $< > $@ +@HAVE_DBUS_TRUE@ $(AM_V_GEN) $(SED) -e "s,\@bindir\@,$(bindir),g" < $< > $@ +%.policy.in: %.policy.in.in + sed -e "s,\@bindir\@,$(bindir),g" < $< > $@ +@INTLTOOL_POLICY_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. diff -Nru thunar-1.2.3/missing thunar-1.6.10/missing --- thunar-1.2.3/missing 2011-09-20 20:28:11.000000000 +0000 +++ thunar-1.6.10/missing 2015-05-22 20:47:31.000000000 +0000 @@ -1,11 +1,10 @@ #! /bin/sh -# Common stub for a few missing GNU programs while installing. +# Common wrapper for a few potentially missing GNU programs. -scriptversion=2009-04-28.21; # UTC +scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -26,69 +25,40 @@ # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" + echo 1>&2 "Try '$0 --help' for more information" exit 1 fi -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi +case $1 in -msg="missing on your system" + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man -Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and -\`g' are ignored when checking the name. +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. Send bug reports to ." exit $? @@ -100,272 +70,141 @@ ;; -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; - - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; +# Run the given program, remember its exit status. +"$@"; st=$? - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; +# If it succeeded, we are done. +test $st -eq 0 && exit 0 - autom4te*) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi -exit 0 +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -Nru thunar-1.2.3/mkinstalldirs thunar-1.6.10/mkinstalldirs --- thunar-1.2.3/mkinstalldirs 2011-09-20 20:28:17.000000000 +0000 +++ thunar-1.6.10/mkinstalldirs 1970-01-01 00:00:00.000000000 +0000 @@ -1,162 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy - -scriptversion=2009-04-28.21; # UTC - -# Original author: Noah Friedman -# Created: 1993-05-16 -# Public domain. -# -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' -IFS=" "" $nl" -errstatus=0 -dirmode= - -usage="\ -Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... - -Create each directory DIR (with mode MODE, if specified), including all -leading file name components. - -Report bugs to ." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" - exit $? - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --version) - echo "$0 $scriptversion" - exit $? - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and -# mkdir -p a/c at the same time, both will detect that a is missing, -# one will create a, then the other will try to create a and die with -# a "File exists" error. This is a problem when calling mkinstalldirs -# from a parallel make. We use --version in the probe to restrict -# ourselves to GNU mkdir, which is thread-safe. -case $dirmode in - '') - if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - test -d ./-p && rmdir ./-p - test -d ./--version && rmdir ./--version - fi - ;; - *) - if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && - test ! -d ./--version; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - else - # Clean up after NextStep and OpenStep mkdir. - for d in ./-m ./-p ./--version "./$dirmode"; - do - test -d $d && rmdir $d - done - fi - ;; -esac - -for file -do - case $file in - /*) pathcomp=/ ;; - *) pathcomp= ;; - esac - oIFS=$IFS - IFS=/ - set fnord $file - shift - IFS=$oIFS - - for d - do - test "x$d" = x && continue - - pathcomp=$pathcomp$d - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr= - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp=$pathcomp/ - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff -Nru thunar-1.2.3/NEWS thunar-1.6.10/NEWS --- thunar-1.2.3/NEWS 2011-09-20 20:27:10.000000000 +0000 +++ thunar-1.6.10/NEWS 2015-05-22 20:45:25.000000000 +0000 @@ -1,41 +1,509 @@ -1.2.3 +1.6.10 +====== +- Do not track thunar/thunar-marshal.{c,h} +- Remove Makefile and Makefile.in files when running distclean +- Remove subversion $Id$ tags +- Really fix trash state at startup (bug #9513 and #11913) +- Use proper return type for thunar_file_reload (bug #11913) +- Revert "Fix loading the trash bin status at startup (bug #9513)" + +1.6.9 ===== -- Use glib functions for get/set cwd (bug #7522). -- Revert "Speed up initial start by loading the network item later - (bug #7373)." -- Docs: On installation create relative paths in symlinks to images. -- Revert "Fix crash when opening a mountable drive with no media - (bug #7308)." +- Fix ThunarBulkRename script not supporting spaces (bug #9713) (Harald Judt) +- Use "Name" column for drag & drop instead of first column (bug #11905) (Harald Judt) +- Update the path entry icon when current file changes (Harald Judt) +- Revert changes for restoring the trash in the session client (bug #9513) (Harald Judt) +- Fix loading the trash bin status at startup (bug #9513) (Harald Judt) +- Turn off building gtk-docs API reference (Harald Judt) +- Fix cppcheck warning about uninitialized variable (Harald Judt) +- Disable "Set as default application" by default in the chooser dialog (bug #10548) (Harald Judt) +- Remember chosen application in the chooser dialog as last used (Harald Judt) +- Remember the last used application when opening files (Harald Judt) +- Fix reload when file is replaced with directory of the same name (Harald Judt) +- Do listen for G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED (bug #11896) (Harald Judt) +- Fix comments for toggle-menubar (Harald Judt) +- Allow opening by middle-click in tree view only for mounted devices and resources (Harald Judt) +- Keep selection in original tree view when middle-clicking for new tab/window (Harald Judt) +- Keep path selected after unmounting a device via KEY_Left (Harald Judt) +- Unmount device if collapsing a collapsed device tree with KEY_Left in the tree view (Harald Judt) +- Fix wrong network icon shown in tree view (Harald Judt) +- Fix tree view opening mounted devices in new tab (Harald Judt) +- Use only open selection instead of open action with KEY_Up and KEY_Down (Harald Judt) +- Fix assertion when hitting KEY_Left on a top-level item in the tree view (Harald Judt) +- Revert workaround for desktop toplevel item in the tree view (Harald Judt) +- Always select the proper toplevel item in the thunar tree view (Harald Judt) +- Unescape URI in history error message (Harald Judt) +- Remove unmounted files from history when going back or forward (Harald Judt) +- Translation updates: Basque, French, Galician + +1.6.8 +===== +- Watch for CHANGES_DONE_HINT instead of CHANGED and ATTRIBUTE_CHANGED (bug #8377) (Harald Judt) +- Shortcut view: Fix "selection in selection" graphical bug when renaming shortcut (Harald Judt) +- Fix broken shortcut renaming (bug #11885) (Harald Judt) +- Unescape URIs in the shortcut view (bug #10831) (Harald Judt) +- Fix compiler warning because of missing curly braces (Harald Judt) +- Fix compilation error because of wrong variable name (Harald Judt) +- Fix unescaping of local paths in path entry (bug #8190) (Harald Judt) +- Fix escaping and unescaping URI in path entry (bug #8910) (Harald Judt) +- Let the tree view keep the focus when clicking on an item (bug #11863) (Harald Judt) +- Fix switching to the 10th tab via -<0> keyboard shortcut (Harald Judt) +- Fix removal of a directory wrongly affecting the current tab (bug #10981) (Harald Judt) +- Keep the scroll position when restoring the file selection (Harald Judt) +- Restore selection only when rows-reordered signal is received (bug #11855) (Harald Judt) +- For folders copied always append "copy #" to the end of their names (bug #11862) (Harald Judt) +- Update F5 binding for new ThunarWindow::reload signal (Evangelos Foutras) +- Do not perform the complete folder reload in idle (bug #11849) (Harald Judt) +- Coverity CID 60623: Unused value (Harald Judt) +- Coverity CID 60621: Missing return statement (Harald Judt) +- Coverity CID 60620: Explicit null dereferenced (Harald Judt) +- Coverity CID 60619: Explicit null dereferenced (Harald Judt) +- Coverity CID 60617: Unchecked return value (Harald Judt) +- Remove unused variable in thunar_standard_view_set_history (Harald Judt) +- Remove startup notification dependencies (bug #11837) (Harald Judt) +- Translation updates: Galician, German, Lithuanian + +1.6.7 +===== +- Improve drag & drop and selecting in the details view (bug #11605) (Harald Judt) +- Let row changes accumulate a bit before restoring selection (Harald Judt) +- Implement reloading file information on manual reload (Harald Judt) +- Extend reload functions to allow a full reload (Harald Judt) +- Check in thunar-marshal with new _thunar_marshal_BOOLEAN__BOOLEAN (Harald Judt) +- Reload files changed by jobs in an idle loop (bug #11008) (Harald Judt) +- Refactor code for moving thumbnail cache file on renames/moves (Harald Judt) +- Rework thunar_file_monitor to properly register moved files (Harald Judt) +- Add function to reload parent file of a file (Harald Judt) +- Fix updating file info for moved files (bug #11008) (Harald Judt) +- Revert "Refresh file info after getting it from cache (bug #11008)" (Harald Judt) +- Update the location bar after reload (bug #10518) (Harald Judt) +- Fix updating custom actions (bug #11749) (Harald Judt) +- Update rows on changes of case-sensitive and folders-first settings (Harald Judt) +- Fix typos and grammar mistakes in a few comments (Harald Judt) +- Make new windows inherit the history of the origin view (bug #5538) (Harald Judt) +- Make new tabs inherit the history of the origin view (bug #5538) (Harald Judt) +- Keep the history across view changes (bug #10171) (Harald Judt) +- Implement functions for copying the history of a view (Harald Judt) +- Rename tsv_restore_selection to tsv_select_after_row_deleted (Harald Judt) +- Redraw the details view on row changes (Harald Judt) +- Restore selection on row changes too (bug #9886) (Harald Judt) +- Improve mouse wheel zoom behaviour (Harald Judt) +- Remember and restore file selection on view changes (Harald Judt) +- Restore file selection when changing sort order (bug #9886) (Harald Judt) +- Update model with changed binary file size setting immediately (Harald Judt) +- Fix typo busy_pulse in thunar-shortcuts-model.c (Harald Judt) +- Fix typo in thunar-clipboard-manager (Harald Judt) +- Fix Gdk-CRITICAL error (Thaddaeus Tintenfisch) +- Clean up more files with make clean (Harald Judt) +- Rework usage of binary file size properties (bug #11450) (Harald Judt) +- Remove duplicate break statement in thunar-standard-view (Harald Judt) +- Fix compiler warning about shadowing 'basename' (bug #11633) (Matt Thirtytwo) +- thunar/thunar-dbus-service-infos.xml corrections (Thaddaeus Tintenfisch) +- Fix startup id handling for launch requests over D-Bus (bug #9646) (Thaddaeus Tintenfisch) +- Fallback to non-cached version of source file (bug #9142) (Thaddaeus Tintenfisch) +- Translation updates: Chinese (China), Croatian, English (Australia), French, German, + Greek, Italian, Lithuanian, Polish, Swedish, Ukrainian + +1.6.6 +===== +- Removed GNU extension -i from sed (Peter de Ridder) +- Bump default size of file properties dialog a bit (Harald Judt) +- Respect the "View new folders using" preference (bug #11606) (Harald Judt) +- Improve check for shell scripts and add hidden option for bug #7596 (Harald Judt) +- Fix some GTK_STOCK icon usages resulting in missing icons (bug #11608) (Jani Välimaa) +- plugins/thunar-wallpaper: Fix icon (Jani Välimaa) +- Fix icon name for folders and a memory leak (bug #11608) (Harald Judt) +- Also query for network location icons (Nick Schermer) +- Don't use deprecated function (Nick Schermer) +- Secure threading in the idle thumbnail loading (Nick Schermer) +- Sidepane treeview: Do not switch folder when clicking a row expander (Harald Judt) +- Fix cppcheck possible errors/warnings (Harald Judt) +- Hide template file extensions in context menu (bug #11571) (Thaddaeus Tintenfisch) +- thunar-wallpaper: Fix translation in applications other than thunar (Harald Judt) +- thunar-wallpaper: Check if file is really an image (bug #11565) (Thaddaeus Tintenfisch) +- Update another copyright string (Harald Judt) +- Fix endless rename loop in case of error on the properties dialog (bug #11557) (Harald Judt) +- Translation updates: Asturian, Bulgarian, Finnish, French, German, + Norwegian Bokmål, Romanian, Slovak, Spanish + +1.6.5 +===== +- Bump autotools versions +- Add .gitignore +- Do not execute but only open shell scripts by default (bug #7596) (Harald Judt) +- Fix typo in error message (Nick Schermer) +- Improve keyboard navigation for thunar-tree-view (bug #4519) (Harald Judt) +- Allow + middle click in shortcut and treeview panes (Harald Judt) +- Set correct dialog window hint for progress dialog (bug #11467) (Matt Thirtytwo) +- Refresh file info after getting it from cache (bug #11008) (Peter de Ridder) +- Remove unused enum for signal handlers (bug #11493) (Matt Thirtytwo) +- Simplify Makefile.am. Generated files are separated from typed source files (Matt Thirtytwo) +- thunar-tpa: Install desktop file to $(datadir)/xfce4/panel/plugins (Robby Workman) +- Fix anchor offset in xfce_dialog_show_help () function. (Olivier Duchateau) +- Properly handle m4 stuff (Harald Judt) +- TWP: Single-workspace-mode = TRUE is the default (Bug #11047) (Eric Koegel) +- thunar-wallpaper: Do not use escaped filenames for xfconf (Harald Judt) +- Use xfconf and handle xfdesktop's single workspace (Bug #11047) (Eric Koegel) +- Revert "Workaround for crashes on RHEL5" (Andrzej) +- Revert "Fallback to image surface, workaround for bug in Cairo/RENDER" (Andrzej) +- Renaming a file from another file manager, file disappears in Thunar window (bug #11430) (Andrzej) +- Make usage/free string more clear (bug #11345) (Harald Judt) +- Make single middle click open files and folders (bug #10587) (Harald Judt) +- Add a progressbar to the freespace indicator in the properties dialog (Harald Judt, Simon Steinbeiss) +- Change resize style in thunar-wallpaper plugin (Thaddaeus Tintenfisch) +- Add vim modeline. Remove obsolete '$Id$' line (Matt Thirtytwo) +- Right click context menu with wrong icon (bug #10652) (Andrzej) +- Translation updates + +1.6.4 +===== +- make distcheck fix (reference docs linking error) (Andrzej) +- Add support for binary file size units (bug #10864) (Andre Miranda) +- Strip trailing spaces/Github test (Nick) +- Fix case of Xfce in appdata description (Simon) +- Update intltool (Eric) +- Add pkexec policy (Bug #11122) (Eric) +- Remove trailing whitespace from Makefile to prevent warning (Simon) +- Add appdata file for Thunar (Bug 11172) (Eric) +- Check for thumbnails in the new location (Bug #11263) (Eric) +- Default application not respected with glib >= 2.41 (Bug #11212) (Guido) +- Add support for the GTK 3 bookmarks file (bug #10627) (Alistair) +- Update xfconf setting for thunar-wallpaper plugin (Eric) +- Update copyright. (Nick) +- thunar-tpa: fix libxfce4panel version checking macros (Andrzej) +- Fallback to image surface, workaround for bug in Cairo/RENDER (Andrzej) +- Fixed missing inode-directory/folder icons on old systems. (Andrzej) +- Change name of file copies (and links) (bug #7518). (Nick) +- Improve the extension selection to not match hidden names. (Nick) +- Safe accels 10 sec after changes (bug #10139). (Nick) +- Force icons on the toolbar (bug #10179). (Nick) +- Improve handling of renames (bug #10242). (Nick) +- Smarter file extension selecting (bug #10268). (Jeff Shipley) +- I18n: Remove broken / unsupported translations. (Nick) +- Force reference on files from the cache. (Nick) +- Drop README.thunarrc. (Nick) +- Translation updates. + +1.6.3 +===== +- Autotools updates. +- Allow keyboard shortcuts for user customizable actions (bug #1941). +- Prepend and later reverse for collecting selection. +- Some optimizations in renamer loop. +- Plug leak in file renamer (bug #9864). +- Escape name for sidepane tooltips (bug #10001). +- Revert "Remove image resolution from statusbar." +- Fix segfault when going back to removed directory (bug #9831). +- Translation updates: Arabic, Bulgarian, Catalan (Valencian), Czech, + Spanish (Castilian), French, Hebrew, Croatian, Hungarian, Indonesian, + Italian, Japanese, Kazakh, Korean, Dutch (Flemish), Norwegian + Nynorsk, Polish, Portuguese, Portuguese (Brazilian), Russian, + Slovenian, Serbian, Ukrainian, Chinese (China), Chinese (Taiwan). + +1.6.2 +===== +- Don't abort startup if dbus failed. +- Put * around string if * and ? are not used in the pattern. +- Revert "Remove right-click drag possibility (bug #3549)." +- Revert "Directly popup menus on selected items (bug #3550)." +- Update shortcuts headers when removing a shortcut (bug #9651). +- Implement tab middle click in location buttons (bug #9684). +- Add new tab option to right-click menu of location buttons. +- Small improvement in thumbnail frame. +- Key combos not working with location buttons (bug #9625). +- Open tree node if expanded and mounted (bug #9603). +- Use some more cairo renderering. +- Make Desktop in Go menu translatable (bug #9616). +- Send to menu not updated for directories (bug #9618). +- Fix freeze on /proc/kmsg. +- Show all volumes in the devices list. +- Removed translations: Dzongkha, Kazakh, Kurdish, Macedonian. +- Translation updates: Arabic, Czech, Italian, Japanese, + Georgian, Korean, Dutch (Flemish), Polish, Portuguese, + Russian, Ukrainian. + +1.6.1 +===== +- Fix bulk renamer url to the wiki. +- Show NoDisplay=true applications (bug #9595). +- Fast read content type of unreadable files (bug #9553). +- Submenu the sidepane visibility menu. +- Hide shortcut pane header when there are no items. +- Keybindings to switch to tab with Alt+N (bug #9585). +- Make tabs scrollable. +- Session-save mount operation passwords. +- Check trash status 2s after startup from session. +- Clear mutex to avoid memleak with 2.32 api. +- Fix file menu displacement after a forced update (bug #9604). +- Put remote bookmarks in places and improve icon loading. +- Use ThunarBrowser to resolve locations in launcher. +- Translation updates: Amharic, Arabic, Asturian, Belarusian, + Bengali, Catalan (Valencian), Czech, Danish, German, Dzongkha, Greek, + English (United Kingdom), Esperanto, Spanish (Castilian), Estonian, + Basque, Finnish, French, Galician, Hebrew, Croatian, Hungarian, + Indonesian, Icelandic, Italian, Japanese, Georgian, Kazakh, Korean, + Kurdish, Lithuanian, Latvian, Macedonian, Norwegian Bokmal, Dutch + (Flemish), Norwegian Nynorsk, Panjabi (Punjabi), Polish, Portuguese, + Portuguese (Brazilian), Romanian, Russian, Sinhala, Slovak, Albanian, + Serbian, Swedish, Telugu, Turkish, Uyghur, Ukrainian, Urdu, Urdu + (Pakistan), Vietnamese, Chinese (China), Chinese (Taiwan). + +1.6.0 +===== +- Drop spacing betweek Kind and icon in file properties. +- Make sure trash is loaded during session restore (bug #9513). +- Don't open a useless tab (bug #9519). +- Remove session file if there are no windows (bug #9519). +- Add special tooltip for the trash in shortcuts. +- Revert "Improve pervious commit.. (bug #9552). +- Slightly increase the progress dialog (bug #9545). +- Set icon names in go menu (bug #9559). +- Hide spinner when there's no activity (bug #9563). +- Fix sorting by type (bug #9549). +- Remove the display names from the emblems (bug #9548). +- Test if the application generated a thumbnail if not supported. +- Translation updates: Czech, Danish, German, Hebrew, Croatian, + Hungarian, Italian, Japanese, Dutch (Flemish), Polish, Portuguese, + Portuguese (Brazilian), Romanian, Russian, Ukrainian, Chinese + (Taiwan). + +1.5.3 +===== +- Re-add the has-handler check when inserting rows. +- Use g_object_notify_by_pspec in most places. +- Install GParamSpec properties at once in a couple of objects. +- Update the statusbar in a short timeout. +- Remove image resolution from statusbar. +- Fix supported applications for multiple files. +- Idle updating the launcher. +- Don't queue tumbler requests for non-regular files. +- Pass the correct emblem size to the icon factory. +- Store cairo surfaces on pixbufs. +- Right-click on not-selected row will show menu of current folder + in details view (bug #3386). +- Load content types on-demand and preload in an idle. +- Use origional date in properties page for images. +- Add option to only show local thumbnails. +- Translation updates: Arabic, Czech, German, Italian, Kazakh, + Korean, Polish, Portuguese, Russian, Ukrainian, Chinese (China), + Chinese (Taiwan). + +1.5.2 +===== +- Do not unref g_file_icon_get_file() file (bug #9439). +- Don't add duplicates of devices (bug #9440). +- Fix typo of Trash in standard view (bug #9437). +- Don't use deprecated g_thread_init(). +- Use GArray instead of GValueArray and new mutex API. +- Clear cached icon when trash changed (bug #9432). +- Also clear cache on reload of a file. +- Keep file permissions when renaming a desktop file. +- Write localized name of a desktop file (bug #8783). +- Fix back/forward gestures and 8/9 button events. +- Use seconds timers where possible. +- Idle selecting item in shortcuts pane. +- Do not set selection after removing files (bug #8780). +- Fix linking on Cygwin (bug #4561). +- Sort renamer list by clicking on name header (bug #2622). +- Always set the icons size of the toolbar. +- Make the entry the default location bar. +- Don't set weight in chooser model to light (bug #7688). +- Fallback to only default values if xfconf failed. +- Improve generating remote display names (bug #9442). +- Remove user directories and add bookmarks in go menu. +- Trigger callback function when opening unmounted locations (bug #9447). +- Don't add a bookmark to the same location twice. +- Also watch the bookmark files. +- Use stock home icons for ~. +- Do not freeze on new files outsize this directory (bug #9468). +- Some more optimizations in icon name loading. +- Don't include notify.h if not available (bug #9480). +- Add free space tooltip for devices. +- Use GSequence in the list model. +- Directly collect the full info namespace for ls dir. +- Drop unused check for icons of executables. +- Don't write empty session files. +- Add support for tabs in session saving. +- Translation updates: Amharic, Arabic, Asturian, Belarusian, + Bengali, Catalan (Valencian), Czech, Danish, German, Dzongkha, Greek, + English (United Kingdom), Esperanto, Spanish (Castilian), Estonian, + Basque, Finnish, French, Galician, Hebrew, Croatian, Hungarian, + Indonesian, Icelandic, Italian, Japanese, Georgian, Kazakh, Korean, + Kurdish, Lithuanian, Latvian, Macedonian, Norwegian Bokmal, Dutch + (Flemish), Norwegian Nynorsk, Panjabi (Punjabi), Polish, Portuguese, + Portuguese (Brazilian), Romanian, Russian, Sinhala, Slovak, Albanian, + Serbian, Swedish, Telugu, Turkish, Uyghur, Ukrainian, Urdu, Urdu + (Pakistan), Vietnamese, Chinese (China), Chinese (Taiwan). + +1.5.1 +===== +- Show custom commands again in the menus (bug #9169). +- Drop usage of glib 2.32 functions. +- Allow resizing of chooser dialog. +- Don't abort on non-utf8 charaters in path entry. +- Don't show drive icon for remote mounts in history. +- Release all ThunarFiles when closing a view, this should resolve + mounts that were empty after unmounting. +- Show tooltip uri/filename in history menu item. +- End with a / in the path entry. +- Add function to generate nice remote display names. +- Easy adding bookmarks for remote mounts. +- Do not call eject in thunar_device_volume_mount_finished. +- Reduce tumbler traffic on startup of Thunar. +- Use drive_stop in device handling. +- Put reload button in location entry. +- Create pull-down history buttons and remove arrows. +- Shortcut pane: Do not mount after eject (bug #9403). +- Use go-home icon name for menu and toolbar. +- Drop the separators in the toolbar. +- Extend history tooltips to describe functionality of the button. +- Avoid segfault with null mime-type (bug #8390). +- Implement tabs in Thunar (bug #6102). +- Do not try to mount a device twice in treeview (bug #9412). +- Keep delaying selecing files if not loaded yet (bug #7328). +- Slightly toned thumbnail frame. +- Make loading priority in shortcuts model higher. +- Collect properties at once in window_init. +- Use infobar for root warning in window. +- Option to set small toolbar icons (bug #3971). +- Avoid crash when toplevel window cannot be found (bug #9417). +- Revert "Remove XdndDirectSave0 protocol." (bug #9414). +- Rename filename of insecure desktop files (bug #8786). +- Cache pixmaps on the ThunarFile and drop ring buffer. +- Add lazy checks to thumbnailer. +- Add menu item for permanent delete. +- Only show "Move to Trash" if trash is supported. + + +1.5.0 +===== +- Add support for multiple selections in file preferences dialog. +- Depend on Gtk 2.24 and Glib 2.30. +- Implement selection inversion. +- Improve refresh feedback when using dnd between 2 windows. +- Resize rename dialog based on filename length (bug #7684). +- Force bulk renamer when Shift is pressed (bug #7684). +- Add a sentence case rename mode to sbr. +- Regenerate thumbnails on file changes (bug #8473). +- Hide recommended applications that are not visible (bug #9169). +- Sort recommended applications (bug #8927). +- Use system-file-manager icon-name in desktop file (bug #9128). +- Check mime type in desktop files in the sendto menu (bug #7392). +- Improvement in the file progress dialog. +- Show full template filename in menu (bug #6140). +- Store metadata (emblems) in GVFS's daemon. +- Use Path from desktop file as CWD (bug #5760). +- Add working directory entry to apr (bug #5760). +- Add hidden option to show full path in window title (bug #6412). +- Unset DBUS variables once registered (bug #8800). +- Only collect image data if the mime-type is image/* (bug #2913). +- Don't copy templates but create them (bug #8312). +- Add menu item to hide the menu bar. +- Improve statusbar selection text (bug #8989). +- Don't allow starting multiple daemons (bug #3814). +- Make massing plugin warnings non-fatal (bug #2604). +- Show transfer rate in transfer dialog (bug #8250). +- Check free space before copying (bug #5658). +- Port settings to xfconf. +- Handle null content-types when sorting (bug #8465). +- Scroll to first file with pattern select. +- Add secure desktop file launching (bug #5012). +- Use g_utf8_collate_key_for_filename for sorting (bug #7110). +- Only deep-count on the same filesystem. +- Don't force scrolling to the window edge. +- Translation updates: Amharic, Arabic, Asturian, Belarusian, + Bengali, Catalan (Valencian), Czech, Danish, German, Dzongkha, Greek, + English (United Kingdom), Esperanto, Spanish (Castilian), Estonian, + Basque, Finnish, French, Galician, Hebrew, Croatian, Hungarian, + Indonesian, Icelandic, Italian, Japanese, Georgian, Kazakh, Korean, + Kurdish, Lithuanian, Latvian, Macedonian, Norwegian Bokmal, Dutch + (Flemish), Norwegian Nynorsk, Panjabi (Punjabi), Polish, Portuguese, + Portuguese (Brazilian), Romanian, Russian, Sinhala, Slovak, Albanian, + Serbian, Swedish, Telugu, Turkish, Uyghur, Ukrainian, Urdu, Urdu + (Pakistan), Vietnamese, Chinese (China), Chinese (Taiwan). + +1.4.0 +===== +- Add a 64x64 and 128x128 icon for Thunar. +- Move away from the hard-coded size of window icons (bug #8626). +- Link against gmodule (bug #8467). +- Don't use deprecated g_format_size_for_display. +- Don't use g_atexit anymore. +- Use mount operations with eject and unmount. +- Unref mount operation from sendto menu. +- Fix invalid replacement from previous commit (bug #8779). +- Translation updates: German, English (United Kingdom), Croatian, + Hungarian, Japanese, Kazakh, Korean, Dutch (Flemish), Polish, + Portuguese (Brazilian), Romanian, Chinese (China). + +1.3.2 +===== +- Support small property for trash panel applet (bug #8391). +- Make uca.xml readable for humans. +- Enable startup-notify in the uca example. +- Hide thumb queue cleanup debug and plug memleak. +- Plug more leaks in thumbnailer. +- Reload ThunarView if job finishes. +- Use macro to get uri where possible. +- Free string in progress view. +- Fix file selection problems. +- Free module list in provider factory. +- Use a normal ExoBinding to avoid mem leak. +- Bump 4util and 4ui dependencies. +- Use macro to search for sed (bug #8686). +- Translation updates: Catalan (Valencian), Czech, Greek, Basque, + Finnish, French, Galician, Croatian, Japanese, Korean, Dutch + (Flemish), Norwegian Nynorsk, Portuguese, Portuguese (Brazilian), + Turkish. + +1.3.1 +===== +- Fix crash when trying to thumbnail a file with unknown content type. +- Fix properties dialog crash with files with unknown content type. +- Fix crash when hovering a CD drive with a special icon (bug #7309). + Reported and solved by Ambroz Bizjak. +- Use portable abicheck.sh from xfconf. +- Avoid segfaults due to interpreting display names as format strings. +- Improve the UI according to bugs #7496 and #7497. +- Treat backup files as hidden as with thunar-vfs (bug #7615). - Fix crash when opening a mountable drive with no media (bug #7308) in a way that does not break SMB shares (#bug 7774). Patches by Ambroz Bizjak and Axel Sommerfeldt. - Fix segfaults in case icons are missing or not found (bug #7880). -- Allow exec bit of MS-DOS executables and MSI to be changed +- Allow exec bit of MS-DOS executables and MSI to be changed (bug #3545). - Prevent falling back to an unexpected locale (bug #4746). Patch by Martin Jürgens and Mark Trompell. - Show translated names of desktop files (bug #7393). Fix by Lionel Le Folgoc. -- Translation updates: Basque, Chinese (China), Dutch (Flemish), - Italian, Kazakh, Korean, Malay, Russian, Slovak, Spanish (Castilian), - Telugu. - -1.2.2 -===== -- Fix crash when trying to thumbnail a file with unknown content type. -- Fix properties dialog crash with files with unknown content type. -- Fix crash when opening a mountable drive with no media (bug #7308). - Reported and solved by Ambroz Bizjak. -- Fix crash when hovering a CD drive with a special icon (bug #7309). - Reported and solved by Ambroz Bizjak. -- Treat backup files as hidden as with thunar-vfs (bug #7615). -- Speed up initial start by loading the network item later (bug #7373). -- Another "Don't interpret file display names as format strings" fix. -- Translation updates: Belarusian, Chinese (China), Danish, Dutch - (Flemish), Finnish, Greek, Japanese, Portuguese, Portuguese - (Brazilian), Romanian, Russian, Slovak, Swedish, Turkish, Ukrainian. +- Fix sorting of filenames with large numbers (bug #5356). + Patch by Eric Koegel. +- Respect ThunarIconFactory::show-thumbnails. Fixes a regression. +- Fix crash when removing an ancestor of the current folder (bug #8168). +- Fix handling %U when launching multiple files with an app (bug #7456). +- Improve sorting of file names that include numbers (bug #5359, + bug #8022, #4269, #5286). +- Add a "Skip All" button to the file overwrite dialog (bug #4263). +- Compress icons and images. +- Remove the manual. +- Use 32 instead of 36 pixels for small icons. +- Show Thunar settings in category. +- Don't update UI more then fourth per second in deep count job. +- Fix sorting of applications in chooser dialog. +- Depend on Gtk 2.20 and Glib 2.24 and drop some workarounds. +- Fix removing custom application launchers again. +- Prevent looping in some renamers. +- Fix segfault when plugin returns a NULL suffix. +- Remove spec file, rpm build and update libtool. +- Lowercase the thunar executable and install a Thunar symlink. +- Make the clipboard persistence (bug #7060). +- Use glib functions for get/set cwd (bug #7522). +- Don't interpret file display names as format strings +- Translation updates (ar, ca, cs, da, de, el, es, eu, fi, fr, gl, he, + hr, hu, id, is, it, kk, ko, lt, nl, nn, pl, pt, pt_BR, ro, ru, sk, + sv, te, tr, uk, zh_CN, zh_TW). -1.2.1 +1.3.0 ===== - Paste files in correct order (bug #6504). - Fix truncated strings when loading and storing emblems (bug #7171). @@ -47,14 +515,22 @@ - Only change the Name field when renaming desktop files (bug #7155). - Force desktop file reload after changing the Name field. - Fix memory leak caused by not destroying the rename job. -- Translation updates: Galician, Romanian, Swedish. +- Allow installation of helper scripts in a custom location using the + --with-helper-path-prefix=PATH configure option. +- Improve thumbnailing by avoid sending thumbnail requests while the + user is scrolling in a directory. +- Cancel thumbnail requests when leaving a directory. +- Avoid regenerating thumbnails when files are copied, moved, linked + or trashed. +- Update the thumbnail cache when files are deleted permanently. +- Translation updates: Galician, Polish, Portuguese, Romanian, Serbian. 1.2.0 ===== - Properly try alternative names when creating links (bug #6867). - Only show the "Eject Volume" context menu action when the volume is present. -- Translation updates: Arabic, French, Galician, Greek, Romanian, +- Translation updates: Arabic, French, Galician, Greek, Romanian, Turkish. 1.1.6 @@ -70,7 +546,7 @@ 1.1.5 ===== -- Make .desktop entries installed by Thunar validate against +- Make .desktop entries installed by Thunar validate against desktop-file-utils 0.16 (bug #6655). Patch by Samuli Suominen. - Fix missing instruction to load the sendto model (bug #6762). - Fix the sample D-Bus client for the org.xfce.FileManager interface. @@ -96,14 +572,14 @@ - Avoid GIO 2.20 function calls. - Properly avoid launching the file manager recursively by checking the GAppInfo id/name. -- Translation updates: Hungarian, German, Slovak, +- Translation updates: Hungarian, German, Slovak, Portuguese (Brazilian), Chinese (China), Greek, Catalan (Valencian), Italian, Basque, Spanish (Castilian), Kazakh, Portuguese, Hebrew, - Galician, Indonesian, Chinese (Taiwan), Japanese. + Galician, Indonesian, Chinese (Taiwan), Japanese. 1.1.4 ===== -- Add startup parameter to the D-Bus call in thunar-settings (bug +- Add startup parameter to the D-Bus call in thunar-settings (bug #6768). This will make thunar-settings start again. - Properly hide partitions that are not mountable by the user. - Translation updates: Japanese, Finnish. @@ -119,16 +595,16 @@ #6167). - Replace - with _ in parameter names of the D-Bus API. - Do not display shadowed mounts. -- Provide an eject button for removable and present volumes in the +- Provide an eject button for removable and present volumes in the side pane (bug #3658). - Auto-select previously selected subdirectories when walking through the history (bug #5538). -- Delay applying the file selection until folders have finished +- Delay applying the file selection until folders have finished loading. - Fix broken compilation with -Wl,-z,defs and -Wl,--as-needed. - Translation updates: Basque, Chinese (Taiwan), Ukrainian, Galician, Portuguese, Catalan (Valencian), Finnish, Italian, Danish, Kazakh, - Swedish, Greek, Japanese, Russian, German, Uyghur. + Swedish, Greek, Japanese, Russian, German, Uyghur. 1.1.2 ===== diff -Nru thunar-1.2.3/org.xfce.thunar.policy.in.in thunar-1.6.10/org.xfce.thunar.policy.in.in --- thunar-1.2.3/org.xfce.thunar.policy.in.in 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/org.xfce.thunar.policy.in.in 2015-05-22 13:25:36.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + + Thunar + http://xfce.org/ + system-file-manager + + + + + <_description>Run Thunar as root + <_message>Authentication is required to run Thunar as root. + + no + auth_admin + auth_admin + + @bindir@/thunar + true + + + diff -Nru thunar-1.2.3/pixmaps/Makefile.am thunar-1.6.10/pixmaps/Makefile.am --- thunar-1.2.3/pixmaps/Makefile.am 2010-11-14 01:35:47.000000000 +0000 +++ thunar-1.6.10/pixmaps/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -# $Id$ - pixmapsdir = $(datadir)/pixmaps/Thunar pixmaps_DATA = \ Thunar-about-logo.png diff -Nru thunar-1.2.3/pixmaps/Makefile.in thunar-1.6.10/pixmaps/Makefile.in --- thunar-1.2.3/pixmaps/Makefile.in 2011-09-20 20:28:14.000000000 +0000 +++ thunar-1.6.10/pixmaps/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,9 +14,52 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,24 +80,35 @@ host_triplet = @host@ target_triplet = @target@ subdir = pixmaps -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -77,8 +130,15 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(pixmapsdir)" DATA = $(pixmaps_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -138,6 +198,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -145,11 +209,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -157,7 +217,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -169,6 +229,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -180,10 +244,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -203,6 +263,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -245,7 +306,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -253,12 +313,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -296,6 +357,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -368,8 +431,11 @@ -rm -rf .libs _libs install-pixmapsDATA: $(pixmaps_DATA) @$(NORMAL_INSTALL) - test -z "$(pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)" @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pixmapsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -383,14 +449,12 @@ @$(NORMAL_UNINSTALL) @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pixmapsdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pixmapsdir)" && rm -f $$files -tags: TAGS -TAGS: + dir='$(DESTDIR)$(pixmapsdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: -ctags: CTAGS -CTAGS: +cscope cscopelist: distdir: $(DISTFILES) @@ -440,10 +504,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -524,16 +593,16 @@ .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-pixmapsDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-pixmapsDATA + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pixmapsDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-pixmapsDATA # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/pixmaps/Thunar-about-logo.png and /tmp/6ogtt7rGai/thunar-1.6.10/pixmaps/Thunar-about-logo.png differ diff -Nru thunar-1.2.3/plugins/Makefile.am thunar-1.6.10/plugins/Makefile.am --- thunar-1.2.3/plugins/Makefile.am 2011-03-27 13:29:31.000000000 +0000 +++ thunar-1.6.10/plugins/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,3 @@ -# $Id$ - if THUNAR_PLUGIN_APR THUNAR_APR_SUBDIRS = thunar-apr endif diff -Nru thunar-1.2.3/plugins/Makefile.in thunar-1.6.10/plugins/Makefile.in --- thunar-1.2.3/plugins/Makefile.in 2011-09-20 20:28:14.000000000 +0000 +++ thunar-1.6.10/plugins/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 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,9 +13,52 @@ # PARTICULAR PURPOSE. @SET_MAKE@ - -# $Id$ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,36 +79,68 @@ host_triplet = @host@ target_triplet = @target@ subdir = plugins -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = thunar-apr thunar-sbr thunar-tpa thunar-uca \ @@ -155,6 +229,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -162,11 +240,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -174,7 +248,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -186,6 +260,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -197,10 +275,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -220,6 +294,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -262,7 +337,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -270,12 +344,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -313,6 +388,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -391,22 +468,25 @@ -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -421,57 +501,12 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ @@ -487,12 +522,7 @@ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -504,15 +534,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -521,6 +547,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -557,13 +598,10 @@ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -598,10 +636,15 @@ installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -679,22 +722,20 @@ uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive +.MAKE: $(am__recursive_targets) install-am install-strip -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/plugins/thunar-apr/Makefile.am thunar-1.6.10/plugins/thunar-apr/Makefile.am --- thunar-1.2.3/plugins/thunar-apr/Makefile.am 2010-09-05 21:55:20.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,6 +1,4 @@ -# $Id$ - -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_builddir)/plugins \ -I$(top_srcdir) \ @@ -36,6 +34,7 @@ thunar_apr_la_LDFLAGS = \ -avoid-version \ -export-dynamic \ + -no-undefined \ -export-symbols-regex "^thunar_extension_(shutdown|initialize|list_types)" \ -module \ $(PLATFORM_LDFLAGS) @@ -49,7 +48,7 @@ thunar_apr_la_DEPENDENCIES = \ $(top_builddir)/thunarx/libthunarx-$(THUNARX_VERSION_API).la - + EXTRA_DIST = \ README diff -Nru thunar-1.2.3/plugins/thunar-apr/Makefile.in thunar-1.6.10/plugins/thunar-apr/Makefile.in --- thunar-1.2.3/plugins/thunar-apr/Makefile.in 2011-09-20 20:28:14.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,9 +14,52 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,13 +80,14 @@ host_triplet = @host@ target_triplet = @target@ subdir = plugins/thunar-apr -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -69,6 +112,12 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(extensionsdir)" LTLIBRARIES = $(extensions_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -79,12 +128,25 @@ thunar_apr_la-thunar-apr-private.lo \ thunar_apr_la-thunar-apr-provider.lo thunar_apr_la_OBJECTS = $(am_thunar_apr_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = thunar_apr_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(thunar_apr_la_CFLAGS) \ $(CFLAGS) $(thunar_apr_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -95,24 +157,42 @@ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(thunar_apr_la_SOURCES) DIST_SOURCES = $(thunar_apr_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -174,6 +254,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -181,11 +265,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -193,7 +273,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -205,6 +285,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -216,10 +300,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -239,6 +319,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -281,7 +362,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -289,12 +369,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -332,6 +413,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -356,7 +439,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xfconf_query_found = @xfconf_query_found@ -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_builddir)/plugins \ -I$(top_srcdir) \ @@ -392,6 +475,7 @@ thunar_apr_la_LDFLAGS = \ -avoid-version \ -export-dynamic \ + -no-undefined \ -export-symbols-regex "^thunar_extension_(shutdown|initialize|list_types)" \ -module \ $(PLATFORM_LDFLAGS) @@ -443,9 +527,9 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-extensionsLTLIBRARIES: $(extensions_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(extensionsdir)" || $(MKDIR_P) "$(DESTDIR)$(extensionsdir)" @list='$(extensions_LTLIBRARIES)'; test -n "$(extensionsdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ @@ -453,6 +537,8 @@ else :; fi; \ done; \ test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(extensionsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(extensionsdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(extensionsdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(extensionsdir)"; \ } @@ -468,13 +554,16 @@ clean-extensionsLTLIBRARIES: -test -z "$(extensions_LTLIBRARIES)" || rm -f $(extensions_LTLIBRARIES) - @list='$(extensions_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -thunar-apr.la: $(thunar_apr_la_OBJECTS) $(thunar_apr_la_DEPENDENCIES) + @list='$(extensions_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +thunar-apr.la: $(thunar_apr_la_OBJECTS) $(thunar_apr_la_DEPENDENCIES) $(EXTRA_thunar_apr_la_DEPENDENCIES) $(AM_V_CCLD)$(thunar_apr_la_LINK) -rpath $(extensionsdir) $(thunar_apr_la_OBJECTS) $(thunar_apr_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -493,74 +582,65 @@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< thunar_apr_la-thunar-apr-abstract-page.lo: thunar-apr-abstract-page.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -MT thunar_apr_la-thunar-apr-abstract-page.lo -MD -MP -MF $(DEPDIR)/thunar_apr_la-thunar-apr-abstract-page.Tpo -c -o thunar_apr_la-thunar-apr-abstract-page.lo `test -f 'thunar-apr-abstract-page.c' || echo '$(srcdir)/'`thunar-apr-abstract-page.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_apr_la-thunar-apr-abstract-page.Tpo $(DEPDIR)/thunar_apr_la-thunar-apr-abstract-page.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-apr-abstract-page.c' object='thunar_apr_la-thunar-apr-abstract-page.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-apr-abstract-page.c' object='thunar_apr_la-thunar-apr-abstract-page.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-abstract-page.lo `test -f 'thunar-apr-abstract-page.c' || echo '$(srcdir)/'`thunar-apr-abstract-page.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-abstract-page.lo `test -f 'thunar-apr-abstract-page.c' || echo '$(srcdir)/'`thunar-apr-abstract-page.c thunar_apr_la-thunar-apr-desktop-page.lo: thunar-apr-desktop-page.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -MT thunar_apr_la-thunar-apr-desktop-page.lo -MD -MP -MF $(DEPDIR)/thunar_apr_la-thunar-apr-desktop-page.Tpo -c -o thunar_apr_la-thunar-apr-desktop-page.lo `test -f 'thunar-apr-desktop-page.c' || echo '$(srcdir)/'`thunar-apr-desktop-page.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_apr_la-thunar-apr-desktop-page.Tpo $(DEPDIR)/thunar_apr_la-thunar-apr-desktop-page.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-apr-desktop-page.c' object='thunar_apr_la-thunar-apr-desktop-page.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-apr-desktop-page.c' object='thunar_apr_la-thunar-apr-desktop-page.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-desktop-page.lo `test -f 'thunar-apr-desktop-page.c' || echo '$(srcdir)/'`thunar-apr-desktop-page.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-desktop-page.lo `test -f 'thunar-apr-desktop-page.c' || echo '$(srcdir)/'`thunar-apr-desktop-page.c thunar_apr_la-thunar-apr-image-page.lo: thunar-apr-image-page.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -MT thunar_apr_la-thunar-apr-image-page.lo -MD -MP -MF $(DEPDIR)/thunar_apr_la-thunar-apr-image-page.Tpo -c -o thunar_apr_la-thunar-apr-image-page.lo `test -f 'thunar-apr-image-page.c' || echo '$(srcdir)/'`thunar-apr-image-page.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_apr_la-thunar-apr-image-page.Tpo $(DEPDIR)/thunar_apr_la-thunar-apr-image-page.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-apr-image-page.c' object='thunar_apr_la-thunar-apr-image-page.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-apr-image-page.c' object='thunar_apr_la-thunar-apr-image-page.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-image-page.lo `test -f 'thunar-apr-image-page.c' || echo '$(srcdir)/'`thunar-apr-image-page.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-image-page.lo `test -f 'thunar-apr-image-page.c' || echo '$(srcdir)/'`thunar-apr-image-page.c thunar_apr_la-thunar-apr-plugin.lo: thunar-apr-plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -MT thunar_apr_la-thunar-apr-plugin.lo -MD -MP -MF $(DEPDIR)/thunar_apr_la-thunar-apr-plugin.Tpo -c -o thunar_apr_la-thunar-apr-plugin.lo `test -f 'thunar-apr-plugin.c' || echo '$(srcdir)/'`thunar-apr-plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_apr_la-thunar-apr-plugin.Tpo $(DEPDIR)/thunar_apr_la-thunar-apr-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-apr-plugin.c' object='thunar_apr_la-thunar-apr-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-apr-plugin.c' object='thunar_apr_la-thunar-apr-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-plugin.lo `test -f 'thunar-apr-plugin.c' || echo '$(srcdir)/'`thunar-apr-plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-plugin.lo `test -f 'thunar-apr-plugin.c' || echo '$(srcdir)/'`thunar-apr-plugin.c thunar_apr_la-thunar-apr-private.lo: thunar-apr-private.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -MT thunar_apr_la-thunar-apr-private.lo -MD -MP -MF $(DEPDIR)/thunar_apr_la-thunar-apr-private.Tpo -c -o thunar_apr_la-thunar-apr-private.lo `test -f 'thunar-apr-private.c' || echo '$(srcdir)/'`thunar-apr-private.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_apr_la-thunar-apr-private.Tpo $(DEPDIR)/thunar_apr_la-thunar-apr-private.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-apr-private.c' object='thunar_apr_la-thunar-apr-private.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-apr-private.c' object='thunar_apr_la-thunar-apr-private.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-private.lo `test -f 'thunar-apr-private.c' || echo '$(srcdir)/'`thunar-apr-private.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-private.lo `test -f 'thunar-apr-private.c' || echo '$(srcdir)/'`thunar-apr-private.c thunar_apr_la-thunar-apr-provider.lo: thunar-apr-provider.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -MT thunar_apr_la-thunar-apr-provider.lo -MD -MP -MF $(DEPDIR)/thunar_apr_la-thunar-apr-provider.Tpo -c -o thunar_apr_la-thunar-apr-provider.lo `test -f 'thunar-apr-provider.c' || echo '$(srcdir)/'`thunar-apr-provider.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_apr_la-thunar-apr-provider.Tpo $(DEPDIR)/thunar_apr_la-thunar-apr-provider.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-apr-provider.c' object='thunar_apr_la-thunar-apr-provider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-apr-provider.c' object='thunar_apr_la-thunar-apr-provider.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-provider.lo `test -f 'thunar-apr-provider.c' || echo '$(srcdir)/'`thunar-apr-provider.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_apr_la_CFLAGS) $(CFLAGS) -c -o thunar_apr_la-thunar-apr-provider.lo `test -f 'thunar-apr-provider.c' || echo '$(srcdir)/'`thunar-apr-provider.c mostlyclean-libtool: -rm -f *.lo @@ -568,26 +648,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -599,15 +668,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -616,6 +681,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -667,10 +747,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -755,20 +840,20 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean \ - clean-extensionsLTLIBRARIES clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-extensionsLTLIBRARIES install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-extensionsLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-extensionsLTLIBRARIES clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-extensionsLTLIBRARIES \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-extensionsLTLIBRARIES # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-abstract-page.c thunar-1.6.10/plugins/thunar-apr/thunar-apr-abstract-page.c --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-abstract-page.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-abstract-page.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-abstract-page.h thunar-1.6.10/plugins/thunar-apr/thunar-apr-abstract-page.h --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-abstract-page.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-abstract-page.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-desktop-page.c thunar-1.6.10/plugins/thunar-apr/thunar-apr-desktop-page.c --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-desktop-page.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-desktop-page.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -41,7 +41,7 @@ #include /* use g_access() on win32 */ -#if GLIB_CHECK_VERSION(2,8,0) && defined(G_OS_WIN32) +#if defined(G_OS_WIN32) #include #else #define g_access(filename, mode) (access ((filename), (mode))) @@ -78,6 +78,7 @@ GtkWidget *description_entry; GtkWidget *command_entry; + GtkWidget *path_entry; GtkWidget *url_entry; GtkWidget *comment_entry; GtkWidget *snotify_button; @@ -93,6 +94,7 @@ */ gchar *description_text; gchar *command_text; + gchar *path_text; gchar *url_text; gchar *comment_text; }; @@ -141,7 +143,7 @@ attribute->end_index = -1; pango_attr_list_insert (attr_list, attribute); - table = gtk_table_new (7, 2, FALSE); + table = gtk_table_new (8, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table), 12); gtk_table_set_row_spacings (GTK_TABLE (table), 0); gtk_container_add (GTK_CONTAINER (desktop_page), table); @@ -192,17 +194,39 @@ atk_relation_set_add (relations, relation); g_object_unref (G_OBJECT (relation)); - label = gtk_label_new (_("URL:")); + label = gtk_label_new (_("Working Directory:")); gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); gtk_label_set_attributes (GTK_LABEL (label), attr_list); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (label); + desktop_page->path_entry = gtk_entry_new (); + gtk_widget_set_tooltip_text (desktop_page->path_entry, _("The working directory for the program.")); + g_signal_connect (G_OBJECT (desktop_page->path_entry), "activate", G_CALLBACK (thunar_apr_desktop_page_activated), desktop_page); + g_signal_connect (G_OBJECT (desktop_page->path_entry), "focus-out-event", G_CALLBACK (thunar_apr_desktop_page_focus_out_event), desktop_page); + gtk_table_attach (GTK_TABLE (table), desktop_page->path_entry, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); + gtk_widget_show (desktop_page->path_entry); + + exo_binding_new (G_OBJECT (desktop_page->path_entry), "visible", G_OBJECT (label), "visible"); + + /* set Atk label relation for the entry */ + object = gtk_widget_get_accessible (desktop_page->path_entry); + relations = atk_object_ref_relation_set (gtk_widget_get_accessible (label)); + relation = atk_relation_new (&object, 1, ATK_RELATION_LABEL_FOR); + atk_relation_set_add (relations, relation); + g_object_unref (G_OBJECT (relation)); + + label = gtk_label_new (_("URL:")); + gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); + gtk_label_set_attributes (GTK_LABEL (label), attr_list); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, GTK_FILL, GTK_FILL, 0, 3); + gtk_widget_show (label); + desktop_page->url_entry = gtk_entry_new (); gtk_widget_set_tooltip_text (desktop_page->url_entry, _("The URL to access.")); g_signal_connect (G_OBJECT (desktop_page->url_entry), "activate", G_CALLBACK (thunar_apr_desktop_page_activated), desktop_page); g_signal_connect (G_OBJECT (desktop_page->url_entry), "focus-out-event", G_CALLBACK (thunar_apr_desktop_page_focus_out_event), desktop_page); - gtk_table_attach (GTK_TABLE (table), desktop_page->url_entry, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); + gtk_table_attach (GTK_TABLE (table), desktop_page->url_entry, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (desktop_page->url_entry); exo_binding_new (G_OBJECT (desktop_page->url_entry), "visible", G_OBJECT (label), "visible"); @@ -217,7 +241,7 @@ label = gtk_label_new (_("Comment:")); gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); gtk_label_set_attributes (GTK_LABEL (label), attr_list); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, GTK_FILL, GTK_FILL, 0, 3); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 4, 5, GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (label); desktop_page->comment_entry = gtk_entry_new (); @@ -226,7 +250,7 @@ "description.")); g_signal_connect (G_OBJECT (desktop_page->comment_entry), "activate", G_CALLBACK (thunar_apr_desktop_page_activated), desktop_page); g_signal_connect (G_OBJECT (desktop_page->comment_entry), "focus-out-event", G_CALLBACK (thunar_apr_desktop_page_focus_out_event), desktop_page); - gtk_table_attach (GTK_TABLE (table), desktop_page->comment_entry, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); + gtk_table_attach (GTK_TABLE (table), desktop_page->comment_entry, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (desktop_page->comment_entry); exo_binding_new (G_OBJECT (desktop_page->comment_entry), "visible", G_OBJECT (label), "visible"); @@ -244,7 +268,7 @@ label = gtk_label_new (_("Options:")); gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); gtk_label_set_attributes (GTK_LABEL (label), attr_list); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, 5, 6, GTK_FILL, GTK_FILL, 0, 3); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 6, 7, GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (label); desktop_page->snotify_button = gtk_check_button_new_with_mnemonic (_("Use _startup notification")); @@ -252,13 +276,13 @@ "is run from the file manager or the menu. Not every application supports " "startup notification.")); g_signal_connect (G_OBJECT (desktop_page->snotify_button), "toggled", G_CALLBACK (thunar_apr_desktop_page_toggled), desktop_page); - gtk_table_attach (GTK_TABLE (table), desktop_page->snotify_button, 1, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); + gtk_table_attach (GTK_TABLE (table), desktop_page->snotify_button, 1, 2, 6, 7, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (desktop_page->snotify_button); desktop_page->terminal_button = gtk_check_button_new_with_mnemonic (_("Run in _terminal")); gtk_widget_set_tooltip_text (desktop_page->terminal_button, _("Select this option to run the command in a terminal window.")); g_signal_connect (G_OBJECT (desktop_page->terminal_button), "toggled", G_CALLBACK (thunar_apr_desktop_page_toggled), desktop_page); - gtk_table_attach (GTK_TABLE (table), desktop_page->terminal_button, 1, 2, 6, 7, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); + gtk_table_attach (GTK_TABLE (table), desktop_page->terminal_button, 1, 2, 7, 8, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (desktop_page->terminal_button); /* set Atk label relation for the buttons */ @@ -288,6 +312,7 @@ /* release the saved texts */ g_free (desktop_page->description_text); g_free (desktop_page->command_text); + g_free (desktop_page->path_text); g_free (desktop_page->url_text); g_free (desktop_page->comment_text); @@ -322,7 +347,7 @@ if (filename != NULL && g_key_file_load_from_file (key_file, filename, G_KEY_FILE_NONE, NULL)) { /* determine the type of the .desktop file (default to "Application") */ - type = g_key_file_get_string (key_file, "Desktop Entry", "Type", NULL); + type = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Type", NULL); if (G_UNLIKELY (type == NULL)) type = g_strdup ("Application"); @@ -335,7 +360,7 @@ thunarx_property_page_set_label (THUNARX_PROPERTY_PAGE (desktop_page), type); /* update the "Description" entry */ - value = g_key_file_get_locale_string (key_file, "Desktop Entry", "GenericName", NULL, NULL); + value = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "GenericName", NULL, NULL); if (!exo_str_is_equal (value, desktop_page->description_text)) { /* update the entry */ @@ -351,7 +376,7 @@ } /* update the "Comment" entry */ - value = g_key_file_get_locale_string (key_file, "Desktop Entry", "Comment", NULL, NULL); + value = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Comment", NULL, NULL); if (!exo_str_is_equal (value, desktop_page->comment_text)) { /* update the entry */ @@ -370,7 +395,7 @@ if (strcmp (type, "Application") == 0) { /* update the "Command" entry */ - value = g_key_file_get_string (key_file, "Desktop Entry", "Exec", NULL); + value = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Exec", NULL); if (!exo_str_is_equal (value, desktop_page->command_text)) { /* update the entry */ @@ -385,15 +410,31 @@ g_free (value); } + /* update the "Path" entry */ + value = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Path", NULL); + if (!exo_str_is_equal (value, desktop_page->path_text)) + { + /* update the entry */ + gtk_entry_set_text (GTK_ENTRY (desktop_page->path_entry), (value != NULL) ? value : ""); + + /* update the saved value */ + g_free (desktop_page->path_text); + desktop_page->path_text = value; + } + else + { + g_free (value); + } + /* update the "Use startup notification" button */ - enabled = g_key_file_get_boolean (key_file, "Desktop Entry", "StartupNotify", &error); + enabled = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, "StartupNotify", &error); g_signal_handlers_block_by_func (G_OBJECT (desktop_page->snotify_button), thunar_apr_desktop_page_toggled, desktop_page); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (desktop_page->snotify_button), (error == NULL && enabled)); g_signal_handlers_unblock_by_func (G_OBJECT (desktop_page->snotify_button), thunar_apr_desktop_page_toggled, desktop_page); g_clear_error (&error); /* update the "Run in terminal" button */ - enabled = g_key_file_get_boolean (key_file, "Desktop Entry", "Terminal", &error); + enabled = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, "Terminal", &error); g_signal_handlers_block_by_func (G_OBJECT (desktop_page->terminal_button), thunar_apr_desktop_page_toggled, desktop_page); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (desktop_page->terminal_button), (error == NULL && enabled)); g_signal_handlers_unblock_by_func (G_OBJECT (desktop_page->terminal_button), thunar_apr_desktop_page_toggled, desktop_page); @@ -401,6 +442,7 @@ /* update visibility of the specific widgets */ gtk_widget_show (desktop_page->command_entry); + gtk_widget_show (desktop_page->path_entry); gtk_widget_hide (desktop_page->url_entry); gtk_widget_show (desktop_page->snotify_button); gtk_widget_show (desktop_page->terminal_button); @@ -408,7 +450,7 @@ else if (strcmp (type, "Link") == 0) { /* update the "URL" entry */ - value = g_key_file_get_string (key_file, "Desktop Entry", "URL", NULL); + value = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "URL", NULL); if (!exo_str_is_equal (value, desktop_page->url_text)) { /* update the entry */ @@ -425,6 +467,7 @@ /* update visibility of the specific widgets */ gtk_widget_hide (desktop_page->command_entry); + gtk_widget_hide (desktop_page->path_entry); gtk_widget_show (desktop_page->url_entry); gtk_widget_hide (desktop_page->snotify_button); gtk_widget_hide (desktop_page->terminal_button); @@ -433,6 +476,7 @@ { /* hide the specific widgets */ gtk_widget_hide (desktop_page->command_entry); + gtk_widget_hide (desktop_page->path_entry); gtk_widget_hide (desktop_page->url_entry); gtk_widget_hide (desktop_page->snotify_button); gtk_widget_hide (desktop_page->terminal_button); @@ -444,6 +488,7 @@ /* ...and update the editability of the entries */ gtk_editable_set_editable (GTK_EDITABLE (desktop_page->description_entry), writable); gtk_editable_set_editable (GTK_EDITABLE (desktop_page->command_entry), writable); + gtk_editable_set_editable (GTK_EDITABLE (desktop_page->path_entry), writable); gtk_editable_set_editable (GTK_EDITABLE (desktop_page->url_entry), writable); gtk_editable_set_editable (GTK_EDITABLE (desktop_page->comment_entry), writable); gtk_widget_set_sensitive (desktop_page->snotify_button, writable); @@ -460,6 +505,7 @@ /* hide all widgets */ gtk_widget_hide (desktop_page->description_entry); gtk_widget_hide (desktop_page->command_entry); + gtk_widget_hide (desktop_page->path_entry); gtk_widget_hide (desktop_page->url_entry); gtk_widget_hide (desktop_page->comment_entry); gtk_widget_hide (desktop_page->snotify_button); @@ -509,9 +555,19 @@ /* save the widget changes to the key file */ thunar_apr_desktop_page_save_widget (desktop_page, widget, key_file); + /* give empty desktop files a type */ + if (!g_key_file_has_key (key_file, G_KEY_FILE_DESKTOP_GROUP, + G_KEY_FILE_DESKTOP_KEY_TYPE, NULL)) + { + g_key_file_set_string (key_file, + G_KEY_FILE_DESKTOP_GROUP, + G_KEY_FILE_DESKTOP_KEY_TYPE, + "Application"); + } + /* determine the content of the key file */ data = g_key_file_to_data (key_file, &data_length, &error); - if (G_LIKELY (data != NULL)) + if (G_LIKELY (data_length > 0)) { /* try to save the key file content to disk */ fp = fopen (filename, "w"); @@ -525,10 +581,10 @@ { error = g_error_new_literal (G_FILE_ERROR, g_file_error_from_errno (errno), g_strerror (errno)); } - - /* cleanup */ - g_free (data); } + + /* cleanup */ + g_free (data); } /* check if we succeed */ @@ -556,6 +612,27 @@ static void +thunar_apr_desktop_page_set_string (GKeyFile *key_file, + const gchar *key, + const gchar *value) +{ + if (value != NULL && *value != '\0') + { + g_key_file_set_string (key_file, + G_KEY_FILE_DESKTOP_GROUP, + key, value); + } + else + { + g_key_file_remove_key (key_file, + G_KEY_FILE_DESKTOP_GROUP, + key, NULL); + } +} + + + +static void thunar_apr_desktop_page_save_widget (ThunarAprDesktopPage *desktop_page, GtkWidget *widget, GKeyFile *key_file) @@ -572,10 +649,10 @@ /* save the new description (localized if required) */ for (locale = g_get_language_names (); *locale != NULL; ++locale) { - key = g_strdup_printf ("GenericName[%s]", *locale); - if (g_key_file_has_key (key_file, "Desktop Entry", key, NULL)) + key = g_strdup_printf (G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME "[%s]", *locale); + if (g_key_file_has_key (key_file, G_KEY_FILE_DESKTOP_GROUP, key, NULL)) { - g_key_file_set_string (key_file, "Desktop Entry", key, desktop_page->description_text); + thunar_apr_desktop_page_set_string (key_file, key, desktop_page->description_text); g_free (key); break; } @@ -584,7 +661,11 @@ /* fallback to unlocalized description */ if (G_UNLIKELY (*locale == NULL)) - g_key_file_set_string (key_file, "Desktop Entry", "GenericName", desktop_page->description_text); + { + thunar_apr_desktop_page_set_string (key_file, + G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME, + desktop_page->description_text); + } } else if (widget == desktop_page->command_entry) { @@ -593,7 +674,20 @@ desktop_page->command_text = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1); /* save the unlocalized command */ - g_key_file_set_string (key_file, "Desktop Entry", "Exec", desktop_page->command_text); + thunar_apr_desktop_page_set_string (key_file, + G_KEY_FILE_DESKTOP_KEY_EXEC, + desktop_page->command_text); + } + else if (widget == desktop_page->path_entry) + { + /* update the saved command */ + g_free (desktop_page->path_text); + desktop_page->path_text = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1); + + /* save the unlocalized command */ + thunar_apr_desktop_page_set_string (key_file, + G_KEY_FILE_DESKTOP_KEY_PATH, + desktop_page->path_text); } else if (widget == desktop_page->url_entry) { @@ -602,7 +696,9 @@ desktop_page->url_text = gtk_editable_get_chars (GTK_EDITABLE (widget), 0, -1); /* save the unlocalized url */ - g_key_file_set_string (key_file, "Desktop Entry", "URL", desktop_page->url_text); + thunar_apr_desktop_page_set_string (key_file, + G_KEY_FILE_DESKTOP_KEY_URL, + desktop_page->url_text); } else if (widget == desktop_page->comment_entry) { @@ -613,10 +709,10 @@ /* save the new comment (localized if required) */ for (locale = g_get_language_names (); *locale != NULL; ++locale) { - key = g_strdup_printf ("Comment[%s]", *locale); - if (g_key_file_has_key (key_file, "Desktop Entry", key, NULL)) + key = g_strdup_printf (G_KEY_FILE_DESKTOP_KEY_COMMENT "[%s]", *locale); + if (g_key_file_has_key (key_file, G_KEY_FILE_DESKTOP_GROUP, key, NULL)) { - g_key_file_set_string (key_file, "Desktop Entry", key, desktop_page->comment_text); + thunar_apr_desktop_page_set_string (key_file, key, desktop_page->comment_text); g_free (key); break; } @@ -625,15 +721,23 @@ /* fallback to unlocalized comment */ if (G_UNLIKELY (*locale == NULL)) - g_key_file_set_string (key_file, "Desktop Entry", "Comment", desktop_page->comment_text); + thunar_apr_desktop_page_set_string (key_file, + G_KEY_FILE_DESKTOP_KEY_COMMENT, + desktop_page->comment_text); } else if (widget == desktop_page->snotify_button) { - g_key_file_set_boolean (key_file, "Desktop Entry", "StartupNotify", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); + g_key_file_set_boolean (key_file, + G_KEY_FILE_DESKTOP_GROUP, + G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); } else if (widget == desktop_page->terminal_button) { - g_key_file_set_boolean (key_file, "Desktop Entry", "Terminal", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); + g_key_file_set_boolean (key_file, + G_KEY_FILE_DESKTOP_GROUP, + G_KEY_FILE_DESKTOP_KEY_TERMINAL, + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); } else { diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-desktop-page.h thunar-1.6.10/plugins/thunar-apr/thunar-apr-desktop-page.h --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-desktop-page.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-desktop-page.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-image-page.c thunar-1.6.10/plugins/thunar-apr/thunar-apr-image-page.c --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-image-page.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-image-page.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -44,7 +44,7 @@ ExifTag tag; } TAIP_EXIF[] = { - { N_ ("Date Taken:"), EXIF_TAG_DATE_TIME, }, + { N_ ("Date Taken:"), EXIF_TAG_DATE_TIME_ORIGINAL, }, { N_ ("Camera Brand:"), EXIF_TAG_MAKE, }, { N_ ("Camera Model:"), EXIF_TAG_MODEL, }, { N_ ("Exposure Time:"), EXIF_TAG_EXPOSURE_TIME, }, diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-image-page.h thunar-1.6.10/plugins/thunar-apr/thunar-apr-image-page.h --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-image-page.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-image-page.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-plugin.c thunar-1.6.10/plugins/thunar-apr/thunar-apr-plugin.c --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-plugin.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-plugin.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-private.c thunar-1.6.10/plugins/thunar-apr/thunar-apr-private.c --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-private.c 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-private.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-private.h thunar-1.6.10/plugins/thunar-apr/thunar-apr-private.h --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-private.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-private.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-provider.c thunar-1.6.10/plugins/thunar-apr/thunar-apr-provider.c --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-provider.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-provider.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-apr/thunar-apr-provider.h thunar-1.6.10/plugins/thunar-apr/thunar-apr-provider.h --- thunar-1.2.3/plugins/thunar-apr/thunar-apr-provider.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-apr/thunar-apr-provider.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sbr/Makefile.am thunar-1.6.10/plugins/thunar-sbr/Makefile.am --- thunar-1.2.3/plugins/thunar-sbr/Makefile.am 2010-09-05 21:56:33.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,6 +1,4 @@ -# $Id$ - -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_builddir)/plugins \ -I$(top_srcdir) \ @@ -41,6 +39,7 @@ thunar_sbr_la_LDFLAGS = \ -avoid-version \ -export-dynamic \ + -no-undefined \ -export-symbols-regex "^thunar_extension_(shutdown|initialize|list_types)" \ -module \ $(PLATFORM_LDFLAGS) diff -Nru thunar-1.2.3/plugins/thunar-sbr/Makefile.in thunar-1.6.10/plugins/thunar-sbr/Makefile.in --- thunar-1.2.3/plugins/thunar-sbr/Makefile.in 2011-09-20 20:28:14.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,9 +14,52 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,13 +80,14 @@ host_triplet = @host@ target_triplet = @target@ subdir = plugins/thunar-sbr -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -69,6 +112,12 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(extensionsdir)" LTLIBRARIES = $(extensions_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -82,12 +131,25 @@ thunar_sbr_la-thunar-sbr-remove-renamer.lo \ thunar_sbr_la-thunar-sbr-replace-renamer.lo thunar_sbr_la_OBJECTS = $(am_thunar_sbr_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = thunar_sbr_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(thunar_sbr_la_CFLAGS) \ $(CFLAGS) $(thunar_sbr_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -98,24 +160,42 @@ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(thunar_sbr_la_SOURCES) DIST_SOURCES = $(thunar_sbr_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -177,6 +257,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -184,11 +268,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -196,7 +276,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -208,6 +288,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -219,10 +303,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -242,6 +322,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -284,7 +365,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -292,12 +372,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -335,6 +416,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -359,7 +442,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xfconf_query_found = @xfconf_query_found@ -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_builddir)/plugins \ -I$(top_srcdir) \ @@ -400,6 +483,7 @@ thunar_sbr_la_LDFLAGS = \ -avoid-version \ -export-dynamic \ + -no-undefined \ -export-symbols-regex "^thunar_extension_(shutdown|initialize|list_types)" \ -module \ $(PLATFORM_LDFLAGS) @@ -451,9 +535,9 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-extensionsLTLIBRARIES: $(extensions_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(extensionsdir)" || $(MKDIR_P) "$(DESTDIR)$(extensionsdir)" @list='$(extensions_LTLIBRARIES)'; test -n "$(extensionsdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ @@ -461,6 +545,8 @@ else :; fi; \ done; \ test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(extensionsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(extensionsdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(extensionsdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(extensionsdir)"; \ } @@ -476,13 +562,16 @@ clean-extensionsLTLIBRARIES: -test -z "$(extensions_LTLIBRARIES)" || rm -f $(extensions_LTLIBRARIES) - @list='$(extensions_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -thunar-sbr.la: $(thunar_sbr_la_OBJECTS) $(thunar_sbr_la_DEPENDENCIES) + @list='$(extensions_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +thunar-sbr.la: $(thunar_sbr_la_OBJECTS) $(thunar_sbr_la_DEPENDENCIES) $(EXTRA_thunar_sbr_la_DEPENDENCIES) $(AM_V_CCLD)$(thunar_sbr_la_LINK) -rpath $(extensionsdir) $(thunar_sbr_la_OBJECTS) $(thunar_sbr_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -504,98 +593,86 @@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< thunar_sbr_la-thunar-sbr-case-renamer.lo: thunar-sbr-case-renamer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -MT thunar_sbr_la-thunar-sbr-case-renamer.lo -MD -MP -MF $(DEPDIR)/thunar_sbr_la-thunar-sbr-case-renamer.Tpo -c -o thunar_sbr_la-thunar-sbr-case-renamer.lo `test -f 'thunar-sbr-case-renamer.c' || echo '$(srcdir)/'`thunar-sbr-case-renamer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sbr_la-thunar-sbr-case-renamer.Tpo $(DEPDIR)/thunar_sbr_la-thunar-sbr-case-renamer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-sbr-case-renamer.c' object='thunar_sbr_la-thunar-sbr-case-renamer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-sbr-case-renamer.c' object='thunar_sbr_la-thunar-sbr-case-renamer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-case-renamer.lo `test -f 'thunar-sbr-case-renamer.c' || echo '$(srcdir)/'`thunar-sbr-case-renamer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-case-renamer.lo `test -f 'thunar-sbr-case-renamer.c' || echo '$(srcdir)/'`thunar-sbr-case-renamer.c thunar_sbr_la-thunar-sbr-date-renamer.lo: thunar-sbr-date-renamer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -MT thunar_sbr_la-thunar-sbr-date-renamer.lo -MD -MP -MF $(DEPDIR)/thunar_sbr_la-thunar-sbr-date-renamer.Tpo -c -o thunar_sbr_la-thunar-sbr-date-renamer.lo `test -f 'thunar-sbr-date-renamer.c' || echo '$(srcdir)/'`thunar-sbr-date-renamer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sbr_la-thunar-sbr-date-renamer.Tpo $(DEPDIR)/thunar_sbr_la-thunar-sbr-date-renamer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-sbr-date-renamer.c' object='thunar_sbr_la-thunar-sbr-date-renamer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-sbr-date-renamer.c' object='thunar_sbr_la-thunar-sbr-date-renamer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-date-renamer.lo `test -f 'thunar-sbr-date-renamer.c' || echo '$(srcdir)/'`thunar-sbr-date-renamer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-date-renamer.lo `test -f 'thunar-sbr-date-renamer.c' || echo '$(srcdir)/'`thunar-sbr-date-renamer.c thunar_sbr_la-thunar-sbr-enum-types.lo: thunar-sbr-enum-types.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -MT thunar_sbr_la-thunar-sbr-enum-types.lo -MD -MP -MF $(DEPDIR)/thunar_sbr_la-thunar-sbr-enum-types.Tpo -c -o thunar_sbr_la-thunar-sbr-enum-types.lo `test -f 'thunar-sbr-enum-types.c' || echo '$(srcdir)/'`thunar-sbr-enum-types.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sbr_la-thunar-sbr-enum-types.Tpo $(DEPDIR)/thunar_sbr_la-thunar-sbr-enum-types.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-sbr-enum-types.c' object='thunar_sbr_la-thunar-sbr-enum-types.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-sbr-enum-types.c' object='thunar_sbr_la-thunar-sbr-enum-types.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-enum-types.lo `test -f 'thunar-sbr-enum-types.c' || echo '$(srcdir)/'`thunar-sbr-enum-types.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-enum-types.lo `test -f 'thunar-sbr-enum-types.c' || echo '$(srcdir)/'`thunar-sbr-enum-types.c thunar_sbr_la-thunar-sbr-insert-renamer.lo: thunar-sbr-insert-renamer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -MT thunar_sbr_la-thunar-sbr-insert-renamer.lo -MD -MP -MF $(DEPDIR)/thunar_sbr_la-thunar-sbr-insert-renamer.Tpo -c -o thunar_sbr_la-thunar-sbr-insert-renamer.lo `test -f 'thunar-sbr-insert-renamer.c' || echo '$(srcdir)/'`thunar-sbr-insert-renamer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sbr_la-thunar-sbr-insert-renamer.Tpo $(DEPDIR)/thunar_sbr_la-thunar-sbr-insert-renamer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-sbr-insert-renamer.c' object='thunar_sbr_la-thunar-sbr-insert-renamer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-sbr-insert-renamer.c' object='thunar_sbr_la-thunar-sbr-insert-renamer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-insert-renamer.lo `test -f 'thunar-sbr-insert-renamer.c' || echo '$(srcdir)/'`thunar-sbr-insert-renamer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-insert-renamer.lo `test -f 'thunar-sbr-insert-renamer.c' || echo '$(srcdir)/'`thunar-sbr-insert-renamer.c thunar_sbr_la-thunar-sbr-number-renamer.lo: thunar-sbr-number-renamer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -MT thunar_sbr_la-thunar-sbr-number-renamer.lo -MD -MP -MF $(DEPDIR)/thunar_sbr_la-thunar-sbr-number-renamer.Tpo -c -o thunar_sbr_la-thunar-sbr-number-renamer.lo `test -f 'thunar-sbr-number-renamer.c' || echo '$(srcdir)/'`thunar-sbr-number-renamer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sbr_la-thunar-sbr-number-renamer.Tpo $(DEPDIR)/thunar_sbr_la-thunar-sbr-number-renamer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-sbr-number-renamer.c' object='thunar_sbr_la-thunar-sbr-number-renamer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-sbr-number-renamer.c' object='thunar_sbr_la-thunar-sbr-number-renamer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-number-renamer.lo `test -f 'thunar-sbr-number-renamer.c' || echo '$(srcdir)/'`thunar-sbr-number-renamer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-number-renamer.lo `test -f 'thunar-sbr-number-renamer.c' || echo '$(srcdir)/'`thunar-sbr-number-renamer.c thunar_sbr_la-thunar-sbr-plugin.lo: thunar-sbr-plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -MT thunar_sbr_la-thunar-sbr-plugin.lo -MD -MP -MF $(DEPDIR)/thunar_sbr_la-thunar-sbr-plugin.Tpo -c -o thunar_sbr_la-thunar-sbr-plugin.lo `test -f 'thunar-sbr-plugin.c' || echo '$(srcdir)/'`thunar-sbr-plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sbr_la-thunar-sbr-plugin.Tpo $(DEPDIR)/thunar_sbr_la-thunar-sbr-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-sbr-plugin.c' object='thunar_sbr_la-thunar-sbr-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-sbr-plugin.c' object='thunar_sbr_la-thunar-sbr-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-plugin.lo `test -f 'thunar-sbr-plugin.c' || echo '$(srcdir)/'`thunar-sbr-plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-plugin.lo `test -f 'thunar-sbr-plugin.c' || echo '$(srcdir)/'`thunar-sbr-plugin.c thunar_sbr_la-thunar-sbr-provider.lo: thunar-sbr-provider.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -MT thunar_sbr_la-thunar-sbr-provider.lo -MD -MP -MF $(DEPDIR)/thunar_sbr_la-thunar-sbr-provider.Tpo -c -o thunar_sbr_la-thunar-sbr-provider.lo `test -f 'thunar-sbr-provider.c' || echo '$(srcdir)/'`thunar-sbr-provider.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sbr_la-thunar-sbr-provider.Tpo $(DEPDIR)/thunar_sbr_la-thunar-sbr-provider.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-sbr-provider.c' object='thunar_sbr_la-thunar-sbr-provider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-sbr-provider.c' object='thunar_sbr_la-thunar-sbr-provider.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-provider.lo `test -f 'thunar-sbr-provider.c' || echo '$(srcdir)/'`thunar-sbr-provider.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-provider.lo `test -f 'thunar-sbr-provider.c' || echo '$(srcdir)/'`thunar-sbr-provider.c thunar_sbr_la-thunar-sbr-remove-renamer.lo: thunar-sbr-remove-renamer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -MT thunar_sbr_la-thunar-sbr-remove-renamer.lo -MD -MP -MF $(DEPDIR)/thunar_sbr_la-thunar-sbr-remove-renamer.Tpo -c -o thunar_sbr_la-thunar-sbr-remove-renamer.lo `test -f 'thunar-sbr-remove-renamer.c' || echo '$(srcdir)/'`thunar-sbr-remove-renamer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sbr_la-thunar-sbr-remove-renamer.Tpo $(DEPDIR)/thunar_sbr_la-thunar-sbr-remove-renamer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-sbr-remove-renamer.c' object='thunar_sbr_la-thunar-sbr-remove-renamer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-sbr-remove-renamer.c' object='thunar_sbr_la-thunar-sbr-remove-renamer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-remove-renamer.lo `test -f 'thunar-sbr-remove-renamer.c' || echo '$(srcdir)/'`thunar-sbr-remove-renamer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-remove-renamer.lo `test -f 'thunar-sbr-remove-renamer.c' || echo '$(srcdir)/'`thunar-sbr-remove-renamer.c thunar_sbr_la-thunar-sbr-replace-renamer.lo: thunar-sbr-replace-renamer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -MT thunar_sbr_la-thunar-sbr-replace-renamer.lo -MD -MP -MF $(DEPDIR)/thunar_sbr_la-thunar-sbr-replace-renamer.Tpo -c -o thunar_sbr_la-thunar-sbr-replace-renamer.lo `test -f 'thunar-sbr-replace-renamer.c' || echo '$(srcdir)/'`thunar-sbr-replace-renamer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sbr_la-thunar-sbr-replace-renamer.Tpo $(DEPDIR)/thunar_sbr_la-thunar-sbr-replace-renamer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-sbr-replace-renamer.c' object='thunar_sbr_la-thunar-sbr-replace-renamer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-sbr-replace-renamer.c' object='thunar_sbr_la-thunar-sbr-replace-renamer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-replace-renamer.lo `test -f 'thunar-sbr-replace-renamer.c' || echo '$(srcdir)/'`thunar-sbr-replace-renamer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sbr_la_CFLAGS) $(CFLAGS) -c -o thunar_sbr_la-thunar-sbr-replace-renamer.lo `test -f 'thunar-sbr-replace-renamer.c' || echo '$(srcdir)/'`thunar-sbr-replace-renamer.c mostlyclean-libtool: -rm -f *.lo @@ -603,26 +680,15 @@ clean-libtool: -rm -rf .libs _libs -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -634,15 +700,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -651,6 +713,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -702,10 +779,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -790,20 +872,20 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean \ - clean-extensionsLTLIBRARIES clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-extensionsLTLIBRARIES install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-extensionsLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-extensionsLTLIBRARIES clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-extensionsLTLIBRARIES \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-extensionsLTLIBRARIES # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-case-renamer.c thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-case-renamer.c --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-case-renamer.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-case-renamer.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -85,7 +85,7 @@ /** * ThunarSbrCaseRenamer:mode: * - * The #ThunarSbrCaseRenamerMode for this + * The #ThunarSbrCaseRenamerMode for this * #ThunarSbrCaseRenamer instance. **/ g_object_class_install_property (gobject_class, @@ -183,7 +183,8 @@ static gchar* -tscr_utf8_strcamel (const gchar *text) +tscr_utf8_strcase (const gchar *text, + gboolean camelcase) { const gchar *t; gboolean upper = TRUE; @@ -198,7 +199,8 @@ { /* check the next char */ c = g_utf8_get_char (t); - if (g_unichar_isspace (c)) + if (camelcase + && g_unichar_isspace (c)) { upper = TRUE; } @@ -238,7 +240,10 @@ return g_utf8_strup (text, -1); case THUNAR_SBR_CASE_RENAMER_MODE_CAMEL: - return tscr_utf8_strcamel (text); + return tscr_utf8_strcase (text, TRUE); + + case THUNAR_SBR_CASE_RENAMER_MODE_SENTENCE: + return tscr_utf8_strcase (text, FALSE); default: g_assert_not_reached (); diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-case-renamer.h thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-case-renamer.h --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-case-renamer.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-case-renamer.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-date-renamer.c thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-date-renamer.c --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-date-renamer.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-date-renamer.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2007 Nick Schermer * Copyright (c) 2007 Benedikt Meurer @@ -411,10 +411,10 @@ tm.tm_mon = month - 1; tm.tm_mday = day; - /* set the time */ - tm.tm_hour = result >= 4? hour : 0; - tm.tm_min = result >= 5 ? min : 0; - tm.tm_sec = result >= 6 ? sec : 0; + /* set the time */ + tm.tm_hour = result >= 4? hour : 0; + tm.tm_min = result >= 5 ? min : 0; + tm.tm_sec = result >= 6 ? sec : 0; } else { diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-date-renamer.h thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-date-renamer.h --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-date-renamer.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-date-renamer.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2007 Nick Schermer * Copyright (c) 2007 Benedikt Meurer diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-enum-types.c thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-enum-types.c --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-enum-types.c 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-enum-types.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -90,10 +90,11 @@ { static const GEnumValue case_renamer_mode_values[] = { - { THUNAR_SBR_CASE_RENAMER_MODE_LOWER, "THUNAR_SBR_CASE_RENAMER_MODE_LOWER", N_ ("lowercase"), }, - { THUNAR_SBR_CASE_RENAMER_MODE_UPPER, "THUNAR_SBR_CASE_RENAMER_MODE_UPPER", N_ ("UPPERCASE"), }, - { THUNAR_SBR_CASE_RENAMER_MODE_CAMEL, "THUNAR_SBR_CASE_RENAMER_MODE_CAMEL", N_ ("Camelcase"), }, - { 0, NULL, NULL, }, + { THUNAR_SBR_CASE_RENAMER_MODE_LOWER, "THUNAR_SBR_CASE_RENAMER_MODE_LOWER", N_ ("lowercase"), }, + { THUNAR_SBR_CASE_RENAMER_MODE_UPPER, "THUNAR_SBR_CASE_RENAMER_MODE_UPPER", N_ ("UPPERCASE"), }, + { THUNAR_SBR_CASE_RENAMER_MODE_CAMEL, "THUNAR_SBR_CASE_RENAMER_MODE_CAMEL", N_ ("Camelcase") , }, + { THUNAR_SBR_CASE_RENAMER_MODE_SENTENCE, "THUNAR_SBR_CASE_RENAMER_MODE_SENTENCE", N_ ("Sentence case"), }, + { 0, NULL, NULL, }, }; static const GEnumValue insert_mode_values[] = diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-enum-types.h thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-enum-types.h --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-enum-types.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-enum-types.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -29,9 +29,10 @@ /** * ThunarSbrCaseRenamerMode: - * @THUNAR_SBR_CASE_RENAMER_MODE_LOWER : convert to lower case. - * @THUNAR_SBR_CASE_RENAMER_MODE_UPPER : convert to upper case. - * @THUNAR_SBR_CASE_RENAMER_MODE_CAMEL : convert to camel case. + * @THUNAR_SBR_CASE_RENAMER_MODE_LOWER : convert to lower case. + * @THUNAR_SBR_CASE_RENAMER_MODE_UPPER : convert to upper case. + * @THUNAR_SBR_CASE_RENAMER_MODE_CAMEL : convert to camel case. + * @THUNAR_SBR_CASE_RENAMER_MODE_SENTENCE : convert to sentence case. * * The operation mode for the #ThunarSbrCaseRenamer. **/ @@ -40,6 +41,7 @@ THUNAR_SBR_CASE_RENAMER_MODE_LOWER, THUNAR_SBR_CASE_RENAMER_MODE_UPPER, THUNAR_SBR_CASE_RENAMER_MODE_CAMEL, + THUNAR_SBR_CASE_RENAMER_MODE_SENTENCE, } ThunarSbrCaseRenamerMode; GType thunar_sbr_case_renamer_mode_get_type (void) G_GNUC_CONST; diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-insert-renamer.c thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-insert-renamer.c --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-insert-renamer.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-insert-renamer.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-insert-renamer.h thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-insert-renamer.h --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-insert-renamer.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-insert-renamer.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-number-renamer.c thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-number-renamer.c --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-number-renamer.c 2011-07-15 18:56:23.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-number-renamer.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -488,7 +488,7 @@ } /* check if the start entry is realized */ - if (GTK_WIDGET_REALIZED (number_renamer->start_entry)) + if (gtk_widget_get_realized (number_renamer->start_entry)) { /* check if the "start" value is valid */ if (G_UNLIKELY (invalid)) diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-number-renamer.h thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-number-renamer.h --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-number-renamer.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-number-renamer.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-plugin.c thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-plugin.c --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-plugin.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-plugin.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-provider.c thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-provider.c --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-provider.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-provider.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-provider.h thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-provider.h --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-provider.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-provider.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-remove-renamer.c thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-remove-renamer.c --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-remove-renamer.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-remove-renamer.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -374,7 +374,7 @@ guint end_offset; /* check if the renamer is realized */ - if (GTK_WIDGET_REALIZED (remove_renamer)) + if (gtk_widget_get_realized (GTK_WIDGET (remove_renamer))) { /* check if start and end offset make sense */ end_offset = (remove_renamer->end_offset_mode == THUNAR_SBR_OFFSET_MODE_LEFT) diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-remove-renamer.h thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-remove-renamer.h --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-remove-renamer.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-remove-renamer.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-replace-renamer.c thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-replace-renamer.c --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-replace-renamer.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-replace-renamer.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -614,7 +614,7 @@ g_free (message); /* check if the entry is realized */ - if (GTK_WIDGET_REALIZED (replace_renamer->pattern_entry)) + if (gtk_widget_get_realized (replace_renamer->pattern_entry)) { /* if GTK+ wouldn't be that stupid with style properties and * type plugins, this would be themable, but unfortunately diff -Nru thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-replace-renamer.h thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-replace-renamer.h --- thunar-1.2.3/plugins/thunar-sbr/thunar-sbr-replace-renamer.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sbr/thunar-sbr-replace-renamer.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-sendto-email/main.c thunar-1.6.10/plugins/thunar-sendto-email/main.c --- thunar-1.2.3/plugins/thunar-sendto-email/main.c 2010-11-09 23:06:16.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sendto-email/main.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -257,7 +257,7 @@ GtkWidget *vbox; gboolean succeed = FALSE; GPid pid; - gint pulse_timer_id; + guint pulse_timer_id; gint watch_id; gint response; gint status; diff -Nru thunar-1.2.3/plugins/thunar-sendto-email/Makefile.am thunar-1.6.10/plugins/thunar-sendto-email/Makefile.am --- thunar-1.2.3/plugins/thunar-sendto-email/Makefile.am 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sendto-email/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,6 +1,4 @@ -# $Id$ - -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_builddir)/plugins \ -I$(top_srcdir) \ @@ -10,7 +8,7 @@ $(PLATFORM_CPPFLAGS) thunar_sendto_emaildir = \ - $(libdir)/Thunar + $(HELPER_PATH_PREFIX)/Thunar thunar_sendto_email_PROGRAMS = \ thunar-sendto-email @@ -30,7 +28,7 @@ desktop_in_in_files = thunar-sendto-email.desktop.in.in desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in) %.desktop.in: %.desktop.in.in - sed -e "s,\@libdir\@,$(libdir),g" < $< > $@ + sed -e "s,\@HELPERDIR\@,$(HELPER_PATH_PREFIX),g" < $< > $@ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ diff -Nru thunar-1.2.3/plugins/thunar-sendto-email/Makefile.in thunar-1.6.10/plugins/thunar-sendto-email/Makefile.in --- thunar-1.2.3/plugins/thunar-sendto-email/Makefile.in 2011-09-20 20:28:14.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sendto-email/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,10 +14,53 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -40,13 +82,14 @@ target_triplet = @target@ thunar_sendto_email_PROGRAMS = thunar-sendto-email$(EXEEXT) subdir = plugins/thunar-sendto-email -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -58,13 +101,26 @@ am__DEPENDENCIES_1 = thunar_sendto_email_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = thunar_sendto_email_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(thunar_sendto_email_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -75,24 +131,25 @@ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(thunar_sendto_email_SOURCES) DIST_SOURCES = $(thunar_sendto_email_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -114,7 +171,30 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } DATA = $(desktop_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -176,6 +256,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -183,11 +267,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -195,7 +275,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -207,6 +287,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -218,10 +302,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -241,6 +321,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -283,7 +364,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -291,12 +371,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -334,6 +415,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -358,7 +441,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xfconf_query_found = @xfconf_query_found@ -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_builddir)/plugins \ -I$(top_srcdir) \ @@ -368,7 +451,7 @@ $(PLATFORM_CPPFLAGS) thunar_sendto_emaildir = \ - $(libdir)/Thunar + $(HELPER_PATH_PREFIX)/Thunar thunar_sendto_email_SOURCES = \ main.c @@ -429,14 +512,19 @@ $(am__aclocal_m4_deps): install-thunar_sendto_emailPROGRAMS: $(thunar_sendto_email_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(thunar_sendto_emaildir)" || $(MKDIR_P) "$(DESTDIR)$(thunar_sendto_emaildir)" @list='$(thunar_sendto_email_PROGRAMS)'; test -n "$(thunar_sendto_emaildir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(thunar_sendto_emaildir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(thunar_sendto_emaildir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ @@ -457,7 +545,8 @@ @list='$(thunar_sendto_email_PROGRAMS)'; test -n "$(thunar_sendto_emaildir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ + -e 's/$$/$(EXEEXT)/' \ + `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(thunar_sendto_emaildir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(thunar_sendto_emaildir)" && rm -f $$files @@ -470,7 +559,8 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -thunar-sendto-email$(EXEEXT): $(thunar_sendto_email_OBJECTS) $(thunar_sendto_email_DEPENDENCIES) + +thunar-sendto-email$(EXEEXT): $(thunar_sendto_email_OBJECTS) $(thunar_sendto_email_DEPENDENCIES) $(EXTRA_thunar_sendto_email_DEPENDENCIES) @rm -f thunar-sendto-email$(EXEEXT) $(AM_V_CCLD)$(thunar_sendto_email_LINK) $(thunar_sendto_email_OBJECTS) $(thunar_sendto_email_LDADD) $(LIBS) @@ -485,42 +575,37 @@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< thunar_sendto_email-main.o: main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sendto_email_CFLAGS) $(CFLAGS) -MT thunar_sendto_email-main.o -MD -MP -MF $(DEPDIR)/thunar_sendto_email-main.Tpo -c -o thunar_sendto_email-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sendto_email-main.Tpo $(DEPDIR)/thunar_sendto_email-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='thunar_sendto_email-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='thunar_sendto_email-main.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sendto_email_CFLAGS) $(CFLAGS) -c -o thunar_sendto_email-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sendto_email_CFLAGS) $(CFLAGS) -c -o thunar_sendto_email-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c thunar_sendto_email-main.obj: main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sendto_email_CFLAGS) $(CFLAGS) -MT thunar_sendto_email-main.obj -MD -MP -MF $(DEPDIR)/thunar_sendto_email-main.Tpo -c -o thunar_sendto_email-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thunar_sendto_email-main.Tpo $(DEPDIR)/thunar_sendto_email-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='thunar_sendto_email-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='thunar_sendto_email-main.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sendto_email_CFLAGS) $(CFLAGS) -c -o thunar_sendto_email-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thunar_sendto_email_CFLAGS) $(CFLAGS) -c -o thunar_sendto_email-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -529,8 +614,11 @@ -rm -rf .libs _libs install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) - test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -544,30 +632,17 @@ @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(desktopdir)" && rm -f $$files - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS + dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -579,15 +654,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -596,6 +667,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -647,10 +733,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -738,9 +829,9 @@ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-thunar_sendto_emailPROGRAMS ctags \ - distclean distclean-compile distclean-generic \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-thunar_sendto_emailPROGRAMS cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags 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 \ @@ -751,11 +842,11 @@ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-desktopDATA \ + tags tags-am uninstall uninstall-am uninstall-desktopDATA \ uninstall-thunar_sendto_emailPROGRAMS %.desktop.in: %.desktop.in.in - sed -e "s,\@libdir\@,$(libdir),g" < $< > $@ + sed -e "s,\@HELPERDIR\@,$(HELPER_PATH_PREFIX),g" < $< > $@ @INTLTOOL_DESKTOP_RULE@ # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff -Nru thunar-1.2.3/plugins/thunar-sendto-email/thunar-sendto-email.desktop.in.in thunar-1.6.10/plugins/thunar-sendto-email/thunar-sendto-email.desktop.in.in --- thunar-1.2.3/plugins/thunar-sendto-email/thunar-sendto-email.desktop.in.in 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-sendto-email/thunar-sendto-email.desktop.in.in 2015-05-22 19:09:30.000000000 +0000 @@ -3,4 +3,4 @@ Version=1.0 _Name=Mail Recipient Icon=internet-mail -Exec=@libdir@/Thunar/thunar-sendto-email %F +Exec=@HELPERDIR@/Thunar/thunar-sendto-email %F diff -Nru thunar-1.2.3/plugins/thunar-tpa/Makefile.am thunar-1.6.10/plugins/thunar-tpa/Makefile.am --- thunar-1.2.3/plugins/thunar-tpa/Makefile.am 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-tpa/Makefile.am 2015-05-22 20:31:54.000000000 +0000 @@ -1,5 +1,4 @@ - -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_builddir)/plugins \ -I$(top_srcdir) \ @@ -35,7 +34,7 @@ -export-symbols-regex '^xfce_panel_module_(preinit|init|construct)' \ $(PLATFORM_LDFLAGS) -desktopdir = $(datadir)/xfce4/panel-plugins +desktopdir = $(datadir)/xfce4/panel/plugins desktop_in_files = thunar-tpa.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ diff -Nru thunar-1.2.3/plugins/thunar-tpa/Makefile.in thunar-1.6.10/plugins/thunar-tpa/Makefile.in --- thunar-1.2.3/plugins/thunar-tpa/Makefile.in 2011-09-20 20:28:15.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-tpa/Makefile.in 2015-05-22 20:47:31.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,6 +16,51 @@ VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -37,13 +81,14 @@ host_triplet = @host@ target_triplet = @target@ subdir = plugins/thunar-tpa -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -68,6 +113,12 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(desktopdir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -76,13 +127,26 @@ $(am__DEPENDENCIES_1) am_libthunar_tpa_la_OBJECTS = libthunar_tpa_la-thunar-tpa.lo libthunar_tpa_la_OBJECTS = $(am_libthunar_tpa_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libthunar_tpa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libthunar_tpa_la_CFLAGS) $(CFLAGS) \ $(libthunar_tpa_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -93,25 +157,43 @@ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libthunar_tpa_la_SOURCES) DIST_SOURCES = $(libthunar_tpa_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac DATA = $(desktop_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -173,6 +255,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -180,11 +266,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -192,7 +274,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -204,6 +286,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -215,10 +301,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -238,6 +320,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -280,7 +363,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -288,12 +370,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -331,6 +414,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -355,7 +440,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xfconf_query_found = @xfconf_query_found@ -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_builddir) \ -I$(top_builddir)/plugins \ -I$(top_srcdir) \ @@ -391,7 +476,7 @@ -export-symbols-regex '^xfce_panel_module_(preinit|init|construct)' \ $(PLATFORM_LDFLAGS) -desktopdir = $(datadir)/xfce4/panel-plugins +desktopdir = $(datadir)/xfce4/panel/plugins desktop_in_files = thunar-tpa.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @MAINTAINER_MODE_TRUE@BUILT_SOURCES = \ @@ -443,9 +528,9 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ @@ -453,6 +538,8 @@ else :; fi; \ done; \ test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } @@ -468,13 +555,16 @@ clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libthunar-tpa.la: $(libthunar_tpa_la_OBJECTS) $(libthunar_tpa_la_DEPENDENCIES) + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libthunar-tpa.la: $(libthunar_tpa_la_OBJECTS) $(libthunar_tpa_la_DEPENDENCIES) $(EXTRA_libthunar_tpa_la_DEPENDENCIES) $(AM_V_CCLD)$(libthunar_tpa_la_LINK) -rpath $(plugindir) $(libthunar_tpa_la_OBJECTS) $(libthunar_tpa_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -488,34 +578,30 @@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libthunar_tpa_la-thunar-tpa.lo: thunar-tpa.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunar_tpa_la_CFLAGS) $(CFLAGS) -MT libthunar_tpa_la-thunar-tpa.lo -MD -MP -MF $(DEPDIR)/libthunar_tpa_la-thunar-tpa.Tpo -c -o libthunar_tpa_la-thunar-tpa.lo `test -f 'thunar-tpa.c' || echo '$(srcdir)/'`thunar-tpa.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunar_tpa_la-thunar-tpa.Tpo $(DEPDIR)/libthunar_tpa_la-thunar-tpa.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunar-tpa.c' object='libthunar_tpa_la-thunar-tpa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunar-tpa.c' object='libthunar_tpa_la-thunar-tpa.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunar_tpa_la_CFLAGS) $(CFLAGS) -c -o libthunar_tpa_la-thunar-tpa.lo `test -f 'thunar-tpa.c' || echo '$(srcdir)/'`thunar-tpa.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunar_tpa_la_CFLAGS) $(CFLAGS) -c -o libthunar_tpa_la-thunar-tpa.lo `test -f 'thunar-tpa.c' || echo '$(srcdir)/'`thunar-tpa.c mostlyclean-libtool: -rm -f *.lo @@ -524,8 +610,11 @@ -rm -rf .libs _libs install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) - test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -539,30 +628,17 @@ @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(desktopdir)" && rm -f $$files - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS + dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -574,15 +650,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -591,6 +663,21 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -644,10 +731,15 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -735,20 +827,20 @@ .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-pluginLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags 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-pluginLTLIBRARIES install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-desktopDATA uninstall-pluginLTLIBRARIES +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags 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-pluginLTLIBRARIES install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-desktopDATA uninstall-pluginLTLIBRARIES @INTLTOOL_DESKTOP_RULE@ diff -Nru thunar-1.2.3/plugins/thunar-tpa/thunar-tpa-bindings.xml thunar-1.6.10/plugins/thunar-tpa/thunar-tpa-bindings.xml --- thunar-1.2.3/plugins/thunar-tpa/thunar-tpa-bindings.xml 2010-11-10 16:12:55.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-tpa/thunar-tpa-bindings.xml 2015-05-22 20:31:54.000000000 +0000 @@ -1,8 +1,6 @@ s to items @@ -1013,15 +1086,14 @@ { typedef struct { - const gchar *name; - ThunarUcaTypes types; + gchar *name; + ThunarUcaTypes types; } ThunarUcaFile; ThunarUcaModelItem *item; ThunarUcaFile *files; - GFileInfo *info; GFile *location; - const gchar *mime_type; + gchar *mime_type; gboolean matches; GList *paths = NULL; GList *lp; @@ -1029,6 +1101,7 @@ gint i, m, n; g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), NULL); + g_return_val_if_fail (file_infos != NULL, NULL); /* special case to avoid overhead */ if (G_UNLIKELY (uca_model->items == NULL)) @@ -1051,17 +1124,15 @@ g_object_unref (location); - info = thunarx_file_info_get_file_info (lp->data); - - mime_type = g_file_info_get_content_type (info); + mime_type = thunarx_file_info_get_mime_type (lp->data); - files[n].name = g_file_info_get_name (info); + files[n].name = thunarx_file_info_get_name (lp->data); files[n].types = types_from_mime_type (mime_type); if (G_UNLIKELY (files[n].types == 0)) files[n].types = THUNAR_UCA_TYPE_OTHER_FILES; - g_object_unref (info); + g_free (mime_type); } /* lookup the matching items */ @@ -1094,6 +1165,8 @@ } /* cleanup */ + for (n = 0; n < n_files; ++n) + g_free (files[n].name); g_free (files); return paths; @@ -1224,6 +1297,7 @@ * @uca_model : a #ThunarUcaModel. * @iter : the #GtkTreeIter of the item to update. * @name : the name of the item. + * @unique_id : a unique ID for the item. * @description : the description of the item. * @icon : the icon for the item. * @command : the command of the item. @@ -1236,6 +1310,7 @@ thunar_uca_model_update (ThunarUcaModel *uca_model, GtkTreeIter *iter, const gchar *name, + const gchar *unique_id, const gchar *description, const gchar *icon, const gchar *command, @@ -1258,7 +1333,7 @@ if (G_LIKELY (name != NULL && *name != '\0')) item->name = g_strdup (name); if (G_LIKELY (icon != NULL && *icon != '\0')) - item->icon = g_strdup (icon); + item->icon_name = g_strdup (icon); if (G_LIKELY (command != NULL && *command != '\0')) item->command = g_strdup (command); if (G_LIKELY (description != NULL && *description != '\0')) @@ -1266,6 +1341,15 @@ item->types = types; item->startup_notify = startup_notify; + /* set the unique id once */ + if (item->unique_id == NULL) + { + if (G_LIKELY (unique_id != NULL && *unique_id != '\0')) + item->unique_id = g_strdup (unique_id); + else + item->unique_id = thunar_uca_model_get_unique_id (); + } + /* setup the patterns */ item->patterns = g_strsplit ((patterns != NULL && *patterns != '\0') ? patterns : "*", ";", -1); for (m = n = 0; item->patterns[m] != NULL; ++m) @@ -1339,21 +1423,23 @@ fp = fdopen (fd, "w"); /* write the header */ - fprintf (fp, "\n"); + fprintf (fp, "\n\n"); /* write the model items */ for (lp = uca_model->items; lp != NULL; lp = lp->next) { item = (ThunarUcaModelItem *) lp->data; - fprintf (fp, ""); + fprintf (fp, "\n"); patterns = g_strjoinv (";", item->patterns); - escaped = g_markup_printf_escaped ("%s" - "%s" - "%s" - "%s" - "%s", - (item->icon != NULL) ? item->icon : "", + escaped = g_markup_printf_escaped ("\t%s\n" + "\t%s\n" + "\t%s\n" + "\t%s\n" + "\t%s\n" + "\t%s\n", + (item->icon_name != NULL) ? item->icon_name : "", (item->name != NULL) ? item->name : "", + (item->unique_id != NULL) ? item->unique_id : "", (item->command != NULL) ? item->command : "", (item->description != NULL) ? item->description : "", patterns); @@ -1361,20 +1447,20 @@ g_free (patterns); g_free (escaped); if (item->startup_notify) - fprintf (fp, ""); + fprintf (fp, "\t\n"); if ((item->types & THUNAR_UCA_TYPE_DIRECTORIES) != 0) - fprintf (fp, ""); + fprintf (fp, "\t\n"); if ((item->types & THUNAR_UCA_TYPE_AUDIO_FILES) != 0) - fprintf (fp, ""); + fprintf (fp, "\t\n"); if ((item->types & THUNAR_UCA_TYPE_IMAGE_FILES) != 0) - fprintf (fp, ""); + fprintf (fp, "\t\n"); if ((item->types & THUNAR_UCA_TYPE_OTHER_FILES) != 0) - fprintf (fp, ""); + fprintf (fp, "\t\n"); if ((item->types & THUNAR_UCA_TYPE_TEXT_FILES) != 0) - fprintf (fp, ""); + fprintf (fp, "\t\n"); if ((item->types & THUNAR_UCA_TYPE_VIDEO_FILES) != 0) - fprintf (fp, ""); - fprintf (fp, ""); + fprintf (fp, "\t\n"); + fprintf (fp, "\n"); } /* write the footer and close the tmp file */ diff -Nru thunar-1.2.3/plugins/thunar-uca/thunar-uca-model.h thunar-1.6.10/plugins/thunar-uca/thunar-uca-model.h --- thunar-1.2.3/plugins/thunar-uca/thunar-uca-model.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-uca/thunar-uca-model.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -39,7 +39,9 @@ { THUNAR_UCA_MODEL_COLUMN_NAME, THUNAR_UCA_MODEL_COLUMN_DESCRIPTION, - THUNAR_UCA_MODEL_COLUMN_ICON, + THUNAR_UCA_MODEL_COLUMN_GICON, + THUNAR_UCA_MODEL_COLUMN_ICON_NAME, + THUNAR_UCA_MODEL_COLUMN_UNIQUE_ID, THUNAR_UCA_MODEL_COLUMN_COMMAND, THUNAR_UCA_MODEL_COLUMN_STARTUP_NOTIFY, THUNAR_UCA_MODEL_COLUMN_PATTERNS, @@ -88,6 +90,7 @@ void thunar_uca_model_update (ThunarUcaModel *uca_model, GtkTreeIter *iter, const gchar *name, + const gchar *unique_id, const gchar *description, const gchar *icon, const gchar *command, diff -Nru thunar-1.2.3/plugins/thunar-uca/thunar-uca-plugin.c thunar-1.6.10/plugins/thunar-uca/thunar-uca-plugin.c --- thunar-1.2.3/plugins/thunar-uca/thunar-uca-plugin.c 2009-09-10 16:49:46.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-uca/thunar-uca-plugin.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-uca/thunar-uca-private.c thunar-1.6.10/plugins/thunar-uca/thunar-uca-private.c --- thunar-1.2.3/plugins/thunar-uca/thunar-uca-private.c 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-uca/thunar-uca-private.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-uca/thunar-uca-private.h thunar-1.6.10/plugins/thunar-uca/thunar-uca-private.h --- thunar-1.2.3/plugins/thunar-uca/thunar-uca-private.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-uca/thunar-uca-private.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-uca/thunar-uca-provider.c thunar-1.6.10/plugins/thunar-uca/thunar-uca-provider.c --- thunar-1.2.3/plugins/thunar-uca/thunar-uca-provider.c 2011-01-02 17:57:34.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-uca/thunar-uca-provider.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -197,10 +197,11 @@ GList *actions = NULL; GList *paths; GList *lp; - gchar *icon_name; gchar *tooltip; gchar *label; + gchar *unique_id; gchar *name; + GIcon *gicon; paths = thunar_uca_model_match (uca_provider->model, files); for (lp = g_list_last (paths); lp != NULL; lp = lp->prev) @@ -211,20 +212,17 @@ /* determine the label, tooltip and stock-id for the item */ gtk_tree_model_get (GTK_TREE_MODEL (uca_provider->model), &iter, THUNAR_UCA_MODEL_COLUMN_NAME, &label, - THUNAR_UCA_MODEL_COLUMN_ICON, &icon_name, + THUNAR_UCA_MODEL_COLUMN_GICON, &gicon, THUNAR_UCA_MODEL_COLUMN_DESCRIPTION, &tooltip, + THUNAR_UCA_MODEL_COLUMN_UNIQUE_ID, &unique_id, -1); /* generate a unique action name */ - name = g_strdup_printf ("ThunarUca::action-%d", ++uca_provider->last_action_id); + name = g_strdup_printf ("uca-action-%s", unique_id); /* create the new action with the given parameters */ action = gtk_action_new (name, label, tooltip, NULL); -#if GTK_CHECK_VERSION (2, 16, 0) - gtk_action_set_icon_name (action, icon_name); -#else - g_object_set (G_OBJECT (action), "icon-name", icon_name, NULL); -#endif + gtk_action_set_gicon (action, gicon); /* grab a tree row reference on the given path */ row = gtk_tree_row_reference_new (GTK_TREE_MODEL (uca_provider->model), lp->data); @@ -247,10 +245,13 @@ actions = g_list_prepend (actions, action); /* cleanup */ - g_free (icon_name); g_free (tooltip); g_free (label); g_free (name); + g_free (unique_id); + + if (gicon != NULL) + g_object_unref (G_OBJECT (gicon)); } /* release the tree path */ @@ -336,7 +337,7 @@ { /* get the icon name and whether startup notification is active */ gtk_tree_model_get (GTK_TREE_MODEL (uca_provider->model), &iter, - THUNAR_UCA_MODEL_COLUMN_ICON, &icon_name, + THUNAR_UCA_MODEL_COLUMN_ICON_NAME, &icon_name, THUNAR_UCA_MODEL_COLUMN_STARTUP_NOTIFY, &startup_notify, -1); diff -Nru thunar-1.2.3/plugins/thunar-uca/thunar-uca-provider.h thunar-1.6.10/plugins/thunar-uca/thunar-uca-provider.h --- thunar-1.2.3/plugins/thunar-uca/thunar-uca-provider.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-uca/thunar-uca-provider.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/plugins/thunar-uca/uca.xml.in thunar-1.6.10/plugins/thunar-uca/uca.xml.in --- thunar-1.2.3/plugins/thunar-uca/uca.xml.in 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/plugins/thunar-uca/uca.xml.in 2015-05-22 20:31:54.000000000 +0000 @@ -2,7 +2,7 @@ - + @@ -11,9 +11,13 @@ + + + + @@ -23,8 +27,6 @@ ]> s that should be deleted. - * @permanently : whether to unlink the files permanently. Even if this is set to - * FALSE, the files may be erased permanently if the SHIFT key - * is pressed at the time the function is called. + * @permanently : whether to unlink the files permanently. * * Deletes all files in the @file_list and takes care of all user interaction. * @@ -1646,25 +1768,18 @@ GList *file_list, gboolean permanently) { - GdkModifierType state; - GtkWidget *dialog; - GtkWindow *window; - GdkScreen *screen; - GList *path_list = NULL; - GList *lp; - gchar *message; - guint n_path_list = 0; - gint response; + GtkWidget *dialog; + GtkWindow *window; + GdkScreen *screen; + GList *path_list = NULL; + GList *lp; + gchar *message; + guint n_path_list = 0; + gint response; _thunar_return_if_fail (parent == NULL || GDK_IS_SCREEN (parent) || GTK_IS_WIDGET (parent)); _thunar_return_if_fail (THUNAR_IS_APPLICATION (application)); - if (!permanently) - { - /* check if we should permanently delete the files (user holds shift) */ - permanently = (gtk_get_current_event_state (&state) && (state & GDK_SHIFT_MASK) != 0); - } - /* determine the paths for the files */ for (lp = g_list_last (file_list); lp != NULL; lp = lp->prev, ++n_path_list) { @@ -1767,10 +1882,11 @@ static ThunarJob * -creat_stub (GList *source_path_list, +creat_stub (GList *template_file, GList *target_path_list) { - return thunar_io_jobs_create_files (source_path_list); + _thunar_return_val_if_fail (template_file->data == NULL || G_IS_FILE (template_file->data), NULL); + return thunar_io_jobs_create_files (target_path_list, template_file->data); } @@ -1792,15 +1908,21 @@ thunar_application_creat (ThunarApplication *application, gpointer parent, GList *file_list, + GFile *template_file, GClosure *new_files_closure) { + GList template_list; + _thunar_return_if_fail (parent == NULL || GDK_IS_SCREEN (parent) || GTK_IS_WIDGET (parent)); _thunar_return_if_fail (THUNAR_IS_APPLICATION (application)); + template_list.next = template_list.prev = NULL; + template_list.data = template_file; + /* launch the operation */ thunar_application_launch (application, parent, "document-new", _("Creating files..."), creat_stub, - file_list, file_list, new_files_closure); + &template_list, file_list, new_files_closure); } @@ -1985,3 +2107,16 @@ } + +ThunarThumbnailCache * +thunar_application_get_thumbnail_cache (ThunarApplication *application) +{ + _thunar_return_val_if_fail (THUNAR_IS_APPLICATION (application), NULL); + + if (application->thumbnail_cache == NULL) + application->thumbnail_cache = thunar_thumbnail_cache_new (); + + return g_object_ref (application->thumbnail_cache); +} + + diff -Nru thunar-1.2.3/thunar/thunar-application.h thunar-1.6.10/thunar/thunar-application.h --- thunar-1.2.3/thunar/thunar-application.h 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-application.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,28 +1,30 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2005 Jeff Franks - * Copyright (c) 2009 Jannis Pohlmann + * Copyright (c) 2009-2011 Jannis Pohlmann * - * 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 free software; you can 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. + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __THUNAR_APPLICATION_H__ #define __THUNAR_APPLICATION_H__ #include +#include G_BEGIN_DECLS; @@ -36,110 +38,111 @@ #define THUNAR_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_APPLICATION)) #define THUNAR_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_APPLICATION, ThunarApplicationClass)) -GType thunar_application_get_type (void) G_GNUC_CONST; +GType thunar_application_get_type (void) G_GNUC_CONST; -ThunarApplication *thunar_application_get (void); +ThunarApplication *thunar_application_get (void); -gboolean thunar_application_get_daemon (ThunarApplication *application); -void thunar_application_set_daemon (ThunarApplication *application, - gboolean daemon); - -GList *thunar_application_get_windows (ThunarApplication *application); - -gboolean thunar_application_has_windows (ThunarApplication *application); - -void thunar_application_take_window (ThunarApplication *application, - GtkWindow *window); - -GtkWidget *thunar_application_open_window (ThunarApplication *application, - ThunarFile *directory, - GdkScreen *screen, - const gchar *startup_id); - -gboolean thunar_application_bulk_rename (ThunarApplication *application, - const gchar *working_directory, - gchar **filenames, - gboolean standalone, - GdkScreen *screen, - const gchar *startup_id, - GError **error); - -GtkWidget *thunar_application_get_progress_dialog (ThunarApplication *application); - -gboolean thunar_application_process_filenames (ThunarApplication *application, - const gchar *working_directory, - gchar **filenames, - GdkScreen *screen, - const gchar *startup_id, - GError **error); - -gboolean thunar_application_is_processing (ThunarApplication *application); - -void thunar_application_rename_file (ThunarApplication *application, - ThunarFile *file, - GdkScreen *screen, - const gchar *startup_id); -void thunar_application_create_file (ThunarApplication *application, - ThunarFile *parent_directory, - const gchar *content_type, - GdkScreen *screen, - const gchar *startup_id); -void thunar_application_create_file_from_template (ThunarApplication *application, - ThunarFile *parent_directory, - ThunarFile *template_file, - GdkScreen *screen, - const gchar *startup_id); -void thunar_application_copy_to (ThunarApplication *application, - gpointer parent, - GList *source_file_list, - GList *target_file_list, - GClosure *new_files_closure); - -void thunar_application_copy_into (ThunarApplication *application, - gpointer parent, - GList *source_file_list, - GFile *target_file, - GClosure *new_files_closure); - -void thunar_application_link_into (ThunarApplication *application, - gpointer parent, - GList *source_file_list, - GFile *target_file, - GClosure *new_files_closure); - -void thunar_application_move_into (ThunarApplication *application, - gpointer parent, - GList *source_file_list, - GFile *target_file, - GClosure *new_files_closure); - -void thunar_application_unlink_files (ThunarApplication *application, - gpointer parent, - GList *file_list, - gboolean permanently); - -void thunar_application_trash (ThunarApplication *application, - gpointer parent, - GList *file_list); - -void thunar_application_creat (ThunarApplication *application, - gpointer parent, - GList *file_list, - GClosure *new_files_closure); - -void thunar_application_mkdir (ThunarApplication *application, - gpointer parent, - GList *file_list, - GClosure *new_files_closure); - -void thunar_application_empty_trash (ThunarApplication *application, - gpointer parent, - const gchar *startup_id); - -void thunar_application_restore_files (ThunarApplication *application, - gpointer parent, - GList *trash_file_list, - GClosure *new_files_closure); +gboolean thunar_application_get_daemon (ThunarApplication *application); +void thunar_application_set_daemon (ThunarApplication *application, + gboolean daemon); + +GList *thunar_application_get_windows (ThunarApplication *application); + +gboolean thunar_application_has_windows (ThunarApplication *application); + +void thunar_application_take_window (ThunarApplication *application, + GtkWindow *window); + +GtkWidget *thunar_application_open_window (ThunarApplication *application, + ThunarFile *directory, + GdkScreen *screen, + const gchar *startup_id); + +gboolean thunar_application_bulk_rename (ThunarApplication *application, + const gchar *working_directory, + gchar **filenames, + gboolean standalone, + GdkScreen *screen, + const gchar *startup_id, + GError **error); + +gboolean thunar_application_process_filenames (ThunarApplication *application, + const gchar *working_directory, + gchar **filenames, + GdkScreen *screen, + const gchar *startup_id, + GError **error); + +gboolean thunar_application_is_processing (ThunarApplication *application); + +void thunar_application_rename_file (ThunarApplication *application, + ThunarFile *file, + GdkScreen *screen, + const gchar *startup_id); +void thunar_application_create_file (ThunarApplication *application, + ThunarFile *parent_directory, + const gchar *content_type, + GdkScreen *screen, + const gchar *startup_id); +void thunar_application_create_file_from_template (ThunarApplication *application, + ThunarFile *parent_directory, + ThunarFile *template_file, + GdkScreen *screen, + const gchar *startup_id); +void thunar_application_copy_to (ThunarApplication *application, + gpointer parent, + GList *source_file_list, + GList *target_file_list, + GClosure *new_files_closure); + +void thunar_application_copy_into (ThunarApplication *application, + gpointer parent, + GList *source_file_list, + GFile *target_file, + GClosure *new_files_closure); + +void thunar_application_link_into (ThunarApplication *application, + gpointer parent, + GList *source_file_list, + GFile *target_file, + GClosure *new_files_closure); + +void thunar_application_move_into (ThunarApplication *application, + gpointer parent, + GList *source_file_list, + GFile *target_file, + GClosure *new_files_closure); + +void thunar_application_unlink_files (ThunarApplication *application, + gpointer parent, + GList *file_list, + gboolean permanently); + +void thunar_application_trash (ThunarApplication *application, + gpointer parent, + GList *file_list); + +void thunar_application_creat (ThunarApplication *application, + gpointer parent, + GList *file_list, + GFile *template_file, + GClosure *new_files_closure); + +void thunar_application_mkdir (ThunarApplication *application, + gpointer parent, + GList *file_list, + GClosure *new_files_closure); + +void thunar_application_empty_trash (ThunarApplication *application, + gpointer parent, + const gchar *startup_id); + +void thunar_application_restore_files (ThunarApplication *application, + gpointer parent, + GList *trash_file_list, + GClosure *new_files_closure); + +ThunarThumbnailCache *thunar_application_get_thumbnail_cache (ThunarApplication *application); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-browser.c thunar-1.6.10/thunar/thunar-browser.c --- thunar-1.2.3/thunar/thunar-browser.c 2011-09-14 17:55:33.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-browser.c 2015-05-22 13:25:36.000000000 +0000 @@ -2,18 +2,18 @@ /*- * Copyright (c) 2009 Jannis Pohlmann * - * This program is free software; you can redistribute it and/or + * 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 + * 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 + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ @@ -28,27 +28,43 @@ #include #include #include +#include typedef struct _PokeFileData PokeFileData; -typedef struct _PokeVolumeData PokeVolumeData; +typedef struct _PokeDeviceData PokeDeviceData; + + + +static void thunar_browser_poke_file_internal (ThunarBrowser *browser, + GFile *location, + ThunarFile *source, + ThunarFile *file, + gpointer widget, + ThunarBrowserPokeFileFunc func, + ThunarBrowserPokeLocationFunc location_func, + gpointer user_data); + + struct _PokeFileData { - ThunarBrowser *browser; - ThunarFile *source; - ThunarFile *file; - ThunarBrowserPokeFileFunc func; - gpointer user_data; + GFile *location; + ThunarBrowser *browser; + ThunarFile *source; + ThunarFile *file; + ThunarBrowserPokeFileFunc func; + ThunarBrowserPokeLocationFunc location_func; + gpointer user_data; }; -struct _PokeVolumeData +struct _PokeDeviceData { ThunarBrowser *browser; - GVolume *volume; + ThunarDevice *device; ThunarFile *mount_point; - ThunarBrowserPokeVolumeFunc func; + ThunarBrowserPokeDeviceFunc func; gpointer user_data; }; @@ -81,23 +97,33 @@ static PokeFileData * -thunar_browser_poke_file_data_new (ThunarBrowser *browser, - ThunarFile *source, - ThunarFile *file, - ThunarBrowserPokeFileFunc func, - gpointer user_data) +thunar_browser_poke_file_data_new (ThunarBrowser *browser, + GFile *location, + ThunarFile *source, + ThunarFile *file, + ThunarBrowserPokeFileFunc func, + ThunarBrowserPokeLocationFunc location_func, + gpointer user_data) { PokeFileData *poke_data; _thunar_return_val_if_fail (THUNAR_IS_BROWSER (browser), NULL); - _thunar_return_val_if_fail (THUNAR_IS_FILE (source), NULL); - _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); poke_data = g_slice_new0 (PokeFileData); poke_data->browser = g_object_ref (browser); - poke_data->source = g_object_ref (source); - poke_data->file = g_object_ref (file); + + if (location != NULL) + poke_data->location = g_object_ref (location); + + if (source != NULL) + poke_data->source = g_object_ref (source); + + if (file != NULL) + poke_data->file = g_object_ref (file); + poke_data->func = func; + poke_data->location_func = location_func; + poke_data->user_data = user_data; return poke_data; @@ -110,32 +136,35 @@ { _thunar_return_if_fail (poke_data != NULL); _thunar_return_if_fail (THUNAR_IS_BROWSER (poke_data->browser)); - _thunar_return_if_fail (THUNAR_IS_FILE (poke_data->source)); - _thunar_return_if_fail (THUNAR_IS_FILE (poke_data->file)); g_object_unref (poke_data->browser); - g_object_unref (poke_data->source); - g_object_unref (poke_data->file); + + if (poke_data->location != NULL) + g_object_unref (poke_data->location); + if (poke_data->source != NULL) + g_object_unref (poke_data->source); + if (poke_data->file != NULL) + g_object_unref (poke_data->file); g_slice_free (PokeFileData, poke_data); } -static PokeVolumeData * -thunar_browser_poke_volume_data_new (ThunarBrowser *browser, - GVolume *volume, - ThunarBrowserPokeVolumeFunc func, +static PokeDeviceData * +thunar_browser_poke_device_data_new (ThunarBrowser *browser, + ThunarDevice *device, + ThunarBrowserPokeDeviceFunc func, gpointer user_data) { - PokeVolumeData *poke_data; + PokeDeviceData *poke_data; _thunar_return_val_if_fail (THUNAR_IS_BROWSER (browser), NULL); - _thunar_return_val_if_fail (G_IS_VOLUME (volume), NULL); + _thunar_return_val_if_fail (THUNAR_IS_DEVICE (device), NULL); - poke_data = g_slice_new0 (PokeVolumeData); + poke_data = g_slice_new0 (PokeDeviceData); poke_data->browser = g_object_ref (browser); - poke_data->volume = g_object_ref (volume); + poke_data->device = g_object_ref (device); poke_data->func = func; poke_data->user_data = user_data; @@ -145,34 +174,51 @@ static void -thunar_browser_poke_volume_data_free (PokeVolumeData *poke_data) +thunar_browser_poke_device_data_free (PokeDeviceData *poke_data) { _thunar_return_if_fail (poke_data != NULL); _thunar_return_if_fail (THUNAR_IS_BROWSER (poke_data->browser)); - _thunar_return_if_fail (G_IS_VOLUME (poke_data->volume)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (poke_data->device)); g_object_unref (poke_data->browser); - g_object_unref (poke_data->volume); + g_object_unref (poke_data->device); - g_slice_free (PokeVolumeData, poke_data); + g_slice_free (PokeDeviceData, poke_data); } -static GMountOperation * -thunar_browser_mount_operation_new (gpointer parent) +static void +thunar_browser_poke_mountable_file_finish (GFile *location, + ThunarFile *file, + GError *error, + gpointer user_data) { - GMountOperation *mount_operation; - GtkWindow *window = NULL; - GdkScreen *screen = NULL; + PokeFileData *poke_data = user_data; - mount_operation = gtk_mount_operation_new (NULL); + _thunar_return_if_fail (G_IS_FILE (location)); + _thunar_return_if_fail (user_data != NULL); + _thunar_return_if_fail (THUNAR_IS_BROWSER (poke_data->browser)); + _thunar_return_if_fail (THUNAR_IS_FILE (poke_data->file)); + _thunar_return_if_fail (THUNAR_IS_FILE (poke_data->source)); - screen = thunar_util_parse_parent (parent, &window); - gtk_mount_operation_set_screen (GTK_MOUNT_OPERATION (mount_operation), screen); - gtk_mount_operation_set_parent (GTK_MOUNT_OPERATION (mount_operation), window); + if (poke_data->location_func != NULL) + { + (poke_data->location_func) (poke_data->browser, + poke_data->location, + poke_data->source, + file, + error, + poke_data->user_data); + } + + if (poke_data->func != NULL) + { + (poke_data->func) (poke_data->browser, poke_data->source, file, error, + poke_data->user_data); + } - return mount_operation; + thunar_browser_poke_file_data_free (poke_data); } @@ -183,7 +229,6 @@ gpointer user_data) { PokeFileData *poke_data = user_data; - ThunarFile *target = NULL; GError *error = NULL; GFile *location; @@ -207,22 +252,37 @@ thunar_file_reload (poke_data->file); location = thunar_file_get_target_location (poke_data->file); - target = thunar_file_get (location, &error); + + /* resolve the ThunarFile for the target location asynchronously + * and defer cleaning up the poke data until that has finished */ + thunar_file_get_async (location, NULL, + thunar_browser_poke_mountable_file_finish, + poke_data); + g_object_unref (location); } - - if (poke_data->func != NULL) + else { - (poke_data->func) (poke_data->browser, poke_data->source, target, error, - poke_data->user_data); - } + if (poke_data->location_func != NULL) + { + (poke_data->location_func) (poke_data->browser, + poke_data->location, + poke_data->source, + NULL, + error, + poke_data->user_data); + } - g_clear_error (&error); + if (poke_data->func != NULL) + { + (poke_data->func) (poke_data->browser, poke_data->source, NULL, error, + poke_data->user_data); + } - if (target != NULL) - g_object_unref (target); + thunar_browser_poke_file_data_free (poke_data); + } - thunar_browser_poke_file_data_free (poke_data); + g_clear_error (&error); } @@ -253,11 +313,33 @@ if (error == NULL) thunar_file_reload (poke_data->file); + if (poke_data->location_func != NULL) + { + if (error == NULL) + { + (poke_data->location_func) (poke_data->browser, + poke_data->location, + poke_data->source, + poke_data->file, + NULL, + poke_data->user_data); + } + else + { + (poke_data->location_func) (poke_data->browser, + poke_data->location, + poke_data->source, + NULL, + error, + poke_data->user_data); + } + } + if (poke_data->func != NULL) { if (error == NULL) { - (poke_data->func) (poke_data->browser, poke_data->source, poke_data->file, + (poke_data->func) (poke_data->browser, poke_data->source, poke_data->file, NULL, poke_data->user_data); } else @@ -275,71 +357,108 @@ static void -thunar_browser_poke_file_internal (ThunarBrowser *browser, - ThunarFile *source, - ThunarFile *file, - gpointer widget, - ThunarBrowserPokeFileFunc func, - gpointer user_data) +thunar_browser_poke_shortcut_file_finish (GFile *location, + ThunarFile *file, + GError *error, + gpointer user_data) +{ + PokeFileData *poke_data = user_data; + + _thunar_return_if_fail (G_IS_FILE (location)); + _thunar_return_if_fail (user_data != NULL); + _thunar_return_if_fail (THUNAR_IS_BROWSER (poke_data->browser)); + _thunar_return_if_fail (THUNAR_IS_FILE (poke_data->file)); + + if (error == NULL) + { + thunar_browser_poke_file_internal (poke_data->browser, + poke_data->location, + poke_data->source, + file, + NULL, + poke_data->func, + poke_data->location_func, + poke_data->user_data); + } + else + { + if (poke_data->location_func != NULL) + { + (poke_data->location_func) (poke_data->browser, + poke_data->location, + poke_data->source, + NULL, + error, + poke_data->user_data); + } + + if (poke_data->func != NULL) + { + (poke_data->func) (poke_data->browser, poke_data->source, NULL, error, + poke_data->user_data); + } + } + + thunar_browser_poke_file_data_free (poke_data); +} + + + +static void +thunar_browser_poke_file_internal (ThunarBrowser *browser, + GFile *location, + ThunarFile *source, + ThunarFile *file, + gpointer widget, + ThunarBrowserPokeFileFunc func, + ThunarBrowserPokeLocationFunc location_func, + gpointer user_data) { GMountOperation *mount_operation; - ThunarFile *target; PokeFileData *poke_data; - GError *error = NULL; - GFile *location; + GFile *target; _thunar_return_if_fail (THUNAR_IS_BROWSER (browser)); + _thunar_return_if_fail (G_IS_FILE (location)); _thunar_return_if_fail (THUNAR_IS_FILE (source)); _thunar_return_if_fail (THUNAR_IS_FILE (file)); if (thunar_file_get_kind (file) == G_FILE_TYPE_SHORTCUT) { - location = thunar_file_get_target_location (file); - target = thunar_file_get (location, &error); - g_object_unref (location); + target = thunar_file_get_target_location (file); - if (target != NULL) - { - /* TODO in very rare occasions (shortcut X -> other shortcut -> shortcut X), - * this can lead to endless recursion */ - thunar_browser_poke_file_internal (browser, source, target, widget, - func, user_data); - } - else - { - if (func != NULL) - func (browser, source, NULL, error, user_data); - } + poke_data = thunar_browser_poke_file_data_new (browser, location, source, + file, func, location_func, user_data); - g_clear_error (&error); + thunar_file_get_async (target, NULL, + thunar_browser_poke_shortcut_file_finish, + poke_data); - if (target != NULL) - g_object_unref (target); + g_object_unref (target); } else if (thunar_file_get_kind (file) == G_FILE_TYPE_MOUNTABLE) { if (thunar_file_is_mounted (file)) { - location = thunar_file_get_target_location (file); - target = thunar_file_get (location, &error); - g_object_unref (location); + target = thunar_file_get_target_location (file); - if (func != NULL) - func (browser, source, target, error, user_data); + poke_data = thunar_browser_poke_file_data_new (browser, location, source, + file, func, location_func, user_data); - g_clear_error (&error); + thunar_file_get_async (target, NULL, + thunar_browser_poke_mountable_file_finish, + poke_data); - if (target != NULL) - g_object_unref (target); + g_object_unref (target); } else { - poke_data = thunar_browser_poke_file_data_new (browser, source, file, - func, user_data); + poke_data = thunar_browser_poke_file_data_new (browser, location, source, + file, func, location_func, user_data); - mount_operation = thunar_browser_mount_operation_new (widget); + mount_operation = thunar_gtk_mount_operation_new (widget); - g_file_mount_mountable (thunar_file_get_file (file), + g_file_mount_mountable (thunar_file_get_file (file), G_MOUNT_MOUNT_NONE, mount_operation, NULL, thunar_browser_poke_mountable_finish, poke_data); @@ -349,10 +468,10 @@ } else if (!thunar_file_is_mounted (file)) { - poke_data = thunar_browser_poke_file_data_new (browser, source, file, - func, user_data); + poke_data = thunar_browser_poke_file_data_new (browser, location, source, + file, func, location_func, user_data); - mount_operation = thunar_browser_mount_operation_new (widget); + mount_operation = thunar_gtk_mount_operation_new (widget); g_file_mount_enclosing_volume (thunar_file_get_file (file), G_MOUNT_MOUNT_NONE, mount_operation, NULL, @@ -363,6 +482,9 @@ } else { + if (location_func != NULL) + location_func (browser, location, source, file, NULL, user_data); + if (func != NULL) func (browser, source, file, NULL, user_data); } @@ -380,7 +502,7 @@ * * Pokes a #ThunarFile to see what's behind it. * - * If @file has the type %G_FILE_TYPE_SHORTCUT, it tries to load and mount + * If @file has the type %G_FILE_TYPE_SHORTCUT, it tries to load and mount * the file that is referred to by the %G_FILE_ATTRIBUTE_STANDARD_TARGET_URI * of the @file. * @@ -403,132 +525,205 @@ _thunar_return_if_fail (THUNAR_IS_BROWSER (browser)); _thunar_return_if_fail (THUNAR_IS_FILE (file)); - thunar_browser_poke_file_internal (browser, file, file, widget, func, user_data); + thunar_browser_poke_file_internal (browser, thunar_file_get_file (file), file, file, widget, + func, NULL, user_data); } static void -thunar_browser_poke_volume_finish (GObject *object, - GAsyncResult *result, - gpointer user_data) +thunar_browser_poke_device_file_finish (GFile *location, + ThunarFile *file, + GError *error, + gpointer user_data) { - PokeVolumeData *poke_data = user_data; - ThunarFile *file; - GError *error = NULL; - GMount *mount; - GFile *mount_point; + PokeDeviceData *poke_data = user_data; - _thunar_return_if_fail (G_IS_VOLUME (object)); - _thunar_return_if_fail (G_IS_ASYNC_RESULT (result)); + _thunar_return_if_fail (G_IS_FILE (location)); _thunar_return_if_fail (user_data != NULL); _thunar_return_if_fail (THUNAR_IS_BROWSER (poke_data->browser)); - _thunar_return_if_fail (G_IS_VOLUME (poke_data->volume)); - _thunar_return_if_fail (G_VOLUME (object) == poke_data->volume); + _thunar_return_if_fail (THUNAR_IS_DEVICE (poke_data->device)); - if (!g_volume_mount_finish (G_VOLUME (object), result, &error)) + if (poke_data->func != NULL) { - if (error->domain == G_IO_ERROR) - { - if (error->code == G_IO_ERROR_ALREADY_MOUNTED) - g_clear_error (&error); - } + (poke_data->func) (poke_data->browser, poke_data->device, file, error, + poke_data->user_data); } + thunar_browser_poke_device_data_free (poke_data); +} + + + +static void +thunar_browser_poke_device_finish (ThunarDevice *device, + const GError *error, + gpointer user_data) +{ + PokeDeviceData *poke_data = user_data; + GFile *mount_point; + + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); + _thunar_return_if_fail (user_data != NULL); + _thunar_return_if_fail (THUNAR_IS_BROWSER (poke_data->browser)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (poke_data->device)); + _thunar_return_if_fail (device == poke_data->device); + if (error == NULL) { - mount = g_volume_get_mount (poke_data->volume); - mount_point = g_mount_get_root (mount); + mount_point = thunar_device_get_root (device); - file = thunar_file_get (mount_point, &error); + /* resolve the ThunarFile for the mount point asynchronously + * and defer cleaning up the poke data until that has finished */ + thunar_file_get_async (mount_point, NULL, + thunar_browser_poke_device_file_finish, + poke_data); g_object_unref (mount_point); - g_object_unref (mount); - - if (poke_data->func != NULL) - { - (poke_data->func) (poke_data->browser, poke_data->volume, file, error, - poke_data->user_data); - } - - if (file != NULL) - g_object_unref (file); } else { if (poke_data->func != NULL) { - (poke_data->func) (poke_data->browser, poke_data->volume, NULL, error, + (poke_data->func) (poke_data->browser, poke_data->device, NULL, (GError *) error, poke_data->user_data); } - } - thunar_browser_poke_volume_data_free (poke_data); + thunar_browser_poke_device_data_free (poke_data); + } } /** - * thunar_browser_poke_volume: + * thunar_browser_poke_device: * @browser : a #ThunarBrowser. - * @volume : a #GVolume. + * @device : a #ThunarDevice. * @widget : a #GtkWidget, a #GdkScreen or %NULL. - * @func : a #ThunarBrowserPokeVolumeFunc callback or %NULL. + * @func : a #ThunarBrowserPokeDeviceFunc callback or %NULL. * @user_data : pointer to arbitrary user data or %NULL. * - * This function checks if @volume is mounted or not. If it is, it loads + * This function checks if @device is mounted or not. If it is, it loads * a #ThunarFile for the mount root and calls @func. If it is not mounted, - * it first mounts the volume asynchronously and calls @func with the + * it first mounts the device asynchronously and calls @func with the * #ThunarFile corresponding to the mount root when the mounting is finished. * * The #ThunarFile passed to @func will be %NULL if, and only if mounting - * the @volume failed. The #GError passed to @func will be set if, and only if + * the @device failed. The #GError passed to @func will be set if, and only if * mounting failed. **/ void -thunar_browser_poke_volume (ThunarBrowser *browser, - GVolume *volume, +thunar_browser_poke_device (ThunarBrowser *browser, + ThunarDevice *device, gpointer widget, - ThunarBrowserPokeVolumeFunc func, + ThunarBrowserPokeDeviceFunc func, gpointer user_data) { GMountOperation *mount_operation; - PokeVolumeData *poke_data; - ThunarFile *file; - GError *error = NULL; - GMount *mount; + PokeDeviceData *poke_data; GFile *mount_point; _thunar_return_if_fail (THUNAR_IS_BROWSER (browser)); - _thunar_return_if_fail (G_IS_VOLUME (volume)); + _thunar_return_if_fail (THUNAR_DEVICE (device)); - if (thunar_g_volume_is_mounted (volume)) + if (thunar_device_is_mounted (device)) { - mount = g_volume_get_mount (volume); - mount_point = g_mount_get_root (mount); + mount_point = thunar_device_get_root (device); - file = thunar_file_get (mount_point, &error); + poke_data = thunar_browser_poke_device_data_new (browser, device, func, user_data); + + thunar_file_get_async (mount_point, NULL, + thunar_browser_poke_device_file_finish, + poke_data); g_object_unref (mount_point); - g_object_unref (mount); + } + else + { + poke_data = thunar_browser_poke_device_data_new (browser, device, func, user_data); + + mount_operation = thunar_gtk_mount_operation_new (widget); + + thunar_device_mount (device, + mount_operation, + NULL, + thunar_browser_poke_device_finish, + poke_data); + + g_object_unref (mount_operation); + } +} + - if (func != NULL) - func (browser, volume, file, error, user_data); - g_clear_error (&error); +static void +thunar_browser_poke_location_file_finish (GFile *location, + ThunarFile *file, + GError *error, + gpointer user_data) +{ + PokeFileData *poke_data = user_data; + + _thunar_return_if_fail (G_IS_FILE (location)); + _thunar_return_if_fail (user_data != NULL); + _thunar_return_if_fail (THUNAR_IS_BROWSER (poke_data->browser)); + _thunar_return_if_fail (G_IS_FILE (poke_data->location)); - if (file != NULL) - g_object_unref (file); + if (error == NULL) + { + thunar_browser_poke_file_internal (poke_data->browser, + location, + file, + file, + NULL, + poke_data->func, + poke_data->location_func, + poke_data->user_data); } else { - poke_data = thunar_browser_poke_volume_data_new (browser, volume, func, user_data); + if (poke_data->location_func != NULL) + { + (poke_data->location_func) (poke_data->browser, location, NULL, NULL, error, + poke_data->user_data); + } + } - mount_operation = thunar_browser_mount_operation_new (widget); + thunar_browser_poke_file_data_free (poke_data); +} - g_volume_mount (volume, G_MOUNT_MOUNT_NONE, mount_operation, NULL, - thunar_browser_poke_volume_finish, poke_data); - g_object_unref (mount_operation); - } + +/** + * thunar_browser_poke_location: + * @browser : a #ThunarBrowser. + * @location : a #GFile. + * @widget : a #GtkWidget, a #GdkScreen or %NULL. + * @func : a #ThunarBrowserPokeDeviceFunc callback or %NULL. + * @user_data : pointer to arbitrary user data or %NULL. + * + * Pokes a #GFile to see what's behind it. + * + * It first resolves the #GFile into a #ThunarFile asynchronously using + * thunar_file_get_async(). It then performs the same steps as + * thunar_browser_poke_file(). + **/ +void +thunar_browser_poke_location (ThunarBrowser *browser, + GFile *location, + gpointer widget, + ThunarBrowserPokeLocationFunc func, + gpointer user_data) +{ + PokeFileData *poke_data; + + _thunar_return_if_fail (THUNAR_IS_BROWSER (browser)); + _thunar_return_if_fail (G_IS_FILE (location)); + + poke_data = thunar_browser_poke_file_data_new (browser, location, NULL, NULL, + NULL, func, user_data); + + thunar_file_get_async (location, NULL, + thunar_browser_poke_location_file_finish, + poke_data); } diff -Nru thunar-1.2.3/thunar/thunar-browser.h thunar-1.6.10/thunar/thunar-browser.h --- thunar-1.2.3/thunar/thunar-browser.h 2011-09-14 17:55:33.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-browser.h 2015-05-22 13:25:36.000000000 +0000 @@ -2,18 +2,18 @@ /*- * Copyright (c) 2009 Jannis Pohlmann * - * This program is free software; you can redistribute it and/or + * 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 + * 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 + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ @@ -22,6 +22,7 @@ #define __THUNAR_BROWSER_H__ #include +#include G_BEGIN_DECLS @@ -33,17 +34,24 @@ typedef struct _ThunarBrowser ThunarBrowser; typedef struct _ThunarBrowserIface ThunarBrowserIface; -typedef void (*ThunarBrowserPokeFileFunc) (ThunarBrowser *browser, - ThunarFile *file, - ThunarFile *target_file, - GError *error, - gpointer user_data); - -typedef void (*ThunarBrowserPokeVolumeFunc) (ThunarBrowser *browser, - GVolume *volume, - ThunarFile *mount_point, - GError *error, - gpointer user_data); +typedef void (*ThunarBrowserPokeFileFunc) (ThunarBrowser *browser, + ThunarFile *file, + ThunarFile *target_file, + GError *error, + gpointer user_data); + +typedef void (*ThunarBrowserPokeDeviceFunc) (ThunarBrowser *browser, + ThunarDevice *volume, + ThunarFile *mount_point, + GError *error, + gpointer user_data); + +typedef void (*ThunarBrowserPokeLocationFunc) (ThunarBrowser *browser, + GFile *location, + ThunarFile *file, + ThunarFile *target_file, + GError *error, + gpointer user_data); struct _ThunarBrowserIface { @@ -54,18 +62,23 @@ /* virtual methods */ }; -GType thunar_browser_get_type (void) G_GNUC_CONST; +GType thunar_browser_get_type (void) G_GNUC_CONST; -void thunar_browser_poke_file (ThunarBrowser *browser, - ThunarFile *file, - gpointer widget, - ThunarBrowserPokeFileFunc func, - gpointer user_data); -void thunar_browser_poke_volume (ThunarBrowser *browser, - GVolume *volume, - gpointer widget, - ThunarBrowserPokeVolumeFunc func, - gpointer user_data); +void thunar_browser_poke_file (ThunarBrowser *browser, + ThunarFile *file, + gpointer widget, + ThunarBrowserPokeFileFunc func, + gpointer user_data); +void thunar_browser_poke_device (ThunarBrowser *browser, + ThunarDevice *device, + gpointer widget, + ThunarBrowserPokeDeviceFunc func, + gpointer user_data); +void thunar_browser_poke_location (ThunarBrowser *browser, + GFile *location, + gpointer widget, + ThunarBrowserPokeLocationFunc func, + gpointer user_data); G_END_DECLS diff -Nru thunar-1.2.3/thunar/thunar-chooser-button.c thunar-1.6.10/thunar/thunar-chooser-button.c --- thunar-1.2.3/thunar/thunar-chooser-button.c 2011-07-15 18:56:23.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-chooser-button.c 2015-05-22 13:25:36.000000000 +0000 @@ -206,7 +206,7 @@ switch (prop_id) { case PROP_FILE: - g_value_set_object (value, thunar_chooser_button_get_file (chooser_button)); + g_value_set_object (value, chooser_button->file); break; default: @@ -453,21 +453,24 @@ /* add all possible applications */ for (lp = app_infos, i = 0; lp != NULL; lp = lp->next, ++i) { - /* insert the item into the store */ - gtk_list_store_insert_with_values (chooser_button->store, &iter, i, - THUNAR_CHOOSER_BUTTON_STORE_COLUMN_NAME, - g_app_info_get_name (lp->data), - THUNAR_CHOOSER_BUTTON_STORE_COLUMN_APPLICATION, - lp->data, - THUNAR_CHOOSER_BUTTON_STORE_COLUMN_ICON, - g_app_info_get_icon (lp->data), - THUNAR_CHOOSER_BUTTON_STORE_COLUMN_SENSITIVE, - TRUE, - -1); - - /* pre-select the default application */ - if (g_app_info_equal (lp->data, app_info)) - gtk_combo_box_set_active_iter (GTK_COMBO_BOX (chooser_button), &iter); + if (thunar_g_app_info_should_show (lp->data)) + { + /* insert the item into the store */ + gtk_list_store_insert_with_values (chooser_button->store, &iter, i, + THUNAR_CHOOSER_BUTTON_STORE_COLUMN_NAME, + g_app_info_get_name (lp->data), + THUNAR_CHOOSER_BUTTON_STORE_COLUMN_APPLICATION, + lp->data, + THUNAR_CHOOSER_BUTTON_STORE_COLUMN_ICON, + g_app_info_get_icon (lp->data), + THUNAR_CHOOSER_BUTTON_STORE_COLUMN_SENSITIVE, + TRUE, + -1); + + /* pre-select the default application */ + if (g_app_info_equal (lp->data, app_info)) + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (chooser_button), &iter); + } /* release the application */ g_object_unref (lp->data); @@ -529,23 +532,6 @@ } - -/** - * thunar_chooser_button_get_file: - * @chooser_button : a #ThunarChooserButton instance. - * - * Returns the #ThunarFile associated with @chooser_button. - * - * Return value: the file associated with @chooser_button. - **/ -ThunarFile* -thunar_chooser_button_get_file (ThunarChooserButton *chooser_button) -{ - _thunar_return_val_if_fail (THUNAR_IS_CHOOSER_BUTTON (chooser_button), NULL); - return chooser_button->file; -} - - /** * thunar_chooser_button_set_file: diff -Nru thunar-1.2.3/thunar/thunar-chooser-button.h thunar-1.6.10/thunar/thunar-chooser-button.h --- thunar-1.2.3/thunar/thunar-chooser-button.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-chooser-button.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer . * @@ -38,7 +38,6 @@ GtkWidget *thunar_chooser_button_new (void) G_GNUC_MALLOC; -ThunarFile *thunar_chooser_button_get_file (ThunarChooserButton *chooser_button); void thunar_chooser_button_set_file (ThunarChooserButton *chooser_button, ThunarFile *file); diff -Nru thunar-1.2.3/thunar/thunar-chooser-dialog.c thunar-1.6.10/thunar/thunar-chooser-dialog.c --- thunar-1.2.3/thunar/thunar-chooser-dialog.c 2010-10-19 13:19:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-chooser-dialog.c 2015-05-22 19:09:30.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -51,47 +51,52 @@ -static void thunar_chooser_dialog_dispose (GObject *object); -static void thunar_chooser_dialog_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void thunar_chooser_dialog_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void thunar_chooser_dialog_realize (GtkWidget *widget); -static void thunar_chooser_dialog_response (GtkDialog *widget, - gint response); -static gboolean thunar_chooser_dialog_selection_func (GtkTreeSelection *selection, - GtkTreeModel *model, - GtkTreePath *path, - gboolean path_currently_selected, - gpointer user_data); -static gboolean thunar_chooser_dialog_context_menu (ThunarChooserDialog *dialog, - guint button, - guint32 time); -static void thunar_chooser_dialog_update_accept (ThunarChooserDialog *dialog); -static void thunar_chooser_dialog_update_header (ThunarChooserDialog *dialog); -static void thunar_chooser_dialog_action_remove (ThunarChooserDialog *dialog); -static void thunar_chooser_dialog_browse_clicked (GtkWidget *button, - ThunarChooserDialog *dialog); -static gboolean thunar_chooser_dialog_button_press_event (GtkWidget *tree_view, - GdkEventButton *event, - ThunarChooserDialog *dialog); -static void thunar_chooser_dialog_notify_expanded (GtkExpander *expander, - GParamSpec *pspec, - ThunarChooserDialog *dialog); -static void thunar_chooser_dialog_expand (ThunarChooserDialog *dialog); -static gboolean thunar_chooser_dialog_popup_menu (GtkWidget *tree_view, - ThunarChooserDialog *dialog); -static void thunar_chooser_dialog_row_activated (GtkTreeView *treeview, - GtkTreePath *path, - GtkTreeViewColumn *column, - ThunarChooserDialog *dialog); -static void thunar_chooser_dialog_selection_changed (GtkTreeSelection *selection, - ThunarChooserDialog *dialog); - +static void thunar_chooser_dialog_dispose (GObject *object); +static void thunar_chooser_dialog_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void thunar_chooser_dialog_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void thunar_chooser_dialog_realize (GtkWidget *widget); +static void thunar_chooser_dialog_response (GtkDialog *widget, + gint response); +static gboolean thunar_chooser_dialog_selection_func (GtkTreeSelection *selection, + GtkTreeModel *model, + GtkTreePath *path, + gboolean path_currently_selected, + gpointer user_data); +static gboolean thunar_chooser_dialog_context_menu (ThunarChooserDialog *dialog, + guint button, + guint32 time); +static void thunar_chooser_dialog_update_accept (ThunarChooserDialog *dialog); +static void thunar_chooser_dialog_update_header (ThunarChooserDialog *dialog); +static void thunar_chooser_dialog_action_remove (ThunarChooserDialog *dialog); +static void thunar_chooser_dialog_browse_clicked (GtkWidget *button, + ThunarChooserDialog *dialog); +static gboolean thunar_chooser_dialog_button_press_event (GtkWidget *tree_view, + GdkEventButton *event, + ThunarChooserDialog *dialog); +static void thunar_chooser_dialog_notify_expanded (GtkExpander *expander, + GParamSpec *pspec, + ThunarChooserDialog *dialog); +static void thunar_chooser_dialog_expand (ThunarChooserDialog *dialog); +static gboolean thunar_chooser_dialog_popup_menu (GtkWidget *tree_view, + ThunarChooserDialog *dialog); +static void thunar_chooser_dialog_row_activated (GtkTreeView *treeview, + GtkTreePath *path, + GtkTreeViewColumn *column, + ThunarChooserDialog *dialog); +static void thunar_chooser_dialog_selection_changed (GtkTreeSelection *selection, + ThunarChooserDialog *dialog); +static ThunarFile *thunar_chooser_dialog_get_file (ThunarChooserDialog *dialog); +static void thunar_chooser_dialog_set_file (ThunarChooserDialog *dialog, + ThunarFile *file); +static gboolean thunar_chooser_dialog_get_open (ThunarChooserDialog *dialog); +static void thunar_chooser_dialog_set_open (ThunarChooserDialog *dialog, + gboolean open); struct _ThunarChooserDialogClass @@ -179,9 +184,7 @@ GtkWidget *swin; /* setup basic window properties */ - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); - gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); gtk_window_set_title (GTK_WINDOW (dialog), _("Open With")); /* create the main widget box */ @@ -239,12 +242,9 @@ gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "style", THUNAR_CHOOSER_MODEL_COLUMN_STYLE, - "style-set", THUNAR_CHOOSER_MODEL_COLUMN_STYLE_SET, "text", THUNAR_CHOOSER_MODEL_COLUMN_NAME, "weight", THUNAR_CHOOSER_MODEL_COLUMN_WEIGHT, - "weight-set", THUNAR_CHOOSER_MODEL_COLUMN_WEIGHT_SET, NULL); - gtk_tree_view_column_set_sort_column_id (column, THUNAR_CHOOSER_MODEL_COLUMN_NAME); gtk_tree_view_append_column (GTK_TREE_VIEW (dialog->tree_view), column); /* don't show the expanders */ @@ -281,7 +281,7 @@ /* create the "Use as default for this kind of file" button */ dialog->default_button = gtk_check_button_new_with_mnemonic (_("Use as _default for this kind of file")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->default_button), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->default_button), FALSE); exo_binding_new (G_OBJECT (dialog), "open", G_OBJECT (dialog->default_button), "visible"); gtk_box_pack_start (GTK_BOX (box), dialog->default_button, FALSE, FALSE, 0); gtk_widget_show (dialog->default_button); @@ -392,7 +392,7 @@ GtkTreeIter iter; const gchar *content_type; const gchar *exec; - GAppInfo *app_info; + GAppInfo *app_info = NULL; gboolean succeed = TRUE; GError *error = NULL; gchar *path; @@ -456,12 +456,12 @@ /* remember the application as default for these kind of file */ succeed = g_app_info_set_as_default_for_type (app_info, content_type, &error); - /* verify that we were successfull */ + /* verify that we were successful */ if (G_UNLIKELY (!succeed)) { /* display an error to the user */ - thunar_dialogs_show_error (GTK_WIDGET (dialog), - error, + thunar_dialogs_show_error (GTK_WIDGET (dialog), + error, _("Failed to set default application for \"%s\""), thunar_file_get_display_name (dialog->file)); @@ -473,6 +473,15 @@ if (G_LIKELY (succeed)) thunar_file_changed (dialog->file); } + else + { + /* simply try to set the app as last used for this type (we do not show any errors here) */ + if (g_app_info_set_as_last_used_for_type (app_info, content_type, NULL)) + { + /* emit "changed" on the file if we successfully changed the default application */ + thunar_file_changed (dialog->file); + } + } /* check if we should also execute the application */ if (G_LIKELY (succeed && dialog->open)) @@ -480,6 +489,7 @@ /* create launch context */ context = gdk_app_launch_context_new (); gdk_app_launch_context_set_screen (context, gtk_widget_get_screen (GTK_WIDGET (dialog))); + gdk_app_launch_context_set_timestamp (context, gtk_get_current_event_time ()); /* create fake file list */ list.data = thunar_file_get_file (dialog->file); list.next = list.prev = NULL; @@ -562,15 +572,13 @@ /* append the "Remove Launcher" item */ item = gtk_image_menu_item_new_with_mnemonic (_("_Remove Launcher")); - /* FIXME Need a way to find out whether the appinfo was created by the user: */ - gtk_widget_set_sensitive (item, FALSE); + gtk_widget_set_sensitive (item, g_app_info_can_delete (app_info)); g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_chooser_dialog_action_remove), dialog); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); image = gtk_image_new_from_stock (GTK_STOCK_REMOVE, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); /* run the menu on the dialog's screen (takes over the floating of menu) */ thunar_gtk_menu_run (GTK_MENU (menu), GTK_WIDGET (dialog), NULL, NULL, button, timestamp); @@ -628,7 +636,7 @@ gchar *text; _thunar_return_if_fail (THUNAR_IS_CHOOSER_DIALOG (dialog)); - _thunar_return_if_fail (GTK_WIDGET_REALIZED (dialog)); + _thunar_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (dialog))); /* check if we have a valid file set */ if (G_UNLIKELY (dialog->file == NULL)) @@ -695,8 +703,7 @@ if (G_UNLIKELY (app_info == NULL)) return; - /* FIXME need a way to verify that the application is usercreated */ - if (FALSE) + if (g_app_info_can_delete (app_info)) { /* determine the name of the app info */ name = g_app_info_get_name (app_info); @@ -945,11 +952,11 @@ } /* reset the cursor */ - if (G_LIKELY (GTK_WIDGET_REALIZED (dialog))) + if (G_LIKELY (gtk_widget_get_realized (GTK_WIDGET (dialog)))) gdk_window_set_cursor (GTK_WIDGET (dialog)->window, NULL); /* grab focus to the tree view widget */ - if (G_LIKELY (GTK_WIDGET_REALIZED (dialog->tree_view))) + if (G_LIKELY (gtk_widget_get_realized (dialog->tree_view))) gtk_widget_grab_focus (dialog->tree_view); } @@ -1048,21 +1055,6 @@ /** - * thunar_chooser_dialog_new: - * - * Allocates a new #ThunarChooserDialog. - * - * Return value: the newly allocated #ThunarChooserDialog. - **/ -GtkWidget* -thunar_chooser_dialog_new (void) -{ - return g_object_new (THUNAR_TYPE_CHOOSER_DIALOG, NULL); -} - - - -/** * thunar_chooser_dialog_get_file: * @dialog : a #ThunarChooserDialog. * @@ -1071,7 +1063,7 @@ * * Return value: the #ThunarFile associated with @dialog. **/ -ThunarFile* +static ThunarFile* thunar_chooser_dialog_get_file (ThunarChooserDialog *dialog) { _thunar_return_val_if_fail (THUNAR_IS_CHOOSER_DIALOG (dialog), NULL); @@ -1087,7 +1079,7 @@ * * Associates @dialog with @file. **/ -void +static void thunar_chooser_dialog_set_file (ThunarChooserDialog *dialog, ThunarFile *file) { @@ -1131,7 +1123,7 @@ } /* update the header */ - if (GTK_WIDGET_REALIZED (dialog)) + if (gtk_widget_get_realized (GTK_WIDGET (dialog))) thunar_chooser_dialog_update_header (dialog); /* notify listeners */ @@ -1148,7 +1140,7 @@ * * Return value: %TRUE if @dialog should open the file. **/ -gboolean +static gboolean thunar_chooser_dialog_get_open (ThunarChooserDialog *dialog) { _thunar_return_val_if_fail (THUNAR_IS_CHOOSER_DIALOG (dialog), FALSE); @@ -1164,7 +1156,7 @@ * * Sets whether the chooser @dialog should open the file. **/ -void +static void thunar_chooser_dialog_set_open (ThunarChooserDialog *dialog, gboolean open) { @@ -1237,7 +1229,7 @@ NULL); /* check if we have a toplevel window */ - if (G_LIKELY (window != NULL && GTK_WIDGET_TOPLEVEL (window))) + if (G_LIKELY (window != NULL && gtk_widget_get_toplevel (window))) { /* dialog is transient for toplevel window and modal */ gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); diff -Nru thunar-1.2.3/thunar/thunar-chooser-dialog.h thunar-1.6.10/thunar/thunar-chooser-dialog.h --- thunar-1.2.3/thunar/thunar-chooser-dialog.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-chooser-dialog.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer . * @@ -36,16 +36,6 @@ GType thunar_chooser_dialog_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_chooser_dialog_new (void) G_GNUC_MALLOC; - -ThunarFile *thunar_chooser_dialog_get_file (ThunarChooserDialog *dialog); -void thunar_chooser_dialog_set_file (ThunarChooserDialog *dialog, - ThunarFile *file); - -gboolean thunar_chooser_dialog_get_open (ThunarChooserDialog *dialog); -void thunar_chooser_dialog_set_open (ThunarChooserDialog *dialog, - gboolean open); - void thunar_show_chooser_dialog (gpointer parent, ThunarFile *file, gboolean open); diff -Nru thunar-1.2.3/thunar/thunar-chooser-model.c thunar-1.6.10/thunar/thunar-chooser-model.c --- thunar-1.2.3/thunar/thunar-chooser-model.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-chooser-model.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer . * Copyright (c) 2009 Jannis Pohlmann @@ -116,9 +116,7 @@ G_TYPE_ICON, G_TYPE_APP_INFO, PANGO_TYPE_STYLE, - G_TYPE_BOOLEAN, PANGO_TYPE_WEIGHT, - G_TYPE_BOOLEAN, }; /* register the column types */ @@ -207,6 +205,7 @@ GtkTreeIter parent_iter; GIcon *icon; GList *lp; + gboolean inserted_infos = FALSE; _thunar_return_if_fail (THUNAR_IS_CHOOSER_MODEL (model)); _thunar_return_if_fail (title != NULL); @@ -218,8 +217,7 @@ gtk_tree_store_set (GTK_TREE_STORE (model), &parent_iter, THUNAR_CHOOSER_MODEL_COLUMN_NAME, title, THUNAR_CHOOSER_MODEL_COLUMN_ICON, icon, - THUNAR_CHOOSER_MODEL_COLUMN_WEIGHT, PANGO_WEIGHT_SEMIBOLD, - THUNAR_CHOOSER_MODEL_COLUMN_WEIGHT_SET, TRUE, + THUNAR_CHOOSER_MODEL_COLUMN_WEIGHT, PANGO_WEIGHT_BOLD, -1); g_object_unref (icon); @@ -229,23 +227,30 @@ /* insert the program items */ for (lp = app_infos; lp != NULL; lp = lp->next) { + if (!thunar_g_app_info_should_show (lp->data)) + continue; + /* append the tree row with the program data */ gtk_tree_store_append (GTK_TREE_STORE (model), &child_iter, &parent_iter); gtk_tree_store_set (GTK_TREE_STORE (model), &child_iter, THUNAR_CHOOSER_MODEL_COLUMN_NAME, g_app_info_get_name (lp->data), THUNAR_CHOOSER_MODEL_COLUMN_ICON, g_app_info_get_icon (lp->data), THUNAR_CHOOSER_MODEL_COLUMN_APPLICATION, lp->data, + THUNAR_CHOOSER_MODEL_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL, -1); + + inserted_infos = TRUE; } } - else + + if (!inserted_infos) { /* tell the user that we don't have any applications for this category */ gtk_tree_store_append (GTK_TREE_STORE (model), &child_iter, &parent_iter); gtk_tree_store_set (GTK_TREE_STORE (model), &child_iter, THUNAR_CHOOSER_MODEL_COLUMN_NAME, _("None available"), THUNAR_CHOOSER_MODEL_COLUMN_STYLE, PANGO_STYLE_ITALIC, - THUNAR_CHOOSER_MODEL_COLUMN_STYLE_SET, TRUE, + THUNAR_CHOOSER_MODEL_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL, -1); } } @@ -261,6 +266,16 @@ +static gint +sort_app_infos (gconstpointer a, + gconstpointer b) +{ + return g_utf8_collate (g_app_info_get_name (G_APP_INFO (a)), + g_app_info_get_name (G_APP_INFO (b))); +} + + + static void thunar_chooser_model_reload (ThunarChooserModel *model) { @@ -278,33 +293,32 @@ recommended = g_app_info_get_all_for_type (model->content_type); /* append them as recommended */ + recommended = g_list_sort (recommended, sort_app_infos); thunar_chooser_model_append (model, _("Recommended Applications"), "preferences-desktop-default-applications", recommended); all = g_app_info_get_all (); - for (lp = g_list_last (all); lp != NULL; lp = lp->prev) + for (lp = all; lp != NULL; lp = lp->next) { - if (g_list_find_custom (recommended, - lp->data, - (GCompareFunc) compare_app_infos) == NULL) + if (g_list_find_custom (recommended, + lp->data, + compare_app_infos) == NULL) { other = g_list_prepend (other, lp->data); } } /* append the other applications */ + other = g_list_sort (other, sort_app_infos); thunar_chooser_model_append (model, _("Other Applications"), "gnome-applications", other); - g_list_foreach (recommended, (GFunc) g_object_unref, NULL); - g_list_free (recommended); - - g_list_foreach (all, (GFunc) g_object_unref, NULL); - g_list_free (all); + g_list_free_full (recommended, g_object_unref); + g_list_free_full (all, g_object_unref); g_list_free (other); } @@ -384,6 +398,15 @@ model->content_type, error); + /* try to delete the file */ + if (succeed && g_app_info_delete (app_info)) + { + g_set_error (error, G_IO_ERROR, + G_IO_ERROR_FAILED, + _("Failed to remove \"%s\"."), + g_app_info_get_id (app_info)); + } + /* clean up */ g_object_unref (app_info); diff -Nru thunar-1.2.3/thunar/thunar-chooser-model.h thunar-1.6.10/thunar/thunar-chooser-model.h --- thunar-1.2.3/thunar/thunar-chooser-model.h 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-chooser-model.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -41,7 +41,6 @@ * @THUNAR_CHOOSER_MODEL_COLUMN_ICON : the name or absolute path of the application's icon. * @THUNAR_CHOOSER_MODEL_COLUMN_APPLICATION : the #GAppInfo object. * @THUNAR_CHOOSER_MODEL_COLUMN_STYLE : custom font style. - * @THUNAR_CHOOSER_MODEL_COLUMN_STYLE_SET : whether to actually use the custom font style. * @THUNAR_CHOOSER_MODEL_N_COLUMNS : the number of columns in #ThunarChooserModel. * * The identifiers for the columns provided by the #ThunarChooserModel. @@ -52,9 +51,7 @@ THUNAR_CHOOSER_MODEL_COLUMN_ICON, THUNAR_CHOOSER_MODEL_COLUMN_APPLICATION, THUNAR_CHOOSER_MODEL_COLUMN_STYLE, - THUNAR_CHOOSER_MODEL_COLUMN_STYLE_SET, THUNAR_CHOOSER_MODEL_COLUMN_WEIGHT, - THUNAR_CHOOSER_MODEL_COLUMN_WEIGHT_SET, THUNAR_CHOOSER_MODEL_N_COLUMNS, } ThunarChooserModelColumn; diff -Nru thunar-1.2.3/thunar/thunar-clipboard-manager.c thunar-1.6.10/thunar/thunar-clipboard-manager.c --- thunar-1.2.3/thunar/thunar-clipboard-manager.c 2011-07-15 18:56:23.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-clipboard-manager.c 2015-05-22 13:25:36.000000000 +0000 @@ -52,6 +52,7 @@ enum { + TARGET_TEXT_URI_LIST, TARGET_GNOME_COPIED_FILES, TARGET_UTF8_STRING, }; @@ -118,6 +119,7 @@ static const GtkTargetEntry clipboard_targets[] = { + { "text/uri-list", 0, TARGET_TEXT_URI_LIST }, { "x-special/gnome-copied-files", 0, TARGET_GNOME_COPIED_FILES }, { "UTF8_STRING", 0, TARGET_UTF8_STRING } }; @@ -150,7 +152,7 @@ **/ g_object_class_install_property (gobject_class, PROP_CAN_PASTE, - g_param_spec_boolean ("can-paste", "can-pase", "can-paste", + g_param_spec_boolean ("can-paste", "can-paste", "can-paste", FALSE, EXO_PARAM_READABLE)); @@ -404,16 +406,53 @@ +static gchar * +thunar_clipboard_manager_g_file_list_to_string (GList *list, + const gchar *prefix, + gboolean format_for_text, + gsize *len) +{ + GString *string; + gchar *tmp; + GList *lp; + + /* allocate initial string */ + string = g_string_new (prefix); + + for (lp = list; lp != NULL; lp = lp->next) + { + if (format_for_text) + tmp = g_file_get_parse_name (G_FILE (lp->data)); + else + tmp = g_file_get_uri (G_FILE (lp->data)); + + string = g_string_append (string, tmp); + g_free (tmp); + + if (lp->next != NULL) + string = g_string_append_c (string, '\n'); + } + + if (len != NULL) + *len = string->len; + + return g_string_free (string, FALSE); +} + + + static void thunar_clipboard_manager_get_callback (GtkClipboard *clipboard, GtkSelectionData *selection_data, guint target_info, gpointer user_data) { - ThunarClipboardManager *manager = THUNAR_CLIPBOARD_MANAGER (user_data); - GList *file_list = NULL; - gchar *string_list; - gchar *data; + ThunarClipboardManager *manager = THUNAR_CLIPBOARD_MANAGER (user_data); + GList *file_list; + gchar *str; + gchar **uris; + const gchar *prefix; + gsize len; _thunar_return_if_fail (GTK_IS_CLIPBOARD (clipboard)); _thunar_return_if_fail (THUNAR_IS_CLIPBOARD_MANAGER (manager)); @@ -422,19 +461,25 @@ /* determine the path list from the file list */ file_list = thunar_file_list_to_thunar_g_file_list (manager->files); - /* determine the string representation of the path list */ - string_list = thunar_g_file_list_to_string (file_list); - switch (target_info) { + case TARGET_TEXT_URI_LIST: + uris = thunar_g_file_list_to_stringv (file_list); + gtk_selection_data_set_uris (selection_data, uris); + g_strfreev (uris); + break; + case TARGET_GNOME_COPIED_FILES: - data = g_strconcat (manager->files_cutted ? "cut\n" : "copy\n", string_list, NULL); - gtk_selection_data_set (selection_data, selection_data->target, 8, (guchar *) data, strlen (data)); - g_free (data); + prefix = manager->files_cutted ? "cut\n" : "copy\n"; + str = thunar_clipboard_manager_g_file_list_to_string (file_list, prefix, FALSE, &len); + gtk_selection_data_set (selection_data, selection_data->target, 8, (guchar *) str, len); + g_free (str); break; case TARGET_UTF8_STRING: - gtk_selection_data_set (selection_data, selection_data->target, 8, (guchar *) string_list, strlen (string_list)); + str = thunar_clipboard_manager_g_file_list_to_string (file_list, NULL, TRUE, &len); + gtk_selection_data_set_text (selection_data, str, len); + g_free (str); break; default: @@ -443,7 +488,6 @@ /* cleanup */ thunar_g_file_list_free (file_list); - g_free (string_list); } diff -Nru thunar-1.2.3/thunar/thunar-clipboard-manager.h thunar-1.6.10/thunar/thunar-clipboard-manager.h --- thunar-1.2.3/thunar/thunar-clipboard-manager.h 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-clipboard-manager.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -32,8 +32,8 @@ #define THUNAR_CLIPBOARD_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_TYPE_CLIPBOARD_MANAGER, ThunarClipboardManager)) #define THUNAR_CLIPBOARD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((obj), THUNAR_TYPE_CLIPBOARD_MANAGER, ThunarClipboardManagerClass)) #define THUNAR_IS_CLIPBOARD_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_TYPE_CLIPBOARD_MANAGER)) -#define THUNAR_IS_CLIPBAORD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_CLIPBOARD_MANAGER)) -#define THUNAR_CLIPBOARD_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_CLIPBAORD_MANAGER, ThunarClipboardManagerClass)) +#define THUNAR_IS_CLIPBOARD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_CLIPBOARD_MANAGER)) +#define THUNAR_CLIPBOARD_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_CLIPBOARD_MANAGER, ThunarClipboardManagerClass)) GType thunar_clipboard_manager_get_type (void) G_GNUC_CONST; diff -Nru thunar-1.2.3/thunar/thunar-column-editor.c thunar-1.6.10/thunar/thunar-column-editor.c --- thunar-1.2.3/thunar/thunar-column-editor.c 2011-07-15 18:56:23.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-column-editor.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006-2007 Benedikt Meurer * @@ -21,6 +21,8 @@ #include #endif +#include + #include #include #include @@ -115,7 +117,6 @@ /* setup the dialog */ gtk_dialog_add_button (GTK_DIALOG (column_editor), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); gtk_dialog_set_default_response (GTK_DIALOG (column_editor), GTK_RESPONSE_CLOSE); - gtk_dialog_set_has_separator (GTK_DIALOG (column_editor), FALSE); gtk_window_set_resizable (GTK_WINDOW (column_editor), FALSE); gtk_window_set_title (GTK_WINDOW (column_editor), _("Configure Columns in the Detailed List View")); @@ -302,7 +303,10 @@ _thunar_return_if_fail (GTK_IS_BUTTON (button)); /* open the user manual */ - thunar_dialogs_show_help (column_editor, "the-file-manager-window", "visible-columns-in-the-detailed-list-view"); + xfce_dialog_show_help (GTK_WINDOW (gtk_widget_get_toplevel (button)), + "thunar", + "the-file-manager-window", + "customizing_the_appearance"); } @@ -509,21 +513,6 @@ /** - * thunar_column_editor_new: - * - * Allocates a new #ThunarColumnEditor instance. - * - * Return value: the newly allocated #ThunarColumnEditor. - **/ -GtkWidget* -thunar_column_editor_new (void) -{ - return g_object_new (THUNAR_TYPE_COLUMN_EDITOR, NULL); -} - - - -/** * thunar_show_column_editor: * @parent : the #GtkWidget the #GdkScreen on which to open the * column editor dialog. May also be %NULL in which case @@ -564,10 +553,10 @@ } /* display the column editor */ - dialog = thunar_column_editor_new (); + dialog = g_object_new (THUNAR_TYPE_COLUMN_EDITOR, NULL); /* check if we have a toplevel window */ - if (G_LIKELY (window != NULL && GTK_WIDGET_TOPLEVEL (window))) + if (G_LIKELY (window != NULL && gtk_widget_get_toplevel (window))) { /* dialog is transient for toplevel window and modal */ gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); diff -Nru thunar-1.2.3/thunar/thunar-column-editor.h thunar-1.6.10/thunar/thunar-column-editor.h --- thunar-1.2.3/thunar/thunar-column-editor.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-column-editor.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -36,8 +36,6 @@ GType thunar_column_editor_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_column_editor_new (void) G_GNUC_MALLOC; - void thunar_show_column_editor (gpointer parent); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-column-model.c thunar-1.6.10/thunar/thunar-column-model.c --- thunar-1.2.3/thunar/thunar-column-model.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-column-model.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-column-model.h thunar-1.6.10/thunar/thunar-column-model.h --- thunar-1.2.3/thunar/thunar-column-model.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-column-model.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-compact-view.c thunar-1.6.10/thunar/thunar-compact-view.c --- thunar-1.2.3/thunar/thunar-compact-view.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-compact-view.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-compact-view.h thunar-1.6.10/thunar/thunar-compact-view.h --- thunar-1.2.3/thunar/thunar-compact-view.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-compact-view.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2006 Matt McClinch diff -Nru thunar-1.2.3/thunar/thunar-component.c thunar-1.6.10/thunar/thunar-component.c --- thunar-1.2.3/thunar/thunar-component.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-component.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -139,6 +139,27 @@ } + +/** + * thunar_component_restore_selection: + * @component : a #ThunarComponent instance. + * + * Make sure that the @selected_files stay selected when a @component + * updates. This may be necessary on row changes etc. + **/ +void +thunar_component_restore_selection (ThunarComponent *component) +{ + GList *selected_files; + + _thunar_return_if_fail (THUNAR_IS_COMPONENT (component)); + + selected_files = thunar_g_file_list_copy (thunar_component_get_selected_files (component)); + thunar_component_set_selected_files (component, selected_files); + thunar_g_file_list_free (selected_files); +} + + /** * thunar_component_get_ui_manager: diff -Nru thunar-1.2.3/thunar/thunar-component.h thunar-1.6.10/thunar/thunar-component.h --- thunar-1.2.3/thunar/thunar-component.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-component.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -48,13 +48,15 @@ GType thunar_component_get_type (void) G_GNUC_CONST; -GList *thunar_component_get_selected_files (ThunarComponent *component); -void thunar_component_set_selected_files (ThunarComponent *component, - GList *selected_files); - -GtkUIManager *thunar_component_get_ui_manager (ThunarComponent *component); -void thunar_component_set_ui_manager (ThunarComponent *component, - GtkUIManager *ui_manager); +GList *thunar_component_get_selected_files (ThunarComponent *component); +void thunar_component_set_selected_files (ThunarComponent *component, + GList *selected_files); + +void thunar_component_restore_selection (ThunarComponent *component); + +GtkUIManager *thunar_component_get_ui_manager (ThunarComponent *component); +void thunar_component_set_ui_manager (ThunarComponent *component, + GtkUIManager *ui_manager); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-create-dialog.c thunar-1.6.10/thunar/thunar-create-dialog.c --- thunar-1.2.3/thunar/thunar-create-dialog.c 2010-10-19 10:45:57.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-create-dialog.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009-2010 Jannis Pohlmann @@ -43,19 +43,24 @@ -static void thunar_create_dialog_dispose (GObject *object); -static void thunar_create_dialog_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void thunar_create_dialog_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void thunar_create_dialog_realize (GtkWidget *widget); -static void thunar_create_dialog_update_image (ThunarCreateDialog *dialog); -static void thunar_create_dialog_text_changed (GtkWidget *entry, - ThunarCreateDialog *dialog); +static void thunar_create_dialog_dispose (GObject *object); +static void thunar_create_dialog_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void thunar_create_dialog_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void thunar_create_dialog_realize (GtkWidget *widget); +static void thunar_create_dialog_update_image (ThunarCreateDialog *dialog); +static void thunar_create_dialog_text_changed (GtkWidget *entry, + ThunarCreateDialog *dialog); +static const gchar *thunar_create_dialog_get_filename (const ThunarCreateDialog *dialog); +static void thunar_create_dialog_set_filename (ThunarCreateDialog *dialog, + const gchar *filename); +static void thunar_create_dialog_set_content_type (ThunarCreateDialog *dialog, + const gchar *content_type); @@ -137,7 +142,6 @@ _("C_reate"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, FALSE); gtk_window_set_default_size (GTK_WINDOW (dialog), 300, -1); @@ -190,7 +194,7 @@ break; case PROP_CONTENT_TYPE: - g_value_set_string (value, thunar_create_dialog_get_content_type (dialog)); + g_value_set_string (value, dialog->content_type); break; default: @@ -287,21 +291,6 @@ /** - * thunar_create_dialog_new: - * - * Allocates a new #ThunarCreateDialog instance. - * - * Return value: the newly allocated #ThunarCreateDialog instance. - **/ -GtkWidget* -thunar_create_dialog_new (void) -{ - return g_object_new (THUNAR_TYPE_CREATE_DIALOG, NULL); -} - - - -/** * thunar_create_dialog_get_filename: * @dialog : a #ThunarCreateDialog. * @@ -340,7 +329,7 @@ gtk_entry_set_text (GTK_ENTRY (dialog->entry), filename); /* check if filename contains a dot */ - dot = g_utf8_strrchr (filename, -1, '.'); + dot = thunar_util_str_get_extension (filename); if (G_LIKELY (dot != NULL)) { /* grab focus to the entry first, else @@ -369,23 +358,6 @@ /** - * thunar_create_dialog_get_content_type: - * @dialog : a #ThunarCreateDialog. - * - * Returns the current content type for @dialog or %NULL. - * - * Return value: the content type for @dialog. - **/ -const gchar * -thunar_create_dialog_get_content_type (const ThunarCreateDialog *dialog) -{ - _thunar_return_val_if_fail (THUNAR_IS_CREATE_DIALOG (dialog), NULL); - return dialog->content_type; -} - - - -/** * thunar_create_dialog_set_content_type: * @dialog : a #ThunarCreateDialog. * @content_type : the new content type. @@ -405,7 +377,7 @@ dialog->content_type = g_strdup (content_type); /* update the image if we're already realized */ - if (GTK_WIDGET_REALIZED (dialog)) + if (gtk_widget_get_realized (GTK_WIDGET (dialog))) thunar_create_dialog_update_image (dialog); /* notify listeners */ diff -Nru thunar-1.2.3/thunar/thunar-create-dialog.h thunar-1.6.10/thunar/thunar-create-dialog.h --- thunar-1.2.3/thunar/thunar-create-dialog.h 2010-10-18 19:32:20.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-create-dialog.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009-2010 Jannis Pohlmann @@ -35,22 +35,12 @@ #define THUNAR_IS_CREATE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_CREATE_DIALOG)) #define THUNAR_CREATE_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_CREATE_DIALOG, ThunarCreateDialogClass)) -GType thunar_create_dialog_get_type (void) G_GNUC_CONST; +GType thunar_create_dialog_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_create_dialog_new (void) G_GNUC_MALLOC; - -const gchar *thunar_create_dialog_get_filename (const ThunarCreateDialog *dialog); -void thunar_create_dialog_set_filename (ThunarCreateDialog *dialog, - const gchar *filename); - -const gchar *thunar_create_dialog_get_content_type (const ThunarCreateDialog *dialog); -void thunar_create_dialog_set_content_type (ThunarCreateDialog *dialog, - const gchar *content_type); - -gchar *thunar_show_create_dialog (gpointer parent, - const gchar *content_type, - const gchar *filename, - const gchar *title) G_GNUC_MALLOC; +gchar *thunar_show_create_dialog (gpointer parent, + const gchar *content_type, + const gchar *filename, + const gchar *title) G_GNUC_MALLOC; G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-dbus-client.c thunar-1.6.10/thunar/thunar-dbus-client.c --- thunar-1.2.3/thunar/thunar-dbus-client.c 2010-08-31 08:44:05.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-dbus-client.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -107,6 +107,7 @@ g_free (display_name); /* send the message and release our references on connection and message */ + dbus_error_init (&derror); result = dbus_connection_send_with_reply_and_block (connection, message, -1, &derror); dbus_message_unref (message); @@ -210,6 +211,7 @@ g_free (display_name); /* send the message and release our references on connection and message */ + dbus_error_init (&derror); result = dbus_connection_send_with_reply_and_block (connection, message, -1, &derror); dbus_message_unref (message); @@ -275,6 +277,7 @@ dbus_message_set_auto_start (message, FALSE); /* send the message and release our references on connection and message */ + dbus_error_init (&derror); result = dbus_connection_send_with_reply_and_block (connection, message, -1, &derror); dbus_message_unref (message); diff -Nru thunar-1.2.3/thunar/thunar-dbus-client.h thunar-1.6.10/thunar/thunar-dbus-client.h --- thunar-1.2.3/thunar/thunar-dbus-client.h 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-dbus-client.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-dbus-service.c thunar-1.6.10/thunar/thunar-dbus-service.c --- thunar-1.2.3/thunar/thunar-dbus-service.c 2011-01-30 17:18:15.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-dbus-service.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * Copyright (c) 2009-2010 Jannis Pohlmann @@ -238,7 +238,7 @@ /** * ThunarDBusService::trash-changed: * @dbus_service : a #ThunarDBusService. - * @full : %TRUE if the trash bin now contains atleast + * @full : %TRUE if the trash bin now contains at least * one item, %FALSE otherwise. * * This signal is emitted whenever the state of the trash bin @@ -258,7 +258,9 @@ static void thunar_dbus_service_init (ThunarDBusService *dbus_service) { - GError *error = NULL; + GError *error = NULL; + DBusConnection *dbus_connection; + gint result; /* try to connect to the session bus */ dbus_service->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); @@ -268,15 +270,33 @@ dbus_g_connection_register_g_object (dbus_service->connection, "/org/xfce/FileManager", G_OBJECT (dbus_service)); /* request the org.xfce.Thunar name for Thunar */ - dbus_bus_request_name (dbus_g_connection_get_connection (dbus_service->connection), "org.xfce.Thunar", DBUS_NAME_FLAG_REPLACE_EXISTING, NULL); + dbus_connection = dbus_g_connection_get_connection (dbus_service->connection); + result = dbus_bus_request_name (dbus_connection, "org.xfce.Thunar", + DBUS_NAME_FLAG_ALLOW_REPLACEMENT | DBUS_NAME_FLAG_DO_NOT_QUEUE, NULL); + + /* check if we successfully acquired the name */ + if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) + { + g_printerr ("Thunar: D-BUS name org.xfce.Thunar already registered.\n"); + + /* unset connection */ + dbus_g_connection_unref (dbus_service->connection); + dbus_service->connection = NULL; + + return; + } /* request the org.xfce.FileManager name for Thunar */ - dbus_bus_request_name (dbus_g_connection_get_connection (dbus_service->connection), "org.xfce.FileManager", DBUS_NAME_FLAG_REPLACE_EXISTING, NULL); + dbus_bus_request_name (dbus_connection, "org.xfce.FileManager", DBUS_NAME_FLAG_REPLACE_EXISTING, NULL); + + /* once we registered, unset dbus variables (bug #8800) */ + g_unsetenv ("DBUS_STARTER_ADDRESS"); + g_unsetenv ("DBUS_STARTER_BUS_TYPE"); } else { /* notify the user that D-BUS service won't be available */ - g_fprintf (stderr, "Thunar: Failed to connect to the D-BUS session bus: %s\n", error->message); + g_printerr ("Thunar: Failed to connect to the D-BUS session bus: %s\n", error->message); g_error_free (error); } } @@ -287,10 +307,18 @@ thunar_dbus_service_finalize (GObject *object) { ThunarDBusService *dbus_service = THUNAR_DBUS_SERVICE (object); + DBusConnection *dbus_connection; /* release the D-BUS connection object */ if (G_LIKELY (dbus_service->connection != NULL)) - dbus_g_connection_unref (dbus_service->connection); + { + /* release the names */ + dbus_connection = dbus_g_connection_get_connection (dbus_service->connection); + dbus_bus_release_name (dbus_connection, "org.xfce.Thunar", NULL); + dbus_bus_release_name (dbus_connection, "org.xfce.FileManager", NULL); + + dbus_g_connection_unref (dbus_service->connection); + } /* check if we are connected to the trash bin */ if (G_LIKELY (dbus_service->trash_bin != NULL)) @@ -329,6 +357,7 @@ g_signal_connect_swapped (G_OBJECT (dbus_service->trash_bin), "changed", G_CALLBACK (thunar_dbus_service_trash_bin_changed), dbus_service); + thunar_file_reload_idle (dbus_service->trash_bin); } g_object_unref (trash_bin_path); } @@ -512,7 +541,7 @@ return FALSE; /* popup the file properties dialog */ - dialog = thunar_properties_dialog_new (); + dialog = thunar_properties_dialog_new (NULL); gtk_window_set_screen (GTK_WINDOW (dialog), screen); gtk_window_set_startup_id (GTK_WINDOW (dialog), startup_id); thunar_properties_dialog_set_file (THUNAR_PROPERTIES_DIALOG (dialog), file); @@ -597,12 +626,11 @@ /* try to launch the file on the given screen */ working_dir = g_file_new_for_commandline_arg (working_directory); - result = thunar_file_execute (file, working_dir, screen, file_list, error); + result = thunar_file_execute (file, working_dir, screen, file_list, startup_id, error); g_object_unref (working_dir); /* cleanup */ - g_list_foreach (file_list, (GFunc) g_object_unref, NULL); - g_list_free (file_list); + g_list_free_full (file_list, g_object_unref); g_object_unref (screen); g_object_unref (file); } @@ -848,11 +876,11 @@ return FALSE; } - /* verify that atleast one filename is given */ + /* verify that at least one filename is given */ if (G_UNLIKELY (filenames == NULL || *filenames == NULL)) { /* LaunchFiles() invoked with an empty filename list */ - g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_INVAL, _("Atleast one filename must be specified")); + g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_INVAL, _("At least one filename must be specified")); return FALSE; } @@ -1261,7 +1289,7 @@ } /* check if we succeeded */ - if (err == NULL) + if (err == NULL && file_list != NULL) { /* tell the application to move the specified files to the trash */ application = thunar_application_get (); @@ -1270,7 +1298,7 @@ } /* cleanup */ - thunar_file_list_free (file_list); + thunar_g_file_list_free (file_list); g_object_unref (screen); } @@ -1295,3 +1323,12 @@ /* we cannot fail */ return TRUE; } + + + +gboolean +thunar_dbus_service_has_connection (ThunarDBusService *dbus_service) +{ + _thunar_return_val_if_fail (THUNAR_IS_DBUS_SERVICE (dbus_service), FALSE); + return dbus_service->connection != NULL; +} diff -Nru thunar-1.2.3/thunar/thunar-dbus-service.h thunar-1.6.10/thunar/thunar-dbus-service.h --- thunar-1.2.3/thunar/thunar-dbus-service.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-dbus-service.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -34,7 +34,9 @@ #define THUNAR_IS_DBUS_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_DBUS_BRIGDE)) #define THUNAR_DBUS_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_DBUS_SERVICE, ThunarDBusServicetClass)) -GType thunar_dbus_service_get_type (void) G_GNUC_CONST; +GType thunar_dbus_service_get_type (void) G_GNUC_CONST; + +gboolean thunar_dbus_service_has_connection (ThunarDBusService *dbus_service); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-dbus-service-infos.h thunar-1.6.10/thunar/thunar-dbus-service-infos.h --- thunar-1.2.3/thunar/thunar-dbus-service-infos.h 2011-09-20 20:28:44.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-dbus-service-infos.h 2015-05-22 20:47:38.000000000 +0000 @@ -10,7 +10,7 @@ #ifdef G_ENABLE_DEBUG #define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) -#define g_marshal_value_peek_char(v) g_value_get_char (v) +#define g_marshal_value_peek_char(v) g_value_get_schar (v) #define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) #define g_marshal_value_peek_int(v) g_value_get_int (v) #define g_marshal_value_peek_uint(v) g_value_get_uint (v) diff -Nru thunar-1.2.3/thunar/thunar-dbus-service-infos.xml thunar-1.6.10/thunar/thunar-dbus-service-infos.xml --- thunar-1.2.3/thunar/thunar-dbus-service-infos.xml 2010-10-24 21:25:27.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-dbus-service-infos.xml 2015-05-22 20:31:54.000000000 +0000 @@ -1,8 +1,6 @@ %s (%u)\n", uri, G_OBJECT (value)->ref_count); + if (G_OBJECT (key)->ref_count > 2) + g_print (" GFile (%u)\n", G_OBJECT (key)->ref_count - 2); g_free (uri); } + + static void thunar_file_atexit (void) { @@ -176,6 +264,45 @@ G_UNLOCK (file_cache_mutex); } #endif +#endif + + + +#if DUMP_FILE_CACHE +static void +thunar_file_cache_dump_foreach (gpointer gfile, + gpointer value, + gpointer user_data) +{ + gchar *name; + + name = g_file_get_parse_name (G_FILE (gfile)); + g_print (" %s (%u)\n", name, G_OBJECT (value)->ref_count); + g_free (name); +} + + + +static gboolean +thunar_file_cache_dump (gpointer user_data) +{ + G_LOCK (file_cache_mutex); + + if (file_cache != NULL) + { + g_print ("--- %d ThunarFile objects in cache:\n", + g_hash_table_size (file_cache)); + + g_hash_table_foreach (file_cache, thunar_file_cache_dump_foreach, NULL); + + g_print ("\n"); + } + + G_UNLOCK (file_cache_mutex); + + return TRUE; +} +#endif @@ -185,17 +312,21 @@ GObjectClass *gobject_class; #ifdef G_ENABLE_DEBUG +#ifdef HAVE_ATEXIT if (G_UNLIKELY (!thunar_file_atexit_registered)) { - g_atexit (thunar_file_atexit); + atexit ((void (*)(void)) thunar_file_atexit); thunar_file_atexit_registered = TRUE; } #endif +#endif + +#if DUMP_FILE_CACHE + g_timeout_add_seconds (DUMP_FILE_CACHE, thunar_file_cache_dump, NULL); +#endif /* pre-allocate the required quarks */ - thunar_file_thumb_path_quark = g_quark_from_static_string ("thunar-file-thumb-path"); - thunar_file_watch_count_quark = g_quark_from_static_string ("thunar-file-watch-count"); - thunar_file_emblem_names_quark = g_quark_from_static_string ("thunar-file-emblem-names"); + thunar_file_watch_quark = g_quark_from_static_string ("thunar-file-watch"); /* grab a reference on the user manager */ user_manager = thunar_user_manager_get_default (); @@ -257,12 +388,12 @@ ThunarFile *file = THUNAR_FILE (object); /* check that we don't recurse here */ - if (G_LIKELY ((file->flags & THUNAR_FILE_IN_DESTRUCTION) == 0)) + if (!FLAG_IS_SET (file, THUNAR_FILE_FLAG_IN_DESTRUCTION)) { /* emit the "destroy" signal */ - file->flags |= THUNAR_FILE_IN_DESTRUCTION; + FLAG_SET (file, THUNAR_FILE_FLAG_IN_DESTRUCTION); g_signal_emit (object, file_signals[DESTROY], 0); - file->flags &= ~THUNAR_FILE_IN_DESTRUCTION; + FLAG_UNSET (file, THUNAR_FILE_FLAG_IN_DESTRUCTION); } (*G_OBJECT_CLASS (thunar_file_parent_class)->dispose) (object); @@ -277,10 +408,11 @@ /* verify that nobody's watching the file anymore */ #ifdef G_ENABLE_DEBUG - if (G_UNLIKELY (THUNAR_FILE_GET_WATCH_COUNT (file) != 0)) + ThunarFileWatch *file_watch = g_object_get_qdata (G_OBJECT (file), thunar_file_watch_quark); + if (file_watch != NULL) { g_error ("Attempt to finalize a ThunarFile, which has an active " - "watch count of %d", THUNAR_FILE_GET_WATCH_COUNT (file)); + "watch count of %d", file_watch->watch_count); } #endif @@ -289,21 +421,26 @@ g_hash_table_remove (file_cache, file->gfile); G_UNLOCK (file_cache_mutex); - /* drop a reference on the metadata if we own one */ - if ((file->flags & THUNAR_FILE_OWNS_METAFILE_REFERENCE) != 0) - g_object_unref (G_OBJECT (metafile)); - /* release file info */ if (file->info != NULL) g_object_unref (file->info); /* free the custom icon name */ g_free (file->custom_icon_name); - + + /* content type info */ + g_free (file->content_type); + g_free (file->icon_name); + /* free display name and basename */ g_free (file->display_name); g_free (file->basename); + /* free collate keys */ + if (file->collate_key_nocase != file->collate_key) + g_free (file->collate_key_nocase); + g_free (file->collate_key); + /* free the thumbnail path */ g_free (file->thumbnail_path); @@ -326,7 +463,7 @@ static gchar* thunar_file_info_get_uri (ThunarxFileInfo *file_info) { - return g_file_get_uri (THUNAR_FILE (file_info)->gfile); + return thunar_file_dup_uri (THUNAR_FILE (file_info)); } @@ -360,10 +497,7 @@ static gchar* thunar_file_info_get_mime_type (ThunarxFileInfo *file_info) { - if (THUNAR_FILE (file_info)->info == NULL) - return NULL; - - return g_strdup (g_file_info_get_content_type (THUNAR_FILE (file_info)->info)); + return g_strdup (thunar_file_get_content_type (THUNAR_FILE (file_info))); } @@ -375,7 +509,7 @@ if (THUNAR_FILE (file_info)->info == NULL) return FALSE; - return g_content_type_is_a (g_file_info_get_content_type (THUNAR_FILE (file_info)->info), mime_type); + return g_content_type_is_a (thunar_file_get_content_type (THUNAR_FILE (file_info)), mime_type); } @@ -425,10 +559,16 @@ static void thunar_file_info_changed (ThunarxFileInfo *file_info) { - thunar_file_set_thumb_state (THUNAR_FILE (file_info), THUNAR_FILE_THUMB_STATE_UNKNOWN); + ThunarFile *file = THUNAR_FILE (file_info); + + _thunar_return_if_fail (THUNAR_IS_FILE (file_info)); + + /* set the new thumbnail state manually, so we only emit file + * changed once */ + FLAG_SET_THUMB_STATE (file, THUNAR_FILE_THUMB_STATE_UNKNOWN); /* tell the file monitor that this file changed */ - thunar_file_monitor_file_changed (THUNAR_FILE (file_info)); + thunar_file_monitor_file_changed (file); } @@ -508,31 +648,6 @@ -static ThunarMetafile* -thunar_file_get_metafile (ThunarFile *file) -{ - if ((file->flags & THUNAR_FILE_OWNS_METAFILE_REFERENCE) == 0) - { - /* take a reference on the metafile for this file */ - if (G_UNLIKELY (metafile == NULL)) - { - metafile = thunar_metafile_get_default (); - g_object_add_weak_pointer (G_OBJECT (metafile), (gpointer) &metafile); - } - else - { - g_object_ref (G_OBJECT (metafile)); - } - - /* remember that we own a reference now */ - file->flags |= THUNAR_FILE_OWNS_METAFILE_REFERENCE; - } - - return metafile; -} - - - static void thunar_file_monitor_update (GFile *path, GFileMonitorEvent event_type) @@ -540,18 +655,14 @@ ThunarFile *file; _thunar_return_if_fail (G_IS_FILE (path)); - file = thunar_file_cache_lookup (path); if (G_LIKELY (file != NULL)) { switch (event_type) { case G_FILE_MONITOR_EVENT_CREATED: - case G_FILE_MONITOR_EVENT_CHANGED: case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED: - thunar_file_reload (file); - break; - + case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: case G_FILE_MONITOR_EVENT_PRE_UNMOUNT: case G_FILE_MONITOR_EVENT_DELETED: thunar_file_reload (file); @@ -560,238 +671,318 @@ default: break; } + + g_object_unref (file); } } static void -thunar_file_monitor (GFileMonitor *monitor, - GFile *path, - GFile *other_path, - GFileMonitorEvent event_type, - gpointer user_data) +thunar_file_move_thumbnail_cache_file (GFile *old_file, + GFile *new_file) { - ThunarFile *file = THUNAR_FILE (user_data); - - _thunar_return_if_fail (G_IS_FILE_MONITOR (monitor)); - _thunar_return_if_fail (THUNAR_IS_FILE (file)); + ThunarApplication *application; + ThunarThumbnailCache *thumbnail_cache; - if (G_UNLIKELY (!G_IS_FILE (path) || !g_file_equal (path, file->gfile))) - return; + _thunar_return_if_fail (G_IS_FILE (old_file)); + _thunar_return_if_fail (G_IS_FILE (new_file)); - if (G_LIKELY (G_IS_FILE (path))) - thunar_file_monitor_update (path, event_type); + application = thunar_application_get (); + thumbnail_cache = thunar_application_get_thumbnail_cache (application); + thunar_thumbnail_cache_move_file (thumbnail_cache, old_file, new_file); - if (G_UNLIKELY (G_IS_FILE (other_path))) - thunar_file_monitor_update (other_path, event_type); + g_object_unref (thumbnail_cache); + g_object_unref (application); } -/** - * thunar_file_get: - * @file : a #GFile. - * @error : return location for errors. - * - * Looks up the #ThunarFile referred to by @file. This function may return a - * ThunarFile even though the file doesn't actually exist. This is the case - * with remote URIs (like SFTP) for instance, if they are not mounted. - * - * The caller is responsible to call g_object_unref() - * when done with the returned object. - * - * Return value: the #ThunarFile for @file or %NULL on errors. - **/ -ThunarFile* -thunar_file_get (GFile *gfile, - GError **error) +static void +thunar_file_monitor_moved (ThunarFile *file, + GFile *renamed_file) { - ThunarFile *file; - - _thunar_return_val_if_fail (G_IS_FILE (gfile), NULL); + GFile *previous_file; - /* check if we already have a cached version of that file */ - file = thunar_file_cache_lookup (gfile); - if (G_UNLIKELY (file != NULL)) - { - /* take a reference for the caller */ - g_object_ref (file); - } - else - { - /* allocate a new object */ - file = g_object_new (THUNAR_TYPE_FILE, NULL); - file->gfile = g_object_ref (gfile); - file->info = NULL; - file->custom_icon_name = NULL; - file->display_name = NULL; - file->basename = NULL; + /* ref the old location */ + previous_file = g_object_ref (G_OBJECT (file->gfile)); - if (thunar_file_load (file, NULL, error)) - { - /* insert the file into the cache */ - G_LOCK (file_cache_mutex); - g_hash_table_insert (file_cache, g_object_ref (file->gfile), file); - G_UNLOCK (file_cache_mutex); - } - else - { - /* failed loading, destroy the file */ - g_object_unref (file); + /* notify the thumbnail cache that we can now also move the thumbnail */ + thunar_file_move_thumbnail_cache_file (previous_file, renamed_file); - /* make sure we return NULL */ - file = NULL; - } - } + /* set the new file */ + file->gfile = g_object_ref (G_OBJECT (renamed_file)); - return file; -} + /* reload file information */ + thunar_file_load (file, NULL, NULL); + /* need to re-register the monitor handle for the new uri */ + thunar_file_watch_reconnect (file); + G_LOCK (file_cache_mutex); -/** - * thunar_file_get_for_uri: - * @uri : an URI or an absolute filename. - * @error : return location for errors or %NULL. - * - * Convenience wrapper function for thunar_file_get_for_path(), as its - * often required to determine a #ThunarFile for a given @uri. - * - * The caller is responsible to free the returned object using - * g_object_unref() when no longer needed. - * - * Return value: the #ThunarFile for the given @uri or %NULL if - * unable to determine. - **/ -ThunarFile* -thunar_file_get_for_uri (const gchar *uri, - GError **error) -{ - ThunarFile *file; - GFile *path; + /* drop the previous entry from the cache */ + g_hash_table_remove (file_cache, previous_file); - _thunar_return_val_if_fail (uri != NULL, NULL); - _thunar_return_val_if_fail (error == NULL || *error == NULL, NULL); + /* drop the reference on the previous file */ + g_object_unref (previous_file); - path = g_file_new_for_commandline_arg (uri); - file = thunar_file_get (path, error); - g_object_unref (path); + /* insert the new entry */ + g_hash_table_insert (file_cache, g_object_ref (file->gfile), file); - return file; + G_UNLOCK (file_cache_mutex); } -/** - * thunar_file_load: - * @file : a #ThunarFile. - * @cancellable : a #GCancellable. - * @error : return location for errors or %NULL. - * - * Loads all information about the file. As this is a possibly - * blocking call, it can be cancelled using @cancellable. - * - * If loading the file fails or the operation is cancelled, - * @error will be set. - * - * Return value: %TRUE on success, %FALSE on error or interruption. - **/ -gboolean -thunar_file_load (ThunarFile *file, - GCancellable *cancellable, - GError **error) +void +thunar_file_reload_parent (ThunarFile *file) { - const gchar *target_uri; - GKeyFile *key_file; - GError *err = NULL; - GFile *thumbnail_dir; - gchar *base_name; - gchar *md5_hash; - gchar *p; - gchar *thumbnail_dir_path; - gchar *uri = NULL; + ThunarFile *parent = NULL; - _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); - _thunar_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + _thunar_return_if_fail (THUNAR_IS_FILE (file)); - /* release the current file info */ - if (file->info != NULL) + if (thunar_file_has_parent (file)) { - g_object_unref (file->info); - file->info = NULL; - } + GFile *parent_file; - /* free the custom icon name */ - g_free (file->custom_icon_name); - file->custom_icon_name = NULL; + /* only reload file if it is in cache */ + parent_file = g_file_get_parent (file->gfile); + parent = thunar_file_cache_lookup (parent_file); + g_object_unref (parent_file); + } - /* free display name and basename */ - g_free (file->display_name); - file->display_name = NULL; + if (parent) + { + thunar_file_reload (parent); + g_object_unref (parent); + } +} - g_free (file->basename); - file->basename = NULL; - /* free thumbnail path */ - g_free (file->thumbnail_path); - file->thumbnail_path = NULL; - /* assume the file is mounted by default */ - file->is_mounted = TRUE; +static void +thunar_file_monitor (GFileMonitor *monitor, + GFile *event_path, + GFile *other_path, + GFileMonitorEvent event_type, + gpointer user_data) +{ + ThunarFile *file = THUNAR_FILE (user_data); + ThunarFile *other_file; - /* query a new file info */ - file->info = g_file_query_info (file->gfile, - THUNARX_FILE_INFO_NAMESPACE, - G_FILE_QUERY_INFO_NONE, - cancellable, &err); + _thunar_return_if_fail (G_IS_FILE_MONITOR (monitor)); + _thunar_return_if_fail (G_IS_FILE (event_path)); + _thunar_return_if_fail (THUNAR_IS_FILE (file)); - if (err == NULL) + if (g_file_equal (event_path, file->gfile)) { - if (g_file_info_get_file_type (file->info) == G_FILE_TYPE_MOUNTABLE) + /* the event occurred for the monitored ThunarFile */ + if (event_type == G_FILE_MONITOR_EVENT_MOVED) { - target_uri = - g_file_info_get_attribute_string (file->info, - G_FILE_ATTRIBUTE_STANDARD_TARGET_URI); - file->is_mounted = - (target_uri != NULL) - && !g_file_info_get_attribute_boolean (file->info, - G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT); + thunar_file_monitor_moved (file, other_path); + return; } + + if (G_LIKELY (event_path)) + thunar_file_monitor_update (event_path, event_type); } else { - if (err->domain == G_IO_ERROR && err->code == G_IO_ERROR_NOT_MOUNTED) - { - file->is_mounted = FALSE; - g_clear_error (&err); + /* The event did not occur for the monitored ThunarFile, but for + a file that is contained in ThunarFile which is actually a + directory. */ + if (event_type == G_FILE_MONITOR_EVENT_MOVED) + { + /* reload the target file if cached */ + other_file = thunar_file_cache_lookup (other_path); + if (other_file) + thunar_file_reload (other_file); + else + other_file = thunar_file_get (other_path, NULL); + + if (!other_file) + return; + + /* notify the thumbnail cache that we can now also move the thumbnail */ + thunar_file_move_thumbnail_cache_file (event_path, other_path); + + /* reload the containing target folder */ + thunar_file_reload_parent (other_file); + + g_object_unref (other_file); } + return; } +} - /* determine the basename */ - file->basename = g_file_get_basename (file->gfile); - _thunar_assert (file->basename != NULL); - /* assume all files are not thumbnails themselves */ - file->is_thumbnail = FALSE; - /* create a GFile for the $HOME/.thumbnails/ directory */ - thumbnail_dir_path = g_build_filename (xfce_get_homedir (), ".thumbnails", NULL); - thumbnail_dir = g_file_new_for_path (thumbnail_dir_path); +static void +thunar_file_watch_destroyed (gpointer data) +{ + ThunarFileWatch *file_watch = data; - /* check if this file is a thumbnail */ - if (g_file_has_prefix (file->gfile, thumbnail_dir)) + if (G_LIKELY (file_watch->monitor != NULL)) { - /* remember that this file is a thumbnail */ - file->is_thumbnail = TRUE; - - /* use the filename as custom icon name for thumbnails */ - file->custom_icon_name = g_file_get_path (file->gfile); + g_file_monitor_cancel (file_watch->monitor); + g_object_unref (file_watch->monitor); } - /* check if this file is a desktop entry */ - if (thunar_file_is_desktop_file (file)) + g_slice_free (ThunarFileWatch, file_watch); +} + + + +static void +thunar_file_watch_reconnect (ThunarFile *file) +{ + ThunarFileWatch *file_watch; + + /* recreate the monitor without changing the watch_count for file renames */ + file_watch = g_object_get_qdata (G_OBJECT (file), thunar_file_watch_quark); + if (file_watch != NULL) + { + /* reset the old monitor */ + if (G_LIKELY (file_watch->monitor != NULL)) + { + g_file_monitor_cancel (file_watch->monitor); + g_object_unref (file_watch->monitor); + } + + /* create a file or directory monitor */ + file_watch->monitor = g_file_monitor (file->gfile, G_FILE_MONITOR_WATCH_MOUNTS | G_FILE_MONITOR_SEND_MOVED, NULL, NULL); + if (G_LIKELY (file_watch->monitor != NULL)) + { + /* watch monitor for file changes */ + g_signal_connect (file_watch->monitor, "changed", G_CALLBACK (thunar_file_monitor), file); + } + } +} + + + +static void +thunar_file_set_emblem_names_ready (GObject *source_object, + GAsyncResult *result, + gpointer user_data) +{ + ThunarFile *file = THUNAR_FILE (user_data); + GError *error = NULL; + + if (!g_file_set_attributes_finish (G_FILE (source_object), result, NULL, &error)) + { + g_warning ("Failed to set metadata: %s", error->message); + g_error_free (error); + + g_file_info_remove_attribute (file->info, "metadata::emblems"); + } + + thunar_file_changed (file); +} + + + +static void +thunar_file_info_clear (ThunarFile *file) +{ + _thunar_return_if_fail (THUNAR_IS_FILE (file)); + + /* release the current file info */ + if (file->info != NULL) + { + g_object_unref (file->info); + file->info = NULL; + } + + /* unset */ + file->kind = G_FILE_TYPE_UNKNOWN; + + /* free the custom icon name */ + g_free (file->custom_icon_name); + file->custom_icon_name = NULL; + + /* free display name and basename */ + g_free (file->display_name); + file->display_name = NULL; + + g_free (file->basename); + file->basename = NULL; + + /* content type */ + g_free (file->content_type); + file->content_type = NULL; + g_free (file->icon_name); + file->icon_name = NULL; + + /* free collate keys */ + if (file->collate_key_nocase != file->collate_key) + g_free (file->collate_key_nocase); + file->collate_key_nocase = NULL; + + g_free (file->collate_key); + file->collate_key = NULL; + + /* free thumbnail path */ + g_free (file->thumbnail_path); + file->thumbnail_path = NULL; + + /* assume the file is mounted by default */ + FLAG_SET (file, THUNAR_FILE_FLAG_IS_MOUNTED); + + /* set thumb state to unknown */ + FLAG_SET_THUMB_STATE (file, THUNAR_FILE_THUMB_STATE_UNKNOWN); +} + + + +static void +thunar_file_info_reload (ThunarFile *file, + GCancellable *cancellable) +{ + const gchar *target_uri; + GKeyFile *key_file; + gchar *p; + const gchar *display_name; + gboolean is_secure = FALSE; + gchar *casefold; + gchar *path; + + _thunar_return_if_fail (THUNAR_IS_FILE (file)); + _thunar_return_if_fail (file->info == NULL || G_IS_FILE_INFO (file->info)); + + if (G_LIKELY (file->info != NULL)) + { + /* this is requested so often, cache it */ + file->kind = g_file_info_get_file_type (file->info); + + if (file->kind == G_FILE_TYPE_MOUNTABLE) + { + target_uri = g_file_info_get_attribute_string (file->info, G_FILE_ATTRIBUTE_STANDARD_TARGET_URI); + if (target_uri != NULL + && !g_file_info_get_attribute_boolean (file->info, G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT)) + FLAG_SET (file, THUNAR_FILE_FLAG_IS_MOUNTED); + else + FLAG_UNSET (file, THUNAR_FILE_FLAG_IS_MOUNTED); + } + } + + /* determine the basename */ + file->basename = g_file_get_basename (file->gfile); + _thunar_assert (file->basename != NULL); + + /* problematic files with content type reading */ + if (strcmp (file->basename, "kmsg") == 0 + && g_file_is_native (file->gfile)) + { + path = g_file_get_path (file->gfile); + if (g_strcmp0 (path, "/proc/kmsg") == 0) + file->content_type = g_strdup (DEFAULT_CONTENT_TYPE); + g_free (path); + } + + /* check if this file is a desktop entry */ + if (thunar_file_is_desktop_file (file, &is_secure) && is_secure) { /* determine the custom icon and display name for .desktop files */ @@ -830,91 +1021,435 @@ G_KEY_FILE_DESKTOP_KEY_NAME, NULL, NULL); - /* check if we have a display name now */ - if (file->display_name != NULL) + /* drop the name if it's empty or has invalid encoding */ + if (exo_str_is_empty (file->display_name) + || !g_utf8_validate (file->display_name, -1, NULL)) { - /* drop the name if it's empty or has invalid encoding */ - if (*file->display_name == '\0' - || !g_utf8_validate (file->display_name, -1, NULL)) - { - g_free (file->display_name); - file->display_name = NULL; - } + g_free (file->display_name); + file->display_name = NULL; } /* free the key file */ g_key_file_free (key_file); } - else + } + + /* determine the display name */ + if (file->display_name == NULL) + { + if (G_LIKELY (file->info != NULL)) { - /* cannot parse the key file, no custom icon */ - file->custom_icon_name = NULL; + display_name = g_file_info_get_display_name (file->info); + if (G_LIKELY (display_name != NULL)) + { + if (strcmp (display_name, "/") == 0) + file->display_name = g_strdup (_("File System")); + else + file->display_name = g_strdup (display_name); + } } + + /* faccl back to a name for the gfile */ + if (file->display_name == NULL) + file->display_name = thunar_g_file_get_display_name (file->gfile); + } + + /* create case sensitive collation key */ + file->collate_key = g_utf8_collate_key_for_filename (file->display_name, -1); + + /* lowercase the display name */ + casefold = g_utf8_casefold (file->display_name, -1); + + /* if the lowercase name is equal, only peek the already hash key */ + if (casefold != NULL && strcmp (casefold, file->display_name) != 0) + file->collate_key_nocase = g_utf8_collate_key_for_filename (casefold, -1); + else + file->collate_key_nocase = file->collate_key; + + /* cleanup */ + g_free (casefold); +} + + + +static void +thunar_file_get_async_finish (GObject *object, + GAsyncResult *result, + gpointer user_data) +{ + ThunarFileGetData *data = user_data; + ThunarFile *file; + GFileInfo *file_info; + GError *error = NULL; + GFile *location = G_FILE (object); + + _thunar_return_if_fail (G_IS_FILE (location)); + _thunar_return_if_fail (G_IS_ASYNC_RESULT (result)); + + /* finish querying the file information */ + file_info = g_file_query_info_finish (location, result, &error); + + /* allocate a new file object */ + file = g_object_new (THUNAR_TYPE_FILE, NULL); + file->gfile = g_object_ref (location); + + /* reset the file */ + thunar_file_info_clear (file); + + /* set the file information */ + file->info = file_info; + + /* update the file from the information */ + thunar_file_info_reload (file, data->cancellable); + + /* update the mounted info */ + if (error != NULL + && error->domain == G_IO_ERROR + && error->code == G_IO_ERROR_NOT_MOUNTED) + { + FLAG_UNSET (file, THUNAR_FILE_FLAG_IS_MOUNTED); + g_clear_error (&error); + } + + /* insert the file into the cache */ + G_LOCK (file_cache_mutex); +#ifdef G_ENABLE_DEBUG + /* check if there is no instance created in the meantime */ + _thunar_assert (g_hash_table_lookup (file_cache, file->gfile) == NULL); +#endif + g_hash_table_insert (file_cache, g_object_ref (file->gfile), file); + G_UNLOCK (file_cache_mutex); + + /* pass the loaded file and possible errors to the return function */ + (data->func) (location, file, error, data->user_data); + + /* release the file, see description in ThunarFileGetFunc */ + g_object_unref (file); + + /* free the error, if there is any */ + if (error != NULL) + g_error_free (error); + + /* release the get data */ + if (data->cancellable != NULL) + g_object_unref (data->cancellable); + g_slice_free (ThunarFileGetData, data); +} + + + +/** + * thunar_file_load: + * @file : a #ThunarFile. + * @cancellable : a #GCancellable. + * @error : return location for errors or %NULL. + * + * Loads all information about the file. As this is a possibly + * blocking call, it can be cancelled using @cancellable. + * + * If loading the file fails or the operation is cancelled, + * @error will be set. + * + * Return value: %TRUE on success, %FALSE on error or interruption. + **/ +static gboolean +thunar_file_load (ThunarFile *file, + GCancellable *cancellable, + GError **error) +{ + GError *err = NULL; + + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); + _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); + _thunar_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + _thunar_return_val_if_fail (G_IS_FILE (file->gfile), FALSE); + + /* reset the file */ + thunar_file_info_clear (file); + + /* query a new file info */ + file->info = g_file_query_info (file->gfile, + THUNARX_FILE_INFO_NAMESPACE, + G_FILE_QUERY_INFO_NONE, + cancellable, &err); + + /* update the file from the information */ + thunar_file_info_reload (file, cancellable); + + /* update the mounted info */ + if (err != NULL + && err->domain == G_IO_ERROR + && err->code == G_IO_ERROR_NOT_MOUNTED) + { + FLAG_UNSET (file, THUNAR_FILE_FLAG_IS_MOUNTED); + g_clear_error (&err); + } + + if (err != NULL) + { + g_propagate_error (error, err); + return FALSE; } else { - /* not a .desktop file, no custom icon */ - file->custom_icon_name = NULL; + return TRUE; } +} - /* free $HOME/.thumbnails/ GFile and path */ - g_object_unref (thumbnail_dir); - g_free (thumbnail_dir_path); - /* determine the display name */ - if (file->display_name == NULL) + +/** + * thunar_file_get: + * @file : a #GFile. + * @error : return location for errors. + * + * Looks up the #ThunarFile referred to by @file. This function may return a + * ThunarFile even though the file doesn't actually exist. This is the case + * with remote URIs (like SFTP) for instance, if they are not mounted. + * + * The caller is responsible to call g_object_unref() + * when done with the returned object. + * + * Return value: the #ThunarFile for @file or %NULL on errors. + **/ +ThunarFile* +thunar_file_get (GFile *gfile, + GError **error) +{ + ThunarFile *file; + + _thunar_return_val_if_fail (G_IS_FILE (gfile), NULL); + + /* check if we already have a cached version of that file */ + file = thunar_file_cache_lookup (gfile); + if (G_UNLIKELY (file != NULL)) { - if (file->info != NULL) + /* return the file, it already has an additional ref set + * in thunar_file_cache_lookup */ + } + else + { + /* allocate a new object */ + file = g_object_new (THUNAR_TYPE_FILE, NULL); + file->gfile = g_object_ref (gfile); + + if (thunar_file_load (file, NULL, error)) { - if (g_strcmp0 (g_file_info_get_display_name (file->info), "/") == 0) - file->display_name = g_strdup (_("File System")); - else - file->display_name = g_strdup (g_file_info_get_display_name (file->info)); + /* setup lock until the file is inserted */ + G_LOCK (file_cache_mutex); + + /* insert the file into the cache */ + g_hash_table_insert (file_cache, g_object_ref (file->gfile), file); + + /* done inserting in the cache */ + G_UNLOCK (file_cache_mutex); } else { - if (g_file_is_native (file->gfile)) - { - uri = g_file_get_path (file->gfile); - if (uri == NULL) - uri = g_file_get_uri (file->gfile); - } - else - { - uri = g_file_get_uri (file->gfile); - } + /* failed loading, destroy the file */ + g_object_unref (file); - file->display_name = g_filename_display_name (uri); - g_free (uri); + /* make sure we return NULL */ + file = NULL; } } - /* set thumb state to unknown */ - file->flags = - (file->flags & ~THUNAR_FILE_THUMB_STATE_MASK) | THUNAR_FILE_THUMB_STATE_UNKNOWN; + return file; +} - /* determine thumbnail path */ - uri = g_file_get_uri (file->gfile); - md5_hash = g_compute_checksum_for_string (G_CHECKSUM_MD5, uri, -1); - base_name = g_strdup_printf ("%s.png", md5_hash); - file->thumbnail_path = g_build_filename (xfce_get_homedir (), ".thumbnails", - "normal", base_name, NULL); - g_free (base_name); - g_free (md5_hash); - g_free (uri); - /* TODO monitor the thumbnail file for changes */ +/** + * thunar_file_get_with_info: + * @uri : an URI or an absolute filename. + * @info : #GFileInfo to use when loading the info. + * @not_mounted : if the file is mounted. + * + * Looks up the #ThunarFile referred to by @file. This function may return a + * ThunarFile even though the file doesn't actually exist. This is the case + * with remote URIs (like SFTP) for instance, if they are not mounted. + * + * This function does not use g_file_query_info() to get the info, + * but takes a reference on the @info, + * + * The caller is responsible to call g_object_unref() + * when done with the returned object. + * + * Return value: the #ThunarFile for @file or %NULL on errors. + **/ +ThunarFile * +thunar_file_get_with_info (GFile *gfile, + GFileInfo *info, + gboolean not_mounted) +{ + ThunarFile *file; + + _thunar_return_val_if_fail (G_IS_FILE (gfile), NULL); + _thunar_return_val_if_fail (G_IS_FILE_INFO (info), NULL); + + /* check if we already have a cached version of that file */ + file = thunar_file_cache_lookup (gfile); + if (G_UNLIKELY (file != NULL)) + { + /* return the file, it already has an additional ref set + * in thunar_file_cache_lookup */ + } + else + { + /* allocate a new object */ + file = g_object_new (THUNAR_TYPE_FILE, NULL); + file->gfile = g_object_ref (gfile); + + /* reset the file */ + thunar_file_info_clear (file); + + /* set the passed info */ + file->info = g_object_ref (info); + + /* update the file from the information */ + thunar_file_info_reload (file, NULL); + + /* update the mounted info */ + if (not_mounted) + FLAG_UNSET (file, THUNAR_FILE_FLAG_IS_MOUNTED); + + /* setup lock until the file is inserted */ + G_LOCK (file_cache_mutex); + + /* insert the file into the cache */ + g_hash_table_insert (file_cache, g_object_ref (file->gfile), file); + + /* done inserting in the cache */ + G_UNLOCK (file_cache_mutex); + } + + return file; +} + + + + + +/** + * thunar_file_get_for_uri: + * @uri : an URI or an absolute filename. + * @error : return location for errors or %NULL. + * + * Convenience wrapper function for thunar_file_get_for_path(), as its + * often required to determine a #ThunarFile for a given @uri. + * + * The caller is responsible to free the returned object using + * g_object_unref() when no longer needed. + * + * Return value: the #ThunarFile for the given @uri or %NULL if + * unable to determine. + **/ +ThunarFile* +thunar_file_get_for_uri (const gchar *uri, + GError **error) +{ + ThunarFile *file; + GFile *path; + + _thunar_return_val_if_fail (uri != NULL, NULL); + _thunar_return_val_if_fail (error == NULL || *error == NULL, NULL); + + path = g_file_new_for_commandline_arg (uri); + file = thunar_file_get (path, error); + g_object_unref (path); + + return file; +} + + + +/** + * thunar_file_get_async: + **/ +void +thunar_file_get_async (GFile *location, + GCancellable *cancellable, + ThunarFileGetFunc func, + gpointer user_data) +{ + ThunarFile *file; + ThunarFileGetData *data; + + _thunar_return_if_fail (G_IS_FILE (location)); + _thunar_return_if_fail (func != NULL); + + /* check if we already have a cached version of that file */ + file = thunar_file_cache_lookup (location); + if (G_UNLIKELY (file != NULL)) + { + /* call the return function with the file from the cache */ + (func) (location, file, NULL, user_data); + g_object_unref (file); + } + else + { + /* allocate get data */ + data = g_slice_new0 (ThunarFileGetData); + data->user_data = user_data; + data->func = func; + if (cancellable != NULL) + data->cancellable = g_object_ref (cancellable); + + /* load the file information asynchronously */ + g_file_query_info_async (location, + THUNARX_FILE_INFO_NAMESPACE, + G_FILE_QUERY_INFO_NONE, + G_PRIORITY_DEFAULT, + cancellable, + thunar_file_get_async_finish, + data); + } +} + + + +/** + * thunar_file_get_file: + * @file : a #ThunarFile instance. + * + * Returns the #GFile that refers to the location of @file. + * + * The returned #GFile is owned by @file and must not be released + * with g_object_unref(). + * + * Return value: the #GFile corresponding to @file. + **/ +GFile * +thunar_file_get_file (const ThunarFile *file) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); + _thunar_return_val_if_fail (G_IS_FILE (file->gfile), NULL); + return file->gfile; +} + + + +/** + * thunar_file_get_info: + * @file : a #ThunarFile instance. + * + * Returns the #GFileInfo for @file. + * + * Note, that there's no reference taken for the caller on the + * returned #GFileInfo, so if you need the object for a longer + * perioud, you'll need to take a reference yourself using the + * g_object_ref() method. + * + * Return value: the #GFileInfo for @file or %NULL. + **/ +GFileInfo * +thunar_file_get_info (const ThunarFile *file) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); + _thunar_return_val_if_fail (file->info == NULL || G_IS_FILE_INFO (file->info), NULL); + return file->info; +} + - if (err != NULL) - { - g_propagate_error (error, err); - return FALSE; - } - else - { - return TRUE; - } -} /** * thunar_file_get_parent: @@ -959,12 +1494,35 @@ /** + * thunar_file_check_loaded: + * @file : a #ThunarFile instance. + * + * Check if @file has its information loaded, if not, try this once else + * return %FALSE. + * + * Return value: %TRUE on success, else %FALSE. + **/ +gboolean +thunar_file_check_loaded (ThunarFile *file) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); + + if (G_UNLIKELY (file->info == NULL)) + thunar_file_load (file, NULL, NULL); + + return (file->info != NULL); +} + + + +/** * thunar_file_execute: * @file : a #ThunarFile instance. * @working_directory : the working directory used to resolve relative filenames * in @file_list. - * @screen : a #GdkScreen. + * @parent : %NULL, a #GdkScreen or #GtkWidget. * @file_list : the list of #GFiles to supply to @file on execution. + * @startup_id : startup id for the new window (send over for dbus) or %NULL. * @error : return location for errors or %NULL. * * Tries to execute @file on the specified @screen. If @file is executable @@ -976,36 +1534,38 @@ gboolean thunar_file_execute (ThunarFile *file, GFile *working_directory, - GdkScreen *screen, + gpointer parent, GList *file_list, + const gchar *startup_id, GError **error) { - gboolean snotify = FALSE; - gboolean terminal; - gboolean result = FALSE; - GKeyFile *key_file; - GError *err = NULL; - GFile *parent; - gchar *icon = NULL; - gchar *name; - gchar *type; - gchar *url; - gchar *location; - gchar *escaped_location; - gchar **argv = NULL; - gchar *exec; - gchar *directory; + gboolean snotify = FALSE; + gboolean terminal; + gboolean result = FALSE; + GKeyFile *key_file; + GError *err = NULL; + GFile *file_parent; + gchar *icon_name = NULL; + gchar *name; + gchar *type; + gchar *url; + gchar *location; + gchar *escaped_location; + gchar **argv = NULL; + gchar *exec; + gchar *directory = NULL; + gboolean is_secure = FALSE; + guint32 stimestamp = 0; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - _thunar_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); location = thunar_g_file_get_location (file->gfile); - if (thunar_file_is_desktop_file (file)) + if (thunar_file_is_desktop_file (file, &is_secure)) { + /* parse file first, even if it is insecure */ key_file = thunar_g_file_query_key_file (file->gfile, NULL, &err); - if (key_file == NULL) { g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_INVAL, @@ -1014,67 +1574,69 @@ return FALSE; } - type = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, - G_KEY_FILE_DESKTOP_KEY_TYPE, NULL); - + type = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_TYPE, NULL); if (G_LIKELY (exo_str_is_equal (type, "Application"))) { - exec = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, - G_KEY_FILE_DESKTOP_KEY_EXEC, NULL); + exec = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_EXEC, NULL); if (G_LIKELY (exec != NULL)) { - /* parse other fields */ - name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, - G_KEY_FILE_DESKTOP_KEY_NAME, NULL, - NULL); - icon = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, - G_KEY_FILE_DESKTOP_KEY_ICON, NULL); - terminal = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, - G_KEY_FILE_DESKTOP_KEY_TERMINAL, NULL); - snotify = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, - G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, - NULL); - - result = thunar_exec_parse (exec, file_list, icon, name, location, - terminal, NULL, &argv, error); - - g_free (name); - g_free (icon); + /* if the .desktop file is not secure, ask user what to do */ + if (is_secure || thunar_dialogs_show_insecure_program (parent, _("Untrusted application launcher"), file, exec)) + { + /* parse other fields */ + name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_NAME, NULL, NULL); + icon_name = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_ICON, NULL); + directory = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_PATH, NULL); + terminal = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_TERMINAL, NULL); + snotify = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, NULL); + + result = thunar_exec_parse (exec, file_list, icon_name, name, location, terminal, NULL, &argv, error); + + g_free (name); + } + else + { + /* fall-through to free value and leave without execution */ + result = TRUE; + } + g_free (exec); } else { - /* TRANSLATORS: `Exec' is a field name in a .desktop file. - * Don't translate it. */ - g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_INVAL, + /* TRANSLATORS: `Exec' is a field name in a .desktop file. Don't translate it. */ + g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_INVAL, _("No Exec field specified")); } } else if (exo_str_is_equal (type, "Link")) { - url = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, - G_KEY_FILE_DESKTOP_KEY_URL, NULL); + url = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_URL, NULL); if (G_LIKELY (url != NULL)) { - /* pass the URL to exo-open which will fire up the appropriate viewer */ - argv = g_new (gchar *, 3); - argv[0] = g_strdup ("exo-open"); - argv[1] = url; - argv[2] = NULL; + /* if the .desktop file is not secure, ask user what to do */ + if (is_secure || thunar_dialogs_show_insecure_program (parent, _("Untrusted link launcher"), file, url)) + { + /* pass the URL to the webbrowser, this could be a bit strange, + * but then at least we are on the secure side */ + argv = g_new (gchar *, 3); + argv[0] = g_strdup ("exo-open"); + argv[1] = url; + argv[2] = NULL; + } + result = TRUE; } else { - /* TRANSLATORS: `URL' is a field name in a .desktop file. - * Don't translate it. */ + /* TRANSLATORS: `URL' is a field name in a .desktop file. Don't translate it. */ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_INVAL, _("No URL field specified")); } } else { - g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_INVAL, - _("Invalid desktop file")); + g_set_error_literal (error, G_FILE_ERROR, G_FILE_ERROR_INVAL, _("Invalid desktop file")); } g_free (type); @@ -1085,46 +1647,73 @@ /* fake the Exec line */ escaped_location = g_shell_quote (location); exec = g_strconcat (escaped_location, " %F", NULL); - result = thunar_exec_parse (exec, file_list, NULL, NULL, NULL, FALSE, NULL, &argv, - error); + result = thunar_exec_parse (exec, file_list, NULL, NULL, NULL, FALSE, NULL, &argv, error); g_free (escaped_location); g_free (exec); } - if (G_LIKELY (result)) + if (G_LIKELY (result && argv != NULL)) { - /* determine the working directory */ - if (G_LIKELY (working_directory != NULL)) + /* use other directory if the Path from the desktop file was not set */ + if (G_LIKELY (directory == NULL)) { - /* copy the working directory provided to this method */ - directory = g_file_get_path (working_directory); + /* determine the working directory */ + if (G_LIKELY (working_directory != NULL)) + { + /* copy the working directory provided to this method */ + directory = g_file_get_path (working_directory); + } + else if (file_list != NULL) + { + /* use the directory of the first list item */ + file_parent = g_file_get_parent (file_list->data); + directory = (file_parent != NULL) ? thunar_g_file_get_location (file_parent) : NULL; + g_object_unref (file_parent); + } + else + { + /* use the directory of the executable file */ + parent = g_file_get_parent (file->gfile); + directory = (parent != NULL) ? thunar_g_file_get_location (parent) : NULL; + g_object_unref (parent); + } } - else if (file_list != NULL) + + /* check if a startup id was passed (launch request over dbus) */ + if (startup_id != NULL && *startup_id != '\0') { - /* use the directory of the first list item */ - parent = g_file_get_parent (file_list->data); - directory = (parent != NULL) ? thunar_g_file_get_location (parent) : NULL; - g_object_unref (parent); + /* parse startup_id string and extract timestamp + * format: _TIME) */ + gchar *time_str = g_strrstr (startup_id, "_TIME"); + if (time_str != NULL) + { + gchar *end; + + /* ignore the "_TIME" part */ + time_str += 5; + + stimestamp = strtoul (time_str, &end, 0); + if (end == time_str) + stimestamp = 0; + } } else { - /* use the directory of the executable file */ - parent = g_file_get_parent (file->gfile); - directory = (parent != NULL) ? thunar_g_file_get_location (parent) : NULL; - g_object_unref (parent); + /* use current event time */ + stimestamp = gtk_get_current_event_time (); } /* execute the command */ - result = xfce_spawn_on_screen (screen, directory, argv, NULL, G_SPAWN_SEARCH_PATH, - snotify, gtk_get_current_event_time (), icon, error); - - /* release the working directory */ - g_free (directory); + result = xfce_spawn_on_screen (thunar_util_parse_parent (parent, NULL), + directory, argv, NULL, G_SPAWN_SEARCH_PATH, + snotify, stimestamp, icon_name, error); } /* clean up */ g_strfreev (argv); g_free (location); + g_free (directory); + g_free (icon_name); return result; } @@ -1160,22 +1749,16 @@ { GdkAppLaunchContext *context; ThunarApplication *application; - GdkScreen *screen; GAppInfo *app_info; gboolean succeed; GList path_list; + GdkScreen *screen; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); _thunar_return_val_if_fail (parent == NULL || GDK_IS_SCREEN (parent) || GTK_IS_WIDGET (parent), FALSE); - - /* determine the screen for the parent */ - if (G_UNLIKELY (parent == NULL)) - screen = gdk_screen_get_default (); - else if (GTK_IS_WIDGET (parent)) - screen = gtk_widget_get_screen (parent); - else - screen = GDK_SCREEN (parent); + + screen = thunar_util_parse_parent (parent, NULL); /* check if we have a folder here */ if (thunar_file_is_directory (file)) @@ -1188,11 +1771,11 @@ /* check if we should execute the file */ if (thunar_file_is_executable (file)) - return thunar_file_execute (file, NULL, screen, NULL, error); + return thunar_file_execute (file, NULL, parent, NULL, NULL, error); /* determine the default application to open the file */ /* TODO We should probably add a cancellable argument to thunar_file_launch() */ - app_info = thunar_file_get_default_handler (file); + app_info = thunar_file_get_default_handler (THUNAR_FILE (file)); /* display the application chooser if no application is defined for this file * type yet */ @@ -1220,6 +1803,7 @@ /* create a launch context */ context = gdk_app_launch_context_new (); gdk_app_launch_context_set_screen (context, screen); + gdk_app_launch_context_set_timestamp (context, gtk_get_current_event_time ()); /* otherwise try to execute the application */ succeed = g_app_info_launch (app_info, &path_list, G_APP_LAUNCH_CONTEXT (context), error); @@ -1259,11 +1843,13 @@ gboolean called_from_job, GError **error) { - GKeyFile *key_file; - GError *err = NULL; - GFile *previous_file; - GFile *renamed_file; - gint watch_count; + GKeyFile *key_file; + GError *err = NULL; + GFile *renamed_file; + gboolean is_secure; + const gchar * const *languages; + guint i; + gboolean name_set = FALSE; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); _thunar_return_val_if_fail (g_utf8_validate (name, -1, NULL), FALSE); @@ -1271,7 +1857,8 @@ _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); /* check if this file is a desktop entry */ - if (thunar_file_is_desktop_file (file)) + if (thunar_file_is_desktop_file (file, &is_secure) + && is_secure) { /* try to load the desktop entry into a key file */ key_file = thunar_g_file_query_key_file (file->gfile, cancellable, &err); @@ -1283,9 +1870,32 @@ return FALSE; } - /* change the Name field of the desktop entry */ - g_key_file_set_string (key_file, G_KEY_FILE_DESKTOP_GROUP, - G_KEY_FILE_DESKTOP_KEY_NAME, name); + /* check if we can set the language name */ + languages = g_get_language_names (); + if (languages != NULL) + { + for (i = 0; !name_set && languages[i] != NULL; i++) + { + /* skip C language */ + if (g_ascii_strcasecmp (languages[i], "C") == 0) + continue; + + /* change the translated Name field of the desktop entry */ + g_key_file_set_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, + G_KEY_FILE_DESKTOP_KEY_NAME, + languages[i], name); + + /* done */ + name_set = TRUE; + } + } + + if (!name_set) + { + /* change the Name field of the desktop entry */ + g_key_file_set_string (key_file, G_KEY_FILE_DESKTOP_GROUP, + G_KEY_FILE_DESKTOP_KEY_NAME, name); + } /* write the changes back to the file */ if (thunar_g_file_write_key_file (file->gfile, key_file, cancellable, &err)) @@ -1316,56 +1926,19 @@ } else { - /* remember the previous file */ - previous_file = g_object_ref (file->gfile); - /* try to rename the file */ renamed_file = g_file_set_display_name (file->gfile, name, cancellable, error); /* check if we succeeded */ if (renamed_file != NULL) { - /* set the new file */ - file->gfile = renamed_file; - - /* reload file information */ - thunar_file_load (file, NULL, NULL); - - /* need to re-register the monitor handle for the new uri */ - watch_count = THUNAR_FILE_GET_WATCH_COUNT (file); - if (G_LIKELY (watch_count > 0)) - { - /* drop the watch_count temporary */ - THUNAR_FILE_SET_WATCH_COUNT (file, 1); - - /* drop the previous handle (with the old path) */ - thunar_file_unwatch (file); - - /* register the new handle (with the new path) */ - thunar_file_watch (file); + /* notify the file is renamed */ + thunar_file_monitor_moved (file, renamed_file); - /* reset the watch count */ - THUNAR_FILE_SET_WATCH_COUNT (file, watch_count); - } - - G_LOCK (file_cache_mutex); - - /* drop the previous entry from the cache */ - g_hash_table_remove (file_cache, previous_file); - - /* drop the reference on the previous file */ - g_object_unref (previous_file); - - /* insert the new entry */ - g_hash_table_insert (file_cache, g_object_ref (file->gfile), file); - - G_UNLOCK (file_cache_mutex); + g_object_unref (G_OBJECT (renamed_file)); if (!called_from_job) { - /* tell the associated folder that the file was renamed */ - thunarx_file_info_renamed (THUNARX_FILE_INFO (file)); - /* emit the file changed signal */ thunar_file_changed (file); } @@ -1374,8 +1947,6 @@ } else { - g_object_unref (previous_file); - return FALSE; } } @@ -1480,6 +2051,10 @@ /* determine the cached version of the source file */ ofile = thunar_file_cache_lookup (lp->data); + /* fallback to non-cached version */ + if (ofile == NULL) + ofile = thunar_file_get (lp->data, NULL); + /* we have only move if we know the source and both the source and the target * are on the same disk, and the source file is owned by the current user. */ @@ -1493,6 +2068,9 @@ suggested_action = GDK_ACTION_COPY; break; } + + if (ofile != NULL) + g_object_unref (ofile); } } } @@ -1677,7 +2255,30 @@ thunar_file_get_size_string (const ThunarFile *file) { _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); - return g_format_size_for_display (thunar_file_get_size (file)); + return g_format_size (thunar_file_get_size (file)); +} + + + +/** + * thunar_file_get_size_string_formatted: + * @file : a #ThunarFile instance. + * @file_size_binary : indicates if file size format + * should be binary or not. + * + * Returns the size of the file as text in a human readable + * format in decimal or binary format. You'll need to free + * the result using g_free() if you're done with it. + * + * Return value: the size of @file in a human readable + * format. + **/ +gchar * +thunar_file_get_size_string_formatted (const ThunarFile *file, const gboolean file_size_binary) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); + return g_format_size_full (thunar_file_get_size (file), + file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); } @@ -1780,14 +2381,81 @@ * Return value: content type of @file. **/ const gchar * -thunar_file_get_content_type (const ThunarFile *file) +thunar_file_get_content_type (ThunarFile *file) { + GFileInfo *info; + GError *err = NULL; + const gchar *content_type = NULL; + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); - if (file->info == NULL) - return NULL; + if (G_UNLIKELY (file->content_type == NULL)) + { + G_LOCK (file_content_type_mutex); + + /* make sure we weren't waiting for a lock */ + if (G_UNLIKELY (file->content_type != NULL)) + goto bailout; + + /* make sure this is not loaded in the general info */ + _thunar_assert (file->info == NULL + || !g_file_info_has_attribute (file->info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE)); + + if (G_UNLIKELY (file->kind == G_FILE_TYPE_DIRECTORY)) + { + /* this we known for sure */ + file->content_type = g_strdup ("inode/directory"); + } + else + { + /* async load the content-type */ + info = g_file_query_info (file->gfile, + G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, + G_FILE_QUERY_INFO_NONE, + NULL, &err); + + if (G_LIKELY (info != NULL)) + { + /* store the new content type */ + content_type = g_file_info_get_content_type (info); + if (G_UNLIKELY (content_type != NULL)) + file->content_type = g_strdup (content_type); + g_object_unref (G_OBJECT (info)); + } + else + { + g_warning ("Content type loading failed for %s: %s", + thunar_file_get_display_name (file), + err->message); + g_error_free (err); + } + + /* always provide a fallback */ + if (file->content_type == NULL) + file->content_type = g_strdup (DEFAULT_CONTENT_TYPE); + } + + bailout: + + G_UNLOCK (file_content_type_mutex); + } + + return file->content_type; +} + + - return g_file_info_get_content_type (file->info); +gboolean +thunar_file_load_content_type (ThunarFile *file) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), TRUE); + + if (file->content_type != NULL) + return FALSE; + + thunar_file_get_content_type (file); + + return TRUE; } @@ -1895,7 +2563,7 @@ _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); - content_type = thunar_file_get_content_type (file); + content_type = thunar_file_get_content_type (THUNAR_FILE (file)); if (content_type != NULL) { path = g_file_get_path (file->gfile); @@ -1925,11 +2593,7 @@ thunar_file_get_kind (const ThunarFile *file) { _thunar_return_val_if_fail (THUNAR_IS_FILE (file), G_FILE_TYPE_UNKNOWN); - - if (file->info == NULL) - return G_FILE_TYPE_UNKNOWN; - - return g_file_info_get_file_type (file->info); + return file->kind; } @@ -1976,54 +2640,11 @@ -/** - * thunar_file_get_free_space: - * @file : a #ThunarFile instance. - * @free_space_return : return location for the amount of - * free space or %NULL. - * - * Determines the amount of free space of the volume on - * which @file resides. Returns %TRUE if the amount of - * free space was determined successfully and placed into - * @free_space_return, else %FALSE will be returned. - * - * Return value: %TRUE if successfull, else %FALSE. - **/ -gboolean -thunar_file_get_free_space (const ThunarFile *file, - guint64 *free_space_return) -{ - GFileInfo *filesystem_info; - gboolean success = FALSE; - - _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - - filesystem_info = g_file_query_filesystem_info (file->gfile, - THUNARX_FILESYSTEM_INFO_NAMESPACE, - NULL, NULL); - - if (filesystem_info != NULL) - { - *free_space_return = - g_file_info_get_attribute_uint64 (filesystem_info, - G_FILE_ATTRIBUTE_FILESYSTEM_FREE); - - success = g_file_info_has_attribute (filesystem_info, - G_FILE_ATTRIBUTE_FILESYSTEM_FREE); - - g_object_unref (filesystem_info); - } - - return success; -} - - - gboolean thunar_file_is_mounted (const ThunarFile *file) { _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - return file->is_mounted; + return FLAG_IS_SET (file, THUNAR_FILE_FLAG_IS_MOUNTED); } @@ -2049,11 +2670,7 @@ thunar_file_is_directory (const ThunarFile *file) { _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - - if (file->info == NULL) - return FALSE; - - return thunar_file_get_kind (file) == G_FILE_TYPE_DIRECTORY; + return file->kind == G_FILE_TYPE_DIRECTORY; } @@ -2070,11 +2687,7 @@ thunar_file_is_shortcut (const ThunarFile *file) { _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - - if (file->info == NULL) - return FALSE; - - return thunar_file_get_kind (file) == G_FILE_TYPE_SHORTCUT; + return file->kind == G_FILE_TYPE_SHORTCUT; } @@ -2091,11 +2704,7 @@ thunar_file_is_mountable (const ThunarFile *file) { _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - - if (file->info == NULL) - return FALSE; - - return thunar_file_get_kind (file) == G_FILE_TYPE_MOUNTABLE; + return file->kind == G_FILE_TYPE_MOUNTABLE; } @@ -2152,7 +2761,7 @@ /** * thunar_file_is_ancestor: * @file : a #ThunarFile instance. - * @ancestor : another #ThunarFile instance. + * @ancestor : another #GFile instance. * * Determines whether @file is somewhere inside @ancestor, * possibly with intermediate folders. @@ -2161,21 +2770,21 @@ * child, grandchild, great grandchild, etc. **/ gboolean -thunar_file_is_ancestor (const ThunarFile *file, - const ThunarFile *ancestor) +thunar_file_is_gfile_ancestor (const ThunarFile *file, + GFile *ancestor) { gboolean is_ancestor = FALSE; GFile *current = NULL; GFile *tmp; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - _thunar_return_val_if_fail (THUNAR_IS_FILE (ancestor), FALSE); + _thunar_return_val_if_fail (G_IS_FILE (ancestor), FALSE); for (current = g_object_ref (file->gfile); is_ancestor == FALSE && current != NULL; tmp = g_file_get_parent (current), g_object_unref (current), current = tmp) { - if (G_UNLIKELY (g_file_equal (current, ancestor->gfile))) + if (G_UNLIKELY (g_file_equal (current, ancestor))) is_ancestor = TRUE; } @@ -2188,6 +2797,29 @@ /** + * thunar_file_is_ancestor: + * @file : a #ThunarFile instance. + * @ancestor : another #ThunarFile instance. + * + * Determines whether @file is somewhere inside @ancestor, + * possibly with intermediate folders. + * + * Return value: %TRUE if @ancestor contains @file as a + * child, grandchild, great grandchild, etc. + **/ +gboolean +thunar_file_is_ancestor (const ThunarFile *file, + const ThunarFile *ancestor) +{ + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); + _thunar_return_val_if_fail (THUNAR_IS_FILE (ancestor), FALSE); + + return thunar_file_is_gfile_ancestor (file, ancestor->gfile); +} + + + +/** * thunar_file_is_executable: * @file : a #ThunarFile instance. * @@ -2201,8 +2833,10 @@ gboolean thunar_file_is_executable (const ThunarFile *file) { - gboolean can_execute = FALSE; - const gchar *content_type; + ThunarPreferences *preferences; + gboolean can_execute = FALSE; + gboolean exec_shell_scripts = FALSE; + const gchar *content_type; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); @@ -2212,26 +2846,28 @@ if (g_file_info_get_attribute_boolean (file->info, G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE)) { /* get the content type of the file */ - content_type = g_file_info_get_content_type (file->info); + content_type = thunar_file_get_content_type (THUNAR_FILE (file)); if (G_LIKELY (content_type != NULL)) { -#ifdef G_OS_WIN32 - /* check for .exe, .bar or .com */ can_execute = g_content_type_can_be_executable (content_type); -#else - /* check if the content type is save to execute, we don't use - * g_content_type_can_be_executable() for unix because it also returns - * true for "text/plain" and we don't want that */ - if (g_content_type_is_a (content_type, "application/x-executable") - || g_content_type_is_a (content_type, "application/x-shellscript")) + + if (can_execute) { - can_execute = TRUE; + /* check if the shell scripts should be executed or opened by default */ + preferences = thunar_preferences_get (); + g_object_get (preferences, "misc-exec-shell-scripts-by-default", &exec_shell_scripts, NULL); + g_object_unref (preferences); + + /* do never execute plain text files which are not shell scripts but marked executable */ + if (g_strcmp0 (content_type, "text/plain") == 0) + can_execute = FALSE; + else if (g_content_type_is_a (content_type, "text/plain") && ! exec_shell_scripts) + can_execute = FALSE; } -#endif } } - return can_execute || thunar_file_is_desktop_file (file); + return can_execute || thunar_file_is_desktop_file (file, NULL); } @@ -2245,7 +2881,7 @@ * * Return value: %TRUE if @file can be read. **/ -gboolean +static gboolean thunar_file_is_readable (const ThunarFile *file) { _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); @@ -2339,7 +2975,7 @@ thunar_file_is_regular (const ThunarFile *file) { _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - return thunar_file_get_kind (file) == G_FILE_TYPE_REGULAR; + return file->kind == G_FILE_TYPE_REGULAR; } @@ -2365,30 +3001,71 @@ /** * thunar_file_is_desktop_file: - * @file : a #ThunarFile. + * @file : a #ThunarFile. + * @is_secure : if %NULL do a simple check, else it will set this boolean + * to indicate if the desktop file is safe see bug #5012 + * for more info. * - * Returns %TRUE if @file is a .desktop file, but not a .directory file. + * Returns %TRUE if @file is a .desktop file. The @is_secure return value + * will tell if the .desktop file is also secure. * * Return value: %TRUE if @file is a .desktop file. **/ gboolean -thunar_file_is_desktop_file (const ThunarFile *file) +thunar_file_is_desktop_file (const ThunarFile *file, + gboolean *is_secure) { - const gchar *content_type; - gboolean is_desktop_file = FALSE; + const gchar * const *data_dirs; + guint n; + gchar *path; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); if (file->info == NULL) return FALSE; - content_type = g_file_info_get_content_type (file->info); + /* only allow regular files with a .desktop extension */ + if (!g_str_has_suffix (file->basename, ".desktop") + || file->kind != G_FILE_TYPE_REGULAR) + return FALSE; - if (content_type != NULL) - is_desktop_file = g_content_type_equals (content_type, "application/x-desktop"); + /* don't check more if not needed */ + if (is_secure == NULL) + return TRUE; + + /* desktop files outside xdg directories need to be executable for security reasons */ + if (g_file_info_get_attribute_boolean (file->info, G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE)) + { + /* has +x */ + *is_secure = TRUE; + } + else + { + /* assume the file is not safe */ + *is_secure = FALSE; + + /* deskopt files in xdg directories are also fine... */ + if (g_file_is_native (thunar_file_get_file (file))) + { + data_dirs = g_get_system_data_dirs (); + if (G_LIKELY (data_dirs != NULL)) + { + path = g_file_get_path (thunar_file_get_file (file)); + for (n = 0; data_dirs[n] != NULL; n++) + { + if (g_str_has_prefix (path, data_dirs[n])) + { + /* has known prefix, can launch without problems */ + *is_secure = TRUE; + break; + } + } + g_free (path); + } + } + } - return is_desktop_file - && !g_str_has_suffix (thunar_file_get_basename (file), ".directory"); + return TRUE; } @@ -2436,7 +3113,7 @@ _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); _thunar_return_val_if_fail (G_IS_FILE_INFO (file->info), NULL); - date = g_file_info_get_attribute_string (file->info, "trash::deletion-date"); + date = g_file_info_get_attribute_string (file->info, G_FILE_ATTRIBUTE_TRASH_DELETION_DATE); if (G_UNLIKELY (date == NULL)) return NULL; @@ -2468,7 +3145,7 @@ if (file->info == NULL) return NULL; - return g_file_info_get_attribute_byte_string (file->info, "trash::orig-path"); + return g_file_info_get_attribute_byte_string (file->info, G_FILE_ATTRIBUTE_TRASH_ORIG_PATH); } @@ -2590,28 +3267,18 @@ GList* thunar_file_get_emblem_names (ThunarFile *file) { - const gchar *emblem_string; - guint32 uid; - gchar **emblem_names; - GList *emblems = NULL; + guint32 uid; + gchar **emblem_names; + GList *emblems = NULL; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); - /* check if we need to load the emblems_list from the metafile */ - if (G_UNLIKELY ((file->flags & THUNAR_FILE_OWNS_EMBLEM_NAMES) == 0)) - { - emblem_string = thunar_file_get_metadata (file, THUNAR_METAFILE_KEY_EMBLEMS, ""); - if (G_UNLIKELY (*emblem_string != '\0')) - { - emblem_names = g_strsplit (emblem_string, ";", -1); - g_object_set_qdata_full (G_OBJECT (file), thunar_file_emblem_names_quark, - emblem_names, (GDestroyNotify) g_strfreev); - } - file->flags |= THUNAR_FILE_OWNS_EMBLEM_NAMES; - } + /* leave if there is no info */ + if (file->info == NULL) + return NULL; /* determine the custom emblems */ - emblem_names = g_object_get_qdata (G_OBJECT (file), thunar_file_emblem_names_quark); + emblem_names = g_file_info_get_attribute_stringv (file->info, "metadata::emblems"); if (G_UNLIKELY (emblem_names != NULL)) { for (; *emblem_names != NULL; ++emblem_names) @@ -2663,12 +3330,13 @@ thunar_file_set_emblem_names (ThunarFile *file, GList *emblem_names) { - GList *lp; - gchar **emblems; - gchar *emblems_string; - gint n; + GList *lp; + gchar **emblems = NULL; + gint n; + GFileInfo *info; _thunar_return_if_fail (THUNAR_IS_FILE (file)); + _thunar_return_if_fail (G_IS_FILE_INFO (file->info)); /* allocate a zero-terminated array for the emblem names */ emblems = g_new0 (gchar *, g_list_length (emblem_names) + 1); @@ -2687,18 +3355,24 @@ emblems[n++] = g_strdup (lp->data); } - /* associate the emblems with the file */ - file->flags |= THUNAR_FILE_OWNS_EMBLEM_NAMES; - g_object_set_qdata_full (G_OBJECT (file), thunar_file_emblem_names_quark, - emblems, (GDestroyNotify) g_strfreev); - - /* store the emblem list in the file's metadata */ - emblems_string = g_strjoinv (";", emblems); - thunar_file_set_metadata (file, THUNAR_METAFILE_KEY_EMBLEMS, emblems_string, ""); - g_free (emblems_string); + /* set the value in the current info */ + if (n == 0) + g_file_info_remove_attribute (file->info, "metadata::emblems"); + else + g_file_info_set_attribute_stringv (file->info, "metadata::emblems", emblems); + + /* set meta data to the daemon */ + info = g_file_info_new (); + g_file_info_set_attribute_stringv (info, "metadata::emblems", emblems); + g_file_set_attributes_async (file->gfile, info, + G_FILE_QUERY_INFO_NONE, + G_PRIORITY_DEFAULT, + NULL, + thunar_file_set_emblem_names_ready, + file); + g_object_unref (G_OBJECT (info)); - /* tell everybody that we have changed */ - thunar_file_changed (file); + g_strfreev (emblems); } @@ -2764,29 +3438,92 @@ GFile *desktop; gboolean is_desktop = FALSE; - desktop = g_file_new_for_path (g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP)); - is_desktop = g_file_equal (file->gfile, desktop); - g_object_unref (desktop); + desktop = g_file_new_for_path (g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP)); + is_desktop = g_file_equal (file->gfile, desktop); + g_object_unref (desktop); + + return is_desktop; +} + + + +const gchar * +thunar_file_get_thumbnail_path (ThunarFile *file) +{ + GChecksum *checksum; + gchar *filename; + gchar *uri; + + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); + + /* if the thumbstate is known to be not there, return null */ + if (thunar_file_get_thumb_state (file) == THUNAR_FILE_THUMB_STATE_NONE) + return NULL; + + if (G_UNLIKELY (file->thumbnail_path == NULL)) + { + checksum = g_checksum_new (G_CHECKSUM_MD5); + if (G_LIKELY (checksum != NULL)) + { + uri = thunar_file_dup_uri (file); + g_checksum_update (checksum, (const guchar *) uri, strlen (uri)); + g_free (uri); + + filename = g_strconcat (g_checksum_get_string (checksum), ".png", NULL); + g_checksum_free (checksum); + + /* The thumbnail is in the format/location + * $XDG_CACHE_HOME/thumbnails/(nromal|large)/MD5_Hash_Of_URI.png + * for version 0.8.0 if XDG_CACHE_HOME is defined, otherwise + * /homedir/.thumbnails/(normal|large)/MD5_Hash_Of_URI.png + * will be used, which is also always used for versions prior + * to 0.7.0. + */ + + /* build and check if the thumbnail is in the new location */ + file->thumbnail_path = g_build_path ("/", g_get_user_cache_dir(), + "thumbnails", "normal", + filename, NULL); - return is_desktop; -} + if (!g_file_test(file->thumbnail_path, G_FILE_TEST_EXISTS)) + { + /* Fallback to old version */ + g_free(file->thumbnail_path); + + file->thumbnail_path = g_build_filename (xfce_get_homedir (), ".thumbnails", + "normal", filename, NULL); + if(!g_file_test(file->thumbnail_path, G_FILE_TEST_EXISTS)) + { + /* Thumbnail doesn't exist in either spot */ + g_free(file->thumbnail_path); + file->thumbnail_path = NULL; + } + } + g_free (filename); + } + } -const gchar * -thunar_file_get_thumbnail_path (const ThunarFile *file) -{ - _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); return file->thumbnail_path; } -gboolean -thunar_file_is_thumbnail (const ThunarFile *file) +/** + * thunar_file_get_thumb_state: + * @file : a #ThunarFile. + * + * Returns the current #ThunarFileThumbState for @file. This + * method is intended to be used by #ThunarIconFactory only. + * + * Return value: the #ThunarFileThumbState for @file. + **/ +ThunarFileThumbState +thunar_file_get_thumb_state (const ThunarFile *file) { - _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - return file->is_thumbnail; + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), THUNAR_FILE_THUMB_STATE_UNKNOWN); + return FLAG_GET_THUMB_STATE (file); } @@ -2806,12 +3543,24 @@ { _thunar_return_if_fail (THUNAR_IS_FILE (file)); + /* check if the state changes */ + if (thunar_file_get_thumb_state (file) == state) + return; + /* set the new thumbnail state */ - file->flags = (file->flags & ~THUNAR_FILE_THUMB_STATE_MASK) | (state); - - /* notify others of this change, so that all components can update - * their file information */ - thunar_file_monitor_file_changed (file); + FLAG_SET_THUMB_STATE (file, state); + + /* remove path if the type is not supported */ + if (state == THUNAR_FILE_THUMB_STATE_NONE + && file->thumbnail_path != NULL) + { + g_free (file->thumbnail_path); + file->thumbnail_path = NULL; + } + + /* if the file has a thumbnail, reload it */ + if (state == THUNAR_FILE_THUMB_STATE_READY) + thunar_file_monitor_file_changed (file); } @@ -2826,11 +3575,11 @@ * * Return value: the custom icon for @file or %NULL. **/ -gchar * +const gchar * thunar_file_get_custom_icon (const ThunarFile *file) { _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); - return g_strdup (file->custom_icon_name); + return file->custom_icon_name; } @@ -2852,7 +3601,7 @@ _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); _thunar_return_val_if_fail (G_IS_FILE_INFO (file->info), NULL); - icon = g_file_info_get_attribute_object (file->info, "preview::icon"); + icon = g_file_info_get_attribute_object (file->info, G_FILE_ATTRIBUTE_PREVIEW_ICON); if (G_LIKELY (icon != NULL)) return G_ICON (icon); @@ -2861,6 +3610,55 @@ +GFilesystemPreviewType +thunar_file_get_preview_type (const ThunarFile *file) +{ + GFilesystemPreviewType preview; + GFileInfo *info; + + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), G_FILESYSTEM_PREVIEW_TYPE_NEVER); + _thunar_return_val_if_fail (G_IS_FILE (file->gfile), G_FILESYSTEM_PREVIEW_TYPE_NEVER); + + info = g_file_query_filesystem_info (file->gfile, G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW, NULL, NULL); + if (G_LIKELY (info != NULL)) + { + preview = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW); + g_object_unref (G_OBJECT (info)); + } + else + { + /* assume we don't know */ + preview = G_FILESYSTEM_PREVIEW_TYPE_NEVER; + } + + return preview; +} + + + +static const gchar * +thunar_file_get_icon_name_for_state (const gchar *icon_name, + ThunarFileIconState icon_state) +{ + if (exo_str_is_empty (icon_name)) + return NULL; + + /* check if we have an accept icon for the icon we found */ + if (icon_state != THUNAR_FILE_ICON_STATE_DEFAULT + && (strcmp (icon_name, "inode-directory") == 0 + || strcmp (icon_name, "folder") == 0)) + { + if (icon_state == THUNAR_FILE_ICON_STATE_DROP) + return "folder-drag-accept"; + else if (icon_state == THUNAR_FILE_ICON_STATE_OPEN) + return "folder-open"; + } + + return icon_name; +} + + + /** * thunar_file_get_icon_name: * @file : a #ThunarFile instance. @@ -2868,155 +3666,158 @@ * @icon_theme : the #GtkIconTheme on which to lookup up the icon name. * * Returns the name of the icon that can be used to present @file, based - * on the given @icon_state and @icon_theme. The returned string has to - * be freed using g_free(). + * on the given @icon_state and @icon_theme. * * Return value: the icon name for @file in @icon_theme. **/ -gchar * -thunar_file_get_icon_name (const ThunarFile *file, - ThunarFileIconState icon_state, - GtkIconTheme *icon_theme) -{ - GFile *icon_file; - GIcon *icon; - gchar **themed_icon_names; - gchar *icon_name = NULL; - gint i; +const gchar * +thunar_file_get_icon_name (ThunarFile *file, + ThunarFileIconState icon_state, + GtkIconTheme *icon_theme) +{ + GFile *icon_file; + GIcon *icon = NULL; + const gchar * const *names; + gchar *icon_name = NULL; + gchar *path; + const gchar *special_names[] = { NULL, "folder", NULL }; + guint i; + const gchar *special_dir; + GFileInfo *fileinfo; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); _thunar_return_val_if_fail (GTK_IS_ICON_THEME (icon_theme), NULL); - /* the system root folder has a special icon */ - if (thunar_file_is_root (file) - && thunar_file_is_local (file) - && thunar_file_is_directory (file)) - { - return g_strdup ("drive-harddisk"); - } - - if (file->info == NULL) - return NULL; + /* return cached name */ + if (G_LIKELY (file->icon_name != NULL)) + return thunar_file_get_icon_name_for_state (file->icon_name, icon_state); - icon = g_file_info_get_icon (file->info); - - if (icon != NULL) + /* the system root folder has a special icon */ + if (thunar_file_is_directory (file)) { - if (G_IS_THEMED_ICON (icon)) + if (G_LIKELY (thunar_file_is_local (file))) { - g_object_get (icon, "names", &themed_icon_names, NULL); - - for (i = 0; icon_name == NULL && themed_icon_names[i] != NULL; ++i) - if (gtk_icon_theme_has_icon (icon_theme, themed_icon_names[i])) - icon_name = g_strdup (themed_icon_names[i]); + path = g_file_get_path (file->gfile); + if (G_LIKELY (path != NULL)) + { + if (strcmp (path, G_DIR_SEPARATOR_S) == 0) + *special_names = "drive-harddisk"; + else if (strcmp (path, xfce_get_homedir ()) == 0) + *special_names = "user-home"; + else + { + for (i = 0; i < G_N_ELEMENTS (thunar_file_dirs); i++) + { + special_dir = g_get_user_special_dir (thunar_file_dirs[i].type); + if (special_dir != NULL + && strcmp (path, special_dir) == 0) + { + *special_names = thunar_file_dirs[i].icon_name; + break; + } + } + } - g_strfreev (themed_icon_names); - } - else if (G_IS_FILE_ICON (icon)) - { - icon_file = g_file_icon_get_file (G_FILE_ICON (icon)); - icon_name = g_file_get_path (icon_file); + g_free (path); + } } - } - - if (icon_name == NULL) - { - /* try to be smart when determining icons for executable files - * in that we use the name of the file as icon name (which will - * work for quite a lot of binaries, e.g. 'Terminal', 'mousepad', - * 'Thunar', 'xfmedia', etc.). - */ - if (G_UNLIKELY (thunar_file_is_executable (file))) + else if (!thunar_file_has_parent (file)) { - icon_name = g_file_get_basename (file->gfile); - if (G_LIKELY (!gtk_icon_theme_has_icon (icon_theme, icon_name))) + if (g_file_has_uri_scheme (file->gfile, "trash")) + { + special_names[0] = thunar_file_get_item_count (file) > 0 ? "user-trash-full" : "user-trash"; + special_names[1] = "user-trash"; + } + else if (g_file_has_uri_scheme (file->gfile, "network")) + { + special_names[0] = "network-workgroup"; + } + else if (g_file_has_uri_scheme (file->gfile, "recent")) { - g_free (icon_name); - icon_name = NULL; + special_names[0] = "document-open-recent"; + } + else if (g_file_has_uri_scheme (file->gfile, "computer")) + { + special_names[0] = "computer"; } } - } - /* check if we have an accept icon for the icon we found */ - if (icon_name != NULL - && (g_str_equal (icon_name, "inode-directory") - || g_str_equal (icon_name, "folder"))) - { - if (icon_state == THUNAR_FILE_ICON_STATE_DROP) + if (*special_names != NULL) { - g_free (icon_name); - icon_name = g_strdup ("folder-drag-accept"); + names = special_names; + goto check_names; } - else if (icon_state == THUNAR_FILE_ICON_STATE_OPEN) + } + else if (thunar_file_is_mountable (file) + || g_file_has_uri_scheme (file->gfile, "network")) + { + /* query the icon (computer:// and network:// backend) */ + fileinfo = g_file_query_info (file->gfile, + G_FILE_ATTRIBUTE_STANDARD_ICON, + G_FILE_QUERY_INFO_NONE, NULL, NULL); + if (G_LIKELY (fileinfo != NULL)) { - g_free (icon_name); - icon_name = g_strdup ("folder-open"); + /* take the icon from the info */ + icon = g_file_info_get_icon (fileinfo); + if (G_LIKELY (icon != NULL)) + g_object_ref (icon); + + /* release */ + g_object_unref (G_OBJECT (fileinfo)); + + if (G_LIKELY (icon != NULL)) + goto check_icon; } } - return icon_name; -} - + /* try again later */ + if (file->info == NULL) + return NULL; + /* lookup for content type, just like gio does for local files */ + icon = g_content_type_get_icon (thunar_file_get_content_type (file)); + if (G_LIKELY (icon != NULL)) + { + check_icon: + if (G_IS_THEMED_ICON (icon)) + { + names = g_themed_icon_get_names (G_THEMED_ICON (icon)); -/** - * thunar_file_get_metadata: - * @file : a #ThunarFile instance. - * @key : a #ThunarMetaFileKey. - * @default_value : the default value for @key in @file - * which is returned when @key isn't - * explicitly set for @file (may be - * %NULL). - * - * Returns the metadata available for @key in @file. - * - * The returned string is owned by the @file and uses - * an internal buffer that will be overridden on the - * next call to any of the metadata retrieval methods. - * - * Return value: the metadata available for @key in @file - * or @default_value if @key is not set for - * @file. - **/ -const gchar* -thunar_file_get_metadata (ThunarFile *file, - ThunarMetafileKey key, - const gchar *default_value) -{ - _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); - _thunar_return_val_if_fail (key < THUNAR_METAFILE_N_KEYS, NULL); + check_names: - return thunar_metafile_fetch (thunar_file_get_metafile (file), - file->gfile, key, - default_value); -} + if (G_LIKELY (names != NULL)) + { + for (i = 0; names[i] != NULL; ++i) + if (*names[i] != '(' /* see gnome bug 688042 */ + && gtk_icon_theme_has_icon (icon_theme, names[i])) + { + icon_name = g_strdup (names[i]); + break; + } + } + } + else if (G_IS_FILE_ICON (icon)) + { + icon_file = g_file_icon_get_file (G_FILE_ICON (icon)); + if (icon_file != NULL) + icon_name = g_file_get_path (icon_file); + } + if (G_LIKELY (icon != NULL)) + g_object_unref (icon); + } + /* store new name, fallback to legacy names, or empty string to avoid recursion */ + g_free (file->icon_name); + if (G_LIKELY (icon_name != NULL)) + file->icon_name = icon_name; + else if (file->kind == G_FILE_TYPE_DIRECTORY + && gtk_icon_theme_has_icon (icon_theme, "folder")) + file->icon_name = g_strdup ("folder"); + else + file->icon_name = g_strdup (""); -/** - * thunar_file_set_metadata: - * @file : a #ThunarFile instance. - * @key : a #ThunarMetafileKey. - * @value : the new value for @key on @file. - * @default_value : the default for @key on @file. - * - * Sets the metadata available for @key in @file to - * the given @value. - **/ -void -thunar_file_set_metadata (ThunarFile *file, - ThunarMetafileKey key, - const gchar *value, - const gchar *default_value) -{ - _thunar_return_if_fail (THUNAR_IS_FILE (file)); - _thunar_return_if_fail (key < THUNAR_METAFILE_N_KEYS); - _thunar_return_if_fail (default_value != NULL); - _thunar_return_if_fail (value != NULL); - - thunar_metafile_store (thunar_file_get_metafile (file), - file->gfile, key, value, - default_value); + return thunar_file_get_icon_name_for_state (file->icon_name, icon_state); } @@ -3040,28 +3841,33 @@ void thunar_file_watch (ThunarFile *file) { - gint watch_count; + ThunarFileWatch *file_watch; _thunar_return_if_fail (THUNAR_IS_FILE (file)); - _thunar_return_if_fail (THUNAR_FILE_GET_WATCH_COUNT (file) >= 0); - - watch_count = THUNAR_FILE_GET_WATCH_COUNT (file); - if (++watch_count == 1) + file_watch = g_object_get_qdata (G_OBJECT (file), thunar_file_watch_quark); + if (file_watch == NULL) { + file_watch = g_slice_new (ThunarFileWatch); + file_watch->watch_count = 1; + /* create a file or directory monitor */ - file->monitor = g_file_monitor (file->gfile, G_FILE_MONITOR_WATCH_MOUNTS, NULL, NULL); - if (G_LIKELY (file->monitor != NULL)) + file_watch->monitor = g_file_monitor (file->gfile, G_FILE_MONITOR_WATCH_MOUNTS | G_FILE_MONITOR_SEND_MOVED, NULL, NULL); + if (G_LIKELY (file_watch->monitor != NULL)) { - /* make sure the pointer is set to NULL once the monitor is destroyed */ - g_object_add_weak_pointer (G_OBJECT (file->monitor), (gpointer) &(file->monitor)); - /* watch monitor for file changes */ - g_signal_connect (file->monitor, "changed", G_CALLBACK (thunar_file_monitor), file); + g_signal_connect (file_watch->monitor, "changed", G_CALLBACK (thunar_file_monitor), file); } - } - THUNAR_FILE_SET_WATCH_COUNT (file, watch_count); + /* attach to file */ + g_object_set_qdata_full (G_OBJECT (file), thunar_file_watch_quark, file_watch, thunar_file_watch_destroyed); + } + else + { + /* increase watch count */ + _thunar_return_if_fail (G_IS_FILE_MONITOR (file_watch->monitor)); + file_watch->watch_count++; + } } @@ -3076,26 +3882,21 @@ void thunar_file_unwatch (ThunarFile *file) { - gint watch_count; + ThunarFileWatch *file_watch; _thunar_return_if_fail (THUNAR_IS_FILE (file)); - _thunar_return_if_fail (THUNAR_FILE_GET_WATCH_COUNT (file) > 0); - - watch_count = THUNAR_FILE_GET_WATCH_COUNT (file); - if (--watch_count == 0) + file_watch = g_object_get_qdata (G_OBJECT (file), thunar_file_watch_quark); + if (file_watch != NULL) { - if (G_LIKELY (file->monitor != NULL)) - { - /* cancel monitoring */ - g_file_monitor_cancel (file->monitor); - - /* destroy the monitor */ - g_object_unref (file->monitor); - } + /* remove if this was the last ref */ + if (--file_watch->watch_count == 0) + g_object_set_qdata (G_OBJECT (file), thunar_file_watch_quark, NULL); + } + else + { + _thunar_assert_not_reached (); } - - THUNAR_FILE_SET_WATCH_COUNT (file, watch_count); } @@ -3109,27 +3910,53 @@ * * You must be able to handle the case that @file is * destroyed during the reload call. + * + * Return value: As this function can be used as a callback function + * for thunar_file_reload_idle, it will always return FALSE to prevent + * being called repeatedly. **/ -void +gboolean thunar_file_reload (ThunarFile *file) { _thunar_return_if_fail (THUNAR_IS_FILE (file)); + /* clear file pxmap cache */ + thunar_icon_factory_clear_pixmap_cache (file); + if (!thunar_file_load (file, NULL, NULL)) { /* destroy the file if we cannot query any file information */ thunar_file_destroy (file); - return; + return FALSE; } /* ... and tell others */ thunar_file_changed (file); - + + return FALSE; } /** + * thunar_file_reload_idle: + * @file : a #ThunarFile instance. + * + * Schedules a reload of the @file by calling thunar_file_reload + * when idle. + * + **/ +void +thunar_file_reload_idle (ThunarFile *file) +{ + _thunar_return_if_fail (THUNAR_IS_FILE (file)); + + g_idle_add ((GSourceFunc) thunar_file_reload, file); +} + + + +/** * thunar_file_destroy: * @file : a #ThunarFile instance. * @@ -3144,7 +3971,7 @@ { _thunar_return_if_fail (THUNAR_IS_FILE (file)); - if (G_LIKELY ((file->flags & THUNAR_FILE_IN_DESTRUCTION) == 0)) + if (!FLAG_IS_SET (file, THUNAR_FILE_FLAG_IN_DESTRUCTION)) { /* take an additional reference on the file, as the file-destroyed * invocation may already release the last reference. @@ -3164,32 +3991,6 @@ -static gint -compare_by_name_using_number (const gchar *ap, - const gchar *bp) -{ - guint anum; - guint bnum; - - /* determine the numbers in ap and bp */ - anum = strtoul (ap, NULL, 10); - bnum = strtoul (bp, NULL, 10); - - /* compare the numbers */ - if (anum < bnum) - return -1; - else if (anum > bnum) - return 1; - - /* the numbers are equal, and so the higher first digit should - * be sorted first, i.e. 'file10' before 'file010', since we - * also sort 'file10' before 'file011'. - */ - return (*bp - *ap); -} - - - /** * thunar_file_compare_by_name: * @file_a : the first #ThunarFile. @@ -3207,10 +4008,7 @@ const ThunarFile *file_b, gboolean case_sensitive) { - const gchar *ap; - const gchar *bp; - guint ac; - guint bc; + gint result = 0; #ifdef G_ENABLE_DEBUG /* probably too expensive to do the instance check every time @@ -3220,133 +4018,27 @@ _thunar_return_val_if_fail (THUNAR_IS_FILE (file_b), 0); #endif - /* we compare only the display names (UTF-8!) */ - ap = thunar_file_get_display_name (file_a); - bp = thunar_file_get_display_name (file_b); - - /* check if we should ignore case */ - if (G_LIKELY (case_sensitive)) - { - /* try simple (fast) ASCII comparison first */ - for (;; ++ap, ++bp) - { - /* check if the characters differ or we have a non-ASCII char */ - ac = *((const guchar *) ap); - bc = *((const guchar *) bp); - if (ac != bc || ac == 0 || ac > 127) - break; - } - - /* fallback to Unicode comparison */ - if (G_UNLIKELY (ac > 127 || bc > 127)) - { - for (;; ap = g_utf8_next_char (ap), bp = g_utf8_next_char (bp)) - { - /* check if characters differ or end of string */ - ac = g_utf8_get_char (ap); - bc = g_utf8_get_char (bp); - if (ac != bc || ac == 0) - break; - } - } - } - else - { - /* try simple (fast) ASCII comparison first (case-insensitive!) */ - for (;; ++ap, ++bp) - { - /* check if the characters differ or we have a non-ASCII char */ - ac = *((const guchar *) ap); - bc = *((const guchar *) bp); - if (g_ascii_tolower (ac) != g_ascii_tolower (bc) || ac == 0 || ac > 127) - break; - } - - /* fallback to Unicode comparison (case-insensitive!) */ - if (G_UNLIKELY (ac > 127 || bc > 127)) - { - for (;; ap = g_utf8_next_char (ap), bp = g_utf8_next_char (bp)) - { - /* check if characters differ or end of string */ - ac = g_utf8_get_char (ap); - bc = g_utf8_get_char (bp); - if (g_unichar_tolower (ac) != g_unichar_tolower (bc) || ac == 0) - break; - } - } - } - - /* if both strings are equal, we're done */ - if (G_UNLIKELY (ac == bc || (!case_sensitive && g_unichar_tolower (ac) == g_unichar_tolower (bc)))) - return 0; - - /* check if one of the characters that differ is a digit */ - if (G_UNLIKELY (g_ascii_isdigit (ac) || g_ascii_isdigit (bc))) - { - /* if both strings differ in a digit, we use a smarter comparison - * to get sorting 'file1', 'file5', 'file10' done the right way. - */ - if (g_ascii_isdigit (ac) && g_ascii_isdigit (bc)) - return compare_by_name_using_number (ap, bp); - - /* a second case is '20 file' and '2file', where comparison by number - * makes sense, if the previous char for both strings is a digit. - */ - if (ap > thunar_file_get_display_name (file_a) - && bp > thunar_file_get_display_name (file_b) - && g_ascii_isdigit (*(ap - 1)) && g_ascii_isdigit (*(bp - 1))) - { - return compare_by_name_using_number (ap - 1, bp - 1); - } - } + /* case insensitive checking */ + if (G_LIKELY (!case_sensitive)) + result = strcmp (file_a->collate_key_nocase, file_b->collate_key_nocase); + + /* fall-back to case sensitive */ + if (result == 0) + result = strcmp (file_a->collate_key, file_b->collate_key); - /* otherwise, if they differ in a unicode char, use the - * appropriate collate function for the current locale (only - * if charset is UTF-8, else the required transformations - * would be too expensive) - */ -#ifdef HAVE_STRCOLL - if ((ac > 127 || bc > 127) && g_get_charset (NULL)) + /* this happens in the trash */ + if (result == 0) { - /* case-sensitive is easy, case-insensitive is expensive, - * but we use a simple optimization to make it fast. - */ - if (G_LIKELY (case_sensitive)) - { - return strcoll (ap, bp); - } - else - { - /* we use a trick here, so we don't need to allocate - * and transform the two strings completely first (8 - * byte for each buffer, so all compilers should align - * them properly) - */ - gchar abuf[8]; - gchar bbuf[8]; - - /* transform the unicode chars to strings and - * make sure the strings are nul-terminated. - */ - abuf[g_unichar_to_utf8 (ac, abuf)] = '\0'; - bbuf[g_unichar_to_utf8 (bc, bbuf)] = '\0'; - - /* compare the unicode chars (as strings) */ - return strcoll (abuf, bbuf); - } + result = g_strcmp0 (thunar_file_get_original_path (file_a), + thunar_file_get_original_path (file_b)); } -#endif - /* else, they differ in an ASCII character */ - if (G_UNLIKELY (!case_sensitive)) - return (g_unichar_tolower (ac) > g_unichar_tolower (bc)) ? 1 : -1; - else - return (ac > bc) ? 1 : -1; + return result; } -gboolean +static gboolean thunar_file_same_filesystem (const ThunarFile *file_a, const ThunarFile *file_b) { @@ -3387,7 +4079,8 @@ * Consider using thunar_file_get() instead. * * Return value: the #ThunarFile for @file in the internal - * cache, or %NULL. + * cache, or %NULL. If you are done with the + * file, use g_object_unref to release. **/ ThunarFile * thunar_file_cache_lookup (const GFile *file) @@ -3409,6 +4102,14 @@ cached_file = g_hash_table_lookup (file_cache, file); + if (cached_file != NULL) + { + /* take a reference to avoid too-early releases outside the + * file_cache_mutex, resuling in destroyed files being used + * in running code */ + g_object_ref (cached_file); + } + G_UNLOCK (file_cache_mutex); return cached_file; @@ -3420,22 +4121,20 @@ thunar_file_cached_display_name (const GFile *file) { ThunarFile *cached_file; - gchar *base_name; gchar *display_name; - + /* check if we have a ThunarFile for it in the cache (usually is the case) */ cached_file = thunar_file_cache_lookup (file); if (cached_file != NULL) { /* determine the display name of the file */ display_name = g_strdup (thunar_file_get_display_name (cached_file)); + g_object_unref (cached_file); } else { /* determine something a hopefully good approximation of the display name */ - base_name = g_file_get_basename (G_FILE (file)); - display_name = g_filename_display_name (base_name); - g_free (base_name); + display_name = thunar_g_file_get_display_name (G_FILE (file)); } return display_name; @@ -3443,6 +4142,15 @@ +static gint +compare_app_infos (gconstpointer a, + gconstpointer b) +{ + return g_app_info_equal (G_APP_INFO (a), G_APP_INFO (b)) ? 0 : 1; +} + + + /** * thunar_file_list_get_applications: * @file_list : a #GList of #ThunarFiles. @@ -3452,8 +4160,7 @@ * * The caller is responsible to free the returned list using something like: * - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * Return value: the list of #GAppInfos that can be used to open all @@ -3467,7 +4174,8 @@ GList *next; GList *ap; GList *lp; - const gchar *previous_type; + GAppInfo *default_application; + const gchar *previous_type = NULL; const gchar *current_type; /* determine the set of applications that can open all files */ @@ -3475,16 +4183,38 @@ { current_type = thunar_file_get_content_type (lp->data); - /* no need to check anything if this file has the same mime type as the previous file */ - if (current_type != NULL && lp->prev != NULL) + /* no need to check anything if this file has the same mimetype as the previous file */ + if (current_type != NULL && previous_type != NULL) + if (G_LIKELY (g_content_type_equals (previous_type, current_type))) + continue; + + /* store the previous type */ + previous_type = current_type; + + /* determine the list of applications that can open this file */ + if (G_UNLIKELY (current_type != NULL)) { - previous_type = thunar_file_get_content_type (lp->prev->data); - if (G_LIKELY (g_content_type_equals (previous_type, current_type))) - continue; + list = g_app_info_get_all_for_type (current_type); + + /* move any default application in front of the list */ + default_application = g_app_info_get_default_for_type (current_type, FALSE); + if (G_LIKELY (default_application != NULL)) + { + for (ap = list; ap != NULL; ap = ap->next) + { + if (g_app_info_equal (ap->data, default_application)) + { + g_object_unref (ap->data); + list = g_list_delete_link (list, ap); + break; + } + } + list = g_list_prepend (list, default_application); + } } + else + list = NULL; - /* determine the list of applications that can open this file */ - list = current_type == NULL ? NULL : g_app_info_get_all_for_type (current_type); if (G_UNLIKELY (applications == NULL)) { /* first file, so just use the applications list */ @@ -3499,7 +4229,7 @@ next = ap->next; /* check if the application is present in list */ - if (g_list_find (list, ap->data) == NULL) + if (g_list_find_custom (list, ap->data, compare_app_infos) == NULL) { /* drop our reference on the application */ g_object_unref (G_OBJECT (ap->data)); @@ -3510,8 +4240,7 @@ } /* release the list of applications for this file */ - g_list_foreach (list, (GFunc) g_object_unref, NULL); - g_list_free (list); + g_list_free_full (list, g_object_unref); } /* check if the set is still not empty */ @@ -3519,6 +4248,22 @@ break; } + /* remove hidden applications */ + for (ap = applications; ap != NULL; ap = next) + { + /* grab a pointer on the next application */ + next = ap->next; + + if (!thunar_g_app_info_should_show (ap->data)) + { + /* drop our reference on the application */ + g_object_unref (G_OBJECT (ap->data)); + + /* drop this application from the list */ + applications = g_list_delete_link (applications, ap); + } + } + return applications; } diff -Nru thunar-1.2.3/thunar/thunar-file.h thunar-1.6.10/thunar/thunar-file.h --- thunar-1.2.3/thunar/thunar-file.h 2011-09-14 17:55:33.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-file.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2007 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -27,7 +27,6 @@ #include #include -#include #include G_BEGIN_DECLS; @@ -77,7 +76,6 @@ /** * ThunarFileThumbState: - * @THUNAR_FILE_THUMB_STATE_MASK : the mask to extract the thumbnail state. * @THUNAR_FILE_THUMB_STATE_UNKNOWN : unknown whether there's a thumbnail. * @THUNAR_FILE_THUMB_STATE_NONE : no thumbnail is available. * @THUNAR_FILE_THUMB_STATE_READY : a thumbnail is available. @@ -87,182 +85,179 @@ **/ typedef enum /*< flags >*/ { - THUNAR_FILE_THUMB_STATE_MASK = 0x03, - THUNAR_FILE_THUMB_STATE_UNKNOWN = 0x00, - THUNAR_FILE_THUMB_STATE_NONE = 0x01, - THUNAR_FILE_THUMB_STATE_READY = 0x02, - THUNAR_FILE_THUMB_STATE_LOADING = 0x03, + THUNAR_FILE_THUMB_STATE_UNKNOWN = 0, + THUNAR_FILE_THUMB_STATE_NONE = 1, + THUNAR_FILE_THUMB_STATE_READY = 2, + THUNAR_FILE_THUMB_STATE_LOADING = 3, } ThunarFileThumbState; -#define THUNAR_FILE_EMBLEM_NAME_SYMBOLIC_LINK "emblem-symbolic-link" -#define THUNAR_FILE_EMBLEM_NAME_CANT_READ "emblem-noread" -#define THUNAR_FILE_EMBLEM_NAME_CANT_WRITE "emblem-nowrite" -#define THUNAR_FILE_EMBLEM_NAME_DESKTOP "emblem-desktop" - -struct _ThunarFileClass -{ - GObjectClass __parent__; - /* signals */ - void (*destroy) (ThunarFile *file); -}; - -struct _ThunarFile -{ - GObject __parent__; - /*< private >*/ - GFileMonitor *monitor; - GFileInfo *info; - GFile *gfile; - gchar *custom_icon_name; - gchar *display_name; - gchar *basename; - gchar *thumbnail_path; - guint flags; - guint is_thumbnail : 1; - guint is_mounted : 1; -}; - -GType thunar_file_get_type (void) G_GNUC_CONST; - -ThunarFile *thunar_file_get (GFile *file, - GError **error); -ThunarFile *thunar_file_get_for_uri (const gchar *uri, - GError **error); - -gboolean thunar_file_load (ThunarFile *file, - GCancellable *cancellable, - GError **error); - -ThunarFile *thunar_file_get_parent (const ThunarFile *file, - GError **error); - -gboolean thunar_file_execute (ThunarFile *file, - GFile *working_directory, - GdkScreen *screen, - GList *path_list, - GError **error); - -gboolean thunar_file_launch (ThunarFile *file, - gpointer parent, - const gchar *startup_id, - GError **error); - -gboolean thunar_file_rename (ThunarFile *file, - const gchar *name, - GCancellable *cancellable, - gboolean called_from_job, - GError **error); - -GdkDragAction thunar_file_accepts_drop (ThunarFile *file, - GList *path_list, - GdkDragContext *context, - GdkDragAction *suggested_action_return); - -guint64 thunar_file_get_date (const ThunarFile *file, - ThunarFileDateType date_type); - -gchar *thunar_file_get_date_string (const ThunarFile *file, - ThunarFileDateType date_type, - ThunarDateStyle date_style) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; -gchar *thunar_file_get_mode_string (const ThunarFile *file) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; -gchar *thunar_file_get_size_string (const ThunarFile *file) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; - -GVolume *thunar_file_get_volume (const ThunarFile *file); - -ThunarGroup *thunar_file_get_group (const ThunarFile *file); -ThunarUser *thunar_file_get_user (const ThunarFile *file); - -const gchar *thunar_file_get_content_type (const ThunarFile *file); -const gchar *thunar_file_get_symlink_target (const ThunarFile *file); -const gchar *thunar_file_get_basename (const ThunarFile *file); -gboolean thunar_file_is_symlink (const ThunarFile *file); -guint64 thunar_file_get_size (const ThunarFile *file); -GAppInfo *thunar_file_get_default_handler (const ThunarFile *file); -GFileType thunar_file_get_kind (const ThunarFile *file); -GFile *thunar_file_get_target_location (const ThunarFile *file); -ThunarFileMode thunar_file_get_mode (const ThunarFile *file); -gboolean thunar_file_get_free_space (const ThunarFile *file, - guint64 *free_space_return); -gboolean thunar_file_is_mounted (const ThunarFile *file); -gboolean thunar_file_exists (const ThunarFile *file); -gboolean thunar_file_is_directory (const ThunarFile *file); -gboolean thunar_file_is_shortcut (const ThunarFile *file); -gboolean thunar_file_is_mountable (const ThunarFile *file); -gboolean thunar_file_is_local (const ThunarFile *file); -gboolean thunar_file_is_parent (const ThunarFile *file, - const ThunarFile *child); -gboolean thunar_file_is_ancestor (const ThunarFile *file, - const ThunarFile *ancestor); -gboolean thunar_file_is_executable (const ThunarFile *file); -gboolean thunar_file_is_readable (const ThunarFile *file); -gboolean thunar_file_is_writable (const ThunarFile *file); -gboolean thunar_file_is_hidden (const ThunarFile *file); -gboolean thunar_file_is_home (const ThunarFile *file); -gboolean thunar_file_is_regular (const ThunarFile *file); -gboolean thunar_file_is_trashed (const ThunarFile *file); -gboolean thunar_file_is_desktop_file (const ThunarFile *file); -const gchar *thunar_file_get_display_name (const ThunarFile *file); - -gchar *thunar_file_get_deletion_date (const ThunarFile *file, - ThunarDateStyle date_style) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; -const gchar *thunar_file_get_original_path (const ThunarFile *file); -guint32 thunar_file_get_item_count (const ThunarFile *file); - -gboolean thunar_file_is_chmodable (const ThunarFile *file); -gboolean thunar_file_is_renameable (const ThunarFile *file); -gboolean thunar_file_can_be_trashed (const ThunarFile *file); - -GList *thunar_file_get_emblem_names (ThunarFile *file); -void thunar_file_set_emblem_names (ThunarFile *file, - GList *emblem_names); - -gchar *thunar_file_get_custom_icon (const ThunarFile *file); -gboolean thunar_file_set_custom_icon (ThunarFile *file, - const gchar *custom_icon, - GError **error); - -const gchar *thunar_file_get_thumbnail_path (const ThunarFile *file); -gboolean thunar_file_is_thumbnail (const ThunarFile *file); -void thunar_file_set_thumb_state (ThunarFile *file, - ThunarFileThumbState state); -GIcon *thunar_file_get_preview_icon (const ThunarFile *file); -gchar *thunar_file_get_icon_name (const ThunarFile *file, - ThunarFileIconState icon_state, - GtkIconTheme *icon_theme); - -const gchar *thunar_file_get_metadata (ThunarFile *file, - ThunarMetafileKey key, - const gchar *default_value); -void thunar_file_set_metadata (ThunarFile *file, - ThunarMetafileKey key, - const gchar *value, - const gchar *default_value); - -void thunar_file_watch (ThunarFile *file); -void thunar_file_unwatch (ThunarFile *file); - -void thunar_file_reload (ThunarFile *file); - -void thunar_file_destroy (ThunarFile *file); - - -gint thunar_file_compare_by_name (const ThunarFile *file_a, - const ThunarFile *file_b, - gboolean case_sensitive); - -gboolean thunar_file_same_filesystem (const ThunarFile *file_a, - const ThunarFile *file_b); +#define THUNAR_FILE_EMBLEM_NAME_SYMBOLIC_LINK "emblem-symbolic-link" +#define THUNAR_FILE_EMBLEM_NAME_CANT_READ "emblem-noread" +#define THUNAR_FILE_EMBLEM_NAME_CANT_WRITE "emblem-nowrite" +#define THUNAR_FILE_EMBLEM_NAME_DESKTOP "emblem-desktop" + + + +/** + * ThunarFileGetFunc: + * + * Callback type for loading #ThunarFiles asynchronously. If you + * want to keep the #ThunarFile, you need to ref it, else it will be + * destroyed. + **/ +typedef void (*ThunarFileGetFunc) (GFile *location, + ThunarFile *file, + GError *error, + gpointer user_data); + + + +GType thunar_file_get_type (void) G_GNUC_CONST; + +ThunarFile *thunar_file_get (GFile *file, + GError **error); +ThunarFile *thunar_file_get_with_info (GFile *file, + GFileInfo *info, + gboolean not_mounted); +ThunarFile *thunar_file_get_for_uri (const gchar *uri, + GError **error); +void thunar_file_get_async (GFile *location, + GCancellable *cancellable, + ThunarFileGetFunc func, + gpointer user_data); + +GFile *thunar_file_get_file (const ThunarFile *file) G_GNUC_PURE; + +GFileInfo *thunar_file_get_info (const ThunarFile *file) G_GNUC_PURE; + +ThunarFile *thunar_file_get_parent (const ThunarFile *file, + GError **error); + +gboolean thunar_file_check_loaded (ThunarFile *file); + +gboolean thunar_file_execute (ThunarFile *file, + GFile *working_directory, + gpointer parent, + GList *path_list, + const gchar *startup_id, + GError **error); + +gboolean thunar_file_launch (ThunarFile *file, + gpointer parent, + const gchar *startup_id, + GError **error); + +gboolean thunar_file_rename (ThunarFile *file, + const gchar *name, + GCancellable *cancellable, + gboolean called_from_job, + GError **error); + +GdkDragAction thunar_file_accepts_drop (ThunarFile *file, + GList *path_list, + GdkDragContext *context, + GdkDragAction *suggested_action_return); + +guint64 thunar_file_get_date (const ThunarFile *file, + ThunarFileDateType date_type) G_GNUC_PURE; + +gchar *thunar_file_get_date_string (const ThunarFile *file, + ThunarFileDateType date_type, + ThunarDateStyle date_style) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; +gchar *thunar_file_get_mode_string (const ThunarFile *file) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; +gchar *thunar_file_get_size_string (const ThunarFile *file) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; +gchar *thunar_file_get_size_string_formatted (const ThunarFile *file, + const gboolean file_size_binary); + +GVolume *thunar_file_get_volume (const ThunarFile *file); + +ThunarGroup *thunar_file_get_group (const ThunarFile *file); +ThunarUser *thunar_file_get_user (const ThunarFile *file); + +const gchar *thunar_file_get_content_type (ThunarFile *file); +gboolean thunar_file_load_content_type (ThunarFile *file); +const gchar *thunar_file_get_symlink_target (const ThunarFile *file); +const gchar *thunar_file_get_basename (const ThunarFile *file) G_GNUC_CONST; +gboolean thunar_file_is_symlink (const ThunarFile *file); +guint64 thunar_file_get_size (const ThunarFile *file); +GAppInfo *thunar_file_get_default_handler (const ThunarFile *file); +GFileType thunar_file_get_kind (const ThunarFile *file) G_GNUC_PURE; +GFile *thunar_file_get_target_location (const ThunarFile *file); +ThunarFileMode thunar_file_get_mode (const ThunarFile *file); +gboolean thunar_file_is_mounted (const ThunarFile *file); +gboolean thunar_file_exists (const ThunarFile *file); +gboolean thunar_file_is_directory (const ThunarFile *file) G_GNUC_PURE; +gboolean thunar_file_is_shortcut (const ThunarFile *file) G_GNUC_PURE; +gboolean thunar_file_is_mountable (const ThunarFile *file) G_GNUC_PURE; +gboolean thunar_file_is_local (const ThunarFile *file); +gboolean thunar_file_is_parent (const ThunarFile *file, + const ThunarFile *child); +gboolean thunar_file_is_gfile_ancestor (const ThunarFile *file, + GFile *ancestor); +gboolean thunar_file_is_ancestor (const ThunarFile *file, + const ThunarFile *ancestor); +gboolean thunar_file_is_executable (const ThunarFile *file); +gboolean thunar_file_is_writable (const ThunarFile *file); +gboolean thunar_file_is_hidden (const ThunarFile *file); +gboolean thunar_file_is_home (const ThunarFile *file); +gboolean thunar_file_is_regular (const ThunarFile *file) G_GNUC_PURE; +gboolean thunar_file_is_trashed (const ThunarFile *file); +gboolean thunar_file_is_desktop_file (const ThunarFile *file, + gboolean *is_secure); +const gchar *thunar_file_get_display_name (const ThunarFile *file) G_GNUC_CONST; + +gchar *thunar_file_get_deletion_date (const ThunarFile *file, + ThunarDateStyle date_style) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; +const gchar *thunar_file_get_original_path (const ThunarFile *file); +guint32 thunar_file_get_item_count (const ThunarFile *file); + +gboolean thunar_file_is_chmodable (const ThunarFile *file); +gboolean thunar_file_is_renameable (const ThunarFile *file); +gboolean thunar_file_can_be_trashed (const ThunarFile *file); + +GList *thunar_file_get_emblem_names (ThunarFile *file); +void thunar_file_set_emblem_names (ThunarFile *file, + GList *emblem_names); + +const gchar *thunar_file_get_custom_icon (const ThunarFile *file); +gboolean thunar_file_set_custom_icon (ThunarFile *file, + const gchar *custom_icon, + GError **error); + +const gchar *thunar_file_get_thumbnail_path (ThunarFile *file); +ThunarFileThumbState thunar_file_get_thumb_state (const ThunarFile *file); +void thunar_file_set_thumb_state (ThunarFile *file, + ThunarFileThumbState state); +GIcon *thunar_file_get_preview_icon (const ThunarFile *file); +GFilesystemPreviewType thunar_file_get_preview_type (const ThunarFile *file); +const gchar *thunar_file_get_icon_name (ThunarFile *file, + ThunarFileIconState icon_state, + GtkIconTheme *icon_theme); + +void thunar_file_watch (ThunarFile *file); +void thunar_file_unwatch (ThunarFile *file); + +gboolean thunar_file_reload (ThunarFile *file); +void thunar_file_reload_idle (ThunarFile *file); +void thunar_file_reload_parent (ThunarFile *file); + +void thunar_file_destroy (ThunarFile *file); + + +gint thunar_file_compare_by_name (const ThunarFile *file_a, + const ThunarFile *file_b, + gboolean case_sensitive) G_GNUC_PURE; -ThunarFile *thunar_file_cache_lookup (const GFile *file); -gchar *thunar_file_cached_display_name (const GFile *file); +ThunarFile *thunar_file_cache_lookup (const GFile *file); +gchar *thunar_file_cached_display_name (const GFile *file); -GList *thunar_file_list_get_applications (GList *file_list); -GList *thunar_file_list_to_thunar_g_file_list (GList *file_list); +GList *thunar_file_list_get_applications (GList *file_list); +GList *thunar_file_list_to_thunar_g_file_list (GList *file_list); -gboolean thunar_file_is_desktop (const ThunarFile *file); +gboolean thunar_file_is_desktop (const ThunarFile *file); /** * thunar_file_is_root: @@ -272,7 +267,7 @@ * * Return value: %TRUE if @file is the root directory. **/ -#define thunar_file_is_root(file) (thunar_g_file_is_root (THUNAR_FILE ((file))->gfile)) +#define thunar_file_is_root(file) (thunar_g_file_is_root (thunar_file_get_file (file))) /** * thunar_file_has_parent: @@ -286,34 +281,6 @@ #define thunar_file_has_parent(file) (!thunar_file_is_root (THUNAR_FILE ((file)))) /** - * thunar_file_get_info: - * @file : a #ThunarFile instance. - * - * Returns the #GFileInfo for @file. - * - * Note, that there's no reference taken for the caller on the - * returned #GFileInfo, so if you need the object for a longer - * perioud, you'll need to take a reference yourself using the - * g_object_ref() method. - * - * Return value: the #GFileInfo for @file. - **/ -#define thunar_file_get_info(file) (THUNAR_FILE ((file))->info) - -/** - * thunar_file_get_file: - * @file : a #ThunarFile instance. - * - * Returns the #GFile that refers to the location of @file. - * - * The returned #GFile is owned by @file and must not be released - * with g_object_unref(). - * - * Return value: the #GFile corresponding to @file. - **/ -#define thunar_file_get_file(file) (THUNAR_FILE ((file))->gfile) - -/** * thunar_file_dup_uri: * @file : a #ThunarFile instance. * @@ -322,7 +289,7 @@ * * Return value: the URI for @file. **/ -#define thunar_file_dup_uri(file) (g_file_get_uri (THUNAR_FILE ((file))->gfile)) +#define thunar_file_dup_uri(file) (g_file_get_uri (thunar_file_get_file (file))) /** * thunar_file_has_uri_scheme: @@ -333,7 +300,7 @@ * * Return value: TRUE, if the schemes match, FALSE otherwise. **/ -#define thunar_file_has_uri_scheme(file, uri_scheme) (g_file_has_uri_scheme (THUNAR_FILE ((file))->gfile, (uri_scheme))) +#define thunar_file_has_uri_scheme(file, uri_scheme) (g_file_has_uri_scheme (thunar_file_get_file (file), (uri_scheme))) /** * thunar_file_changed: @@ -347,40 +314,6 @@ thunarx_file_info_changed (THUNARX_FILE_INFO ((file))); \ }G_STMT_END -/** - * thunar_file_get_thumb_state: - * @file : a #ThunarFile. - * - * Returns the current #ThunarFileThumbState for @file. This - * method is intended to be used by #ThunarIconFactory only. - * - * Return value: the #ThunarFileThumbState for @file. - **/ -#define thunar_file_get_thumb_state(file) (THUNAR_FILE ((file))->flags & THUNAR_FILE_THUMB_STATE_MASK) - -/** - * thunar_file_list_copy: - * @file_list : a list of #ThunarFiles. - * - * Returns a deep-copy of @file_list, which must be - * freed using thunar_file_list_free(). - * - * Return value: a deep copy of @file_list. - **/ -#define thunar_file_list_copy(file_list) (thunarx_file_info_list_copy ((file_list))) - -/** - * thunar_file_list_free: - * @file_list : a list of #ThunarFiles. - * - * Unrefs the #ThunarFiles contained in @file_list - * and frees the list itself. - **/ -#define thunar_file_list_free(file_list) \ -G_STMT_START{ \ - thunarx_file_info_list_free ((file_list)); \ -}G_STMT_END - G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-file-monitor.c thunar-1.6.10/thunar/thunar-file-monitor.c --- thunar-1.2.3/thunar/thunar-file-monitor.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-file-monitor.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-file-monitor.h thunar-1.6.10/thunar/thunar-file-monitor.h --- thunar-1.2.3/thunar/thunar-file-monitor.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-file-monitor.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-folder.c thunar-1.6.10/thunar/thunar-folder.c --- thunar-1.2.3/thunar/thunar-folder.c 2011-01-30 21:52:53.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-folder.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -29,6 +29,8 @@ #include #include +#define DEBUG_FILE_CHANGES FALSE + /* property identifiers */ @@ -42,6 +44,7 @@ /* signal identifiers */ enum { + DESTROY, ERROR, FILES_ADDED, FILES_REMOVED, @@ -50,6 +53,7 @@ +static void thunar_folder_dispose (GObject *object); static void thunar_folder_finalize (GObject *object); static void thunar_folder_get_property (GObject *object, guint prop_id, @@ -59,6 +63,7 @@ guint prop_uid, const GValue *value, GParamSpec *pspec); +static void thunar_folder_real_destroy (ThunarFolder *folder); static void thunar_folder_error (ExoJob *job, GError *error, ThunarFolder *folder); @@ -83,9 +88,10 @@ struct _ThunarFolderClass { - GtkObjectClass __parent__; + GObjectClass __parent__; /* signals */ + void (*destroy) (ThunarFolder *folder); void (*error) (ThunarFolder *folder, const GError *error); void (*files_added) (ThunarFolder *folder, @@ -96,13 +102,19 @@ struct _ThunarFolder { - GtkObject __parent__; + GObject __parent__; ThunarJob *job; ThunarFile *corresponding_file; GList *new_files; GList *files; + gboolean reload_info; + + GList *content_type_ptr; + guint content_type_idle_id; + + guint in_destruction : 1; ThunarFileMonitor *file_monitor; @@ -116,7 +128,7 @@ -G_DEFINE_TYPE (ThunarFolder, thunar_folder, GTK_TYPE_OBJECT) +G_DEFINE_TYPE (ThunarFolder, thunar_folder, G_TYPE_OBJECT) @@ -126,10 +138,13 @@ GObjectClass *gobject_class; gobject_class = G_OBJECT_CLASS (klass); + gobject_class->dispose = thunar_folder_dispose; gobject_class->finalize = thunar_folder_finalize; gobject_class->get_property = thunar_folder_get_property; gobject_class->set_property = thunar_folder_set_property; + klass->destroy = thunar_folder_real_destroy; + /** * ThunarFolder::corresponding-file: * @@ -141,7 +156,7 @@ "corresponding-file", "corresponding-file", THUNAR_TYPE_FILE, - G_PARAM_READABLE + G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); @@ -158,6 +173,20 @@ "loading", FALSE, EXO_PARAM_READABLE)); + /** + * ThunarFolder::destroy: + * @folder : a #ThunarFolder. + * + * Emitted when the #ThunarFolder is destroyed. + **/ + folder_signals[DESTROY] = + g_signal_new (I_("destroy"), + G_TYPE_FROM_CLASS (gobject_class), + G_SIGNAL_RUN_CLEANUP | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET (ThunarFolderClass, destroy), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); /** * ThunarFolder::error: @@ -220,6 +249,24 @@ g_signal_connect (G_OBJECT (folder->file_monitor), "file-destroyed", G_CALLBACK (thunar_folder_file_destroyed), folder); folder->monitor = NULL; + folder->reload_info = FALSE; +} + + + +static void +thunar_folder_dispose (GObject *object) +{ + ThunarFolder *folder = THUNAR_FOLDER (object); + + if (!folder->in_destruction) + { + folder->in_destruction = TRUE; + g_signal_emit (G_OBJECT (folder), folder_signals[DESTROY], 0); + folder->in_destruction = FALSE; + } + + (*G_OBJECT_CLASS (thunar_folder_parent_class)->dispose) (object); } @@ -236,6 +283,7 @@ /* disconnect from the file alteration monitor */ if (G_LIKELY (folder->monitor != NULL)) { + g_signal_handlers_disconnect_matched (folder->monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, folder); g_file_monitor_cancel (folder->monitor); g_object_unref (folder->monitor); } @@ -256,11 +304,15 @@ g_object_unref (G_OBJECT (folder->corresponding_file)); } + /* stop metadata collector */ + if (folder->content_type_idle_id != 0) + g_source_remove (folder->content_type_idle_id); + /* release references to the new files */ - thunar_file_list_free (folder->new_files); + thunar_g_file_list_free (folder->new_files); /* release references to the current files */ - thunar_file_list_free (folder->files); + thunar_g_file_list_free (folder->files); (*G_OBJECT_CLASS (thunar_folder_parent_class)->finalize) (object); } @@ -320,6 +372,14 @@ static void +thunar_folder_real_destroy (ThunarFolder *folder) +{ + g_signal_handlers_destroy (G_OBJECT (folder)); +} + + + +static void thunar_folder_error (ExoJob *job, GError *error, ThunarFolder *folder) @@ -351,6 +411,56 @@ +static gboolean +thunar_folder_content_type_loader_idle (gpointer data) +{ + ThunarFolder *folder = THUNAR_FOLDER (data); + GList *lp; + + /* load another files content type */ + for (lp = folder->content_type_ptr; lp != NULL; lp = lp->next) + if (thunar_file_load_content_type (lp->data)) + { + /* if this was the last file, abort */ + if (G_UNLIKELY (lp->next == NULL)) + break; + + /* set pointer to next file for the next iteration */ + folder->content_type_ptr = lp->next; + + return TRUE; + } + + /* all content types loaded */ + return FALSE; +} + + + +static void +thunar_folder_content_type_loader_idle_destroyed (gpointer data) +{ + THUNAR_FOLDER (data)->content_type_idle_id = 0; +} + + + +static void +thunar_folder_content_type_loader (ThunarFolder *folder) +{ + _thunar_return_if_fail (THUNAR_IS_FOLDER (folder)); + _thunar_return_if_fail (folder->content_type_idle_id == 0); + + /* set the pointer to the start of the list */ + folder->content_type_ptr = folder->files; + + /* schedule idle */ + folder->content_type_idle_id = g_idle_add_full (G_PRIORITY_LOW, thunar_folder_content_type_loader_idle, + folder, thunar_folder_content_type_loader_idle_destroyed); +} + + + static void thunar_folder_finished (ExoJob *job, ThunarFolder *folder) @@ -363,6 +473,7 @@ _thunar_return_if_fail (THUNAR_IS_JOB (job)); _thunar_return_if_fail (THUNAR_IS_FILE (folder->corresponding_file)); _thunar_return_if_fail (folder->monitor == NULL); + _thunar_return_if_fail (folder->content_type_idle_id == 0); /* check if we need to merge new files with existing files */ if (G_UNLIKELY (folder->files != NULL)) @@ -416,11 +527,11 @@ g_signal_emit (G_OBJECT (folder), folder_signals[FILES_REMOVED], 0, files); /* release the removed files list */ - thunar_file_list_free (files); + thunar_g_file_list_free (files); } /* drop the temporary new_files list */ - thunar_file_list_free (folder->new_files); + thunar_g_file_list_free (folder->new_files); folder->new_files = NULL; } else @@ -436,14 +547,29 @@ } } + /* schedule a reload of the file information of all files if requested */ + if (folder->reload_info) + { + for (lp = folder->files; lp != NULL; lp = lp->next) + thunar_file_reload (lp->data); + + /* reload folder information too */ + thunar_file_reload (folder->corresponding_file); + + folder->reload_info = FALSE; + } + /* we did it, the folder is loaded */ g_signal_handlers_disconnect_matched (folder->job, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, folder); g_object_unref (folder->job); folder->job = NULL; + /* restart the content type idle loader */ + thunar_folder_content_type_loader (folder); + /* add us to the file alteration monitor */ - folder->monitor = g_file_monitor_directory (thunar_file_get_file (folder->corresponding_file), - G_FILE_MONITOR_NONE, NULL, NULL); + folder->monitor = g_file_monitor_directory (thunar_file_get_file (folder->corresponding_file), + G_FILE_MONITOR_SEND_MOVED, NULL, NULL); if (G_LIKELY (folder->monitor != NULL)) g_signal_connect (folder->monitor, "changed", G_CALLBACK (thunar_folder_monitor), folder); @@ -466,7 +592,7 @@ if (G_UNLIKELY (folder->corresponding_file == file)) { /* ...and if so, reload the folder */ - thunar_folder_reload (folder); + thunar_folder_reload (folder, FALSE); } } @@ -477,8 +603,9 @@ ThunarFile *file, ThunarFolder *folder) { - GList files; - GList *lp; + GList files; + GList *lp; + gboolean restart = FALSE; _thunar_return_if_fail (THUNAR_IS_FILE (file)); _thunar_return_if_fail (THUNAR_IS_FOLDER (folder)); @@ -488,7 +615,8 @@ if (G_UNLIKELY (folder->corresponding_file == file)) { /* the folder is useless now */ - gtk_object_destroy (GTK_OBJECT (folder)); + if (!folder->in_destruction) + g_object_run_dispose (G_OBJECT (folder)); } else { @@ -496,6 +624,9 @@ lp = g_list_find (folder->files, file); if (G_LIKELY (lp != NULL)) { + if (folder->content_type_idle_id != 0) + restart = g_source_remove (folder->content_type_idle_id); + /* remove the file from our list */ folder->files = g_list_delete_link (folder->files, lp); @@ -505,12 +636,73 @@ /* drop our reference to the file */ g_object_unref (G_OBJECT (file)); + + /* continue collecting the metadata */ + if (restart) + thunar_folder_content_type_loader (folder); } } } +#if DEBUG_FILE_CHANGES +static void +thunar_file_infos_equal (ThunarFile *file, + GFile *event_file) +{ + gchar **attrs; + GFileInfo *info1 = G_FILE_INFO (file->info); + GFileInfo *info2; + guint i; + gchar *attr1, *attr2; + gboolean printed = FALSE; + gchar *bname; + + attrs = g_file_info_list_attributes (info1, NULL); + info2 = g_file_query_info (event_file, THUNARX_FILE_INFO_NAMESPACE, + G_FILE_QUERY_INFO_NONE, NULL, NULL); + + if (info1 != NULL && info2 != NULL) + { + for (i = 0; attrs[i] != NULL; i++) + { + if (g_file_info_has_attribute (info2, attrs[i])) + { + attr1 = g_file_info_get_attribute_as_string (info1, attrs[i]); + attr2 = g_file_info_get_attribute_as_string (info2, attrs[i]); + + if (g_strcmp0 (attr1, attr2) != 0) + { + if (!printed) + { + bname = g_file_get_basename (event_file); + g_print ("%s\n", bname); + g_free (bname); + + printed = TRUE; + } + + g_print (" %s: %s -> %s\n", attrs[i], attr1, attr2); + } + + g_free (attr1); + g_free (attr2); + } + } + + g_object_unref (info2); + } + + if (printed) + g_print ("\n"); + + g_free (attrs); +} +#endif + + + static void thunar_folder_monitor (GFileMonitor *monitor, GFile *event_file, @@ -520,13 +712,17 @@ { ThunarFolder *folder = THUNAR_FOLDER (user_data); ThunarFile *file; + ThunarFile *other_parent; GList *lp; GList list; + gboolean restart = FALSE; _thunar_return_if_fail (G_IS_FILE_MONITOR (monitor)); _thunar_return_if_fail (THUNAR_IS_FOLDER (folder)); _thunar_return_if_fail (folder->monitor == monitor); _thunar_return_if_fail (folder->job == NULL); + _thunar_return_if_fail (THUNAR_IS_FILE (folder->corresponding_file)); + _thunar_return_if_fail (G_IS_FILE (event_file)); /* check on which file the event occurred */ if (!g_file_equal (event_file, thunar_file_get_file (folder->corresponding_file))) @@ -536,37 +732,98 @@ if (g_file_equal (event_file, thunar_file_get_file (lp->data))) break; + /* stop the content type collector */ + if (folder->content_type_idle_id != 0) + restart = g_source_remove (folder->content_type_idle_id); + /* if we don't have it, add it if the event is not an "deleted" event */ if (G_UNLIKELY (lp == NULL && event_type != G_FILE_MONITOR_EVENT_DELETED)) { /* allocate a file for the path */ file = thunar_file_get (event_file, NULL); - if (G_UNLIKELY (file == NULL)) - return; - - /* prepend it to our internal list */ - folder->files = g_list_prepend (folder->files, file); + if (G_UNLIKELY (file != NULL)) + { + /* prepend it to our internal list */ + folder->files = g_list_prepend (folder->files, file); - /* tell others about the new file */ - list.data = file; list.next = list.prev = NULL; - g_signal_emit (G_OBJECT (folder), folder_signals[FILES_ADDED], 0, &list); + /* tell others about the new file */ + list.data = file; list.next = list.prev = NULL; + g_signal_emit (G_OBJECT (folder), folder_signals[FILES_ADDED], 0, &list); + } } else if (lp != NULL) { - /* update/destroy the file */ if (event_type == G_FILE_MONITOR_EVENT_DELETED) - thunar_file_destroy (lp->data); + { + ThunarFile *destroyed; + + /* destroy the file */ + thunar_file_destroy (lp->data); + + /* if the file has not been destroyed by now, reload it to invalidate it */ + destroyed = thunar_file_cache_lookup (event_file); + if (destroyed != NULL) + { + thunar_file_reload (destroyed); + g_object_unref (destroyed); + } + } + + else if (event_type == G_FILE_MONITOR_EVENT_MOVED) + { + /* destroy the old file and update the new one */ + thunar_file_destroy (lp->data); + file = thunar_file_get(other_file, NULL); + if (file != NULL && THUNAR_IS_FILE (file)) + { + thunar_file_reload (file); + + /* if source and target folders are different, also tell + the target folder to reload for the changes */ + if (thunar_file_has_parent (file)) + { + other_parent = thunar_file_get_parent (file, NULL); + if (other_parent && + !g_file_equal (thunar_file_get_file(folder->corresponding_file), + thunar_file_get_file(other_parent))) + { + thunar_file_reload (other_parent); + g_object_unref (other_parent); + } + } + + /* drop reference on the other file */ + g_object_unref (file); + } + + /* reload the folder of the source file */ + thunar_file_reload (folder->corresponding_file); + } else - thunar_file_reload (lp->data); + { +#if DEBUG_FILE_CHANGES + thunar_file_infos_equal (lp->data, event_file); +#endif + thunar_file_reload (lp->data); + } } + + /* check if we need to restart the collector */ + if (restart) + thunar_folder_content_type_loader (folder); } else { /* update/destroy the corresponding file */ if (event_type == G_FILE_MONITOR_EVENT_DELETED) - thunar_file_destroy (folder->corresponding_file); + { + if (!thunar_file_exists (folder->corresponding_file)) + thunar_file_destroy (folder->corresponding_file); + } else - thunar_file_reload (folder->corresponding_file); + { + thunar_file_reload (folder->corresponding_file); + } } } @@ -592,8 +849,17 @@ ThunarFolder *folder; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); + + /* make sure the file is loaded */ + if (!thunar_file_check_loaded (file)) + return NULL; + _thunar_return_val_if_fail (thunar_file_is_directory (file), NULL); + /* load if the file is not a folder */ + if (!thunar_file_is_directory (file)) + return NULL; + /* determine the "thunar-folder" quark on-demand */ if (G_UNLIKELY (thunar_folder_quark == 0)) thunar_folder_quark = g_quark_from_static_string ("thunar-folder"); @@ -609,14 +875,11 @@ /* allocate the new instance */ folder = g_object_new (THUNAR_TYPE_FOLDER, "corresponding-file", file, NULL); - /* drop the floating reference */ - g_object_ref_sink (G_OBJECT (folder)); - /* connect the folder to the file */ g_object_set_qdata (G_OBJECT (file), thunar_folder_quark, folder); /* schedule the loading of the folder */ - thunar_folder_reload (folder); + thunar_folder_reload (folder, FALSE); } return folder; @@ -684,15 +947,24 @@ /** * thunar_folder_reload: * @folder : a #ThunarFolder instance. + * @reload_info : reload all information for the files too * * Tells the @folder object to reread the directory * contents from the underlying media. **/ void -thunar_folder_reload (ThunarFolder *folder) +thunar_folder_reload (ThunarFolder *folder, + gboolean reload_info) { _thunar_return_if_fail (THUNAR_IS_FOLDER (folder)); + /* reload file info too? */ + folder->reload_info = reload_info; + + /* stop metadata collector */ + if (folder->content_type_idle_id != 0) + g_source_remove (folder->content_type_idle_id); + /* check if we are currently connect to a job */ if (G_UNLIKELY (folder->job != NULL)) { @@ -705,13 +977,14 @@ /* disconnect from the file alteration monitor */ if (G_UNLIKELY (folder->monitor != NULL)) { + g_signal_handlers_disconnect_matched (folder->monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, folder); g_file_monitor_cancel (folder->monitor); g_object_unref (folder->monitor); folder->monitor = NULL; } /* reset the new_files list */ - thunar_file_list_free (folder->new_files); + thunar_g_file_list_free (folder->new_files); folder->new_files = NULL; /* start a new job */ @@ -723,7 +996,3 @@ /* tell all consumers that we're loading */ g_object_notify (G_OBJECT (folder), "loading"); } - - - - diff -Nru thunar-1.2.3/thunar/thunar-folder.h thunar-1.6.10/thunar/thunar-folder.h --- thunar-1.2.3/thunar/thunar-folder.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-folder.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -42,7 +42,8 @@ GList *thunar_folder_get_files (const ThunarFolder *folder); gboolean thunar_folder_get_loading (const ThunarFolder *folder); -void thunar_folder_reload (ThunarFolder *folder); +void thunar_folder_reload (ThunarFolder *folder, + gboolean reload_info); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-gdk-extensions.c thunar-1.6.10/thunar/thunar-gdk-extensions.c --- thunar-1.2.3/thunar/thunar-gdk-extensions.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-gdk-extensions.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2003-2007 Benedikt Meurer * @@ -39,6 +39,113 @@ +static const cairo_user_data_key_t cairo_key; + + + +static cairo_surface_t * +thunar_gdk_cairo_create_surface (const GdkPixbuf *pixbuf) +{ + gint width; + gint height; + guchar *gdk_pixels; + gint gdk_rowstride; + gint n_channels; + gint cairo_stride; + guchar *cairo_pixels; + cairo_format_t format; + cairo_surface_t *surface; + gint j; + guchar *p, *q; + guchar *end; + + _thunar_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL); + + /* get pixbuf information */ + width = gdk_pixbuf_get_width (pixbuf); + height = gdk_pixbuf_get_height (pixbuf); + gdk_pixels = gdk_pixbuf_get_pixels (pixbuf); + gdk_rowstride = gdk_pixbuf_get_rowstride (pixbuf); + n_channels = gdk_pixbuf_get_n_channels (pixbuf); + + if (n_channels == 3) + format = CAIRO_FORMAT_RGB24; + else + format = CAIRO_FORMAT_ARGB32; + + /* prepare pixel data and surface */ + cairo_stride = cairo_format_stride_for_width (format, width); + cairo_pixels = g_malloc (height * cairo_stride); + surface = cairo_image_surface_create_for_data (cairo_pixels, format, + width, height, cairo_stride); + cairo_surface_set_user_data (surface, &cairo_key, cairo_pixels, g_free); + + /* convert format */ + if (G_UNLIKELY (n_channels == 3)) + { + for (j = height; j; j--) + { + p = gdk_pixels; + q = cairo_pixels; + end = p + 3 * width; + + while (p < end) + { +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + q[0] = p[2]; + q[1] = p[1]; + q[2] = p[0]; +#else + q[1] = p[0]; + q[2] = p[1]; + q[3] = p[2]; +#endif + p += 3; + q += 4; + } + + gdk_pixels += gdk_rowstride; + cairo_pixels += cairo_stride; + } + } + else + { +#define MULT(d,c,a) G_STMT_START { guint t = c * a + 0x7f; d = ((t >> 8) + t) >> 8; } G_STMT_END + for (j = height; j; j--) + { + p = gdk_pixels; + q = cairo_pixels; + end = p + 4 * width; + + while (p < end) + { +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + MULT(q[0], p[2], p[3]); + MULT(q[1], p[1], p[3]); + MULT(q[2], p[0], p[3]); + q[3] = p[3]; +#else + q[0] = p[3]; + MULT(q[1], p[0], p[3]); + MULT(q[2], p[1], p[3]); + MULT(q[3], p[2], p[3]); +#endif + + p += 4; + q += 4; + } + + gdk_pixels += gdk_rowstride; + cairo_pixels += cairo_stride; + } +#undef MULT + } + + return surface; +} + + + /** * thunar_gdk_screen_open: * @display_name : a fully qualified display name. @@ -128,3 +235,44 @@ return screen; } + + + +/** + * thunar_gdk_cairo_set_source_pixbuf: + * cr : a Cairo context + * pixbuf : a GdkPixbuf + * pixbuf_x : X coordinate of location to place upper left corner of pixbuf + * pixbuf_y : Y coordinate of location to place upper left corner of pixbuf + * + * Works like gdk_cairo_set_source_pixbuf but we try to cache the surface + * on the pixbuf, which is efficient within Thunar because we also share + * the pixbufs using the icon cache. + **/ +void +thunar_gdk_cairo_set_source_pixbuf (cairo_t *cr, + GdkPixbuf *pixbuf, + gdouble pixbuf_x, + gdouble pixbuf_y) +{ + cairo_surface_t *surface; + static GQuark surface_quark = 0; + + if (G_UNLIKELY (surface_quark == 0)) + surface_quark = g_quark_from_static_string ("thunar-gdk-surface"); + + /* peek if there is already a surface */ + surface = g_object_get_qdata (G_OBJECT (pixbuf), surface_quark); + if (surface == NULL) + { + /* create a new surface */ + surface = thunar_gdk_cairo_create_surface (pixbuf); + + /* store the pixbuf on the pixbuf */ + g_object_set_qdata_full (G_OBJECT (pixbuf), surface_quark, + surface, (GDestroyNotify) cairo_surface_destroy); + } + + /* apply */ + cairo_set_source_surface (cr, surface, pixbuf_x, pixbuf_y); +} diff -Nru thunar-1.2.3/thunar/thunar-gdk-extensions.h thunar-1.6.10/thunar/thunar-gdk-extensions.h --- thunar-1.2.3/thunar/thunar-gdk-extensions.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-gdk-extensions.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2003-2007 Benedikt Meurer * @@ -21,11 +21,17 @@ #define __THUNAR_GDK_EXTENSIONS_H__ #include +#include G_BEGIN_DECLS; -GdkScreen *thunar_gdk_screen_open (const gchar *display_name, - GError **error); +GdkScreen *thunar_gdk_screen_open (const gchar *display_name, + GError **error); + +void thunar_gdk_cairo_set_source_pixbuf (cairo_t *cr, + GdkPixbuf *pixbuf, + gdouble pixbuf_x, + gdouble pixbuf_y); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-gio-extensions.c thunar-1.6.10/thunar/thunar-gio-extensions.c --- thunar-1.2.3/thunar/thunar-gio-extensions.c 2010-12-06 09:31:04.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-gio-extensions.c 2015-05-22 13:25:36.000000000 +0000 @@ -2,18 +2,18 @@ /*- * Copyright (c) 2009-2010 Jannis Pohlmann * - * This program is free software; you can redistribute it and/or + * 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 + * 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 + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ @@ -23,8 +23,10 @@ #endif #include + #ifdef HAVE_GIO_UNIX #include +#include #endif #include @@ -32,6 +34,7 @@ #include #include +#include #include #include @@ -70,17 +73,16 @@ GFile * -thunar_g_file_new_for_user_special_dir (GUserDirectory dir) +thunar_g_file_new_for_bookmarks (void) { - const gchar *path; + gchar *filename; + GFile *bookmarks; - _thunar_return_val_if_fail (dir < G_USER_N_DIRECTORIES, NULL); + filename = g_build_filename (g_get_user_config_dir (), "gtk-3.0", "bookmarks", NULL); + bookmarks = g_file_new_for_path (filename); + g_free (filename); - path = g_get_user_special_dir (dir); - if (path == NULL) - path = xfce_get_homedir (); - - return g_file_new_for_path (path); + return bookmarks; } @@ -103,7 +105,7 @@ -gboolean +gboolean thunar_g_file_is_trashed (GFile *file) { _thunar_return_val_if_fail (G_IS_FILE (file), FALSE); @@ -129,23 +131,6 @@ -gboolean -thunar_g_file_is_desktop (GFile *file) -{ - GFile *desktop; - gboolean is_desktop; - - _thunar_return_val_if_fail (G_IS_FILE (file), FALSE); - - desktop = thunar_g_file_new_for_desktop (); - is_desktop = g_file_equal (desktop, file); - g_object_unref (desktop); - - return is_desktop; -} - - - GKeyFile * thunar_g_file_query_key_file (GFile *file, GCancellable *cancellable, @@ -192,8 +177,9 @@ GCancellable *cancellable, GError **error) { - gchar *contents; - gsize length; + gchar *contents; + gsize length; + gboolean result = TRUE; _thunar_return_val_if_fail (G_IS_FILE (file), FALSE); _thunar_return_val_if_fail (key_file != NULL, FALSE); @@ -204,22 +190,17 @@ contents = g_key_file_to_data (key_file, &length, NULL); /* try to replace the file contents with the key file data */ - if (!g_file_replace_contents (file, contents, length, NULL, FALSE, -#if GLIB_CHECK_VERSION(2,20,0) - G_FILE_CREATE_REPLACE_DESTINATION, -#else - G_FILE_CREATE_NONE, -#endif - NULL, cancellable, error)) - { - g_free (contents); - return FALSE; - } - else + if (contents != NULL) { + result = g_file_replace_contents (file, contents, length, NULL, FALSE, + G_FILE_CREATE_NONE, + NULL, cancellable, error); + + /* cleanup */ g_free (contents); - return TRUE; } + + return result; } @@ -230,7 +211,7 @@ gchar *location; _thunar_return_val_if_fail (G_IS_FILE (file), NULL); - + location = g_file_get_path (file); if (location == NULL) location = g_file_get_uri (file); @@ -240,6 +221,123 @@ +gchar * +thunar_g_file_get_display_name (GFile *file) +{ + gchar *base_name; + gchar *display_name; + + _thunar_return_val_if_fail (G_IS_FILE (file), NULL); + + base_name = g_file_get_basename (file); + if (G_LIKELY (base_name != NULL)) + { + if (strcmp (base_name, "/") == 0) + { + display_name = g_strdup (_("File System")); + g_free (base_name); + } + else if (g_utf8_validate (base_name, -1, NULL)) + { + display_name = base_name; + } + else + { + display_name = g_uri_escape_string (base_name, G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, TRUE); + g_free (base_name); + } + } + else + { + display_name = g_strdup ("?"); + } + + return display_name; +} + + + +gchar * +thunar_g_file_get_display_name_remote (GFile *mount_point) +{ + gchar *scheme; + gchar *parse_name; + const gchar *p; + const gchar *path; + gchar *unescaped; + gchar *hostname; + gchar *display_name = NULL; + const gchar *skip; + const gchar *firstdot; + const gchar skip_chars[] = ":@"; + guint n; + + _thunar_return_val_if_fail (G_IS_FILE (mount_point), NULL); + + /* not intended for local mounts */ + if (!g_file_is_native (mount_point)) + { + scheme = g_file_get_uri_scheme (mount_point); + parse_name = g_file_get_parse_name (mount_point); + + if (g_str_has_prefix (parse_name, scheme)) + { + /* extract the hostname */ + p = parse_name + strlen (scheme); + while (*p == ':' || *p == '/') + ++p; + + /* goto path part */ + path = strchr (p, '/'); + firstdot = strchr (p, '.'); + + if (firstdot != NULL) + { + /* skip password or login names in the hostname */ + for (n = 0; n < G_N_ELEMENTS (skip_chars) - 1; n++) + { + skip = strchr (p, skip_chars[n]); + if (skip != NULL + && (path == NULL || skip < path) + && (skip < firstdot)) + p = skip + 1; + } + } + + /* extract the path and hostname from the string */ + if (G_LIKELY (path != NULL)) + { + hostname = g_strndup (p, path - p); + } + else + { + hostname = g_strdup (p); + path = "/"; + } + + /* unescape the path so that spaces and other characters are shown correctly */ + unescaped = g_uri_unescape_string (path, NULL); + + /* TRANSLATORS: this will result in " on " */ + display_name = g_strdup_printf (_("%s on %s"), unescaped, hostname); + + g_free (unescaped); + g_free (hostname); + } + + g_free (scheme); + g_free (parse_name); + } + + /* never return null */ + if (display_name == NULL) + display_name = thunar_g_file_get_display_name (mount_point); + + return display_name; +} + + + gboolean thunar_g_vfs_is_uri_scheme_supported (const gchar *scheme) { @@ -253,7 +351,10 @@ gvfs = g_vfs_get_default (); supported_schemes = g_vfs_get_supported_uri_schemes (gvfs); - for (n = 0; !supported && supported_schemes[n] != NULL; ++n) + if (supported_schemes == NULL) + return FALSE; + + for (n = 0; !supported && supported_schemes[n] != NULL; ++n) if (g_strcmp0 (supported_schemes[n], scheme) == 0) supported = TRUE; @@ -262,6 +363,85 @@ +/** + * thunar_g_file_get_free_space: + * @file : a #GFile instance. + * @fs_free_return : return location for the amount of + * free space or %NULL. + * @fs_size_return : return location for the total volume size. + * + * Determines the amount of free space of the volume on + * which @file resides. Returns %TRUE if the amount of + * free space was determined successfully and placed into + * @free_space_return, else %FALSE will be returned. + * + * Return value: %TRUE if successfull, else %FALSE. + **/ +gboolean +thunar_g_file_get_free_space (GFile *file, + guint64 *fs_free_return, + guint64 *fs_size_return) +{ + GFileInfo *filesystem_info; + gboolean success = FALSE; + + _thunar_return_val_if_fail (G_IS_FILE (file), FALSE); + + filesystem_info = g_file_query_filesystem_info (file, + THUNARX_FILESYSTEM_INFO_NAMESPACE, + NULL, NULL); + + if (filesystem_info != NULL) + { + if (fs_free_return != NULL) + { + *fs_free_return = g_file_info_get_attribute_uint64 (filesystem_info, G_FILE_ATTRIBUTE_FILESYSTEM_FREE); + success = g_file_info_has_attribute (filesystem_info, G_FILE_ATTRIBUTE_FILESYSTEM_FREE); + } + + if (fs_size_return != NULL) + { + *fs_size_return = g_file_info_get_attribute_uint64 (filesystem_info, G_FILE_ATTRIBUTE_FILESYSTEM_SIZE); + success = g_file_info_has_attribute (filesystem_info, G_FILE_ATTRIBUTE_FILESYSTEM_SIZE); + } + + g_object_unref (filesystem_info); + } + + return success; +} + + + +gchar * +thunar_g_file_get_free_space_string (GFile *file, gboolean file_size_binary) +{ + gchar *fs_free_str; + gchar *fs_size_str; + guint64 fs_free; + guint64 fs_size; + gchar *fs_string = NULL; + + _thunar_return_val_if_fail (G_IS_FILE (file), NULL); + + if (thunar_g_file_get_free_space (file, &fs_free, &fs_size) + && fs_size > 0) + { + fs_free_str = g_format_size_full (fs_free, file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + fs_size_str = g_format_size_full (fs_size, file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + /* free disk space string */ + fs_string = g_strdup_printf (_("%s of %s free (%d%% used)"), + fs_free_str, fs_size_str, + (gint) ((fs_size - fs_free) * 100 / fs_size)); + g_free (fs_free_str); + g_free (fs_size_str); + } + + return fs_string; +} + + + GType thunar_g_file_list_get_type (void) { @@ -313,260 +493,28 @@ /** - * thunar_g_file_list_to_string: + * thunar_g_file_list_to_stringv: * @list : a list of #GFiles. * - * Free the returned value using g_free() when you - * are done with it. + * Free the returned value using g_strfreev() when you + * are done with it. Useful for gtk_selection_data_set_uris. * - * Return value: the string representation of @list conforming to the - * text/uri-list mime type defined in RFC 2483. + * Return value: and array of uris. **/ -gchar * -thunar_g_file_list_to_string (GList *list) +gchar ** +thunar_g_file_list_to_stringv (GList *list) { - GString *string; - gchar *uri; - GList *lp; + gchar **uris; + guint n; + GList *lp; /* allocate initial string */ - string = g_string_new (NULL); - - for (lp = list; lp != NULL; lp = lp->next) - { - uri = g_file_get_uri (lp->data); - string = g_string_append (string, uri); - g_free (uri); - - string = g_string_append (string, "\r\n"); - } - - return g_string_free (string, FALSE); -} - + uris = g_new0 (gchar *, g_list_length (list) + 1); + for (lp = list, n = 0; lp != NULL; lp = lp->next) + uris[n++] = g_file_get_uri (G_FILE (lp->data)); -GList * -thunar_g_file_list_append (GList *list, - GFile *file) -{ - return g_list_append (list, g_object_ref (file)); -} - - - -GList * -thunar_g_file_list_prepend (GList *list, - GFile *file) -{ - return g_list_prepend (list, g_object_ref (file)); -} - - - -/** - * thunar_g_file_list_copy: - * @list : a list of #GFiles. - * - * Takes a deep copy of @list and returns the - * result. The caller is responsible to free the - * returned list using thunar_g_file_list_free(). - * - * Return value: a deep copy of @list. - **/ -GList* -thunar_g_file_list_copy (GList *list) -{ - GList *copy = NULL; - GList *lp; - - for (lp = g_list_last (list); lp != NULL; lp = lp->prev) - copy = g_list_prepend (copy, g_object_ref (lp->data)); - - return copy; -} - - - -/** - * thunar_g_file_list_free: - * @list : a list of #GFiles. - * - * Frees the #GFiles in @list and - * the @list itself. - **/ -void -thunar_g_file_list_free (GList *list) -{ - GList *lp; - for (lp = list; lp != NULL; lp = lp->next) - g_object_unref (lp->data); - g_list_free (list); -} - - - -#ifdef HAVE_GIO_UNIX -static gboolean -thunar_g_mount_is_internal (GMount *mount) -{ - const gchar *point_mount_path; - gboolean is_internal = FALSE; - GFile *root; - GList *lp; - GList *mount_points; - gchar *mount_path; - - _thunar_return_val_if_fail (G_IS_MOUNT (mount), FALSE); - - /* determine the mount path */ - root = g_mount_get_root (mount); - mount_path = g_file_get_path (root); - g_object_unref (root); - - /* assume non-internal if we cannot determine the path */ - if (mount_path == NULL) - return FALSE; - - if (g_unix_is_mount_path_system_internal (mount_path)) - { - /* mark as internal */ - is_internal = TRUE; - } - else - { - /* get a list of all mount points */ - mount_points = g_unix_mount_points_get (NULL); - - /* search for the mount point associated with the mount entry */ - for (lp = mount_points; !is_internal && lp != NULL; lp = lp->next) - { - point_mount_path = g_unix_mount_point_get_mount_path (lp->data); - - /* check if this is the mount point we are looking for */ - if (g_strcmp0 (mount_path, point_mount_path) == 0) - { - /* mark as internal if the user cannot mount this device */ - if (!g_unix_mount_point_is_user_mountable (lp->data)) - is_internal = TRUE; - } - - /* free the mount point, we no longer need it */ - g_unix_mount_point_free (lp->data); - } - - /* free the mount point list */ - g_list_free (mount_points); - } - - g_free (mount_path); - - return is_internal; -} -#endif - - - -gboolean -thunar_g_volume_is_removable (GVolume *volume) -{ - gboolean can_eject = FALSE; - gboolean can_mount = FALSE; - gboolean can_unmount = FALSE; - gboolean is_removable = FALSE; - gboolean is_internal = FALSE; - GDrive *drive; - GMount *mount; - - _thunar_return_val_if_fail (G_IS_VOLUME (volume), FALSE); - - /* check if the volume can be ejected */ - can_eject = g_volume_can_eject (volume); - - /* determine the drive for the volume */ - drive = g_volume_get_drive (volume); - if (drive != NULL) - { - /*check if the drive media can be removed */ - is_removable = g_drive_is_media_removable (drive); - - /* release the drive */ - g_object_unref (drive); - } - - /* determine the mount for the volume (if it is mounted at all) */ - mount = g_volume_get_mount (volume); - if (mount != NULL) - { -#ifdef HAVE_GIO_UNIX - is_internal = thunar_g_mount_is_internal (mount); -#endif - - /* check if the volume can be unmounted */ - can_unmount = g_mount_can_unmount (mount); - - /* release the mount */ - g_object_unref (mount); - } - - /* determine whether the device can be mounted */ - can_mount = g_volume_can_mount (volume); - - return (!is_internal) && (can_eject || can_unmount || is_removable || can_mount); -} - - - -gboolean -thunar_g_volume_is_mounted (GVolume *volume) -{ - gboolean is_mounted = FALSE; - GMount *mount; - - _thunar_return_val_if_fail (G_IS_VOLUME (volume), FALSE); - - /* determine the mount for this volume (if it is mounted at all) */ - mount = g_volume_get_mount (volume); - if (mount != NULL) - { - is_mounted = TRUE; - g_object_unref (mount); - } - - return is_mounted; -} - - - -gboolean -thunar_g_volume_is_present (GVolume *volume) -{ - gboolean has_media = FALSE; - gboolean is_shadowed = FALSE; - GDrive *drive; -#if GLIB_CHECK_VERSION (2, 20, 0) - GMount *mount; -#endif - - _thunar_return_val_if_fail (G_IS_VOLUME (volume), FALSE); - - drive = g_volume_get_drive (volume); - if (drive != NULL) - { - has_media = g_drive_has_media (drive); - g_object_unref (drive); - } - -#if GLIB_CHECK_VERSION (2, 20, 0) - mount = g_volume_get_mount (volume); - if (mount != NULL) - { - is_shadowed = g_mount_is_shadowed (mount); - g_object_unref (mount); - } -#endif - - return has_media && !is_shadowed; + return uris; } @@ -578,9 +526,12 @@ GAppLaunchContext *context, GError **error) { - gboolean result = FALSE; - gchar *new_path = NULL; - gchar *old_path = NULL; + ThunarFile *file; + GList *lp; + const gchar *content_type; + gboolean result = FALSE; + gchar *new_path = NULL; + gchar *old_path = NULL; _thunar_return_val_if_fail (G_IS_APP_INFO (info), FALSE); _thunar_return_val_if_fail (working_directory == NULL || G_IS_FILE (working_directory), FALSE); @@ -606,6 +557,25 @@ /* launch the paths with the specified app info */ result = g_app_info_launch (info, path_list, context, error); + /* if successful, remember the application as last used for the file types */ + if (result == TRUE) + { + for (lp = path_list; lp != NULL; lp = lp->next) + { + file = thunar_file_get (lp->data, NULL); + if (file != NULL) + { + content_type = thunar_file_get_content_type (file); + + /* emit "changed" on the file if we successfully changed the last used application */ + if (g_app_info_set_as_last_used_for_type (info, content_type, NULL)) + thunar_file_changed (file); + + g_object_unref (file); + } + } + } + /* check if we need to reset the working directory to the one Thunar was * opened from */ if (old_path != NULL) @@ -621,3 +591,25 @@ return result; } + + +gboolean +thunar_g_app_info_should_show (GAppInfo *info) +{ +#ifdef HAVE_GIO_UNIX + _thunar_return_val_if_fail (G_IS_APP_INFO (info), FALSE); + + if (G_IS_DESKTOP_APP_INFO (info)) + { + /* NoDisplay=true files should be visible in the interface, + * because this key is intent to hide mime-helpers from the + * application menu. Hidden=true is never returned by GIO. */ + return g_desktop_app_info_get_show_in (G_DESKTOP_APP_INFO (info), NULL); + } + + return TRUE; +#else + /* we cannot exclude custom actions, so show everything */ + return TRUE; +#endif +} diff -Nru thunar-1.2.3/thunar/thunar-gio-extensions.h thunar-1.6.10/thunar/thunar-gio-extensions.h --- thunar-1.2.3/thunar/thunar-gio-extensions.h 2011-06-08 01:43:49.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-gio-extensions.h 2015-05-22 13:25:36.000000000 +0000 @@ -2,18 +2,18 @@ /*- * Copyright (c) 2009 Jannis Pohlmann * - * This program is free software; you can redistribute it and/or + * 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 + * 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 + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ @@ -29,13 +29,12 @@ GFile *thunar_g_file_new_for_root (void); GFile *thunar_g_file_new_for_trash (void); GFile *thunar_g_file_new_for_desktop (void); -GFile *thunar_g_file_new_for_user_special_dir (GUserDirectory dir); - +GFile *thunar_g_file_new_for_bookmarks (void); + gboolean thunar_g_file_is_root (GFile *file); gboolean thunar_g_file_is_trashed (GFile *file); gboolean thunar_g_file_is_home (GFile *file); -gboolean thunar_g_file_is_desktop (GFile *file); - + GKeyFile *thunar_g_file_query_key_file (GFile *file, GCancellable *cancellable, GError **error); @@ -43,15 +42,26 @@ GKeyFile *key_file, GCancellable *cancellable, GError **error); - + gchar *thunar_g_file_get_location (GFile *file); - + +gchar *thunar_g_file_get_display_name (GFile *file); + +gchar *thunar_g_file_get_display_name_remote (GFile *file); + gboolean thunar_g_vfs_is_uri_scheme_supported (const gchar *scheme); +gboolean thunar_g_file_get_free_space (GFile *file, + guint64 *fs_free_return, + guint64 *fs_size_return); + +gchar *thunar_g_file_get_free_space_string (GFile *file, + gboolean file_size_binary); + /** * THUNAR_TYPE_G_FILE_LIST: * - * Returns the type ID for #GLists of #GFiles which is a + * Returns the type ID for #GLists of #GFiles which is a * boxed type. **/ #define THUNAR_TYPE_G_FILE_LIST (thunar_g_file_list_get_type ()) @@ -59,17 +69,13 @@ GType thunar_g_file_list_get_type (void); GList *thunar_g_file_list_new_from_string (const gchar *string); -gchar *thunar_g_file_list_to_string (GList *list); -GList *thunar_g_file_list_append (GList *list, - GFile *file); -GList *thunar_g_file_list_prepend (GList *list, - GFile *file); -GList *thunar_g_file_list_copy (GList *list); -void thunar_g_file_list_free (GList *list); - -gboolean thunar_g_volume_is_removable (GVolume *volume); -gboolean thunar_g_volume_is_mounted (GVolume *volume); -gboolean thunar_g_volume_is_present (GVolume *volume); +gchar **thunar_g_file_list_to_stringv (GList *list); + +/* deep copy jobs for GLists */ +#define thunar_g_file_list_append(list,object) g_list_append (list, g_object_ref (G_OBJECT (object))) +#define thunar_g_file_list_prepend(list,object) g_list_prepend (list, g_object_ref (G_OBJECT (object))) +#define thunar_g_file_list_copy thunarx_file_info_list_copy +#define thunar_g_file_list_free thunarx_file_info_list_free gboolean thunar_g_app_info_launch (GAppInfo *info, GFile *working_directory, @@ -77,6 +83,8 @@ GAppLaunchContext *context, GError **error); +gboolean thunar_g_app_info_should_show (GAppInfo *info); + G_END_DECLS #endif /* !__THUNAR_GIO_EXTENSIONS_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-gobject-extensions.c thunar-1.6.10/thunar/thunar-gobject-extensions.c --- thunar-1.2.3/thunar/thunar-gobject-extensions.c 2009-08-21 03:24:31.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-gobject-extensions.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2004-2006 os-cillation e.K. * diff -Nru thunar-1.2.3/thunar/thunar-gobject-extensions.h thunar-1.6.10/thunar/thunar-gobject-extensions.h --- thunar-1.2.3/thunar/thunar-gobject-extensions.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-gobject-extensions.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2004-2006 os-cillation e.K. * diff -Nru thunar-1.2.3/thunar/thunar-gtk-extensions.c thunar-1.6.10/thunar/thunar-gtk-extensions.c --- thunar-1.2.3/thunar/thunar-gtk-extensions.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-gtk-extensions.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -29,6 +29,7 @@ #include #include +#include @@ -57,7 +58,7 @@ va_end (var_args); /* setup the tooltip for the action */ - g_object_set (G_OBJECT (action), "tooltip", tooltip, NULL); + gtk_action_set_tooltip (action, tooltip); /* release the tooltip */ g_free (tooltip); @@ -149,7 +150,7 @@ guint32 activate_time) { GMainLoop *loop; - guint signal_id; + gulong signal_id; _thunar_return_if_fail (parent == NULL || GDK_IS_SCREEN (parent) || GTK_IS_WIDGET (parent)); _thunar_return_if_fail (GTK_IS_MENU (menu)); @@ -164,10 +165,10 @@ gtk_menu_set_screen (menu, gtk_widget_get_screen (GTK_WIDGET (parent))); /* run an internal main loop */ - gtk_grab_add (GTK_WIDGET (menu)); loop = g_main_loop_new (NULL, FALSE); signal_id = g_signal_connect_swapped (G_OBJECT (menu), "deactivate", G_CALLBACK (g_main_loop_quit), loop); gtk_menu_popup (menu, NULL, NULL, func, data, button, activate_time); + gtk_grab_add (GTK_WIDGET (menu)); g_main_loop_run (loop); g_signal_handler_disconnect (G_OBJECT (menu), signal_id); g_main_loop_unref (loop); @@ -248,3 +249,25 @@ +/** + * thunar_gtk_mount_operation_new: + * @parent : a #GtkWindow or non-toplevel widget. + * + * Create a mount operation with some defaults. + **/ +GMountOperation * +thunar_gtk_mount_operation_new (gpointer parent) +{ + GMountOperation *operation; + GdkScreen *screen; + GtkWindow *window = NULL; + + screen = thunar_util_parse_parent (parent, &window); + + operation = gtk_mount_operation_new (window); + g_mount_operation_set_password_save (G_MOUNT_OPERATION (operation), G_PASSWORD_SAVE_FOR_SESSION); + if (window == NULL && screen != NULL) + gtk_mount_operation_set_screen (GTK_MOUNT_OPERATION (operation), screen); + + return operation; +} diff -Nru thunar-1.2.3/thunar/thunar-gtk-extensions.h thunar-1.6.10/thunar/thunar-gtk-extensions.h --- thunar-1.2.3/thunar/thunar-gtk-extensions.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-gtk-extensions.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -24,30 +24,32 @@ G_BEGIN_DECLS; -void thunar_gtk_action_set_tooltip (GtkAction *action, - const gchar *format, - ...) G_GNUC_PRINTF (2, 3); - -void thunar_gtk_action_group_set_action_sensitive (GtkActionGroup *action_group, - const gchar *action_name, - gboolean sensitive); - -void thunar_gtk_label_set_a11y_relation (GtkLabel *label, - GtkWidget *widget); - -void thunar_gtk_menu_run (GtkMenu *menu, - gpointer parent, - GtkMenuPositionFunc func, - gpointer data, - guint button, - guint32 activate_time); - -GtkAction *thunar_gtk_ui_manager_get_action_by_name (GtkUIManager *ui_manager, - const gchar *action_name); - -void thunar_gtk_widget_set_tooltip (GtkWidget *widget, - const gchar *format, - ...) G_GNUC_PRINTF (2, 3); +void thunar_gtk_action_set_tooltip (GtkAction *action, + const gchar *format, + ...) G_GNUC_PRINTF (2, 3); + +void thunar_gtk_action_group_set_action_sensitive (GtkActionGroup *action_group, + const gchar *action_name, + gboolean sensitive); + +void thunar_gtk_label_set_a11y_relation (GtkLabel *label, + GtkWidget *widget); + +void thunar_gtk_menu_run (GtkMenu *menu, + gpointer parent, + GtkMenuPositionFunc func, + gpointer data, + guint button, + guint32 activate_time); + +GtkAction *thunar_gtk_ui_manager_get_action_by_name (GtkUIManager *ui_manager, + const gchar *action_name); + +void thunar_gtk_widget_set_tooltip (GtkWidget *widget, + const gchar *format, + ...) G_GNUC_PRINTF (2, 3); + +GMountOperation *thunar_gtk_mount_operation_new (gpointer parent); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-history-action.c thunar-1.6.10/thunar/thunar-history-action.c --- thunar-1.2.3/thunar/thunar-history-action.c 2010-03-01 10:34:17.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-history-action.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -28,7 +28,9 @@ static GtkWidget *thunar_history_action_create_tool_item (GtkAction *action); static void thunar_history_action_show_menu (GtkWidget *tool_item, - ThunarHistoryAction *history_action); + ThunarHistoryAction *history_action, + guint button, + guint32 timestamp); @@ -40,6 +42,8 @@ struct _ThunarHistoryAction { GtkAction __parent__; + + guint popup_delay; }; @@ -79,20 +83,200 @@ +static gboolean +thunar_history_action_popup_delayed (gpointer data) +{ + GtkWidget *button = GTK_WIDGET (data); + ThunarHistoryAction *history_action; + + history_action = g_object_get_data (G_OBJECT (button), I_("thunar-history-action")); + + GDK_THREADS_ENTER (); + thunar_history_action_show_menu (button, history_action, 3, 0); + GDK_THREADS_LEAVE (); + + history_action->popup_delay = 0; + + return FALSE; +} + + + +static gboolean +thunar_history_action_button_press_event (GtkWidget *toggle_button, + GdkEventButton *event, + GtkWidget *tool_item) +{ + ThunarHistoryAction *history_action; + + _thunar_return_val_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button), FALSE); + _thunar_return_val_if_fail (GTK_IS_TOOL_ITEM (tool_item), FALSE); + + history_action = g_object_get_data (G_OBJECT (toggle_button), I_("thunar-history-action")); + + if (event->button == 1) + { + /* shouldn't happen, but stop pending timeout */ + if (history_action->popup_delay != 0) + g_source_remove (history_action->popup_delay); + + /* schedule a popup for button press */ + history_action->popup_delay = g_timeout_add (500, thunar_history_action_popup_delayed, toggle_button); + } + else if (event->button == 3) + { + /* directy show the menu */ + thunar_history_action_show_menu (toggle_button, history_action, + event->button, event->time); + } + + return FALSE; +} + + + +static gboolean +thunar_history_action_button_release_event (GtkWidget *toggle_button, + GdkEventButton *event, + GtkWidget *tool_item) +{ + ThunarHistoryAction *history_action; + + _thunar_return_val_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button), FALSE); + _thunar_return_val_if_fail (GTK_IS_TOOL_ITEM (tool_item), FALSE); + + if (event->button == 1) + { + history_action = g_object_get_data (G_OBJECT (toggle_button), I_("thunar-history-action")); + if (history_action->popup_delay != 0) + { + /* stop timeout */ + g_source_remove (history_action->popup_delay); + history_action->popup_delay = 0; + + /* activate event */ + gtk_action_activate (GTK_ACTION (history_action)); + } + } + else + { + return TRUE; + } + + /* bit of a strange trick to get the button untoggeled */ + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle_button), + gtk_widget_is_sensitive (toggle_button)); + + return FALSE; +} + + + +static gboolean +thunar_history_action_leave_notify_event (GtkWidget *toggle_button, + GdkEventCrossing *event, + ThunarHistoryAction *history_action) +{ + + GtkAllocation alloc; + + _thunar_return_val_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button), FALSE); + _thunar_return_val_if_fail (THUNAR_IS_HISTORY_ACTION (history_action), FALSE); + + if (history_action->popup_delay != 0) + { + /* stop the timeout */ + g_source_remove (history_action->popup_delay); + history_action->popup_delay = 0; + + /* if the user dragged to the bottom, directly popup the menu */ + gtk_widget_get_allocation (toggle_button, &alloc); + if (event->x >= 0 + && event->x < alloc.width + && event->y >= alloc.height) + { + thunar_history_action_show_menu (toggle_button, history_action, + 3, event->time); + } + } + + return FALSE; +} + + + +static void +thunar_history_action_activate (GtkWidget *toggle_button, + ThunarHistoryAction *history_action) +{ + _thunar_return_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button)); + _thunar_return_if_fail (THUNAR_IS_HISTORY_ACTION (history_action)); + + /* activate event (only key events trigger this function) */ + gtk_action_activate (GTK_ACTION (history_action)); + + /* activate, so the code deactivates a bit later... */ + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle_button), TRUE); +} + + + +static void +thunar_history_action_toolbar_configured (GtkWidget *tool_item, + GtkWidget *toggle_button) +{ + GtkWidget *icon; + GtkAction *action; + + gtk_button_set_relief (GTK_BUTTON (toggle_button), + gtk_tool_item_get_relief_style (GTK_TOOL_ITEM (tool_item))); + + icon = gtk_bin_get_child (GTK_BIN (toggle_button)); + action = g_object_get_data (G_OBJECT (toggle_button), I_("thunar-history-action")); + gtk_image_set_from_stock (GTK_IMAGE (icon), + gtk_action_get_stock_id (action), + gtk_tool_item_get_icon_size (GTK_TOOL_ITEM (tool_item))); +} + + + static GtkWidget* thunar_history_action_create_tool_item (GtkAction *action) { GtkWidget *tool_item; + GtkWidget *button; + GtkWidget *icon; _thunar_return_val_if_fail (THUNAR_IS_HISTORY_ACTION (action), NULL); /* allocate the tool item with an empty menu */ - tool_item = g_object_new (GTK_TYPE_MENU_TOOL_BUTTON, - "menu", gtk_menu_new (), - NULL); + tool_item = g_object_new (GTK_TYPE_TOOL_ITEM, NULL); + gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (tool_item), TRUE); - /* be sure to be informed before the menu is shown */ - g_signal_connect (G_OBJECT (tool_item), "show-menu", G_CALLBACK (thunar_history_action_show_menu), action); + button = gtk_toggle_button_new (); + gtk_container_add (GTK_CONTAINER (tool_item), button); + gtk_button_set_relief (GTK_BUTTON (button), + gtk_tool_item_get_relief_style (GTK_TOOL_ITEM (tool_item))); + gtk_button_set_focus_on_click (GTK_BUTTON (button), FALSE); + gtk_widget_show (button); + + icon = gtk_image_new_from_stock (gtk_action_get_stock_id (action), + gtk_tool_item_get_icon_size (GTK_TOOL_ITEM (tool_item))); + gtk_container_add (GTK_CONTAINER (button), icon); + gtk_widget_show (icon); + + g_object_set_data (G_OBJECT (button), I_("thunar-history-action"), action); + + g_signal_connect (G_OBJECT (tool_item), "toolbar-reconfigured", + G_CALLBACK (thunar_history_action_toolbar_configured), button); + g_signal_connect (G_OBJECT (button), "button-press-event", + G_CALLBACK (thunar_history_action_button_press_event), tool_item); + g_signal_connect (G_OBJECT (button), "button-release-event", + G_CALLBACK (thunar_history_action_button_release_event), tool_item); + g_signal_connect (G_OBJECT (button), "leave-notify-event", + G_CALLBACK (thunar_history_action_leave_notify_event), action); + g_signal_connect (G_OBJECT (button), "activate", + G_CALLBACK (thunar_history_action_activate), action); return tool_item; } @@ -100,25 +284,63 @@ static void -thunar_history_action_show_menu (GtkWidget *tool_item, - ThunarHistoryAction *history_action) +thunar_history_action_position_menu (GtkMenu *menu, + gint *x, + gint *y, + gboolean *push_in, + gpointer user_data) +{ + GtkWidget *button = GTK_WIDGET (user_data); + GtkAllocation alloc; + + gdk_window_get_origin (gtk_widget_get_window (button), x, y); + + gtk_widget_get_allocation (button, &alloc); + *x += alloc.x; + *y += alloc.y + alloc.height; + *push_in = FALSE; +} + + + +static void +thunar_history_action_menu_deactivate (GtkWidget *toggle_button) +{ + /* untoggle the button */ + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle_button), FALSE); +} + + + +static void +thunar_history_action_show_menu (GtkWidget *toggle_button, + ThunarHistoryAction *history_action, + guint button, + guint32 timestamp) { GtkWidget *menu; - _thunar_return_if_fail (GTK_IS_MENU_TOOL_BUTTON (tool_item)); + _thunar_return_if_fail (GTK_IS_TOGGLE_BUTTON (toggle_button)); _thunar_return_if_fail (THUNAR_IS_HISTORY_ACTION (history_action)); /* allocate a new menu for the action */ menu = gtk_menu_new (); - - /* setup the appropriate screen for the menu */ - gtk_menu_set_screen (GTK_MENU (menu), gtk_widget_get_screen (tool_item)); + gtk_menu_attach_to_widget (GTK_MENU (menu), toggle_button, NULL); + g_signal_connect_swapped (G_OBJECT (menu), "deactivate", + G_CALLBACK (thunar_history_action_menu_deactivate), toggle_button); /* generate the menu items */ g_signal_emit_by_name (G_OBJECT (history_action), "show-menu", menu); - /* setup the menu for the tool item */ - gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (tool_item), menu); + /* toggle the button */ + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle_button), TRUE); + + /* show menu */ + gtk_menu_popup (GTK_MENU (menu), + NULL, NULL, + thunar_history_action_position_menu, toggle_button, + button, + timestamp ? timestamp : gtk_get_current_event_time ()); } @@ -141,13 +363,23 @@ const gchar *tooltip, const gchar *stock_id) { + gchar *fulltip; + GtkAction *action; + _thunar_return_val_if_fail (name != NULL, NULL); - return g_object_new (THUNAR_TYPE_HISTORY_ACTION, - "name", name, - "label", label, - "tooltip", tooltip, - "stock-id", stock_id, - NULL); + /* extend history tooltip with function of the button */ + fulltip = g_strconcat (tooltip, "\n", _("Right-click or pull down to show history"), NULL); + + action = g_object_new (THUNAR_TYPE_HISTORY_ACTION, + "name", name, + "label", label, + "tooltip", fulltip, + "stock-id", stock_id, + NULL); + + g_free (fulltip); + + return action; } diff -Nru thunar-1.2.3/thunar/thunar-history-action.h thunar-1.6.10/thunar/thunar-history-action.h --- thunar-1.2.3/thunar/thunar-history-action.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-history-action.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-history.c thunar-1.6.10/thunar/thunar-history.c --- thunar-1.2.3/thunar/thunar-history.c 2010-10-04 15:13:19.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-history.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -27,6 +27,7 @@ #include #include #include +#include @@ -40,36 +41,38 @@ -static void thunar_history_navigator_init (ThunarNavigatorIface *iface); -static void thunar_history_dispose (GObject *object); -static void thunar_history_finalize (GObject *object); -static void thunar_history_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void thunar_history_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static ThunarFile *thunar_history_get_current_directory (ThunarNavigator *navigator); -static void thunar_history_set_current_directory (ThunarNavigator *navigator, - ThunarFile *current_directory); -static void thunar_history_go_back (ThunarHistory *history, - guint n); -static void thunar_history_go_forward (ThunarHistory *history, - guint n); -static void thunar_history_action_back (GtkAction *action, - ThunarHistory *history); -static void thunar_history_action_back_nth (GtkWidget *item, - ThunarHistory *history); -static void thunar_history_action_forward (GtkAction *action, - ThunarHistory *history); -static void thunar_history_action_forward_nth (GtkWidget *item, - ThunarHistory *history); -static void thunar_history_show_menu (GtkAction *action, - GtkWidget *menu, - ThunarHistory *history); - +static void thunar_history_navigator_init (ThunarNavigatorIface *iface); +static void thunar_history_dispose (GObject *object); +static void thunar_history_finalize (GObject *object); +static void thunar_history_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void thunar_history_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static ThunarFile *thunar_history_get_current_directory (ThunarNavigator *navigator); +static void thunar_history_set_current_directory (ThunarNavigator *navigator, + ThunarFile *current_directory); +static void thunar_history_go_back (ThunarHistory *history, + GFile *goto_file); +static void thunar_history_go_forward (ThunarHistory *history, + GFile *goto_file); +static void thunar_history_action_back (GtkAction *action, + ThunarHistory *history); +static void thunar_history_action_back_nth (GtkWidget *item, + ThunarHistory *history); +static void thunar_history_action_forward (GtkAction *action, + ThunarHistory *history); +static void thunar_history_action_forward_nth (GtkWidget *item, + ThunarHistory *history); +static void thunar_history_show_menu (GtkAction *action, + GtkWidget *menu, + ThunarHistory *history); +static GtkActionGroup *thunar_history_get_action_group (const ThunarHistory *history); +static void thunar_history_set_action_group (ThunarHistory *history, + GtkActionGroup *action_group); struct _ThunarHistoryClass @@ -88,8 +91,8 @@ GtkAction *action_back; GtkAction *action_forward; - GList *back_list; - GList *forward_list; + GSList *back_list; + GSList *forward_list; }; @@ -99,6 +102,11 @@ +static GQuark thunar_history_display_name_quark; +static GQuark thunar_history_gfile_quark; + + + static void thunar_history_class_init (ThunarHistoryClass *klass) { @@ -110,6 +118,9 @@ gobject_class->get_property = thunar_history_get_property; gobject_class->set_property = thunar_history_set_property; + thunar_history_display_name_quark = g_quark_from_static_string ("thunar-history-display-name"); + thunar_history_gfile_quark = g_quark_from_static_string ("thunar-history-gfile"); + /** * ThunarHistory::action-group: * @@ -193,8 +204,8 @@ g_object_unref (G_OBJECT (history->action_back)); /* release the "forward" and "back" lists */ - thunar_file_list_free (history->forward_list); - thunar_file_list_free (history->back_list); + g_slist_free_full (history->forward_list, g_object_unref); + g_slist_free_full (history->back_list, g_object_unref); (*G_OBJECT_CLASS (thunar_history_parent_class)->finalize) (object); } @@ -261,11 +272,31 @@ +static GFile * +thunar_history_get_gfile (ThunarFile *file) +{ + GFile *gfile; + const gchar *display_name; + + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); + + gfile = thunar_file_get_file (file); + + display_name = thunar_file_get_display_name (file); + g_object_set_qdata_full (G_OBJECT (gfile), thunar_history_display_name_quark, + g_strdup (display_name), g_free); + + return g_object_ref (gfile); +} + + + static void thunar_history_set_current_directory (ThunarNavigator *navigator, ThunarFile *current_directory) { ThunarHistory *history = THUNAR_HISTORY (navigator); + GFile *gfile; /* verify that we don't already use that directory */ if (G_UNLIKELY (current_directory == history->current_directory)) @@ -274,20 +305,27 @@ /* if the new directory is the first one in the forward history, we * just move forward one step instead of clearing the whole forward * history */ - if (history->forward_list != NULL && history->forward_list->data == current_directory) - thunar_history_go_forward (history, 1); + if (current_directory != NULL + && history->forward_list != NULL + && g_file_equal (thunar_file_get_file (current_directory), history->forward_list->data)) + { + thunar_history_go_forward (history, history->forward_list->data); + } else { /* clear the "forward" list */ gtk_action_set_sensitive (history->action_forward, FALSE); - thunar_file_list_free (history->forward_list); + g_slist_free_full (history->forward_list, g_object_unref); history->forward_list = NULL; /* prepend the previous current directory to the "back" list */ if (G_LIKELY (history->current_directory != NULL)) { - history->back_list = g_list_prepend (history->back_list, history->current_directory); + gfile = thunar_history_get_gfile (history->current_directory); + history->back_list = g_slist_prepend (history->back_list, gfile); gtk_action_set_sensitive (history->action_back, TRUE); + + g_object_unref (history->current_directory); } /* activate the new current directory */ @@ -305,28 +343,108 @@ static void -thunar_history_go_back (ThunarHistory *history, - guint n) +thunar_history_error_not_found (GFile *goto_file, + gpointer parent) +{ + gchar *parse_name; + gchar *path; + GError *error = NULL; + + g_set_error_literal (&error, G_FILE_ERROR, G_FILE_ERROR_EXIST, + _("The item will be removed from the history")); + + path = g_file_get_path (goto_file); + if (path == NULL) + { + path = g_file_get_uri (goto_file); + parse_name = g_uri_unescape_string (path, NULL); + g_free (path); + } + else + parse_name = g_file_get_parse_name (goto_file); + + thunar_dialogs_show_error (parent, error, _("Could not find \"%s\""), parse_name); + g_free (parse_name); + + g_error_free (error); +} + + + +static void +thunar_history_go_back (ThunarHistory *history, + GFile *goto_file) { + GFile *gfile; + GSList *lp; + GSList *lnext; + ThunarFile *directory; + _thunar_return_if_fail (THUNAR_IS_HISTORY (history)); - _thunar_return_if_fail (n > 0); + _thunar_return_if_fail (G_IS_FILE (goto_file)); - /* go back up to n steps */ - for (; n > 0 && history->back_list != NULL; --n) + /* check if the directory still exists */ + directory = thunar_file_get (goto_file, NULL); + if (directory == NULL || ! thunar_file_is_mounted (directory)) { - /* prepend the previous current directory to the "forward" list */ - if (G_LIKELY (history->current_directory != NULL)) - history->forward_list = g_list_prepend (history->forward_list, history->current_directory); + thunar_history_error_not_found (goto_file, NULL); + + /* delete item from the history */ + lp = g_slist_find (history->back_list, goto_file); + if (lp != NULL) + { + g_object_unref (lp->data); + history->back_list = g_slist_delete_link (history->back_list, lp); + } + + goto update_actions; + } + + /* prepend the previous current directory to the "forward" list */ + if (G_LIKELY (history->current_directory != NULL)) + { + gfile = thunar_history_get_gfile (history->current_directory); + history->forward_list = g_slist_prepend (history->forward_list, gfile); + + g_object_unref (history->current_directory); + history->current_directory = NULL; + } - /* remove the first directory from the "back" list and make it the current directory */ - history->current_directory = history->back_list->data; - history->back_list = g_list_delete_link (history->back_list, history->back_list); + /* add all the items of the back list to the "forward" list until + * the target file is reached */ + for (lp = history->back_list; lp != NULL; lp = lnext) + { + lnext = lp->next; + + if (g_file_equal (goto_file, G_FILE (lp->data))) + { + if (directory != NULL) + history->current_directory = g_object_ref (directory); + + /* remove the new directory from the list */ + g_object_unref (lp->data); + history->back_list = g_slist_delete_link (history->back_list, lp); + + break; + } + + /* remove item from the list */ + history->back_list = g_slist_remove_link (history->back_list, lp); + + /* prepend element to the other list */ + lp->next = history->forward_list; + history->forward_list = lp; } + if (directory != NULL) + g_object_unref (directory); + /* tell the other modules to change the current directory */ if (G_LIKELY (history->current_directory != NULL)) thunar_navigator_change_directory (THUNAR_NAVIGATOR (history), history->current_directory); + update_actions: + /* update the sensitivity of the actions */ gtk_action_set_sensitive (history->action_back, (history->back_list != NULL)); gtk_action_set_sensitive (history->action_forward, (history->forward_list != NULL)); @@ -335,28 +453,77 @@ static void -thunar_history_go_forward (ThunarHistory *history, - guint n) +thunar_history_go_forward (ThunarHistory *history, + GFile *goto_file) { + GFile *gfile; + GSList *lnext; + GSList *lp; + ThunarFile *directory; + _thunar_return_if_fail (THUNAR_IS_HISTORY (history)); - _thunar_return_if_fail (n > 0); + _thunar_return_if_fail (G_IS_FILE (goto_file)); - /* go forward up to n steps */ - for (; n > 0 && history->forward_list != NULL; --n) + /* check if the directory still exists */ + directory = thunar_file_get (goto_file, NULL); + if (directory == NULL || ! thunar_file_is_mounted (directory)) { - /* prepend the previous current directory to the "back" list */ - if (G_LIKELY (history->current_directory != NULL)) - history->back_list = g_list_prepend (history->back_list, history->current_directory); + thunar_history_error_not_found (goto_file, NULL); + + /* delete item from the history */ + lp = g_slist_find (history->forward_list, goto_file); + if (lp != NULL) + { + g_object_unref (lp->data); + history->forward_list = g_slist_delete_link (history->forward_list, lp); + } + + goto update_actions; + } + + /* prepend the previous current directory to the "back" list */ + if (G_LIKELY (history->current_directory != NULL)) + { + gfile = thunar_history_get_gfile (history->current_directory); + history->back_list = g_slist_prepend (history->back_list, gfile); + + g_object_unref (history->current_directory); + history->current_directory = NULL; + } + + for (lp = history->forward_list; lp != NULL; lp = lnext) + { + lnext = lp->next; + + if (g_file_equal (goto_file, G_FILE (lp->data))) + { + if (directory != NULL) + history->current_directory = g_object_ref (directory); + + /* remove the new dirctory from the list */ + g_object_unref (lp->data); + history->forward_list = g_slist_delete_link (history->forward_list, lp); - /* remove the first directory from the "forward" list and make it the current directory */ - history->current_directory = history->forward_list->data; - history->forward_list = g_list_delete_link (history->forward_list, history->forward_list); + break; + } + + /* remove item from the list */ + history->forward_list = g_slist_remove_link (history->forward_list, lp); + + /* prepend item to the back list */ + lp->next = history->back_list; + history->back_list = lp; } + if (directory != NULL) + g_object_unref (directory); + /* tell the other modules to change the current directory */ if (G_LIKELY (history->current_directory != NULL)) thunar_navigator_change_directory (THUNAR_NAVIGATOR (history), history->current_directory); + update_actions: + /* update the sensitivity of the actions */ gtk_action_set_sensitive (history->action_back, (history->back_list != NULL)); gtk_action_set_sensitive (history->action_forward, (history->forward_list != NULL)); @@ -370,9 +537,10 @@ { _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (THUNAR_IS_HISTORY (history)); - + /* go back one step */ - thunar_history_go_back (history, 1); + if (history->back_list != NULL) + thunar_history_go_back (history, history->back_list->data); } @@ -381,14 +549,14 @@ thunar_history_action_back_nth (GtkWidget *item, ThunarHistory *history) { - guint n; + GFile *file; _thunar_return_if_fail (GTK_IS_MENU_ITEM (item)); _thunar_return_if_fail (THUNAR_IS_HISTORY (history)); - n = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (item), "thunar-history-index")); - if (G_LIKELY (n > 0)) - thunar_history_go_back (history, n); + file = g_object_get_qdata (G_OBJECT (item), thunar_history_gfile_quark); + if (G_LIKELY (file != NULL)) + thunar_history_go_back (history, file); } @@ -401,7 +569,8 @@ _thunar_return_if_fail (THUNAR_IS_HISTORY (history)); /* go forward one step */ - thunar_history_go_forward (history, 1); + if (history->forward_list != NULL) + thunar_history_go_forward (history, history->forward_list->data); } @@ -410,14 +579,14 @@ thunar_history_action_forward_nth (GtkWidget *item, ThunarHistory *history) { - guint n; + GFile *file; _thunar_return_if_fail (GTK_IS_MENU_ITEM (item)); _thunar_return_if_fail (THUNAR_IS_HISTORY (history)); - n = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (item), "thunar-history-index")); - if (G_LIKELY (n > 0)) - thunar_history_go_forward (history, n); + file = g_object_get_qdata (G_OBJECT (item), thunar_history_gfile_quark); + if (G_LIKELY (file != NULL)) + thunar_history_go_forward (history, file); } @@ -433,8 +602,11 @@ GtkWidget *image; GtkWidget *item; GdkPixbuf *icon; - GList *lp; - guint n; + GSList *lp; + ThunarFile *file; + const gchar *display_name; + const gchar *icon_name; + gchar *parse_name; _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (GTK_IS_MENU_SHELL (menu)); @@ -459,25 +631,51 @@ } /* add menu items for all list items */ - for (n = 1; lp != NULL; lp = lp->next, ++n) + for (;lp != NULL; lp = lp->next) { - /* load the icon for the file */ - icon = thunar_icon_factory_load_file_icon (icon_factory, lp->data, THUNAR_FILE_ICON_STATE_DEFAULT, 16); - /* add an item for this file */ - item = gtk_image_menu_item_new_with_label (thunar_file_get_display_name (lp->data)); - g_object_set_data (G_OBJECT (item), I_("thunar-history-index"), GUINT_TO_POINTER (n)); - g_signal_connect_object (G_OBJECT (item), "activate", handler, history, 0); + display_name = g_object_get_qdata (G_OBJECT (lp->data), thunar_history_display_name_quark); + item = gtk_image_menu_item_new_with_label (display_name); + g_object_set_qdata (G_OBJECT (item), thunar_history_gfile_quark, lp->data); + g_signal_connect (G_OBJECT (item), "activate", handler, history); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); - /* setup the image for the file */ - image = gtk_image_new_from_pixbuf (icon); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); + parse_name = g_file_get_parse_name (lp->data); + gtk_widget_set_tooltip_text (item, parse_name); + g_free (parse_name); + + file = thunar_file_cache_lookup (lp->data); + image = NULL; + if (file != NULL) + { + /* load the icon for the file */ + icon = thunar_icon_factory_load_file_icon (icon_factory, file, THUNAR_FILE_ICON_STATE_DEFAULT, 16); + if (icon != NULL) + { + /* setup the image for the file */ + image = gtk_image_new_from_pixbuf (icon); + g_object_unref (G_OBJECT (icon)); + } + + g_object_unref (file); + } + + if (image == NULL) + { + /* some custom likely alternatives */ + if (thunar_g_file_is_home (lp->data)) + icon_name = "user-home"; + else if (!g_file_has_uri_scheme (lp->data, "file")) + icon_name = "folder-remote"; + else if (thunar_g_file_is_root (lp->data)) + icon_name = "drive-harddisk"; + else + icon_name = "folder"; - /* release the icon */ - g_object_unref (G_OBJECT (icon)); + image = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU); + } + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); } /* release the icon factory */ @@ -487,21 +685,6 @@ /** - * thunar_history_new: - * - * Allocates a new #ThunarHistory object. - * - * Return value: the newly allocated #ThunarHistory object. - **/ -ThunarHistory* -thunar_history_new (void) -{ - return g_object_new (THUNAR_TYPE_HISTORY, NULL); -} - - - -/** * thunar_history_get_action_group: * @history : a #ThunarHistory. * @@ -512,7 +695,7 @@ * Return value: the #GtkActionGroup to which * @history is currently attached. **/ -GtkActionGroup* +static GtkActionGroup* thunar_history_get_action_group (const ThunarHistory *history) { _thunar_return_val_if_fail (THUNAR_IS_HISTORY (history), NULL); @@ -531,7 +714,7 @@ * "forward" provided by @history on the given * @action_group. **/ -void +static void thunar_history_set_action_group (ThunarHistory *history, GtkActionGroup *action_group) { @@ -567,14 +750,51 @@ +ThunarHistory * +thunar_history_copy (ThunarHistory *history, + GtkActionGroup *action_group) +{ + ThunarHistory *copy; + GSList *lp; + + _thunar_return_val_if_fail (history == NULL || THUNAR_IS_HISTORY (history), NULL); + _thunar_return_val_if_fail (action_group == NULL || GTK_IS_ACTION_GROUP (action_group), NULL); + + if (G_UNLIKELY (history == NULL)) + return NULL; + + copy = g_object_new (THUNAR_TYPE_HISTORY, NULL); + + /* take a ref on the current directory */ + copy->current_directory = g_object_ref (history->current_directory); + + /* set the action group */ + thunar_history_set_action_group (copy, action_group); + + /* copy the back list */ + for (lp = history->back_list; lp != NULL; lp = lp->next) + copy->back_list = g_slist_append (copy->back_list, g_object_ref (G_OBJECT (lp->data))); + + /* copy the forward list */ + for (lp = history->forward_list; lp != NULL; lp = lp->next) + copy->forward_list = g_slist_append (copy->forward_list, g_object_ref (G_OBJECT (lp->data))); + + /* update the sensitivity of the actions */ + gtk_action_set_sensitive (copy->action_back, (copy->back_list != NULL)); + gtk_action_set_sensitive (copy->action_forward, (copy->forward_list != NULL)); + + return copy; +} + + + /** * thunar_file_history_peek_back: * @history : a #ThunarHistory. * - * Returns the previous directory in the history. + * Returns the previous directory in the history. * - * The returned #ThunarFile is owned by the #ThunarHistory and must - * not be released by the caller. + * The returned #ThunarFile must be released by the caller. * * Return value: the previous #ThunarFile in the history. **/ @@ -587,7 +807,7 @@ /* pick the first (conceptually the last) file in the back list, if there are any */ if (history->back_list != NULL) - result = history->back_list->data; + result = thunar_file_get (history->back_list->data, NULL); return result; } @@ -598,11 +818,10 @@ * thunar_file_history_peek_forward: * @history : a #ThunarHistory. * - * Returns the next directory in the history. This often but not always + * Returns the next directory in the history. This often but not always * refers to a child of the current directory. * - * The returned #ThunarFile is owned by the #ThunarHistory and must - * not be released by the caller. + * The returned #ThunarFile must be released by the caller. * * Return value: the next #ThunarFile in the history. **/ @@ -615,7 +834,7 @@ /* pick the first file in the forward list, if there are any */ if (history->forward_list != NULL) - result = history->forward_list->data; + result = thunar_file_get (history->forward_list->data, NULL); return result; } diff -Nru thunar-1.2.3/thunar/thunar-history.h thunar-1.6.10/thunar/thunar-history.h --- thunar-1.2.3/thunar/thunar-history.h 2010-10-04 15:13:37.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-history.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -36,11 +36,9 @@ GType thunar_history_get_type (void) G_GNUC_CONST; -ThunarHistory *thunar_history_new (void) G_GNUC_MALLOC; - -GtkActionGroup *thunar_history_get_action_group (const ThunarHistory *history); -void thunar_history_set_action_group (ThunarHistory *history, +ThunarHistory *thunar_history_copy (ThunarHistory *history, GtkActionGroup *action_group); + ThunarFile *thunar_history_peek_back (ThunarHistory *history); ThunarFile *thunar_history_peek_forward (ThunarHistory *history); diff -Nru thunar-1.2.3/thunar/thunar-ice.c thunar-1.6.10/thunar/thunar-ice.c --- thunar-1.2.3/thunar/thunar-ice.c 2009-08-21 03:24:31.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-ice.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-ice.h thunar-1.6.10/thunar/thunar-ice.h --- thunar-1.2.3/thunar/thunar-ice.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-ice.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-icon-factory.c thunar-1.6.10/thunar/thunar-icon-factory.c --- thunar-1.2.3/thunar/thunar-icon-factory.c 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-icon-factory.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,25 +1,22 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer - * Copyright (c) 2009-2010 Jannis Pohlmann + * Copyright (c) 2009-2011 Jannis Pohlmann * - * 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 - * - * The basic idea for the icon factory implementation was borrowed from - * Nautilus initially, but the implementation is very different from - * what Nautilus does. + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -38,15 +35,11 @@ #include #include #include -#include -/* the timeout until the sweeper is run (in ms) */ -#define THUNAR_ICON_FACTORY_SWEEP_TIMEOUT (30 * 1000) - -/* the maximum length of the recently used list */ -#define MAX_RECENTLY (32u) +/* the timeout until the sweeper is run (in seconds) */ +#define THUNAR_ICON_FACTORY_SWEEP_TIMEOUT (30) @@ -55,7 +48,7 @@ { PROP_0, PROP_ICON_THEME, - PROP_SHOW_THUMBNAILS, + PROP_THUMBNAIL_MODE, }; @@ -87,11 +80,10 @@ const gchar *name, gint size, gboolean wants_default); -static void thunar_icon_factory_mark_recently_used (ThunarIconFactory *factory, - GdkPixbuf *pixbuf); static guint thunar_icon_key_hash (gconstpointer data); static gboolean thunar_icon_key_equal (gconstpointer a, gconstpointer b); +static void thunar_icon_key_free (gpointer data); static GdkPixbuf *thunar_icon_factory_load_fallback (ThunarIconFactory *factory, gint size); @@ -106,23 +98,20 @@ { GObject __parent__; - ThunarThumbnailer *thumbnailer; - - ThunarPreferences *preferences; + ThunarPreferences *preferences; - GdkPixbuf *recently[MAX_RECENTLY]; /* ring buffer */ - guint recently_pos; /* insert position */ + GHashTable *icon_cache; - GHashTable *icon_cache; + GtkIconTheme *icon_theme; - GtkIconTheme *icon_theme; + ThunarThumbnailMode thumbnail_mode; - gboolean show_thumbnails; + guint sweep_timer_id; - gint changed_idle_id; - gint sweep_timer_id; + gulong changed_hook_id; - gulong changed_hook_id; + /* stamp that gets bumped when the theme changes */ + guint theme_stamp; }; struct _ThunarIconKey @@ -131,12 +120,20 @@ gint size; }; +typedef struct +{ + ThunarFileIconState icon_state; + ThunarFileThumbState thumb_state; + gint icon_size; + guint stamp; + GdkPixbuf *icon; +} +ThunarIconStore; + static GQuark thunar_icon_factory_quark = 0; -static GQuark thunar_icon_thumb_uri_quark = 0; -static GQuark thunar_icon_thumb_time_quark = 0; -static GQuark thunar_file_thumb_uri_quark = 0; +static GQuark thunar_icon_factory_store_quark = 0; @@ -149,12 +146,7 @@ { GObjectClass *gobject_class; - /* setup the thunar-icon-thumb-{path,time} quarks */ - thunar_icon_thumb_uri_quark = g_quark_from_static_string ("thunar-icon-thumb-path"); - thunar_icon_thumb_time_quark = g_quark_from_static_string ("thunar-icon-thumb-time"); - - /* setup the thunar-file-thumb-path quark */ - thunar_file_thumb_uri_quark = g_quark_from_static_string ("thunar-file-thumb-path"); + thunar_icon_factory_store_quark = g_quark_from_static_string ("thunar-icon-factory-store"); gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_icon_factory_dispose; @@ -177,18 +169,19 @@ EXO_PARAM_READABLE)); /** - * ThunarIconFactory:show-thumbnails: + * ThunarIconFactory:thumbnail-mode: * * Whether this #ThunarIconFactory will try to generate and load thumbnails * when loading icons for #ThunarFiles. **/ g_object_class_install_property (gobject_class, - PROP_SHOW_THUMBNAILS, - g_param_spec_boolean ("show-thumbnails", - "show-thumbnails", - "show-thumbnails", - FALSE, - EXO_PARAM_READWRITE)); + PROP_THUMBNAIL_MODE, + g_param_spec_enum ("thumbnail-mode", + "thumbnail-mode", + "thumbnail-mode", + THUNAR_TYPE_THUMBNAIL_MODE, + THUNAR_THUMBNAIL_MODE_ONLY_LOCAL, + EXO_PARAM_READWRITE)); } @@ -196,9 +189,7 @@ static void thunar_icon_factory_init (ThunarIconFactory *factory) { - /* initialize GSource ids */ - factory->changed_idle_id = -1; - factory->sweep_timer_id = -1; + factory->thumbnail_mode = THUNAR_THUMBNAIL_MODE_ONLY_LOCAL; /* connect emission hook for the "changed" signal on the GtkIconTheme class. We use the emission * hook way here, because that way we can make sure that the icon cache is definetly cleared @@ -208,10 +199,8 @@ 0, thunar_icon_factory_changed, factory, NULL); /* allocate the hash table for the icon cache */ - factory->icon_cache = g_hash_table_new_full (thunar_icon_key_hash, thunar_icon_key_equal, g_free, g_object_unref); - - /* create a new thumbnailer */ - factory->thumbnailer = thunar_thumbnailer_new (); + factory->icon_cache = g_hash_table_new_full (thunar_icon_key_hash, thunar_icon_key_equal, + thunar_icon_key_free, g_object_unref); } @@ -223,10 +212,7 @@ _thunar_return_if_fail (THUNAR_IS_ICON_FACTORY (factory)); - if (G_UNLIKELY (factory->changed_idle_id >= 0)) - g_source_remove (factory->changed_idle_id); - - if (G_UNLIKELY (factory->sweep_timer_id >= 0)) + if (G_UNLIKELY (factory->sweep_timer_id != 0)) g_source_remove (factory->sweep_timer_id); (*G_OBJECT_CLASS (thunar_icon_factory_parent_class)->dispose) (object); @@ -238,21 +224,12 @@ thunar_icon_factory_finalize (GObject *object) { ThunarIconFactory *factory = THUNAR_ICON_FACTORY (object); - guint n; _thunar_return_if_fail (THUNAR_IS_ICON_FACTORY (factory)); - /* clear the recently used list */ - for (n = 0; n < MAX_RECENTLY; ++n) - if (G_LIKELY (factory->recently[n] != NULL)) - g_object_unref (G_OBJECT (factory->recently[n])); - /* clear the icon cache hash table */ g_hash_table_destroy (factory->icon_cache); - /* release the thumbnailer */ - g_object_unref (G_OBJECT (factory->thumbnailer)); - /* remove the "changed" emission hook from the GtkIconTheme class */ g_signal_remove_emission_hook (g_signal_lookup ("changed", GTK_TYPE_ICON_THEME), factory->changed_hook_id); @@ -285,8 +262,8 @@ g_value_set_object (value, factory->icon_theme); break; - case PROP_SHOW_THUMBNAILS: - g_value_set_boolean (value, factory->show_thumbnails); + case PROP_THUMBNAIL_MODE: + g_value_set_enum (value, factory->thumbnail_mode); break; default: @@ -307,8 +284,8 @@ switch (prop_id) { - case PROP_SHOW_THUMBNAILS: - factory->show_thumbnails = g_value_get_boolean (value); + case PROP_THUMBNAIL_MODE: + factory->thumbnail_mode = g_value_get_enum (value); break; default: @@ -326,18 +303,12 @@ gpointer user_data) { ThunarIconFactory *factory = THUNAR_ICON_FACTORY (user_data); - guint n; - - /* drop all items from the recently used list */ - for (n = 0; n < MAX_RECENTLY; ++n) - if (G_LIKELY (factory->recently[n] != NULL)) - { - g_object_unref (G_OBJECT (factory->recently[n])); - factory->recently[n] = NULL; - } /* drop all items from the icon cache */ - g_hash_table_foreach_remove (factory->icon_cache, (GHRFunc) exo_noop_true, NULL); + g_hash_table_remove_all (factory->icon_cache); + + /* bump the stamp so all file icons are reloaded */ + factory->theme_stamp++; /* keep the emission hook alive */ return TRUE; @@ -376,7 +347,7 @@ static void thunar_icon_factory_sweep_timer_destroy (gpointer user_data) { - THUNAR_ICON_FACTORY (user_data)->sweep_timer_id = -1; + THUNAR_ICON_FACTORY (user_data)->sweep_timer_id = 0; } @@ -453,7 +424,7 @@ * want to do this for icons displayed in the details view). */ needs_frame = (strstr (path, G_DIR_SEPARATOR_S ".thumbnails" G_DIR_SEPARATOR_S) != NULL) - && (size >= 36) && thumbnail_needs_frame (pixbuf, width, height); + && (size >= 32) && thumbnail_needs_frame (pixbuf, width, height); /* be sure to make framed thumbnails fit into the size */ if (G_LIKELY (needs_frame)) @@ -471,7 +442,7 @@ if (G_LIKELY (width > max_width || height > max_height)) { /* scale down to the required size */ - tmp = exo_gdk_pixbuf_scale_down (pixbuf, TRUE, max_height, max_height); + tmp = exo_gdk_pixbuf_scale_down (pixbuf, TRUE, MAX (1, max_height), MAX (1, max_height)); g_object_unref (G_OBJECT (pixbuf)); pixbuf = tmp; } @@ -481,7 +452,7 @@ { /* add a frame to the thumbnail */ frame = gdk_pixbuf_new_from_inline (-1, thunar_thumbnail_frame, FALSE, NULL); - tmp = exo_gdk_pixbuf_frame (pixbuf, frame, 3, 3, 6, 6); + tmp = exo_gdk_pixbuf_frame (pixbuf, frame, 4, 3, 5, 6); g_object_unref (G_OBJECT (pixbuf)); g_object_unref (G_OBJECT (frame)); pixbuf = tmp; @@ -546,57 +517,23 @@ } /* generate a key for the new cached icon */ - key = g_malloc (sizeof (ThunarIconKey) + strlen (name) + 1); - key->name = ((gchar *) key) + sizeof (ThunarIconKey); + key = g_slice_new (ThunarIconKey); key->size = size; - strcpy (key->name, name); + key->name = g_strdup (name); /* insert the new icon into the cache */ g_hash_table_insert (factory->icon_cache, key, pixbuf); } - /* add the icon to the recently used list */ - thunar_icon_factory_mark_recently_used (factory, pixbuf); - - return g_object_ref (G_OBJECT (pixbuf)); -} - - - -static void -thunar_icon_factory_mark_recently_used (ThunarIconFactory *factory, - GdkPixbuf *pixbuf) -{ - guint n; - - _thunar_return_if_fail (THUNAR_IS_ICON_FACTORY (factory)); - _thunar_return_if_fail (GDK_IS_PIXBUF (pixbuf)); - - /* check if the icon is already on the list */ - for (n = 0; n < MAX_RECENTLY; ++n) - if (G_UNLIKELY (factory->recently[n] == pixbuf)) - return; - - /* ditch the previous item on the current insert position, - * which - if present - is the oldest item in the list. - */ - if (G_LIKELY (factory->recently[factory->recently_pos] != NULL)) - g_object_unref (G_OBJECT (factory->recently[factory->recently_pos])); - - /* insert the new pixbuf into the list */ - factory->recently[factory->recently_pos] = pixbuf; - g_object_ref (G_OBJECT (pixbuf)); - - /* advance the insert position */ - factory->recently_pos = (factory->recently_pos + 1) % MAX_RECENTLY; - /* schedule the sweeper */ - if (G_UNLIKELY (factory->sweep_timer_id < 0)) + if (G_UNLIKELY (factory->sweep_timer_id == 0)) { - factory->sweep_timer_id = g_timeout_add_full (G_PRIORITY_LOW, THUNAR_ICON_FACTORY_SWEEP_TIMEOUT, - thunar_icon_factory_sweep_timer, factory, - thunar_icon_factory_sweep_timer_destroy); + factory->sweep_timer_id = g_timeout_add_seconds_full (G_PRIORITY_LOW, THUNAR_ICON_FACTORY_SWEEP_TIMEOUT, + thunar_icon_factory_sweep_timer, factory, + thunar_icon_factory_sweep_timer_destroy); } + + return g_object_ref (G_OBJECT (pixbuf)); } @@ -630,7 +567,30 @@ return FALSE; /* do a full string comparison on the names */ - return (strcmp (a_key->name, b_key->name) == 0); + return exo_str_is_equal (a_key->name, b_key->name); +} + + + +static void +thunar_icon_key_free (gpointer data) +{ + ThunarIconKey *key = data; + + g_free (key->name); + g_slice_free (ThunarIconKey, key); +} + + + +static void +thunar_icon_store_free (gpointer data) +{ + ThunarIconStore *store = data; + + if (store->icon != NULL) + g_object_unref (store->icon); + g_slice_free (ThunarIconStore, store); } @@ -639,7 +599,7 @@ thunar_icon_factory_load_fallback (ThunarIconFactory *factory, gint size) { - return thunar_icon_factory_lookup_icon (factory, GTK_STOCK_FILE, size, FALSE); + return thunar_icon_factory_lookup_icon (factory, "text-x-generic", size, FALSE); } @@ -710,7 +670,8 @@ /* connect the "show-thumbnails" property to the global preference */ factory->preferences = thunar_preferences_get (); - exo_mutual_binding_new (G_OBJECT (factory->preferences), "misc-show-thumbnails", G_OBJECT (factory), "show-thumbnails"); + exo_binding_new (G_OBJECT (factory->preferences), "misc-thumbnail-mode", + G_OBJECT (factory), "thumbnail-mode"); } else { @@ -723,18 +684,41 @@ /** - * thunar_icon_factory_get_icon_theme: - * @factory : a #ThunarIconFactory instance. - * - * Returns the #GtkIconTheme associated with @factory. + * thunar_icon_factory_get_thumbnail_mode: + * @factory : a #ThunarIconFactory instance. + * @file : a #ThunarFile. * - * Return value: the #GtkIconTheme associated with @factory. + * Return value: if a Thumbnail show be shown for @file. **/ -GtkIconTheme* -thunar_icon_factory_get_icon_theme (const ThunarIconFactory *factory) +gboolean +thunar_icon_factory_get_show_thumbnail (const ThunarIconFactory *factory, + const ThunarFile *file) { - _thunar_return_val_if_fail (THUNAR_IS_ICON_FACTORY (factory), NULL); - return factory->icon_theme; + GFilesystemPreviewType preview; + + _thunar_return_val_if_fail (THUNAR_IS_ICON_FACTORY (factory), THUNAR_THUMBNAIL_MODE_NEVER); + _thunar_return_val_if_fail (file == NULL || THUNAR_IS_FILE (file), THUNAR_THUMBNAIL_MODE_NEVER); + + if (file == NULL + || factory->thumbnail_mode == THUNAR_THUMBNAIL_MODE_NEVER) + return FALSE; + + /* always create thumbs for local files */ + if (thunar_file_is_local (file)) + return TRUE; + + preview = thunar_file_get_preview_type (file); + + /* file system says to never thumbnail anything */ + if (preview == G_FILESYSTEM_PREVIEW_TYPE_NEVER) + return FALSE; + + /* only if the setting is local and the fs reports to be local */ + if (factory->thumbnail_mode == THUNAR_THUMBNAIL_MODE_ONLY_LOCAL) + return preview == G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL; + + /* THUNAR_THUMBNAIL_MODE_ALWAYS */ + return TRUE; } @@ -744,7 +728,6 @@ * @factory : a #ThunarIconFactory instance. * @name : name of the icon to load. * @size : desired icon size. - * @attach_points : location to store the attach points to or %NULL. * @wants_default : %TRUE to return the fallback icon if no icon of @name * is found in the @factory. * @@ -762,7 +745,6 @@ thunar_icon_factory_load_icon (ThunarIconFactory *factory, const gchar *name, gint size, - ThunarEmblemAttachPoints *attach_points, gboolean wants_default) { _thunar_return_val_if_fail (THUNAR_IS_ICON_FACTORY (factory), NULL); @@ -771,7 +753,7 @@ /* cannot happen unless there's no XSETTINGS manager * for the default screen, but just in case... */ - if (G_UNLIKELY (name == NULL || *name == '\0')) + if (G_UNLIKELY (exo_str_is_empty (name))) { /* check if the caller will happly accept the fallback icon */ if (G_LIKELY (wants_default)) @@ -804,46 +786,44 @@ ThunarFileIconState icon_state, gint icon_size) { - ThunarFileThumbState thumb_state; - GInputStream *stream; - GtkIconInfo *icon_info; - const gchar *thumbnail_path; - GdkPixbuf *icon = NULL; - GIcon *gicon; - gchar *icon_name; + GInputStream *stream; + GtkIconInfo *icon_info; + const gchar *thumbnail_path; + GdkPixbuf *icon = NULL; + GIcon *gicon; + const gchar *icon_name; + const gchar *custom_icon; + ThunarIconStore *store; _thunar_return_val_if_fail (THUNAR_IS_ICON_FACTORY (factory), NULL); _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); _thunar_return_val_if_fail (icon_size > 0, NULL); + /* check if we have a stored icon on the file and it is still valid */ + store = g_object_get_qdata (G_OBJECT (file), thunar_icon_factory_store_quark); + if (store != NULL + && store->icon_state == icon_state + && store->icon_size == icon_size + && store->stamp == factory->theme_stamp + && store->thumb_state == thunar_file_get_thumb_state (file)) + { + return g_object_ref (store->icon); + } + /* check if we have a custom icon for this file */ - icon_name = thunar_file_get_custom_icon (file); - if (icon_name != NULL) + custom_icon = thunar_file_get_custom_icon (file); + if (custom_icon != NULL) { /* try to load the icon */ - icon = thunar_icon_factory_lookup_icon (factory, icon_name, icon_size, FALSE); - g_free (icon_name); + icon = thunar_icon_factory_lookup_icon (factory, custom_icon, icon_size, FALSE); if (G_LIKELY (icon != NULL)) return icon; } /* check if thumbnails are enabled and we can display a thumbnail for the item */ - if (G_LIKELY (factory->show_thumbnails && thunar_file_is_regular (file))) + if (thunar_icon_factory_get_show_thumbnail (factory, file) + && thunar_file_is_regular (file)) { - /* this is how thumbnails for files are loaded: first, we check the thumbnail - * state. If that is unknown, we request a thumbnail to be generated in the - * background. At the same time we already try to load the thumbnail, in case - * it's already there. when the thumbnail is ready, we just load it */ - - /* determine the thumbnail state of the file */ - thumb_state = thunar_file_get_thumb_state (file); - - if (thumb_state == THUNAR_FILE_THUMB_STATE_UNKNOWN) - { - /* we don't know the state yet so request a new thumbnail in the background */ - thunar_thumbnailer_queue_file (factory->thumbnailer, file); - } - /* determine the preview icon first */ gicon = thunar_file_get_preview_icon (file); @@ -856,7 +836,8 @@ icon_info = gtk_icon_theme_lookup_by_gicon (factory->icon_theme, gicon, icon_size, - GTK_ICON_LOOKUP_USE_BUILTIN); + GTK_ICON_LOOKUP_USE_BUILTIN + | GTK_ICON_LOOKUP_FORCE_SIZE); /* check if the lookup succeeded */ if (icon_info != NULL) @@ -876,7 +857,9 @@ if (stream != NULL) { /* load the pixbuf from the stream */ - icon = gdk_pixbuf_new_from_stream (stream, NULL, NULL); + icon = gdk_pixbuf_new_from_stream_at_scale (stream, icon_size, + icon_size, TRUE, + NULL, NULL); /* destroy the stream */ g_object_unref (stream); @@ -897,23 +880,48 @@ if (thumbnail_path != NULL) { /* try to load the thumbnail */ - icon = thunar_icon_factory_load_from_file (factory, thumbnail_path, - icon_size); - - /* return the thumbnail if it could be loaded */ - if (icon != NULL) - return icon; + icon = thunar_icon_factory_load_from_file (factory, thumbnail_path, icon_size); } } } /* lookup the icon name for the icon in the given state and load the icon */ - icon_name = thunar_file_get_icon_name (file, icon_state, factory->icon_theme); - icon = thunar_icon_factory_load_icon (factory, icon_name, icon_size, NULL, TRUE); - g_free (icon_name); + if (G_LIKELY (icon == NULL)) + { + icon_name = thunar_file_get_icon_name (file, icon_state, factory->icon_theme); + icon = thunar_icon_factory_load_icon (factory, icon_name, icon_size, TRUE); + } + + if (G_LIKELY (icon != NULL)) + { + store = g_slice_new (ThunarIconStore); + store->icon_size = icon_size; + store->icon_state = icon_state; + store->stamp = factory->theme_stamp; + store->thumb_state = thunar_file_get_thumb_state (file); + store->icon = g_object_ref (icon); + + g_object_set_qdata_full (G_OBJECT (file), thunar_icon_factory_store_quark, + store, thunar_icon_store_free); + } + return icon; } +/** + * thunar_icon_factory_clear_pixmap_cache: + * @file : a #ThunarFile. + * + * Unset the pixmap cache on a file to force a reload on the next request. + **/ +void +thunar_icon_factory_clear_pixmap_cache (ThunarFile *file) +{ + _thunar_return_if_fail (THUNAR_IS_FILE (file)); + /* unset the data */ + if (thunar_icon_factory_store_quark != 0) + g_object_set_qdata (G_OBJECT (file), thunar_icon_factory_store_quark, NULL); +} diff -Nru thunar-1.2.3/thunar/thunar-icon-factory.h thunar-1.6.10/thunar/thunar-icon-factory.h --- thunar-1.2.3/thunar/thunar-icon-factory.h 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-icon-factory.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -41,34 +41,19 @@ **/ #define THUNAR_THUMBNAIL_SIZE (128) -/** - * THUNAR_EMBLEM_MAX_ATTACH_POINTS: - * The maximum number of attach points for icons managed - * by the #ThunarIconFactory. - **/ -#define THUNAR_EMBLEM_MAX_ATTACH_POINTS (12) -/** - * ThunarEmblemAttachPoints: - * Holds the emblem attach points for a given icon. - */ -typedef struct -{ - gint num_points; - GdkPoint points[THUNAR_EMBLEM_MAX_ATTACH_POINTS]; -} ThunarEmblemAttachPoints; GType thunar_icon_factory_get_type (void) G_GNUC_CONST; ThunarIconFactory *thunar_icon_factory_get_default (void); ThunarIconFactory *thunar_icon_factory_get_for_icon_theme (GtkIconTheme *icon_theme); -GtkIconTheme *thunar_icon_factory_get_icon_theme (const ThunarIconFactory *factory); +gboolean thunar_icon_factory_get_show_thumbnail (const ThunarIconFactory *factory, + const ThunarFile *file); GdkPixbuf *thunar_icon_factory_load_icon (ThunarIconFactory *factory, const gchar *name, gint size, - ThunarEmblemAttachPoints *attach_points, gboolean wants_default); GdkPixbuf *thunar_icon_factory_load_file_icon (ThunarIconFactory *factory, @@ -76,6 +61,8 @@ ThunarFileIconState icon_state, gint icon_size); +void thunar_icon_factory_clear_pixmap_cache (ThunarFile *file); + G_END_DECLS; #endif /* !__THUNAR_ICON_FACTORY_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-icon-renderer.c thunar-1.6.10/thunar/thunar-icon-renderer.c --- thunar-1.2.3/thunar/thunar-icon-renderer.c 2011-01-09 22:56:54.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-icon-renderer.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -308,6 +309,48 @@ static void +thunar_icon_renderer_color_selected (cairo_t *cr, + GtkWidget *widget) +{ + cairo_pattern_t *source; + GtkStateType state; + + cairo_save (cr); + + source = cairo_pattern_reference (cairo_get_source (cr)); + state = gtk_widget_has_focus (widget) ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE; + gdk_cairo_set_source_color (cr, &widget->style->base[state]); + cairo_set_operator (cr, CAIRO_OPERATOR_MULTIPLY); + + cairo_mask (cr, source); + + cairo_pattern_destroy (source); + cairo_restore (cr); +} + + + +static void +thunar_icon_renderer_color_lighten (cairo_t *cr, + GtkWidget *widget) +{ + cairo_pattern_t *source; + + cairo_save (cr); + + source = cairo_pattern_reference (cairo_get_source (cr)); + cairo_set_source_rgb (cr, .15, .15, .15); + cairo_set_operator (cr, CAIRO_OPERATOR_COLOR_DODGE); + + cairo_mask (cr, source); + + cairo_pattern_destroy (source); + cairo_restore (cr); +} + + + +static void thunar_icon_renderer_render (GtkCellRenderer *renderer, GdkWindow *window, GtkWidget *widget, @@ -325,7 +368,6 @@ GdkRectangle emblem_area; GdkRectangle icon_area; GdkRectangle draw_area; - GtkStateType state; GdkPixbuf *emblem; GdkPixbuf *icon; GdkPixbuf *temp; @@ -333,6 +375,11 @@ GList *lp; gint max_emblems; gint position; + cairo_t *cr; + gdouble alpha; + gint emblem_size; + gboolean color_selected; + gboolean color_lighten; if (G_UNLIKELY (icon_renderer->file == NULL)) return; @@ -366,7 +413,7 @@ if (G_UNLIKELY (icon_area.width > cell_area->width || icon_area.height > cell_area->height)) { /* scale down to fit */ - temp = exo_gdk_pixbuf_scale_down (icon, TRUE, cell_area->width, cell_area->height); + temp = exo_gdk_pixbuf_scale_down (icon, TRUE, MAX (1, cell_area->width), MAX (1, cell_area->height)); g_object_unref (G_OBJECT (icon)); icon = temp; @@ -378,6 +425,13 @@ icon_area.x = cell_area->x + (cell_area->width - icon_area.width) / 2; icon_area.y = cell_area->y + (cell_area->height - icon_area.height) / 2; + /* bools for cairo transformations */ + color_selected = (flags & GTK_CELL_RENDERER_SELECTED) != 0 && icon_renderer->follow_state; + color_lighten = (flags & GTK_CELL_RENDERER_PRELIT) != 0 && icon_renderer->follow_state; + + /* create the context */ + cr = gdk_cairo_create (window); + /* check whether the icon is affected by the expose event */ if (gdk_rectangle_intersect (expose_area, &icon_area, &draw_area)) { @@ -386,40 +440,21 @@ if (thunar_clipboard_manager_has_cutted_file (clipboard, icon_renderer->file)) { /* 50% translucent for cutted files */ - temp = exo_gdk_pixbuf_lucent (icon, 50); - g_object_unref (G_OBJECT (icon)); - icon = temp; + alpha = 0.50; } else if (thunar_file_is_hidden (icon_renderer->file)) { /* 75% translucent for hidden files */ - temp = exo_gdk_pixbuf_lucent (icon, 75); - g_object_unref (G_OBJECT (icon)); - icon = temp; + alpha = 0.75; } - g_object_unref (G_OBJECT (clipboard)); - - /* colorize the icon if we should follow the selection state */ - if ((flags & (GTK_CELL_RENDERER_SELECTED | GTK_CELL_RENDERER_PRELIT)) != 0 && icon_renderer->follow_state) + else { - if ((flags & GTK_CELL_RENDERER_SELECTED) != 0) - { - state = GTK_WIDGET_HAS_FOCUS (widget) ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE; - temp = exo_gdk_pixbuf_colorize (icon, &widget->style->base[state]); - g_object_unref (G_OBJECT (icon)); - icon = temp; - } - - if ((flags & GTK_CELL_RENDERER_PRELIT) != 0) - { - temp = exo_gdk_pixbuf_spotlight (icon); - g_object_unref (G_OBJECT (icon)); - icon = temp; - } + alpha = 1.00; } + g_object_unref (G_OBJECT (clipboard)); /* check if we should render an insensitive icon */ - if (G_UNLIKELY (GTK_WIDGET_STATE (widget) == GTK_STATE_INSENSITIVE || !renderer->sensitive)) + if (G_UNLIKELY (gtk_widget_get_state (widget) == GTK_STATE_INSENSITIVE || !renderer->sensitive)) { /* allocate an icon source */ icon_source = gtk_icon_source_new (); @@ -438,10 +473,17 @@ } /* render the invalid parts of the icon */ - gdk_draw_pixbuf (window, widget->style->black_gc, icon, - draw_area.x - icon_area.x, draw_area.y - icon_area.y, - draw_area.x, draw_area.y, draw_area.width, draw_area.height, - GDK_RGB_DITHER_NORMAL, 0, 0); + thunar_gdk_cairo_set_source_pixbuf (cr, icon, icon_area.x, icon_area.y); + gdk_cairo_rectangle (cr, &draw_area); + cairo_paint_with_alpha (cr, alpha); + + /* paint the lighten mask */ + if (color_lighten) + thunar_icon_renderer_color_lighten (cr, widget); + + /* paint the selected mask */ + if (color_selected) + thunar_icon_renderer_color_selected (cr, widget); } /* release the file's icon */ @@ -460,8 +502,11 @@ /* render the emblems */ for (lp = emblems, position = 0; lp != NULL && position < max_emblems; lp = lp->next) { + /* calculate the emblem size */ + emblem_size = MIN ((2 * icon_renderer->size) / 3, 32); + /* check if we have the emblem in the icon theme */ - emblem = thunar_icon_factory_load_icon (icon_factory, lp->data, icon_renderer->size, NULL, FALSE); + emblem = thunar_icon_factory_load_icon (icon_factory, lp->data, emblem_size, FALSE); if (G_UNLIKELY (emblem == NULL)) continue; @@ -470,10 +515,10 @@ emblem_area.height = gdk_pixbuf_get_height (emblem); /* shrink insane emblems */ - if (G_UNLIKELY (MAX (emblem_area.width, emblem_area.height) > (gint) MIN ((2 * icon_renderer->size) / 3, 36))) + if (G_UNLIKELY (MAX (emblem_area.width, emblem_area.height) > emblem_size)) { /* scale down the emblem */ - temp = exo_gdk_pixbuf_scale_ratio (emblem, MIN ((2 * icon_renderer->size) / 3, 36)); + temp = exo_gdk_pixbuf_scale_ratio (emblem, emblem_size); g_object_unref (G_OBJECT (emblem)); emblem = temp; @@ -520,10 +565,18 @@ /* render the emblem */ if (gdk_rectangle_intersect (expose_area, &emblem_area, &draw_area)) { - gdk_draw_pixbuf (window, widget->style->black_gc, emblem, - draw_area.x - emblem_area.x, draw_area.y - emblem_area.y, - draw_area.x, draw_area.y, draw_area.width, draw_area.height, - GDK_RGB_DITHER_NORMAL, 0, 0); + /* render the invalid parts of the icon */ + thunar_gdk_cairo_set_source_pixbuf (cr, emblem, emblem_area.x, emblem_area.y); + gdk_cairo_rectangle (cr, &draw_area); + cairo_paint (cr); + + /* paint the lighten mask */ + if (color_lighten) + thunar_icon_renderer_color_lighten (cr, widget); + + /* paint the selected mask */ + if (color_selected) + thunar_icon_renderer_color_selected (cr, widget); } /* release the emblem */ @@ -538,6 +591,9 @@ } } + /* destroy the context */ + cairo_destroy (cr); + /* release our reference on the icon factory */ g_object_unref (G_OBJECT (icon_factory)); } diff -Nru thunar-1.2.3/thunar/thunar-icon-renderer.h thunar-1.6.10/thunar/thunar-icon-renderer.h --- thunar-1.2.3/thunar/thunar-icon-renderer.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-icon-renderer.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-icon-view.c thunar-1.6.10/thunar/thunar-icon-view.c --- thunar-1.2.3/thunar/thunar-icon-view.c 2010-10-12 09:30:00.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-icon-view.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -126,7 +126,7 @@ if (G_UNLIKELY (g_value_get_boolean (value))) { exo_icon_view_set_orientation (EXO_ICON_VIEW (GTK_BIN (standard_view)->child), GTK_ORIENTATION_HORIZONTAL); - g_object_set (G_OBJECT (standard_view->name_renderer), "wrap-width", 128, "yalign", 0.5f, NULL); + g_object_set (G_OBJECT (standard_view->name_renderer), "wrap-width", 128, "yalign", 0.5f, "alignment", PANGO_ALIGN_LEFT, NULL); /* disconnect the "zoom-level" signal handler, since we're using a fixed wrap-width here */ g_signal_handlers_disconnect_by_func (object, thunar_icon_view_zoom_level_changed, NULL); @@ -134,7 +134,7 @@ else { exo_icon_view_set_orientation (EXO_ICON_VIEW (GTK_BIN (standard_view)->child), GTK_ORIENTATION_VERTICAL); - g_object_set (G_OBJECT (standard_view->name_renderer), "yalign", 0.0f, NULL); + g_object_set (G_OBJECT (standard_view->name_renderer), "yalign", 0.0f, "alignment", PANGO_ALIGN_CENTER, NULL); /* connect the "zoom-level" signal handler as the wrap-width is now synced with the "zoom-level" */ g_signal_connect (object, "notify::zoom-level", G_CALLBACK (thunar_icon_view_zoom_level_changed), NULL); diff -Nru thunar-1.2.3/thunar/thunar-icon-view.h thunar-1.6.10/thunar/thunar-icon-view.h --- thunar-1.2.3/thunar/thunar-icon-view.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-icon-view.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-io-jobs.c thunar-1.6.10/thunar/thunar-io-jobs.c --- thunar-1.2.3/thunar/thunar-io-jobs.c 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-io-jobs.c 2015-05-22 13:25:36.000000000 +0000 @@ -24,6 +24,7 @@ #include +#include #include #include #include @@ -32,6 +33,7 @@ #include #include #include +#include #include @@ -55,7 +57,7 @@ /* try to scan the directory */ child_file_list = thunar_io_scan_directory (job, lp->data, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, - TRUE, unlinking, &err); + TRUE, unlinking, FALSE, &err); /* prepend the new files to the existing list */ file_list = thunar_g_file_list_prepend (file_list, lp->data); @@ -82,9 +84,9 @@ static gboolean -_thunar_io_jobs_create (ThunarJob *job, - GValueArray *param_values, - GError **error) +_thunar_io_jobs_create (ThunarJob *job, + GArray *param_values, + GError **error) { GFileOutputStream *stream; ThunarJobResponse response = THUNAR_JOB_RESPONSE_CANCEL; @@ -94,18 +96,33 @@ GList *lp; gchar *base_name; gchar *display_name; + GFile *template_file; + GFileInputStream *template_stream = NULL; _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); _thunar_return_val_if_fail (param_values != NULL, FALSE); - _thunar_return_val_if_fail (param_values->n_values == 1, FALSE); + _thunar_return_val_if_fail (param_values->len == 2, FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); /* get the file list */ - file_list = g_value_get_boxed (g_value_array_get_nth (param_values, 0)); + file_list = g_value_get_boxed (&g_array_index (param_values, GValue, 0)); + template_file = g_value_get_object (&g_array_index (param_values, GValue, 1)); /* we know the total amount of files to be processed */ thunar_job_set_total_files (THUNAR_JOB (job), file_list); + /* check if we need to open the template */ + if (template_file != NULL) + { + /* open read stream to feed in the new files */ + template_stream = g_file_read (template_file, exo_job_get_cancellable (EXO_JOB (job)), &err); + if (G_UNLIKELY (template_stream == NULL)) + { + g_propagate_error (error, err); + return FALSE; + } + } + /* iterate over all files in the list */ for (lp = file_list; err == NULL && lp != NULL && !exo_job_is_cancelled (EXO_JOB (job)); @@ -195,9 +212,24 @@ } } else - g_object_unref (stream); + { + if (template_stream != NULL) + { + /* write the template into the new file */ + g_output_stream_splice (G_OUTPUT_STREAM (stream), + G_INPUT_STREAM (template_stream), + G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET, + exo_job_get_cancellable (EXO_JOB (job)), + NULL); + } + + g_object_unref (stream); + } } + if (template_stream != NULL) + g_object_unref (template_stream); + /* check if we have failed */ if (err != NULL) { @@ -218,18 +250,20 @@ ThunarJob * -thunar_io_jobs_create_files (GList *file_list) +thunar_io_jobs_create_files (GList *file_list, + GFile *template_file) { - return thunar_simple_job_launch (_thunar_io_jobs_create, 1, - THUNAR_TYPE_G_FILE_LIST, file_list); + return thunar_simple_job_launch (_thunar_io_jobs_create, 2, + THUNAR_TYPE_G_FILE_LIST, file_list, + G_TYPE_FILE, template_file); } static gboolean -_thunar_io_jobs_mkdir (ThunarJob *job, - GValueArray *param_values, - GError **error) +_thunar_io_jobs_mkdir (ThunarJob *job, + GArray *param_values, + GError **error) { ThunarJobResponse response; GFileInfo *info; @@ -241,10 +275,10 @@ _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); _thunar_return_val_if_fail (param_values != NULL, FALSE); - _thunar_return_val_if_fail (param_values->n_values == 1, FALSE); + _thunar_return_val_if_fail (param_values->len == 1, FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); - file_list = g_value_get_boxed (g_value_array_get_nth (param_values, 0)); + file_list = g_value_get_boxed (&g_array_index (param_values, GValue, 0)); /* we know the total list of files to process */ thunar_job_set_total_files (THUNAR_JOB (job), file_list); @@ -363,25 +397,27 @@ static gboolean -_thunar_io_jobs_unlink (ThunarJob *job, - GValueArray *param_values, - GError **error) -{ - ThunarJobResponse response; - GFileInfo *info; - GError *err = NULL; - GList *file_list; - GList *lp; - gchar *base_name; - gchar *display_name; +_thunar_io_jobs_unlink (ThunarJob *job, + GArray *param_values, + GError **error) +{ + ThunarThumbnailCache *thumbnail_cache; + ThunarApplication *application; + ThunarJobResponse response; + GFileInfo *info; + GError *err = NULL; + GList *file_list; + GList *lp; + gchar *base_name; + gchar *display_name; _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); _thunar_return_val_if_fail (param_values != NULL, FALSE); - _thunar_return_val_if_fail (param_values->n_values == 1, FALSE); + _thunar_return_val_if_fail (param_values->len == 1, FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); /* get the file list */ - file_list = g_value_get_boxed (g_value_array_get_nth (param_values, 0)); + file_list = g_value_get_boxed (&g_array_index (param_values, GValue, 0)); /* tell the user that we're preparing to unlink the files */ exo_job_info_message (EXO_JOB (job), _("Preparing...")); @@ -404,6 +440,11 @@ /* we know the total list of files to process */ thunar_job_set_total_files (THUNAR_JOB (job), file_list); + /* take a reference on the thumbnail cache */ + application = thunar_application_get (); + thumbnail_cache = thunar_application_get_thumbnail_cache (application); + g_object_unref (application); + /* remove all the files */ for (lp = file_list; lp != NULL && !exo_job_is_cancelled (EXO_JOB (job)); lp = lp->next) { @@ -415,7 +456,13 @@ again: /* try to delete the file */ - if (!g_file_delete (lp->data, exo_job_get_cancellable (EXO_JOB (job)), &err)) + if (g_file_delete (lp->data, exo_job_get_cancellable (EXO_JOB (job)), &err)) + { + /* notify the thumbnail cache that the corresponding thumbnail can also + * be deleted now */ + thunar_thumbnail_cache_delete_file (thumbnail_cache, lp->data); + } + else { /* query the file info for the display name */ info = g_file_query_info (lp->data, @@ -459,6 +506,9 @@ } } + /* release the thumbnail cache */ + g_object_unref (thumbnail_cache); + /* release the file list */ thunar_g_file_list_free (file_list); @@ -642,29 +692,36 @@ static gboolean -_thunar_io_jobs_link (ThunarJob *job, - GValueArray *param_values, - GError **error) -{ - GError *err = NULL; - GFile *real_target_file; - GList *new_files_list = NULL; - GList *source_file_list; - GList *sp; - GList *target_file_list; - GList *tp; +_thunar_io_jobs_link (ThunarJob *job, + GArray *param_values, + GError **error) +{ + ThunarThumbnailCache *thumbnail_cache; + ThunarApplication *application; + GError *err = NULL; + GFile *real_target_file; + GList *new_files_list = NULL; + GList *source_file_list; + GList *sp; + GList *target_file_list; + GList *tp; _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); _thunar_return_val_if_fail (param_values != NULL, FALSE); - _thunar_return_val_if_fail (param_values->n_values == 2, FALSE); + _thunar_return_val_if_fail (param_values->len == 2, FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); - source_file_list = g_value_get_boxed (g_value_array_get_nth (param_values, 0)); - target_file_list = g_value_get_boxed (g_value_array_get_nth (param_values, 1)); + source_file_list = g_value_get_boxed (&g_array_index (param_values, GValue, 0)); + target_file_list = g_value_get_boxed (&g_array_index (param_values, GValue, 1)); /* we know the total list of paths to process */ thunar_job_set_total_files (THUNAR_JOB (job), source_file_list); + /* take a reference on the thumbnail cache */ + application = thunar_application_get (); + thumbnail_cache = thunar_application_get_thumbnail_cache (application); + g_object_unref (application); + /* process all files */ for (sp = source_file_list, tp = target_file_list; err == NULL && sp != NULL && tp != NULL; @@ -685,6 +742,12 @@ { new_files_list = thunar_g_file_list_prepend (new_files_list, real_target_file); + + /* notify the thumbnail cache that we need to copy the original + * thumbnail for the symlink to have one too */ + thunar_thumbnail_cache_copy_file (thumbnail_cache, sp->data, + real_target_file); + } /* release the real target file */ @@ -692,6 +755,9 @@ } } + /* release the thumbnail cache */ + g_object_unref (thumbnail_cache); + if (err != NULL) { thunar_g_file_list_free (new_files_list); @@ -724,30 +790,45 @@ static gboolean -_thunar_io_jobs_trash (ThunarJob *job, - GValueArray *param_values, - GError **error) -{ - GError *err = NULL; - GList *file_list; - GList *lp; +_thunar_io_jobs_trash (ThunarJob *job, + GArray *param_values, + GError **error) +{ + ThunarThumbnailCache *thumbnail_cache; + ThunarApplication *application; + GError *err = NULL; + GList *file_list; + GList *lp; _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); _thunar_return_val_if_fail (param_values != NULL, FALSE); - _thunar_return_val_if_fail (param_values->n_values == 1, FALSE); + _thunar_return_val_if_fail (param_values->len == 1, FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); - file_list = g_value_get_boxed (g_value_array_get_nth (param_values, 0)); + file_list = g_value_get_boxed (&g_array_index (param_values, GValue, 0)); if (exo_job_set_error_if_cancelled (EXO_JOB (job), error)) return FALSE; + /* take a reference on the thumbnail cache */ + application = thunar_application_get (); + thumbnail_cache = thunar_application_get_thumbnail_cache (application); + g_object_unref (application); + for (lp = file_list; err == NULL && lp != NULL; lp = lp->next) { _thunar_assert (G_IS_FILE (lp->data)); + + /* trash the file or folder */ g_file_trash (lp->data, exo_job_get_cancellable (EXO_JOB (job)), &err); + + /* update the thumbnail cache */ + thunar_thumbnail_cache_cleanup_file (thumbnail_cache, lp->data); } + /* release the thumbnail cache */ + g_object_unref (thumbnail_cache); + if (err != NULL) { g_propagate_error (error, err); @@ -791,9 +872,9 @@ static gboolean -_thunar_io_jobs_chown (ThunarJob *job, - GValueArray *param_values, - GError **error) +_thunar_io_jobs_chown (ThunarJob *job, + GArray *param_values, + GError **error) { ThunarJobResponse response; const gchar *message; @@ -807,13 +888,13 @@ _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); _thunar_return_val_if_fail (param_values != NULL, FALSE); - _thunar_return_val_if_fail (param_values->n_values == 4, FALSE); + _thunar_return_val_if_fail (param_values->len == 4, FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); - file_list = g_value_get_boxed (g_value_array_get_nth (param_values, 0)); - uid = g_value_get_int (g_value_array_get_nth (param_values, 1)); - gid = g_value_get_int (g_value_array_get_nth (param_values, 2)); - recursive = g_value_get_boolean (g_value_array_get_nth (param_values, 3)); + file_list = g_value_get_boxed (&g_array_index (param_values, GValue, 0)); + uid = g_value_get_int (&g_array_index (param_values, GValue, 1)); + gid = g_value_get_int (&g_array_index (param_values, GValue, 2)); + recursive = g_value_get_boolean (&g_array_index (param_values, GValue, 3)); _thunar_assert ((uid >= 0 || gid >= 0) && !(uid >= 0 && gid >= 0)); @@ -909,33 +990,28 @@ ThunarJob * -thunar_io_jobs_change_group (GFile *file, +thunar_io_jobs_change_group (GList *files, guint32 gid, gboolean recursive) { - GList file_list; + _thunar_return_val_if_fail (files != NULL, NULL); - _thunar_return_val_if_fail (G_IS_FILE (file), NULL); + /* files are released when the list if destroyed */ + g_list_foreach (files, (GFunc) g_object_ref, NULL); - file_list.data = g_object_ref (file); - file_list.next = NULL; - file_list.prev = NULL; - return thunar_simple_job_launch (_thunar_io_jobs_chown, 4, - THUNAR_TYPE_G_FILE_LIST, &file_list, + THUNAR_TYPE_G_FILE_LIST, files, G_TYPE_INT, -1, G_TYPE_INT, (gint) gid, G_TYPE_BOOLEAN, recursive); - - g_object_unref (file_list.data); } static gboolean -_thunar_io_jobs_chmod (ThunarJob *job, - GValueArray *param_values, - GError **error) +_thunar_io_jobs_chmod (ThunarJob *job, + GArray *param_values, + GError **error) { ThunarJobResponse response; GFileInfo *info; @@ -954,15 +1030,15 @@ _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); _thunar_return_val_if_fail (param_values != NULL, FALSE); - _thunar_return_val_if_fail (param_values->n_values == 6, FALSE); + _thunar_return_val_if_fail (param_values->len == 6, FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); - file_list = g_value_get_boxed (g_value_array_get_nth (param_values, 0)); - dir_mask = g_value_get_flags (g_value_array_get_nth (param_values, 1)); - dir_mode = g_value_get_flags (g_value_array_get_nth (param_values, 2)); - file_mask = g_value_get_flags (g_value_array_get_nth (param_values, 3)); - file_mode = g_value_get_flags (g_value_array_get_nth (param_values, 4)); - recursive = g_value_get_boolean (g_value_array_get_nth (param_values, 5)); + file_list = g_value_get_boxed (&g_array_index (param_values, GValue, 0)); + dir_mask = g_value_get_flags (&g_array_index (param_values, GValue, 1)); + dir_mode = g_value_get_flags (&g_array_index (param_values, GValue, 2)); + file_mask = g_value_get_flags (&g_array_index (param_values, GValue, 3)); + file_mode = g_value_get_flags (&g_array_index (param_values, GValue, 4)); + recursive = g_value_get_boolean (&g_array_index (param_values, GValue, 5)); /* collect the files for the chown operation */ if (recursive) @@ -1017,12 +1093,15 @@ * information) into account */ new_mode = ((old_mode & ~mask) | mode) & 07777; - /* try to change the file mode */ - g_file_set_attribute_uint32 (lp->data, - G_FILE_ATTRIBUTE_UNIX_MODE, new_mode, - G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, - exo_job_get_cancellable (EXO_JOB (job)), - &err); + if (old_mode != new_mode) + { + /* try to change the file mode */ + g_file_set_attribute_uint32 (lp->data, + G_FILE_ATTRIBUTE_UNIX_MODE, new_mode, + G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, + exo_job_get_cancellable (EXO_JOB (job)), + &err); + } /* check if there was a recoverable error */ if (err != NULL && !exo_job_is_cancelled (EXO_JOB (job))) @@ -1063,77 +1142,56 @@ ThunarJob * -thunar_io_jobs_change_mode (GFile *file, +thunar_io_jobs_change_mode (GList *files, ThunarFileMode dir_mask, ThunarFileMode dir_mode, ThunarFileMode file_mask, ThunarFileMode file_mode, gboolean recursive) { - GList file_list; + _thunar_return_val_if_fail (files != NULL, NULL); - _thunar_return_val_if_fail (G_IS_FILE (file), NULL); + /* files are released when the list if destroyed */ + g_list_foreach (files, (GFunc) g_object_ref, NULL); - file_list.data = g_object_ref (file); - file_list.next = NULL; - file_list.prev = NULL; - return thunar_simple_job_launch (_thunar_io_jobs_chmod, 6, - THUNAR_TYPE_G_FILE_LIST, &file_list, + THUNAR_TYPE_G_FILE_LIST, files, THUNAR_TYPE_FILE_MODE, dir_mask, THUNAR_TYPE_FILE_MODE, dir_mode, THUNAR_TYPE_FILE_MODE, file_mask, THUNAR_TYPE_FILE_MODE, file_mode, G_TYPE_BOOLEAN, recursive); - - g_object_unref (file_list.data); } static gboolean -_thunar_io_jobs_ls (ThunarJob *job, - GValueArray *param_values, - GError **error) -{ - ThunarFile *file; - GError *err = NULL; - GFile *directory; - GList *file_list = NULL; - GList *lp; - GList *path_list; +_thunar_io_jobs_ls (ThunarJob *job, + GArray *param_values, + GError **error) +{ + GError *err = NULL; + GFile *directory; + GList *file_list = NULL; _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); _thunar_return_val_if_fail (param_values != NULL, FALSE); - _thunar_return_val_if_fail (param_values->n_values == 1, FALSE); + _thunar_return_val_if_fail (param_values->len == 1, FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); if (exo_job_set_error_if_cancelled (EXO_JOB (job), error)) return FALSE; /* determine the directory to list */ - directory = g_value_get_object (g_value_array_get_nth (param_values, 0)); + directory = g_value_get_object (&g_array_index (param_values, GValue, 0)); /* make sure the object is valid */ _thunar_assert (G_IS_FILE (directory)); /* collect directory contents (non-recursively) */ - path_list = thunar_io_scan_directory (job, directory, + file_list = thunar_io_scan_directory (job, directory, G_FILE_QUERY_INFO_NONE, - FALSE, FALSE, &err); - - /* turn the GFile list into a ThunarFile list */ - for (lp = g_list_last (path_list); - err == NULL && !exo_job_is_cancelled (EXO_JOB (job)) && lp != NULL; - lp = lp->prev) - { - file = thunar_file_get (lp->data, &err); - if (G_LIKELY (file != NULL)) - file_list = g_list_prepend (file_list, file); - } - - /* free the GFile list */ - thunar_g_file_list_free (path_list); + FALSE, FALSE, TRUE, &err); /* abort on errors or cancellation */ if (err != NULL) @@ -1155,7 +1213,7 @@ { /* none of the handlers took over the file list, so it's up to us * to destroy it */ - thunar_file_list_free (file_list); + thunar_g_file_list_free (file_list); } } @@ -1201,9 +1259,9 @@ static gboolean -_thunar_io_jobs_rename (ThunarJob *job, - GValueArray *param_values, - GError **error) +_thunar_io_jobs_rename (ThunarJob *job, + GArray *param_values, + GError **error) { const gchar *display_name; ThunarFile *file; @@ -1211,17 +1269,17 @@ _thunar_return_val_if_fail (THUNAR_IS_JOB (job), FALSE); _thunar_return_val_if_fail (param_values != NULL, FALSE); - _thunar_return_val_if_fail (param_values->n_values == 2, FALSE); - _thunar_return_val_if_fail (G_VALUE_HOLDS (¶m_values->values[0], THUNAR_TYPE_FILE), FALSE); - _thunar_return_val_if_fail (G_VALUE_HOLDS_STRING (¶m_values->values[1]), FALSE); + _thunar_return_val_if_fail (param_values->len == 2, FALSE); + _thunar_return_val_if_fail (G_VALUE_HOLDS (&g_array_index (param_values, GValue, 0), THUNAR_TYPE_FILE), FALSE); + _thunar_return_val_if_fail (G_VALUE_HOLDS_STRING (&g_array_index (param_values, GValue, 1)), FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); if (exo_job_set_error_if_cancelled (EXO_JOB (job), error)) return FALSE; /* determine the file and display name */ - file = g_value_get_object (g_value_array_get_nth (param_values, 0)); - display_name = g_value_get_string (g_value_array_get_nth (param_values, 1)); + file = g_value_get_object (&g_array_index (param_values, GValue, 0)); + display_name = g_value_get_string (&g_array_index (param_values, GValue, 1)); /* try to rename the file */ if (thunar_file_rename (file, display_name, exo_job_get_cancellable (EXO_JOB (job)), TRUE, &err)) diff -Nru thunar-1.2.3/thunar/thunar-io-jobs.h thunar-1.6.10/thunar/thunar-io-jobs.h --- thunar-1.2.3/thunar/thunar-io-jobs.h 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-io-jobs.h 2015-05-22 13:25:36.000000000 +0000 @@ -26,7 +26,8 @@ G_BEGIN_DECLS -ThunarJob *thunar_io_jobs_create_files (GList *file_list) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; +ThunarJob *thunar_io_jobs_create_files (GList *file_list, + GFile *template_file) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; ThunarJob *thunar_io_jobs_make_directories (GList *file_list) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; ThunarJob *thunar_io_jobs_unlink_files (GList *file_list) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; ThunarJob *thunar_io_jobs_move_files (GList *source_file_list, @@ -38,10 +39,10 @@ ThunarJob *thunar_io_jobs_trash_files (GList *file_list) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; ThunarJob *thunar_io_jobs_restore_files (GList *source_file_list, GList *target_file_list) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; -ThunarJob *thunar_io_jobs_change_group (GFile *file, +ThunarJob *thunar_io_jobs_change_group (GList *files, guint32 gid, gboolean recursive) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; -ThunarJob *thunar_io_jobs_change_mode (GFile *file, +ThunarJob *thunar_io_jobs_change_mode (GList *files, ThunarFileMode dir_mask, ThunarFileMode dir_mode, ThunarFileMode file_mask, diff -Nru thunar-1.2.3/thunar/thunar-io-jobs-util.c thunar-1.6.10/thunar/thunar-io-jobs-util.c --- thunar-1.2.3/thunar/thunar-io-jobs-util.c 2011-01-02 23:16:30.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-io-jobs-util.c 2015-05-22 19:09:30.000000000 +0000 @@ -28,19 +28,7 @@ #include #include #include - - - -static const gchar *duplicate_names[4][2] = -{ - /* Copy/link name for n <= 3 */ - { N_("copy of %s"), N_("link to %s"), }, - { N_("another copy of %s"), N_("another link to %s"), }, - { N_("third copy of %s"), N_("third link to %s"), }, - - /* Fallback copy/link name for n >= 4 */ - { N_("%uth copy of %s"), N_("%uth link to %s"), }, -}; +#include @@ -54,14 +42,10 @@ * * Determines the #GFile for the next copy/link of/to @file. * - * Copies of a file called X are named: - * n = 1: "copy of X" - * n = 2: "another copy of X" - * n = 3: "third copy of X" - * n >= 4: "@nth copy of X" + * Copies of a file called X are named "X (copy 1)" * - * Links follow the same naming scheme, except that they use - * "link to X" instead of "copy of X". + * Links follow have a bit different scheme, since the first link + * is renamed to "link to #" and after that "link Y to X". * * If there are errors or the job was cancelled, the return value * will be %NULL and @error will be set. @@ -76,13 +60,14 @@ guint n, GError **error) { - GFileInfo *info; - GError *err = NULL; - GFile *duplicate_file = NULL; - GFile *parent_file = NULL; - gchar *display_name; - gint type_index; - gint name_index; + GFileInfo *info; + GError *err = NULL; + GFile *duplicate_file = NULL; + GFile *parent_file = NULL; + const gchar *old_display_name; + gchar *display_name; + gchar *file_basename; + gchar *dot = NULL; _thunar_return_val_if_fail (THUNAR_IS_JOB (job), NULL); _thunar_return_val_if_fail (G_IS_FILE (file), NULL); @@ -95,7 +80,8 @@ return NULL; /* query the source file info / display name */ - info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, + info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE "," + G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, exo_job_get_cancellable (EXO_JOB (job)), &err); @@ -106,22 +92,39 @@ return NULL; } - /* determine the type index (copy = 0, link = 1) */ - type_index = (copy ? 0 : 1); - - /* make sure the name index is not out of bounds */ - name_index = MIN (n-1, G_N_ELEMENTS (duplicate_names)-1); - - /* generate the display name for the nth copy/link of the source file */ - if (name_index < (gint) G_N_ELEMENTS (duplicate_names)-1) + old_display_name = g_file_info_get_display_name (info); + if (copy) { - display_name = g_strdup_printf (gettext (duplicate_names[name_index][type_index]), - g_file_info_get_display_name (info)); + /* get file extension if file is not a directory */ + if (g_file_info_get_file_type (info) != G_FILE_TYPE_DIRECTORY) + dot = thunar_util_str_get_extension (old_display_name); + + if (dot != NULL) + { + file_basename = g_strndup (old_display_name, dot - old_display_name); + /* I18N: put " (copy #) between basename and extension */ + display_name = g_strdup_printf (_("%s (copy %u)%s"), file_basename, n, dot); + g_free(file_basename); + } + else + { + /* I18N: put " (copy #)" after filename (for files without extension) */ + display_name = g_strdup_printf (_("%s (copy %u)"), old_display_name, n); + } } else { - display_name = g_strdup_printf (gettext (duplicate_names[name_index][type_index]), - n, g_file_info_get_display_name (info)); + /* create name for link */ + if (n == 1) + { + /* I18N: name for first link to basename */ + display_name = g_strdup_printf (_("link to %s"), old_display_name); + } + else + { + /* I18N: name for nth link to basename */ + display_name = g_strdup_printf (_("link %u to %s"), n, old_display_name); + } } /* create the GFile for the copy/link */ diff -Nru thunar-1.2.3/thunar/thunar-io-scan-directory.c thunar-1.6.10/thunar/thunar-io-scan-directory.c --- thunar-1.2.3/thunar/thunar-io-scan-directory.c 2011-01-24 18:56:00.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-io-scan-directory.c 2015-05-22 13:25:36.000000000 +0000 @@ -39,6 +39,7 @@ GFileQueryInfoFlags flags, gboolean recursively, gboolean unlinking, + gboolean return_thunar_files, GError **error) { GFileEnumerator *enumerator; @@ -48,6 +49,9 @@ GFile *child_file; GList *child_files = NULL; GList *files = NULL; + const gchar *namespace; + ThunarFile *thunar_file; + gboolean is_mounted; _thunar_return_val_if_fail (THUNAR_IS_JOB (job), NULL); _thunar_return_val_if_fail (G_IS_FILE (file), NULL); @@ -80,10 +84,15 @@ if (type != G_FILE_TYPE_DIRECTORY) return NULL; + /* determine the namespace */ + if (return_thunar_files) + namespace = THUNARX_FILE_INFO_NAMESPACE; + else + namespace = G_FILE_ATTRIBUTE_STANDARD_TYPE "," + G_FILE_ATTRIBUTE_STANDARD_NAME; + /* try to read from the direectory */ - enumerator = g_file_enumerate_children (file, - G_FILE_ATTRIBUTE_STANDARD_TYPE "," - G_FILE_ATTRIBUTE_STANDARD_NAME, + enumerator = g_file_enumerate_children (file, namespace, flags, exo_job_get_cancellable (EXO_JOB (job)), &err); @@ -93,36 +102,64 @@ g_propagate_error (error, err); return NULL; } - - /* query info of the first child */ - info = g_file_enumerator_next_file (enumerator, - exo_job_get_cancellable (EXO_JOB (job)), - &err); - /* iterate over children one by one as long as there's no error */ - while (info != NULL && err == NULL && !exo_job_is_cancelled (EXO_JOB (job))) + /* iterate over children one by one */ + while (!exo_job_is_cancelled (EXO_JOB (job))) { - /* create GFile for the child and prepend it to the file list */ + /* query info of the child */ + info = g_file_enumerator_next_file (enumerator, + exo_job_get_cancellable (EXO_JOB (job)), + &err); + + if (G_UNLIKELY (info == NULL)) + break; + + is_mounted = TRUE; + if (err != NULL) + { + if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_NOT_MOUNTED)) + { + is_mounted = FALSE; + g_clear_error (&err); + } + else + { + /* break on errors */ + break; + } + } + + /* create GFile for the child */ child_file = g_file_get_child (file, g_file_info_get_name (info)); - files = thunar_g_file_list_prepend (files, child_file); + + if (return_thunar_files) + { + /* Prepend the ThunarFile */ + thunar_file = thunar_file_get_with_info (child_file, info, !is_mounted); + files = thunar_g_file_list_prepend (files, thunar_file); + g_object_unref (G_OBJECT (thunar_file)); + } + else + { + /* Prepend the GFile */ + files = thunar_g_file_list_prepend (files, child_file); + } /* if the child is a directory and we need to recurse ... just do so */ - if (recursively && g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY) + if (recursively + && is_mounted + && g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY) { child_files = thunar_io_scan_directory (job, child_file, flags, recursively, - unlinking, &err); + unlinking, return_thunar_files, &err); /* prepend children to the file list to make sure they're * processed first (required for unlinking) */ files = g_list_concat (child_files, files); } - + g_object_unref (child_file); g_object_unref (info); - - info = g_file_enumerator_next_file (enumerator, - exo_job_get_cancellable (EXO_JOB (job)), - &err); } /* release the enumerator */ diff -Nru thunar-1.2.3/thunar/thunar-io-scan-directory.h thunar-1.6.10/thunar/thunar-io-scan-directory.h --- thunar-1.2.3/thunar/thunar-io-scan-directory.h 2011-01-24 18:56:00.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-io-scan-directory.h 2015-05-22 13:25:36.000000000 +0000 @@ -33,6 +33,7 @@ GFileQueryInfoFlags flags, gboolean recursively, gboolean unlinking, + gboolean return_thunar_files, GError **error); G_END_DECLS diff -Nru thunar-1.2.3/thunar/thunar-job.c thunar-1.6.10/thunar/thunar-job.c --- thunar-1.2.3/thunar/thunar-job.c 2011-01-30 17:26:49.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-job.c 2015-05-22 13:25:36.000000000 +0000 @@ -519,6 +519,34 @@ gboolean +thunar_job_ask_no_size (ThunarJob *job, + const gchar *format, + ...) +{ + ThunarJobResponse response; + va_list var_args; + + _thunar_return_val_if_fail (THUNAR_IS_JOB (job), THUNAR_JOB_RESPONSE_CANCEL); + _thunar_return_val_if_fail (format != NULL, THUNAR_JOB_RESPONSE_CANCEL); + + /* check if the user already cancelled the job */ + if (G_UNLIKELY (exo_job_is_cancelled (EXO_JOB (job)))) + return THUNAR_JOB_RESPONSE_CANCEL; + + /* ask the user what he wants to do */ + va_start (var_args, format); + response = _thunar_job_ask_valist (job, format, var_args, + _("There is not enough space on the destination. Try to remove files to make space."), + THUNAR_JOB_RESPONSE_FORCE + | THUNAR_JOB_RESPONSE_CANCEL); + va_end (var_args); + + return (response == THUNAR_JOB_RESPONSE_FORCE); +} + + + +gboolean thunar_job_files_ready (ThunarJob *job, GList *file_list) { @@ -536,11 +564,25 @@ thunar_job_new_files (ThunarJob *job, const GList *file_list) { + ThunarFile *file; + const GList *lp; + _thunar_return_if_fail (THUNAR_IS_JOB (job)); /* check if we have any files */ if (G_LIKELY (file_list != NULL)) { + /* schedule a reload of cached files when idle */ + for (lp = file_list; lp != NULL; lp = lp->next) + { + file = thunar_file_cache_lookup (lp->data); + if (file != NULL) + { + thunar_file_reload_idle (file); + g_object_unref (file); + } + } + /* emit the "new-files" signal */ exo_job_emit (EXO_JOB (job), job_signals[NEW_FILES], 0, file_list); } diff -Nru thunar-1.2.3/thunar/thunar-job.h thunar-1.6.10/thunar/thunar-job.h --- thunar-1.2.3/thunar/thunar-job.h 2011-01-30 17:24:43.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-job.h 2015-05-22 13:25:36.000000000 +0000 @@ -84,6 +84,9 @@ ThunarJobResponse thunar_job_ask_skip (ThunarJob *job, const gchar *format, ...); +gboolean thunar_job_ask_no_size (ThunarJob *job, + const gchar *format, + ...); gboolean thunar_job_files_ready (ThunarJob *job, GList *file_list); void thunar_job_new_files (ThunarJob *job, diff -Nru thunar-1.2.3/thunar/thunar-launcher.c thunar-1.6.10/thunar/thunar-launcher.c --- thunar-1.2.3/thunar/thunar-launcher.c 2010-10-24 21:04:46.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-launcher.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -41,6 +41,8 @@ #include #include #include +#include +#include @@ -57,6 +59,7 @@ PROP_SELECTED_FILES, PROP_UI_MANAGER, PROP_WIDGET, + N_PROPERTIES }; @@ -98,9 +101,11 @@ ThunarLauncher *launcher); static void thunar_launcher_action_open_in_new_window (GtkAction *action, ThunarLauncher *launcher); +static void thunar_launcher_action_open_in_new_tab (GtkAction *action, + ThunarLauncher *launcher); static void thunar_launcher_action_sendto_desktop (GtkAction *action, ThunarLauncher *launcher); -static void thunar_launcher_action_sendto_volume (GtkAction *action, +static void thunar_launcher_action_sendto_device (GtkAction *action, ThunarLauncher *launcher); static void thunar_launcher_widget_destroyed (ThunarLauncher *launcher, GtkWidget *widget); @@ -116,7 +121,7 @@ gpointer user_data); static ThunarLauncherPokeData *thunar_launcher_poke_data_new (GList *files); static void thunar_launcher_poke_data_free (ThunarLauncherPokeData *data); - +static GtkWidget *thunar_launcher_get_widget (const ThunarLauncher *launcher); struct _ThunarLauncherClass @@ -131,6 +136,8 @@ ThunarFile *current_directory; GList *selected_files; + guint launcher_idle_id; + GtkIconFactory *icon_factory; GtkActionGroup *action_group; GtkUIManager *ui_manager; @@ -140,13 +147,14 @@ GtkAction *action_open; GtkAction *action_open_with_other; GtkAction *action_open_in_new_window; + GtkAction *action_open_in_new_tab; GtkAction *action_open_with_other_in_menu; GtkWidget *widget; - GVolumeMonitor *volume_monitor; + ThunarDeviceMonitor *device_monitor; ThunarSendtoModel *sendto_model; - gint sendto_idle_id; + guint sendto_idle_id; }; struct _ThunarLauncherMountData @@ -159,6 +167,7 @@ { GList *files; GList *resolved_files; + guint directories_in_tabs : 1; }; @@ -166,7 +175,8 @@ static const GtkActionEntry action_entries[] = { { "open", GTK_STOCK_OPEN, N_ ("_Open"), "O", NULL, G_CALLBACK (thunar_launcher_action_open), }, - { "open-in-new-window", NULL, N_ ("Open in New Window"), "O", N_ ("Open the selected directory in a new window"), G_CALLBACK (thunar_launcher_action_open_in_new_window), }, + { "open-in-new-tab", NULL, N_ ("Open in New _Tab"), "P", NULL, G_CALLBACK (thunar_launcher_action_open_in_new_tab), }, + { "open-in-new-window", NULL, N_ ("Open in New _Window"), "O", NULL, G_CALLBACK (thunar_launcher_action_open_in_new_window), }, { "open-with-other", NULL, N_ ("Open With Other _Application..."), NULL, N_ ("Choose another application with which to open the selected file"), G_CALLBACK (thunar_launcher_action_open_with_other), }, { "open-with-menu", NULL, N_ ("Open With"), NULL, NULL, NULL, }, { "open-with-other-in-menu", NULL, N_ ("Open With Other _Application..."), NULL, N_ ("Choose another application with which to open the selected file"), G_CALLBACK (thunar_launcher_action_open_with_other), }, @@ -177,6 +187,10 @@ +static GParamSpec *launcher_props[N_PROPERTIES] = { NULL, }; + + + G_DEFINE_TYPE_WITH_CODE (ThunarLauncher, thunar_launcher, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (THUNAR_TYPE_BROWSER, NULL) G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, thunar_launcher_navigator_init) @@ -188,35 +202,47 @@ thunar_launcher_class_init (ThunarLauncherClass *klass) { GObjectClass *gobject_class; + gpointer g_iface; /* determine the "thunar-launcher-handler" quark */ thunar_launcher_handler_quark = g_quark_from_static_string ("thunar-launcher-handler"); - + gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_launcher_dispose; gobject_class->finalize = thunar_launcher_finalize; gobject_class->get_property = thunar_launcher_get_property; gobject_class->set_property = thunar_launcher_set_property; - /* Override ThunarNavigator's properties */ - g_object_class_override_property (gobject_class, PROP_CURRENT_DIRECTORY, "current-directory"); - - /* Override ThunarComponent's properties */ - g_object_class_override_property (gobject_class, PROP_SELECTED_FILES, "selected-files"); - g_object_class_override_property (gobject_class, PROP_UI_MANAGER, "ui-manager"); - /** * ThunarLauncher:widget: * * The #GtkWidget with which this launcher is associated. **/ - g_object_class_install_property (gobject_class, - PROP_WIDGET, - g_param_spec_object ("widget", - "widget", - "widget", - GTK_TYPE_WIDGET, - EXO_PARAM_READWRITE)); + launcher_props[PROP_WIDGET] = + g_param_spec_object ("widget", + "widget", + "widget", + GTK_TYPE_WIDGET, + EXO_PARAM_READWRITE); + + /* Override ThunarNavigator's properties */ + g_iface = g_type_default_interface_peek (THUNAR_TYPE_NAVIGATOR); + launcher_props[PROP_CURRENT_DIRECTORY] = + g_param_spec_override ("current-directory", + g_object_interface_find_property (g_iface, "current-directory")); + + /* Override ThunarComponent's properties */ + g_iface = g_type_default_interface_peek (THUNAR_TYPE_COMPONENT); + launcher_props[PROP_SELECTED_FILES] = + g_param_spec_override ("selected-files", + g_object_interface_find_property (g_iface, "selected-files")); + + launcher_props[PROP_UI_MANAGER] = + g_param_spec_override ("ui-manager", + g_object_interface_find_property (g_iface, "ui-manager")); + + /* install properties */ + g_object_class_install_properties (gobject_class, N_PROPERTIES, launcher_props); } @@ -253,6 +279,7 @@ launcher->action_open = gtk_action_group_get_action (launcher->action_group, "open"); launcher->action_open_with_other = gtk_action_group_get_action (launcher->action_group, "open-with-other"); launcher->action_open_in_new_window = gtk_action_group_get_action (launcher->action_group, "open-in-new-window"); + launcher->action_open_in_new_tab = gtk_action_group_get_action (launcher->action_group, "open-in-new-tab"); launcher->action_open_with_other_in_menu = gtk_action_group_get_action (launcher->action_group, "open-with-other-in-menu"); /* initialize and add our custom icon factory for the application/action icons */ @@ -262,10 +289,10 @@ /* setup the "Send To" support */ launcher->sendto_model = thunar_sendto_model_get_default (); - /* the "Send To" menu also displays removable devices from the volume monitor */ - launcher->volume_monitor = g_volume_monitor_get (); - g_signal_connect_swapped (launcher->volume_monitor, "volume-added", G_CALLBACK (thunar_launcher_update), launcher); - g_signal_connect_swapped (launcher->volume_monitor, "volume-removed", G_CALLBACK (thunar_launcher_update), launcher); + /* the "Send To" menu also displays removable devices from the device monitor */ + launcher->device_monitor = thunar_device_monitor_get (); + g_signal_connect_swapped (launcher->device_monitor, "device-added", G_CALLBACK (thunar_launcher_update), launcher); + g_signal_connect_swapped (launcher->device_monitor, "device-removed", G_CALLBACK (thunar_launcher_update), launcher); } @@ -281,7 +308,7 @@ thunar_launcher_set_widget (THUNAR_LAUNCHER (launcher), NULL); /* disconnect from the currently selected files */ - thunar_file_list_free (launcher->selected_files); + thunar_g_file_list_free (launcher->selected_files); launcher->selected_files = NULL; (*G_OBJECT_CLASS (thunar_launcher_parent_class)->dispose) (object); @@ -298,6 +325,10 @@ if (G_UNLIKELY (launcher->sendto_idle_id != 0)) g_source_remove (launcher->sendto_idle_id); + /* be sure to cancel the launcher idle source */ + if (G_UNLIKELY (launcher->launcher_idle_id != 0)) + g_source_remove (launcher->launcher_idle_id); + /* drop our custom icon factory for the application/action icons */ gtk_icon_factory_remove_default (launcher->icon_factory); g_object_unref (launcher->icon_factory); @@ -305,9 +336,9 @@ /* release the reference on the action group */ g_object_unref (launcher->action_group); - /* disconnect from the volume monitor used for the "Send To" menu */ - g_signal_handlers_disconnect_by_func (launcher->volume_monitor, thunar_launcher_update, launcher); - g_object_unref (launcher->volume_monitor); + /* disconnect from the device monitor used for the "Send To" menu */ + g_signal_handlers_disconnect_by_func (launcher->device_monitor, thunar_launcher_update, launcher); + g_object_unref (launcher->device_monitor); /* release the reference on the sendto model */ g_object_unref (launcher->sendto_model); @@ -407,7 +438,7 @@ g_object_ref (G_OBJECT (current_directory)); /* notify listeners */ - g_object_notify (G_OBJECT (launcher), "current-directory"); + g_object_notify_by_pspec (G_OBJECT (launcher), launcher_props[PROP_CURRENT_DIRECTORY]); } @@ -437,16 +468,16 @@ if (G_UNLIKELY (np != NULL || op != NULL)) { /* disconnect from the previously selected files */ - thunar_file_list_free (launcher->selected_files); + thunar_g_file_list_free (launcher->selected_files); /* connect to the new selected files list */ - launcher->selected_files = thunar_file_list_copy (selected_files); + launcher->selected_files = thunar_g_file_list_copy (selected_files); /* update the launcher actions */ thunar_launcher_update (launcher); /* notify listeners */ - g_object_notify (G_OBJECT (launcher), "selected-files"); + g_object_notify_by_pspec (G_OBJECT (launcher), launcher_props[PROP_SELECTED_FILES]); } } @@ -512,7 +543,7 @@ } /* notify listeners */ - g_object_notify (G_OBJECT (launcher), "ui-manager"); + g_object_notify_by_pspec (G_OBJECT (launcher), launcher_props[PROP_UI_MANAGER]); } @@ -521,20 +552,16 @@ thunar_launcher_execute_files (ThunarLauncher *launcher, GList *files) { - GdkScreen *screen; - GError *error = NULL; - GFile *working_directory; - GList *lp; - - /* determine the screen on which to run the file(s) */ - screen = (launcher->widget != NULL) ? gtk_widget_get_screen (launcher->widget) : NULL; + GError *error = NULL; + GFile *working_directory; + GList *lp; /* execute all selected files */ for (lp = files; lp != NULL; lp = lp->next) { working_directory = thunar_file_get_file (launcher->current_directory); - if (!thunar_file_execute (lp->data, working_directory, screen, NULL, &error)) + if (!thunar_file_execute (lp->data, working_directory, launcher->widget, NULL, NULL, &error)) { /* display an error message to the user */ thunar_dialogs_show_error (launcher->widget, error, _("Failed to execute file \"%s\""), thunar_file_get_display_name (lp->data)); @@ -546,17 +573,28 @@ +static guint +thunar_launcher_g_app_info_hash (gconstpointer app_info) +{ + return 0; +} + + + static void thunar_launcher_open_files (ThunarLauncher *launcher, GList *files) { - GAppInfo *app_info; GHashTable *applications; + GAppInfo *app_info; GList *file_list; GList *lp; - /* allocate a hash table to associate applications to URIs */ - applications = g_hash_table_new_full (g_direct_hash, + /* allocate a hash table to associate applications to URIs. since GIO allocates + * new GAppInfo objects every time, g_direct_hash does not work. we therefor use + * a fake hash function to always hit the collision list of the hash table and + * avoid storing multiple equal GAppInfos by means of g_app_info_equal(). */ + applications = g_hash_table_new_full (thunar_launcher_g_app_info_hash, (GEqualFunc) g_app_info_equal, (GDestroyNotify) g_object_unref, (GDestroyNotify) thunar_g_file_list_free); @@ -619,6 +657,8 @@ /* create launch context */ context = gdk_app_launch_context_new (); gdk_app_launch_context_set_screen (context, screen); + gdk_app_launch_context_set_timestamp (context, gtk_get_current_event_time ()); + gdk_app_launch_context_set_icon (context, g_app_info_get_icon (app_info)); /* determine the working directory */ if (launcher->current_directory != NULL) @@ -713,31 +753,31 @@ -static void -thunar_launcher_update (ThunarLauncher *launcher) +static gboolean +thunar_launcher_update_idle (gpointer data) { - const gchar *context_menu_path; - const gchar *file_menu_path; - GtkWidget *menu_item; - GtkWidget *image; - GtkAction *action; - gboolean default_is_open_with_other = FALSE; - GList *applications; - GList *actions; - GList *lp; - gchar *tooltip; - gchar *label; - gchar *name; - gchar *ui_path; - gint n_directories = 0; - gint n_executables = 0; - gint n_regulars = 0; - gint n_selected_files = 0; - gint n; + ThunarLauncher *launcher = THUNAR_LAUNCHER (data); + const gchar *context_menu_path; + const gchar *file_menu_path; + GtkAction *action; + gboolean default_is_open_with_other = FALSE; + GList *applications; + GList *actions; + GList *lp; + gchar *tooltip; + gchar *label; + gchar *name; + gint n_directories = 0; + gint n_executables = 0; + gint n_regulars = 0; + gint n_selected_files = 0; + gint n; /* verify that we're connected to an UI manager */ if (G_UNLIKELY (launcher->ui_manager == NULL)) - return; + return FALSE; + + GDK_THREADS_ENTER (); /* drop the previous addons ui controls from the UI manager */ if (G_LIKELY (launcher->ui_addons_merge_id != 0)) @@ -753,8 +793,8 @@ /* determine the number of files/directories/executables */ for (lp = launcher->selected_files; lp != NULL; lp = lp->next, ++n_selected_files) { - if (thunar_file_is_directory (lp->data) - || thunar_file_is_shortcut (lp->data) + if (thunar_file_is_directory (lp->data) + || thunar_file_is_shortcut (lp->data) || thunar_file_is_mountable (lp->data)) { ++n_directories; @@ -772,47 +812,82 @@ { /** CASE 1: nothing selected or atleast one directory in the selection ** - ** - "Open" and "Open in n New Windows" actions + ** - "Open", "Open in n New Windows" and "Open in n New Tabs" actions **/ - /* the "Open" action is "Open in n New Windows" if we have two or more directories */ - if (G_UNLIKELY (n_selected_files == n_directories && n_directories > 1)) + /* Prepare "Open" label and icon */ + gtk_action_set_label (launcher->action_open, _("_Open")); + gtk_action_set_stock_id (launcher->action_open, GTK_STOCK_OPEN); + + if (n_selected_files == n_directories && n_directories >= 1) { - /* turn "Open" into "Open in n New Windows" */ - label = g_strdup_printf (ngettext ("Open in %d New Window", "Open in %d New Windows", n_directories), n_directories); - tooltip = g_strdup_printf (ngettext ("Open the selected directory in %d new window", - "Open the selected directories in %d new windows", - n_directories), n_directories); - g_object_set (G_OBJECT (launcher->action_open), - "label", label, - "sensitive", TRUE, - "tooltip", tooltip, - NULL); - g_free (tooltip); - g_free (label); + if (n_directories > 1) + { + /* turn "Open New Window" into "Open in n New Windows" */ + label = g_strdup_printf (ngettext ("Open in %d New _Window", "Open in %d New _Windows", n_directories), n_directories); + tooltip = g_strdup_printf (ngettext ("Open the selected directory in %d new window", + "Open the selected directories in %d new windows", + n_directories), n_directories); + g_object_set (G_OBJECT (launcher->action_open_in_new_window), + "label", label, + "tooltip", tooltip, + NULL); + g_free (tooltip); + g_free (label); + + /* turn "Open in New Tab" into "Open in x New Tabs" */ + label = g_strdup_printf (ngettext ("Open in %d New _Tab", "Open in %d New _Tabs", n_directories), n_directories); + tooltip = g_strdup_printf (ngettext ("Open the selected directory in %d new tab", + "Open the selected directories in %d new tabs", + n_directories), n_directories); + g_object_set (G_OBJECT (launcher->action_open_in_new_tab), + "label", label, + "tooltip", tooltip, + NULL); + g_free (tooltip); + g_free (label); + } + else if (n_directories == 1) + { + /* prepare "Open in New Window" */ + g_object_set (G_OBJECT (launcher->action_open_in_new_window), + "label", _("Open in New _Window"), + "tooltip", _("Open the selected directory in a new window"), + NULL); + + /* prepare "Open in New Tab" */ + g_object_set (G_OBJECT (launcher->action_open_in_new_tab), + "label", _("Open in New _Tab"), + "tooltip", _("Open the selected directory in a new tab"), + NULL); + + /* set tooltip that makes sence */ + gtk_action_set_tooltip (launcher->action_open, _("Open the selected directory")); + } + + /* Show Window/Tab action if there are only directories selected */ + gtk_action_set_visible (launcher->action_open_in_new_window, n_directories > 0); + gtk_action_set_visible (launcher->action_open_in_new_tab, n_directories > 0); + + /* Show open if there is exactly 1 directory selected */ + gtk_action_set_visible (launcher->action_open, n_directories == 1); + gtk_action_set_sensitive (launcher->action_open, TRUE); } else { - /* the "Open" action is sensitive if we have atleast one selected file, - * the label is set to "Open in New Window" if we're not in a regular - * view (i.e. current_directory is not set) and have only one directory - * selected to reflect that this action will open a new window. - */ - g_object_set (G_OBJECT (launcher->action_open), - "label", (launcher->current_directory == NULL && n_directories == n_selected_files && n_directories == 1) - ? _("_Open in New Window") - : _("_Open"), - "sensitive", (n_selected_files > 0), - "tooltip", ngettext ("Open the selected file", "Open the selected files", n_selected_files), - NULL); + /* Hide New Window and Tab action */ + gtk_action_set_visible (launcher->action_open_in_new_window, FALSE); + gtk_action_set_visible (launcher->action_open_in_new_tab, FALSE); + + /* Normal open action, because there are also directories included */ + gtk_action_set_visible (launcher->action_open, TRUE); + gtk_action_set_sensitive (launcher->action_open, n_selected_files > 0); + gtk_action_set_tooltip (launcher->action_open, + ngettext ("Open the selected file", + "Open the selected files", + n_selected_files)); } - /* the "Open in New Window" action is visible if we have exactly one directory */ - g_object_set (G_OBJECT (launcher->action_open_in_new_window), - "sensitive", (n_directories == 1), - "visible", (n_directories == n_selected_files && n_selected_files <= 1 && launcher->current_directory != NULL), - NULL); - /* hide the "Open With Other Application" actions */ gtk_action_set_visible (launcher->action_open_with_other, FALSE); gtk_action_set_visible (launcher->action_open_with_other_in_menu, FALSE); @@ -838,8 +913,9 @@ /* make the "Open" action sensitive */ gtk_action_set_sensitive (launcher->action_open, TRUE); - /* hide the "Open in n New Windows" action */ + /* hide the "Open in n New Windows/Tabs" action */ gtk_action_set_visible (launcher->action_open_in_new_window, FALSE); + gtk_action_set_visible (launcher->action_open_in_new_tab, FALSE); /* determine the set of applications that work for all selected files */ applications = thunar_file_list_get_applications (launcher->selected_files); @@ -853,6 +929,7 @@ /* turn the "Open" action into "Execute" */ g_object_set (G_OBJECT (launcher->action_open), "label", _("_Execute"), + "stock-id", GTK_STOCK_EXECUTE, "tooltip", ngettext ("Execute the selected file", "Execute the selected files", n_selected_files), NULL); } @@ -870,14 +947,18 @@ g_free (tooltip); g_free (label); + /* load default application icon */ + gtk_action_set_stock_id (launcher->action_open, NULL); + gtk_action_set_gicon (launcher->action_open, g_app_info_get_icon (applications->data)); + /* remember the default application for the "Open" action */ g_object_set_qdata_full (G_OBJECT (launcher->action_open), thunar_launcher_handler_quark, applications->data, g_object_unref); - /* FIXME Add the desktop actions for this application. + /* FIXME Add the desktop actions for this application. * Unfortunately this is not supported by GIO directly */ /* drop the default application from the list */ - applications = g_list_remove (applications, applications->data); + applications = g_list_delete_link (applications, applications); } else if (G_UNLIKELY (n_selected_files == 1)) { @@ -940,7 +1021,7 @@ /* process all applications and determine the desktop actions */ for (lp = applications, n = 0; lp != NULL; lp = lp->next, ++n) { - /* FIXME Determine the desktop actions for this application. + /* FIXME Determine the desktop actions for this application. * Unfortunately this is not supported by GIO directly. */ /* generate a unique label, unique id and tooltip for the application's action */ @@ -952,6 +1033,7 @@ /* allocate a new action for the application */ action = gtk_action_new (name, label, tooltip, NULL); + gtk_action_set_gicon (action, g_app_info_get_icon (lp->data)); gtk_action_group_add_action (launcher->action_group, action); g_object_set_qdata_full (G_OBJECT (action), thunar_launcher_handler_quark, lp->data, g_object_unref); g_signal_connect (G_OBJECT (action), "activate", G_CALLBACK (thunar_launcher_action_open), launcher); @@ -963,23 +1045,6 @@ GTK_UI_MANAGER_MENUITEM, FALSE); g_object_unref (G_OBJECT (action)); - /* FIXME There's no API for creating GtkActions using GIcon in GTK+ 2.14. A "gicon" property - * has been added to GtkAction in GTK+ 2.16 though. For now, this hack will have to do: */ - - ui_path = g_strconcat (file_menu_path, "/", name, NULL); - menu_item = gtk_ui_manager_get_widget (launcher->ui_manager, ui_path); - image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (menu_item)); - gtk_image_set_from_gicon (GTK_IMAGE (image), g_app_info_get_icon (lp->data), GTK_ICON_SIZE_MENU); - g_free (ui_path); - - ui_path = g_strconcat (context_menu_path, "/", name, NULL); - menu_item = gtk_ui_manager_get_widget (launcher->ui_manager, ui_path); - image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (menu_item)); - gtk_image_set_from_gicon (GTK_IMAGE (image), g_app_info_get_icon (lp->data), GTK_ICON_SIZE_MENU); - g_free (ui_path); - - /* FIXME End of the hack */ - /* cleanup */ g_free (tooltip); g_free (label); @@ -990,7 +1055,7 @@ g_list_free (applications); } - /* FIXME Add desktop actions here. Unfortunately they are not supported by + /* FIXME Add desktop actions here. Unfortunately they are not supported by * GIO, so we'll have to roll our own thing here */ } @@ -1000,6 +1065,98 @@ launcher->sendto_idle_id = g_idle_add_full (G_PRIORITY_LOW, thunar_launcher_sendto_idle, launcher, thunar_launcher_sendto_idle_destroy); } + + GDK_THREADS_LEAVE (); + + return FALSE; +} + + + +static void +thunar_launcher_update_idle_destroy (gpointer data) +{ + THUNAR_LAUNCHER (data)->launcher_idle_id = 0; +} + + + +static void +thunar_launcher_update_check (ThunarLauncher *launcher, + GtkWidget *menu) +{ + _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher)); + _thunar_return_if_fail (menu == NULL || GTK_IS_MENU (menu)); + + /* check if the menu is in a dirty state */ + if (launcher->launcher_idle_id != 0) + { + /* stop the timeout */ + g_source_remove (launcher->launcher_idle_id); + + /* force an update */ + thunar_launcher_update_idle (launcher); + + /* ui update */ + gtk_ui_manager_ensure_update (launcher->ui_manager); + + /* make sure the menu is positioned correctly after the + * interface update */ + if (menu != NULL) + gtk_menu_reposition (GTK_MENU (menu)); + } +} + + + +static void +thunar_launcher_update (ThunarLauncher *launcher) +{ + GSList *proxies, *lp; + GtkWidget *menu; + gboolean instant_update; + + _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher)); + + proxies = gtk_action_get_proxies (launcher->action_open); + instant_update = (proxies == NULL); + for (lp = proxies; lp != NULL; lp = lp->next) + { + menu = gtk_widget_get_ancestor (lp->data, GTK_TYPE_MENU); + if (G_LIKELY (menu != NULL)) + { + /* instant update if a menu is visible */ + if (gtk_widget_get_visible (menu)) + instant_update = TRUE; + + /* watch menu changes */ + g_signal_handlers_disconnect_by_func (G_OBJECT (menu), G_CALLBACK (thunar_launcher_update_check), launcher); + g_signal_connect_swapped (G_OBJECT (menu), "show", G_CALLBACK (thunar_launcher_update_check), launcher); + } + } + + /* stop pending timeouts */ + if (launcher->launcher_idle_id != 0) + g_source_remove (launcher->launcher_idle_id); + + if (instant_update) + { + /* directly update without interruption */ + thunar_launcher_update_idle (launcher); + } + else + { + /* assume all actions are working */ + gtk_action_set_sensitive (launcher->action_open, TRUE); + gtk_action_set_visible (launcher->action_open_with_other, TRUE); + gtk_action_set_visible (launcher->action_open_in_new_window, TRUE); + gtk_action_set_visible (launcher->action_open_in_new_tab, TRUE); + gtk_action_set_visible (launcher->action_open_with_other_in_menu, TRUE); + + /* delayed update */ + launcher->launcher_idle_id = g_timeout_add_seconds_full (G_PRIORITY_LOW, 5, thunar_launcher_update_idle, + launcher, thunar_launcher_update_idle_destroy); + } } @@ -1012,7 +1169,7 @@ _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher)); _thunar_return_if_fail (THUNAR_IS_FILE (file)); - + files.data = file; files.next = NULL; files.prev = NULL; @@ -1062,7 +1219,7 @@ else { thunar_dialogs_show_error (THUNAR_LAUNCHER (browser)->widget, error, - _("Failed to open \"%s\""), + _("Failed to open \"%s\""), thunar_file_get_display_name (file)); } } @@ -1078,7 +1235,7 @@ _thunar_return_if_fail (poke_data->files != NULL); thunar_browser_poke_file (THUNAR_BROWSER (launcher), poke_data->files->data, - launcher->widget, thunar_launcher_poke_files_finish, + launcher->widget, thunar_launcher_poke_files_finish, poke_data); } @@ -1101,12 +1258,12 @@ _thunar_return_if_fail (THUNAR_IS_FILE (file)); _thunar_return_if_fail (poke_data != NULL); _thunar_return_if_fail (poke_data->files != NULL); - + /* check if poking succeeded */ if (error == NULL) { /* add the resolved file to the list of file to be opened/executed later */ - poke_data->resolved_files = g_list_prepend (poke_data->resolved_files, + poke_data->resolved_files = g_list_prepend (poke_data->resolved_files, g_object_ref (target_file)); } @@ -1137,8 +1294,17 @@ /* check if we have any directories to process */ if (G_LIKELY (directories != NULL)) { - /* open new windows for all directories */ - thunar_launcher_open_windows (THUNAR_LAUNCHER (browser), directories); + if (poke_data->directories_in_tabs) + { + /* open new tabs */ + for (lp = directories; lp != NULL; lp = lp->next) + thunar_navigator_open_new_tab (THUNAR_NAVIGATOR (browser), lp->data); + } + else + { + /* open new windows for all directories */ + thunar_launcher_open_windows (THUNAR_LAUNCHER (browser), directories); + } g_list_free (directories); } @@ -1184,6 +1350,11 @@ _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher)); + /* force update if still dirty */ + thunar_launcher_update_check (launcher, NULL); + if (!gtk_action_get_sensitive (action)) + return; + /* check if we have a mime handler associated with the action */ app_info = g_object_get_qdata (G_OBJECT (action), thunar_launcher_handler_quark); if (G_LIKELY (app_info != NULL)) @@ -1193,19 +1364,22 @@ thunar_launcher_open_paths (app_info, selected_paths, launcher); thunar_g_file_list_free (selected_paths); } - else if (g_list_length (launcher->selected_files) == 1) + else if (launcher->selected_files != NULL) { - thunar_browser_poke_file (THUNAR_BROWSER (launcher), - launcher->selected_files->data, launcher->widget, - thunar_launcher_poke_file_finish, NULL); - } - else - { - /* resolve files one after another until none is left. Open/execute - * the resolved files/directories when all this is done at a later - * stage */ - poke_data = thunar_launcher_poke_data_new (launcher->selected_files); - thunar_launcher_poke_files (launcher, poke_data); + if (launcher->selected_files->next == NULL) + { + thunar_browser_poke_file (THUNAR_BROWSER (launcher), + launcher->selected_files->data, launcher->widget, + thunar_launcher_poke_file_finish, NULL); + } + else + { + /* resolve files one after another until none is left. Open/execute + * the resolved files/directories when all this is done at a later + * stage */ + poke_data = thunar_launcher_poke_data_new (launcher->selected_files); + thunar_launcher_poke_files (launcher, poke_data); + } } } @@ -1218,6 +1392,11 @@ _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher)); + /* force update if still dirty */ + thunar_launcher_update_check (launcher, NULL); + if (!gtk_action_get_visible (action)) + return; + /* verify that we have atleast one selected file */ if (G_LIKELY (launcher->selected_files != NULL)) { @@ -1232,11 +1411,41 @@ thunar_launcher_action_open_in_new_window (GtkAction *action, ThunarLauncher *launcher) { + ThunarLauncherPokeData *poke_data; + _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher)); + /* force update if still dirty */ + thunar_launcher_update_check (launcher, NULL); + if (!gtk_action_get_visible (action)) + return; + /* open the selected directories in new windows */ - thunar_launcher_open_windows (launcher, launcher->selected_files); + poke_data = thunar_launcher_poke_data_new (launcher->selected_files); + thunar_launcher_poke_files (launcher, poke_data); +} + + + +static void +thunar_launcher_action_open_in_new_tab (GtkAction *action, + ThunarLauncher *launcher) +{ + ThunarLauncherPokeData *poke_data; + + _thunar_return_if_fail (GTK_IS_ACTION (action)); + _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher)); + + /* force update if still dirty */ + thunar_launcher_update_check (launcher, NULL); + if (!gtk_action_get_visible (action)) + return; + + /* open all selected directories in a new tab */ + poke_data = thunar_launcher_poke_data_new (launcher->selected_files); + poke_data->directories_in_tabs = TRUE; + thunar_launcher_poke_files (launcher, poke_data); } @@ -1308,8 +1517,9 @@ ThunarLauncherPokeData *data; data = g_slice_new0 (ThunarLauncherPokeData); - data->files = thunar_file_list_copy (files); + data->files = thunar_g_file_list_copy (files); data->resolved_files = NULL; + data->directories_in_tabs = FALSE; return data; } @@ -1321,74 +1531,64 @@ { _thunar_return_if_fail (data != NULL); - thunar_file_list_free (data->files); - thunar_file_list_free (data->resolved_files); + thunar_g_file_list_free (data->files); + thunar_g_file_list_free (data->resolved_files); g_slice_free (ThunarLauncherPokeData, data); } static void -thunar_launcher_sendto_volume (ThunarLauncher *launcher, - GVolume *volume, +thunar_launcher_sendto_device (ThunarLauncher *launcher, + ThunarDevice *device, GList *files) { ThunarApplication *application; - GMount *mount; GFile *mount_point; _thunar_return_if_fail (THUNAR_IS_LAUNCHER (launcher)); - _thunar_return_if_fail (G_IS_VOLUME (volume)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); - if (!thunar_g_volume_is_mounted (volume)) + if (!thunar_device_is_mounted (device)) return; - - mount = g_volume_get_mount (volume); - if (mount != NULL) - { - mount_point = g_mount_get_root (mount); - - /* copy the files onto the specified volume */ + + mount_point = thunar_device_get_root (device); + if (mount_point != NULL) + { + /* copy the files onto the specified device */ application = thunar_application_get (); thunar_application_copy_into (application, launcher->widget, files, mount_point, NULL); g_object_unref (application); g_object_unref (mount_point); - g_object_unref (mount); } } static void -thunar_launcher_sendto_mount_finish (GObject *object, - GAsyncResult *result, +thunar_launcher_sendto_mount_finish (ThunarDevice *device, + const GError *error, gpointer user_data) { ThunarLauncherMountData *data = user_data; - GVolume *volume = G_VOLUME (object); - GError *error = NULL; - gchar *volume_name; + gchar *device_name; - _thunar_return_if_fail (G_IS_VOLUME (object)); - _thunar_return_if_fail (G_IS_ASYNC_RESULT (result)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (user_data != NULL); _thunar_return_if_fail (THUNAR_IS_LAUNCHER (data->launcher)); - if (!g_volume_mount_finish (volume, result, &error)) + if (error != NULL) { - /* tell the user that we were unable to mount the volume, which is + /* tell the user that we were unable to mount the device, which is * required to send files to it */ - volume_name = g_volume_get_name (volume); - thunar_dialogs_show_error (data->launcher->widget, error, _("Failed to mount \"%s\""), - volume_name); - g_free (volume_name); - - g_error_free (error); + device_name = thunar_device_get_name (device); + thunar_dialogs_show_error (data->launcher->widget, error, _("Failed to mount \"%s\""), device_name); + g_free (device_name); } else { - thunar_launcher_sendto_volume (data->launcher, volume, data->files); + thunar_launcher_sendto_device (data->launcher, device, data->files); } thunar_launcher_mount_data_free (data); @@ -1397,13 +1597,12 @@ static void -thunar_launcher_action_sendto_volume (GtkAction *action, +thunar_launcher_action_sendto_device (GtkAction *action, ThunarLauncher *launcher) { ThunarLauncherMountData *data; GMountOperation *mount_operation; - GtkWidget *window; - GVolume *volume; + ThunarDevice *device; GList *files; _thunar_return_if_fail (GTK_IS_ACTION (action)); @@ -1414,30 +1613,32 @@ if (G_UNLIKELY (files == NULL)) return; - /* determine the volume to which to send */ - volume = g_object_get_qdata (G_OBJECT (action), thunar_launcher_handler_quark); - if (G_UNLIKELY (volume == NULL)) + /* determine the device to which to send */ + device = g_object_get_qdata (G_OBJECT (action), thunar_launcher_handler_quark); + if (G_UNLIKELY (device == NULL)) return; - /* make sure to mount the volume first, if it's not already mounted */ - if (!thunar_g_volume_is_mounted (volume)) + /* make sure to mount the device first, if it's not already mounted */ + if (!thunar_device_is_mounted (device)) { - /* determine the toplevel window */ - window = gtk_widget_get_toplevel (launcher->widget); - /* allocate mount data */ data = thunar_launcher_mount_data_new (launcher, files); /* allocate a GTK+ mount operation */ - mount_operation = gtk_mount_operation_new (GTK_WINDOW (window)); + mount_operation = thunar_gtk_mount_operation_new (launcher->widget); + + /* try to mount the device and later start sending the files */ + thunar_device_mount (device, + mount_operation, + NULL, + thunar_launcher_sendto_mount_finish, + data); - /* try to mount the volume and later start sending the files */ - g_volume_mount (volume, G_MOUNT_MOUNT_NONE, mount_operation, NULL, - thunar_launcher_sendto_mount_finish, data); + g_object_unref (mount_operation); } else { - thunar_launcher_sendto_volume (launcher, volume, files); + thunar_launcher_sendto_device (launcher, device, files); } /* cleanup */ @@ -1466,19 +1667,19 @@ ThunarLauncher *launcher = THUNAR_LAUNCHER (user_data); const gchar *label; GtkAction *action; - GtkWidget *image; - GtkWidget *menu_item; gboolean linkable = TRUE; GIcon *icon; GList *handlers; - GList *volumes; + GList *devices; GList *lp; gchar *name; gchar *tooltip; - gchar *ui_path; - gchar *volume_name; + gchar *device_name; gint n_selected_files; gint n = 0; + gboolean got_devices = FALSE; + const gchar *file_menu_path; + const gchar *context_menu_path; /* verify that we have an UI manager */ if (launcher->ui_manager == NULL) @@ -1520,74 +1721,66 @@ if (G_UNLIKELY (launcher->ui_addons_merge_id == 0)) launcher->ui_addons_merge_id = gtk_ui_manager_new_merge_id (launcher->ui_manager); - /* determine the currently active volumes */ - volumes = g_volume_monitor_get_volumes (launcher->volume_monitor); + /* determine the currently active devices */ + devices = thunar_device_monitor_get_devices (launcher->device_monitor); + got_devices = (devices != NULL); + + /* paths in ui */ + file_menu_path = "/main-menu/file-menu/sendto-menu/placeholder-sendto-actions"; + context_menu_path = "/file-context-menu/sendto-menu/placeholder-sendto-actions"; /* add removable (and writable) drives and media */ - for (lp = volumes; lp != NULL; lp = lp->next, ++n) + for (lp = devices; lp != NULL; lp = lp->next, ++n) { - /* skip non-removable or disc media (CD-ROMs aren't writable by Thunar) */ - /* TODO skip non-writable volumes like CD-ROMs here */ - if (!thunar_g_volume_is_removable (lp->data)) - { - g_object_unref (lp->data); - continue; - } - - /* generate a unique name and tooltip for the volume */ - volume_name = g_volume_get_name (lp->data); + /* generate a unique name and tooltip for the device */ + device_name = thunar_device_get_name (lp->data); name = g_strdup_printf ("thunar-launcher-sendto%d-%p", n, launcher); tooltip = g_strdup_printf (ngettext ("Send the selected file to \"%s\"", "Send the selected files to \"%s\"", - n_selected_files), volume_name); + n_selected_files), device_name); - /* allocate a new action for the volume */ - action = gtk_action_new (name, volume_name, tooltip, NULL); + /* allocate a new action for the device */ + action = gtk_action_new (name, device_name, tooltip, NULL); g_object_set_qdata_full (G_OBJECT (action), thunar_launcher_handler_quark, lp->data, g_object_unref); - g_signal_connect (G_OBJECT (action), "activate", G_CALLBACK (thunar_launcher_action_sendto_volume), launcher); + g_signal_connect (G_OBJECT (action), "activate", G_CALLBACK (thunar_launcher_action_sendto_device), launcher); gtk_action_group_add_action (launcher->action_group, action); gtk_ui_manager_add_ui (launcher->ui_manager, launcher->ui_addons_merge_id, - "/main-menu/file-menu/sendto-menu/placeholder-sendto-actions", - name, name, GTK_UI_MANAGER_MENUITEM, FALSE); + file_menu_path, name, name, GTK_UI_MANAGER_MENUITEM, FALSE); gtk_ui_manager_add_ui (launcher->ui_manager, launcher->ui_addons_merge_id, - "/file-context-menu/sendto-menu/placeholder-sendto-actions", - name, name, GTK_UI_MANAGER_MENUITEM, FALSE); + context_menu_path, name, name, GTK_UI_MANAGER_MENUITEM, FALSE); g_object_unref (action); - /* FIXME There's no API for creating GtkActions using GIcon in GTK+ 2.14. A "gicon" property - * has been added to GtkAction in GTK+ 2.16 though. For now, this hack will have to do: */ - - ui_path = g_strconcat ("/main-menu/file-menu/sendto-menu/placeholder-sendto-actions/", name, NULL); - menu_item = gtk_ui_manager_get_widget (launcher->ui_manager, ui_path); - image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (menu_item)); - icon = g_volume_get_icon (lp->data); - gtk_image_set_from_gicon (GTK_IMAGE (image), icon, GTK_ICON_SIZE_MENU); - g_object_unref (icon); - g_free (ui_path); - - ui_path = g_strconcat ("/file-context-menu/sendto-menu/placeholder-sendto-actions/", name, NULL); - menu_item = gtk_ui_manager_get_widget (launcher->ui_manager, ui_path); - image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (menu_item)); - icon = g_volume_get_icon (lp->data); - gtk_image_set_from_gicon (GTK_IMAGE (image), icon, GTK_ICON_SIZE_MENU); - g_object_unref (icon); - g_free (ui_path); - - /* FIXME End of the hack */ + icon = thunar_device_get_icon (lp->data); + if (G_LIKELY (icon != NULL)) + { + gtk_action_set_gicon (action, icon); + g_object_unref (icon); + } /* cleanup */ g_free (name); g_free (tooltip); - g_free (volume_name); + g_free (device_name); } - /* free the volumes list */ - g_list_free (volumes); + /* free the devices list */ + g_list_free (devices); /* determine the sendto handlers for the selected files */ handlers = thunar_sendto_model_get_matching (launcher->sendto_model, launcher->selected_files); if (G_LIKELY (handlers != NULL)) { + if (got_devices) + { + /* add separator between the devices and actions action */ + gtk_ui_manager_add_ui (launcher->ui_manager, launcher->ui_addons_merge_id, + file_menu_path, "separator", NULL, + GTK_UI_MANAGER_SEPARATOR, FALSE); + gtk_ui_manager_add_ui (launcher->ui_manager, launcher->ui_addons_merge_id, + context_menu_path, "separator", NULL, + GTK_UI_MANAGER_SEPARATOR, FALSE); + } + /* add all handlers to the user interface */ for (lp = handlers; lp != NULL; lp = lp->next, ++n) { @@ -1600,34 +1793,16 @@ /* allocate a new action for the handler */ action = gtk_action_new (name, label, tooltip, NULL); + gtk_action_set_gicon (action, g_app_info_get_icon (lp->data)); g_object_set_qdata_full (G_OBJECT (action), thunar_launcher_handler_quark, lp->data, g_object_unref); g_signal_connect (G_OBJECT (action), "activate", G_CALLBACK (thunar_launcher_action_open), launcher); gtk_action_group_add_action (launcher->action_group, action); gtk_ui_manager_add_ui (launcher->ui_manager, launcher->ui_addons_merge_id, - "/main-menu/file-menu/sendto-menu/placeholder-sendto-actions", - name, name, GTK_UI_MANAGER_MENUITEM, FALSE); + file_menu_path, name, name, GTK_UI_MANAGER_MENUITEM, FALSE); gtk_ui_manager_add_ui (launcher->ui_manager, launcher->ui_addons_merge_id, - "/file-context-menu/sendto-menu/placeholder-sendto-actions", - name, name, GTK_UI_MANAGER_MENUITEM, FALSE); + context_menu_path, name, name, GTK_UI_MANAGER_MENUITEM, FALSE); g_object_unref (G_OBJECT (action)); - /* FIXME There's no API for creating GtkActions using GIcon in GTK+ 2.14. A "gicon" property - * has been added to GtkAction in GTK+ 2.16 though. For now, this hack will have to do: */ - - ui_path = g_strconcat ("/main-menu/file-menu/sendto-menu/placeholder-sendto-actions/", name, NULL); - menu_item = gtk_ui_manager_get_widget (launcher->ui_manager, ui_path); - image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (menu_item)); - gtk_image_set_from_gicon (GTK_IMAGE (image), g_app_info_get_icon (lp->data), GTK_ICON_SIZE_MENU); - g_free (ui_path); - - ui_path = g_strconcat ("/file-context-menu/sendto-menu/placeholder-sendto-actions/", name, NULL); - menu_item = gtk_ui_manager_get_widget (launcher->ui_manager, ui_path); - image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (menu_item)); - gtk_image_set_from_gicon (GTK_IMAGE (image), g_app_info_get_icon (lp->data), GTK_ICON_SIZE_MENU); - g_free (ui_path); - - /* FIXME End of the hack */ - /* cleanup */ g_free (tooltip); g_free (name); @@ -1676,7 +1851,7 @@ * * Return value: the widget associated with @launcher. **/ -GtkWidget* +static GtkWidget* thunar_launcher_get_widget (const ThunarLauncher *launcher) { _thunar_return_val_if_fail (THUNAR_IS_LAUNCHER (launcher), NULL); @@ -1717,7 +1892,7 @@ } /* notify listeners */ - g_object_notify (G_OBJECT (launcher), "widget"); + g_object_notify_by_pspec (G_OBJECT (launcher), launcher_props[PROP_WIDGET]); } diff -Nru thunar-1.2.3/thunar/thunar-launcher.h thunar-1.6.10/thunar/thunar-launcher.h --- thunar-1.2.3/thunar/thunar-launcher.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-launcher.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -38,7 +38,6 @@ ThunarLauncher *thunar_launcher_new (void) G_GNUC_MALLOC; -GtkWidget *thunar_launcher_get_widget (const ThunarLauncher *launcher); void thunar_launcher_set_widget (ThunarLauncher *launcher, GtkWidget *widget); diff -Nru thunar-1.2.3/thunar/thunar-launcher-ui.h thunar-1.6.10/thunar/thunar-launcher-ui.h --- thunar-1.2.3/thunar/thunar-launcher-ui.h 2011-09-20 20:28:44.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-launcher-ui.h 2015-05-22 20:47:38.000000000 +0000 @@ -10,23 +10,24 @@ { "<" - "menuitem action=\"open-with-other-in-menu\" />" - "" + "tion=\"open-in-new-tab\" />" }; -static const unsigned thunar_launcher_ui_length = 1159u; +static const unsigned thunar_launcher_ui_length = 1259u; diff -Nru thunar-1.2.3/thunar/thunar-launcher-ui.xml thunar-1.6.10/thunar/thunar-launcher-ui.xml --- thunar-1.2.3/thunar/thunar-launcher-ui.xml 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-launcher-ui.xml 2015-05-22 20:31:54.000000000 +0000 @@ -1,8 +1,6 @@ s for @files. @@ -2180,16 +2120,28 @@ thunar_list_model_get_paths_for_files (ThunarListModel *store, GList *files) { - GSList *row; - GList *paths = NULL; - gint idx = 0; + GList *paths = NULL; + GSequenceIter *row; + GSequenceIter *end; + gint i = 0; _thunar_return_val_if_fail (THUNAR_IS_LIST_MODEL (store), NULL); + row = g_sequence_get_begin_iter (store->rows); + end = g_sequence_get_end_iter (store->rows); + /* find the rows for the given files */ - for (row = store->rows; row != NULL; ++idx, row = row->next) - if (g_list_find (files, row->data) != NULL) - paths = g_list_prepend (paths, gtk_tree_path_new_from_indices (idx, -1)); + while (row != end) + { + if (g_list_find (files, g_sequence_get (row)) != NULL) + { + _thunar_assert (i == g_sequence_iter_get_position (row)); + paths = g_list_prepend (paths, gtk_tree_path_new_from_indices (i, -1)); + } + + row = g_sequence_iter_next (row); + i++; + } return paths; } @@ -2206,8 +2158,7 @@ * * The caller is responsible to free the returned list using: * - * g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL); - * g_list_free (list); + * g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free); * * * Return value: the list of #GtkTreePaths that match @pattern. @@ -2216,10 +2167,12 @@ thunar_list_model_get_paths_for_pattern (ThunarListModel *store, const gchar *pattern) { - GPatternSpec *pspec; - GSList *row; - GList *paths = NULL; - gint idx = 0; + GPatternSpec *pspec; + GList *paths = NULL; + GSequenceIter *row; + GSequenceIter *end; + ThunarFile *file; + gint i = 0; _thunar_return_val_if_fail (THUNAR_IS_LIST_MODEL (store), NULL); _thunar_return_val_if_fail (g_utf8_validate (pattern, -1, NULL), NULL); @@ -2227,10 +2180,22 @@ /* compile the pattern */ pspec = g_pattern_spec_new (pattern); + row = g_sequence_get_begin_iter (store->rows); + end = g_sequence_get_end_iter (store->rows); + /* find all rows that match the given pattern */ - for (row = store->rows; row != NULL; ++idx, row = row->next) - if (g_pattern_match_string (pspec, thunar_file_get_display_name (row->data))) - paths = g_list_prepend (paths, gtk_tree_path_new_from_indices (idx, -1)); + while (row != end) + { + file = g_sequence_get (row); + if (g_pattern_match_string (pspec, thunar_file_get_display_name (file))) + { + _thunar_assert (i == g_sequence_iter_get_position (row)); + paths = g_list_prepend (paths, gtk_tree_path_new_from_indices (i, -1)); + } + + row = g_sequence_iter_next (row); + i++; + } /* release the pattern */ g_pattern_spec_free (pspec); @@ -2263,58 +2228,77 @@ thunar_list_model_get_statusbar_text (ThunarListModel *store, GList *selected_items) { - const gchar *content_type; - const gchar *original_path; - GtkTreeIter iter; - ThunarFile *file; - guint64 size; - guint64 size_summary; - GSList *row; - GList *lp; - gchar *absolute_path; - gchar *fspace_string; - gchar *display_name; - gchar *size_string; - gchar *text; - gchar *s; - gint height; - gint width; - gint n; + const gchar *content_type; + const gchar *original_path; + GtkTreeIter iter; + ThunarFile *file; + guint64 size; + guint64 size_summary; + gint folder_count; + gint non_folder_count; + GList *lp; + gchar *absolute_path; + gchar *fspace_string; + gchar *display_name; + gchar *size_string; + gchar *text; + gchar *folder_text; + gchar *non_folder_text; + gchar *s; + gint height; + gint width; + gchar *description; + GSequenceIter *row; + GSequenceIter *end; + gint nrows; + ThunarPreferences *preferences; + gboolean show_image_size; + gboolean file_size_binary; _thunar_return_val_if_fail (THUNAR_IS_LIST_MODEL (store), NULL); + file_size_binary = thunar_list_model_get_file_size_binary(store); + if (selected_items == NULL) { /* try to determine a file for the current folder */ file = (store->folder != NULL) ? thunar_folder_get_corresponding_file (store->folder) : NULL; + nrows = g_sequence_get_length (store->rows); + /* check if we can determine the amount of free space for the volume */ - if (G_LIKELY (file != NULL && thunar_file_get_free_space (file, &size))) + if (G_LIKELY (file != NULL + && thunar_g_file_get_free_space (thunar_file_get_file (file), &size, NULL))) { /* humanize the free space */ - fspace_string = g_format_size_for_display (size); + fspace_string = g_format_size_full (size, file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + size_summary = 0; - /* check if we have atleast one file in this folder */ - if (G_LIKELY (store->nrows > 0)) - { - /* calculate the size of all items */ - for (row = store->rows, size_summary = 0; row != NULL; row = row->next) - size_summary += thunar_file_get_size (row->data); + row = g_sequence_get_begin_iter (store->rows); + end = g_sequence_get_end_iter (store->rows); - /* humanize the size summary */ - size_string = g_format_size_for_display (size_summary); + /* calculate the size of all file items */ + while (row != end) + { + file = g_sequence_get (row); + if (thunar_file_is_regular (file)) + size_summary += thunar_file_get_size (file); + row = g_sequence_iter_next (row); + } + if (size_summary > 0) + { /* generate a text which includes the size of all items in the folder */ - text = g_strdup_printf (ngettext ("%d item (%s), Free space: %s", "%d items (%s), Free space: %s", store->nrows), - store->nrows, size_string, fspace_string); - - /* cleanup */ + size_string = g_format_size_full (size_summary, file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + text = g_strdup_printf (ngettext ("%d item (%s), Free space: %s", "%d items (%s), Free space: %s", nrows), + nrows, size_string, fspace_string); g_free (size_string); } else { /* just the standard text */ - text = g_strdup_printf (ngettext ("%d item, Free space: %s", "%d items, Free space: %s", store->nrows), store->nrows, fspace_string); + text = g_strdup_printf (ngettext ("%d item, Free space: %s", "%d items, Free space: %s", nrows), + nrows, fspace_string); } /* cleanup */ @@ -2322,7 +2306,7 @@ } else { - text = g_strdup_printf (ngettext ("%d item", "%d items", store->nrows), store->nrows); + text = g_strdup_printf (ngettext ("%d item", "%d items", nrows), nrows); } } else if (selected_items->next == NULL) @@ -2331,22 +2315,21 @@ gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, selected_items->data); /* get the file for the given iter */ - file = THUNAR_FILE (G_SLIST (iter.user_data)->data); - + file = g_sequence_get (iter.user_data); + /* determine the content type of the file */ content_type = thunar_file_get_content_type (file); - /* calculate the text to be displayed */ - size_string = thunar_file_get_size_string (file); - if (G_UNLIKELY (content_type != NULL && g_str_equal (content_type, "inode/symlink"))) { text = g_strdup_printf (_("\"%s\" broken link"), thunar_file_get_display_name (file)); } else if (G_UNLIKELY (thunar_file_is_symlink (file))) { + size_string = thunar_file_get_size_string_formatted (file, file_size_binary); text = g_strdup_printf (_("\"%s\" (%s) link to %s"), thunar_file_get_display_name (file), size_string, thunar_file_get_symlink_target (file)); + g_free (size_string); } else if (G_UNLIKELY (thunar_file_get_kind (file) == G_FILE_TYPE_SHORTCUT)) { @@ -2356,16 +2339,23 @@ { text = g_strdup_printf (_("\"%s\" mountable"), thunar_file_get_display_name (file)); } - else + else if (thunar_file_is_regular (file)) { - gchar *description; - - description = g_content_type_get_description (thunar_file_get_content_type (file)); + description = g_content_type_get_description (content_type); + size_string = thunar_file_get_size_string_formatted (file, file_size_binary); + /* I18N, first %s is the display name of the file, 2nd the file size, 3rd the content type */ text = g_strdup_printf (_("\"%s\" (%s) %s"), thunar_file_get_display_name (file), size_string, description); g_free (description); + g_free (size_string); + } + else + { + description = g_content_type_get_description (content_type); + /* I18N, first %s is the display name of the file, second the content type */ + text = g_strdup_printf (_("\"%s\" %s"), thunar_file_get_display_name (file), description); + g_free (description); } - g_free (size_string); /* append the original path (if any) */ original_path = thunar_file_get_original_path (file); @@ -2378,45 +2368,108 @@ g_free (text); text = s; } - else if (thunar_file_is_local (file) && thunar_file_is_regular (file)) - { - /* check if we can determine the dimension of this file (only for image files) */ - absolute_path = g_file_get_path (thunar_file_get_file (file)); - if (absolute_path != NULL - && gdk_pixbuf_get_file_info (absolute_path, &width, &height) != NULL) + else if (thunar_file_is_local (file) + && thunar_file_is_regular (file) + && g_str_has_prefix (content_type, "image/")) /* bug #2913 */ + { + /* check if the size should be visible in the statusbar, disabled by + * default to avoid high i/o */ + preferences = thunar_preferences_get (); + g_object_get (preferences, "misc-image-size-in-statusbar", &show_image_size, NULL); + g_object_unref (preferences); + + if (show_image_size) { - /* append the image dimensions to the statusbar text */ - s = g_strdup_printf ("%s, %s %dx%d", text, _("Image Size:"), width, height); - g_free (text); - text = s; + /* check if we can determine the dimension of this file (only for image files) */ + absolute_path = g_file_get_path (thunar_file_get_file (file)); + if (absolute_path != NULL + && gdk_pixbuf_get_file_info (absolute_path, &width, &height) != NULL) + { + /* append the image dimensions to the statusbar text */ + s = g_strdup_printf ("%s, %s %dx%d", text, _("Image Size:"), width, height); + g_free (text); + text = s; + } + g_free (absolute_path); } - g_free (absolute_path); } } else { - /* sum up all sizes */ - for (lp = selected_items, n = 0, size_summary = 0; lp != NULL; lp = lp->next, ++n) + /* reset */ + size_summary = 0; + folder_count = 0; + non_folder_count = 0; + + /* analyze selection */ + for (lp = selected_items; lp != NULL; lp = lp->next) { gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, lp->data); - size_summary += thunar_file_get_size (THUNAR_FILE (G_SLIST (iter.user_data)->data)); + file = g_sequence_get (iter.user_data); + if (thunar_file_is_directory (file)) + { + folder_count++; + } + else + { + non_folder_count++; + if (thunar_file_is_regular (file)) + size_summary += thunar_file_get_size (file); + } } - if (size_summary > 0) + /* text for the items in the folder */ + if (non_folder_count > 0) { - size_string = g_format_size_for_display (size_summary); - text = g_strdup_printf (ngettext ("%d item selected (%s)", "%d items selected (%s)", n), n, size_string); + size_string = g_format_size_full (size_summary, file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + if (folder_count > 0) + { + /* item count if there are also folders in the selection */ + non_folder_text = g_strdup_printf (ngettext ("%d other item selected (%s)", + "%d other items selected (%s)", + non_folder_count), non_folder_count, size_string); + } + else + { + /* only non-folders are selected */ + non_folder_text = g_strdup_printf (ngettext ("%d item selected (%s)", + "%d items selected (%s)", + non_folder_count), non_folder_count, size_string); + } g_free (size_string); } else { - text = g_strdup_printf (ngettext ("%d item selected", "%d items selected", n), n); + non_folder_text = NULL; + } + + /* text for the folders */ + if (folder_count > 0) + { + folder_text = g_strdup_printf (ngettext ("%d folder selected", + "%d folders selected", + folder_count), folder_count); + } + else + { + folder_text = NULL; + } + + if (folder_text == NULL) + text = non_folder_text; + else if (non_folder_text == NULL) + text = folder_text; + else + { + /* This is marked for translation in case a localizer + * needs to change ", " to something else. The comma + * is between the message about the number of folders + * and the number of items in the selection */ + text = g_strdup_printf (_("%s, %s"), folder_text, non_folder_text); + g_free (folder_text); + g_free (non_folder_text); } } return text; } - - - - diff -Nru thunar-1.2.3/thunar/thunar-list-model.h thunar-1.6.10/thunar/thunar-list-model.h --- thunar-1.2.3/thunar/thunar-list-model.h 2011-05-25 23:06:57.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-list-model.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2004-2007 Benedikt Meurer * @@ -37,21 +37,11 @@ GType thunar_list_model_get_type (void) G_GNUC_CONST; ThunarListModel *thunar_list_model_new (void); -ThunarListModel *thunar_list_model_new_with_folder (ThunarFolder *folder); - -gboolean thunar_list_model_get_case_sensitive (ThunarListModel *store); -void thunar_list_model_set_case_sensitive (ThunarListModel *store, - gboolean case_sensitive); - -ThunarDateStyle thunar_list_model_get_date_style (ThunarListModel *store); -void thunar_list_model_set_date_style (ThunarListModel *store, - ThunarDateStyle date_style); ThunarFolder *thunar_list_model_get_folder (ThunarListModel *store); void thunar_list_model_set_folder (ThunarListModel *store, ThunarFolder *folder); -gboolean thunar_list_model_get_folders_first (ThunarListModel *store); void thunar_list_model_set_folders_first (ThunarListModel *store, gboolean folders_first); @@ -59,10 +49,13 @@ void thunar_list_model_set_show_hidden (ThunarListModel *store, gboolean show_hidden); +gboolean thunar_list_model_get_file_size_binary (ThunarListModel *store); +void thunar_list_model_set_file_size_binary (ThunarListModel *store, + gboolean file_size_binary); + ThunarFile *thunar_list_model_get_file (ThunarListModel *store, GtkTreeIter *iter); -gint thunar_list_model_get_num_files (ThunarListModel *store); GList *thunar_list_model_get_paths_for_files (ThunarListModel *store, GList *files); diff -Nru thunar-1.2.3/thunar/thunar-location-bar.c thunar-1.6.10/thunar/thunar-location-bar.c --- thunar-1.2.3/thunar/thunar-location-bar.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-location-bar.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-location-bar.h thunar-1.6.10/thunar/thunar-location-bar.h --- thunar-1.2.3/thunar/thunar-location-bar.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-location-bar.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-location-button.c thunar-1.6.10/thunar/thunar-location-button.c --- thunar-1.2.3/thunar/thunar-location-button.c 2011-09-14 20:28:22.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-location-button.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -35,6 +35,7 @@ #include #include #include +#include #include @@ -137,7 +138,7 @@ ThunarFileIconState file_icon_state; /* enter folders using DnD */ - gint enter_timeout_id; + guint enter_timeout_id; /* drop support for the button */ GList *drop_file_list; @@ -217,8 +218,9 @@ G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); + g_cclosure_marshal_VOID__BOOLEAN, + G_TYPE_NONE, 1, + G_TYPE_BOOLEAN); /** * ThunarLocationButton::context-menu: @@ -263,7 +265,7 @@ /* create the toggle button */ button = gtk_toggle_button_new (); - GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_FOCUS); + gtk_widget_set_can_focus (button, FALSE); g_signal_connect_swapped (G_OBJECT (button), "clicked", G_CALLBACK (thunar_location_button_clicked), location_button); exo_mutual_binding_new (G_OBJECT (location_button), "active", G_OBJECT (button), "active"); gtk_container_add (GTK_CONTAINER (location_button), button); @@ -424,10 +426,11 @@ GtkIconTheme *icon_theme; GtkSettings *settings; GdkPixbuf *icon; - gchar *icon_name; + const gchar *icon_name; gint height; gint width; gint size; + const gchar *custom_icon; _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTON (location_button)); _thunar_return_if_fail (location_button->file == file); @@ -479,14 +482,16 @@ } /* setup the DnD icon for the button */ - icon_name = thunar_file_get_custom_icon (file); - if (icon_name == NULL) + custom_icon = thunar_file_get_custom_icon (file); + if (custom_icon != NULL) + { + gtk_drag_source_set_icon_name (GTK_BIN (location_button)->child, custom_icon); + } + else { - icon_name = thunar_file_get_icon_name (file, location_button->file_icon_state, - icon_theme); + icon_name = thunar_file_get_icon_name (file, location_button->file_icon_state, icon_theme); + gtk_drag_source_set_icon_name (GTK_BIN (location_button)->child, icon_name); } - gtk_drag_source_set_icon_name (GTK_BIN (location_button)->child, icon_name); - g_free (icon_name); } @@ -570,6 +575,8 @@ ThunarLocationButton *location_button) { ThunarApplication *application; + ThunarPreferences *preferences; + gboolean open_in_tab; _thunar_return_val_if_fail (THUNAR_IS_LOCATION_BUTTON (location_button), FALSE); @@ -582,10 +589,22 @@ /* verify that we still have a valid file */ if (G_LIKELY (location_button->file != NULL)) { - /* open a new window for the folder */ - application = thunar_application_get (); - thunar_application_open_window (application, location_button->file, gtk_widget_get_screen (GTK_WIDGET (location_button)), NULL); - g_object_unref (G_OBJECT (application)); + preferences = thunar_preferences_get (); + g_object_get (preferences, "misc-middle-click-in-tab", &open_in_tab, NULL); + g_object_unref (preferences); + + if (open_in_tab) + { + /* open in tab */ + g_signal_emit (G_OBJECT (location_button), location_button_signals[CLICKED], 0, TRUE); + } + else + { + /* open a new window for the folder */ + application = thunar_application_get (); + thunar_application_open_window (application, location_button->file, gtk_widget_get_screen (GTK_WIDGET (location_button)), NULL); + g_object_unref (G_OBJECT (application)); + } } } @@ -634,8 +653,8 @@ guint timestamp, ThunarLocationButton *location_button) { - gchar *uri_string; - GList path_list; + gchar **uris; + GList path_list; _thunar_return_if_fail (GTK_IS_WIDGET (button)); _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTON (location_button)); @@ -644,14 +663,13 @@ if (G_LIKELY (location_button->file != NULL)) { /* transform the path into an uri list string */ - path_list.data = thunar_file_get_file (location_button->file); path_list.next = path_list.prev = NULL; - uri_string = thunar_g_file_list_to_string (&path_list); + path_list.next = path_list.prev = NULL; + path_list.data = thunar_file_get_file (location_button->file); /* set the uri list for the drag selection */ - gtk_selection_data_set (selection_data, selection_data->target, 8, (guchar *) uri_string, strlen (uri_string)); - - /* cleanup */ - g_free (uri_string); + uris = thunar_g_file_list_to_stringv (&path_list); + gtk_selection_data_set_uris (selection_data, uris); + g_strfreev (uris); } } @@ -968,7 +986,7 @@ g_signal_connect_swapped (G_OBJECT (file), "destroy", G_CALLBACK (thunar_location_button_file_destroy), location_button); /* update our internal state for the new file (if realized) */ - if (GTK_WIDGET_REALIZED (location_button)) + if (gtk_widget_get_realized (GTK_WIDGET (location_button))) thunar_location_button_file_changed (location_button, file); } @@ -988,7 +1006,7 @@ thunar_location_button_clicked (ThunarLocationButton *location_button) { _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTON (location_button)); - g_signal_emit (G_OBJECT (location_button), location_button_signals[CLICKED], 0); + g_signal_emit (G_OBJECT (location_button), location_button_signals[CLICKED], 0, FALSE); } diff -Nru thunar-1.2.3/thunar/thunar-location-button.h thunar-1.6.10/thunar/thunar-location-button.h --- thunar-1.2.3/thunar/thunar-location-button.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-location-button.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-location-buttons.c thunar-1.6.10/thunar/thunar-location-buttons.c --- thunar-1.2.3/thunar/thunar-location-buttons.c 2011-06-07 16:12:55.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-location-buttons.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -108,6 +108,7 @@ static void thunar_location_buttons_scroll_right (GtkWidget *button, ThunarLocationButtons *buttons); static void thunar_location_buttons_clicked (ThunarLocationButton *button, + gboolean open_in_tab, ThunarLocationButtons *buttons); static void thunar_location_buttons_context_menu (ThunarLocationButton *button, GdkEventButton *event, @@ -122,6 +123,8 @@ ThunarLocationButtons *buttons); static void thunar_location_buttons_action_open (GtkAction *action, ThunarLocationButtons *buttons); +static void thunar_location_buttons_action_open_in_new_tab (GtkAction *action, + ThunarLocationButtons *buttons); static void thunar_location_buttons_action_open_in_new_window (GtkAction *action, ThunarLocationButtons *buttons); static void thunar_location_buttons_action_paste_into_folder (GtkAction *action, @@ -161,16 +164,21 @@ +static GQuark thunar_file_quark = 0; + + + static const GtkActionEntry action_entries[] = { { "location-buttons-down-folder", NULL, "Down Folder", "Down", NULL, G_CALLBACK (thunar_location_buttons_action_down_folder), }, - { "location-buttons-context-menu", NULL, "Context Menu", NULL, NULL, NULL, }, - { "location-buttons-open", GTK_STOCK_OPEN, N_("_Open"), NULL, NULL, G_CALLBACK (thunar_location_buttons_action_open), }, - { "location-buttons-open-in-new-window", NULL, N_("Open in New Window"), NULL, NULL, G_CALLBACK (thunar_location_buttons_action_open_in_new_window), }, - { "location-buttons-create-folder", NULL, N_("Create _Folder..."), NULL, NULL, G_CALLBACK (thunar_location_buttons_action_create_folder), }, - { "location-buttons-empty-trash", NULL, N_("_Empty Trash"), NULL, N_("Delete all files and folders in the Trash"), G_CALLBACK (thunar_location_buttons_action_empty_trash), }, - { "location-buttons-paste-into-folder", GTK_STOCK_PASTE, N_("Paste Into Folder"), NULL, NULL, G_CALLBACK (thunar_location_buttons_action_paste_into_folder), }, - { "location-buttons-properties", GTK_STOCK_PROPERTIES, N_("_Properties..."), NULL, NULL, G_CALLBACK (thunar_location_buttons_action_properties), }, + { "location-buttons-context-menu", NULL, "Context Menu", NULL, "", NULL, }, + { "location-buttons-open", GTK_STOCK_OPEN, N_("_Open"), "", NULL, G_CALLBACK (thunar_location_buttons_action_open), }, + { "location-buttons-open-in-new-tab", NULL, N_("Open in New Tab"), "", NULL, G_CALLBACK (thunar_location_buttons_action_open_in_new_tab), }, + { "location-buttons-open-in-new-window", NULL, N_("Open in New Window"), "", NULL, G_CALLBACK (thunar_location_buttons_action_open_in_new_window), }, + { "location-buttons-create-folder", "folder-new", N_("Create _Folder..."), "", NULL, G_CALLBACK (thunar_location_buttons_action_create_folder), }, + { "location-buttons-empty-trash", NULL, N_("_Empty Trash"), "", N_("Delete all files and folders in the Trash"), G_CALLBACK (thunar_location_buttons_action_empty_trash), }, + { "location-buttons-paste-into-folder", GTK_STOCK_PASTE, N_("Paste Into Folder"), "", NULL, G_CALLBACK (thunar_location_buttons_action_paste_into_folder), }, + { "location-buttons-properties", GTK_STOCK_PROPERTIES, N_("_Properties..."), "", NULL, G_CALLBACK (thunar_location_buttons_action_properties), }, }; @@ -224,6 +232,8 @@ _("The amount of space between the path buttons"), 0, G_MAXINT, 3, G_PARAM_READABLE)); + + thunar_file_quark = g_quark_from_static_string ("button-thunar-file"); } @@ -267,7 +277,7 @@ gtk_action_group_set_translation_domain (buttons->action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (buttons->action_group, action_entries, G_N_ELEMENTS (action_entries), buttons); - GTK_WIDGET_SET_FLAGS (buttons, GTK_NO_WINDOW); + gtk_widget_set_has_window (GTK_WIDGET (buttons), FALSE); gtk_widget_set_redraw_on_allocate (GTK_WIDGET (buttons), FALSE); buttons->left_slider = gtk_button_new (); @@ -766,7 +776,7 @@ thunar_location_buttons_state_changed (GtkWidget *widget, GtkStateType previous_state) { - if (!GTK_WIDGET_IS_SENSITIVE (widget)) + if (!gtk_widget_is_sensitive (widget)) thunar_location_buttons_stop_scrolling (THUNAR_LOCATION_BUTTONS (widget)); } @@ -884,7 +894,7 @@ thunar_location_buttons_remove_1 (GtkContainer *container, GtkWidget *widget) { - gboolean need_resize = GTK_WIDGET_VISIBLE (widget); + gboolean need_resize = gtk_widget_get_visible (widget); gtk_widget_unparent (widget); if (G_LIKELY (need_resize)) gtk_widget_queue_resize (GTK_WIDGET (container)); @@ -899,9 +909,9 @@ GDK_THREADS_ENTER (); - if (GTK_WIDGET_HAS_FOCUS (buttons->left_slider)) + if (gtk_widget_has_focus (buttons->left_slider)) thunar_location_buttons_scroll_left (buttons->left_slider, buttons); - else if (GTK_WIDGET_HAS_FOCUS (buttons->right_slider)) + else if (gtk_widget_has_focus (buttons->right_slider)) thunar_location_buttons_scroll_right (buttons->right_slider, buttons); GDK_THREADS_LEAVE (); @@ -966,7 +976,7 @@ GdkEventButton *event, ThunarLocationButtons *buttons) { - if (!GTK_WIDGET_HAS_FOCUS (button)) + if (!gtk_widget_has_focus (button)) gtk_widget_grab_focus (button); if (event->type != GDK_BUTTON_PRESS || event->button != 1) @@ -1069,6 +1079,9 @@ break; } + if (G_UNLIKELY (right_button == NULL)) + return; + /* find the last visible button on the 'left' end */ for (lp = g_list_last (buttons->list); lp != NULL; lp = lp->prev) if (gtk_widget_get_child_visible (GTK_WIDGET (lp->data))) @@ -1088,6 +1101,9 @@ - (buttons->right_slider->allocation.x + buttons->right_slider->allocation.width); } + if (G_UNLIKELY (left_button == NULL)) + return; + /* We have space_available extra space that's not being used. We * need space_needed space to make the button fit. So we walk down * from the end, removing buttons until we get all the space we @@ -1105,6 +1121,7 @@ static void thunar_location_buttons_clicked (ThunarLocationButton *button, + gboolean open_in_tab, ThunarLocationButtons *buttons) { ThunarFile *directory; @@ -1116,6 +1133,13 @@ /* determine the directory associated with the clicked button */ directory = thunar_location_button_get_file (button); + /* open in tab */ + if (open_in_tab) + { + thunar_navigator_open_new_tab (THUNAR_NAVIGATOR (buttons), directory); + return; + } + /* disconnect from previous current directory (if any) */ if (G_LIKELY (buttons->current_directory != NULL)) g_object_unref (G_OBJECT (buttons->current_directory)); @@ -1218,18 +1242,23 @@ /* setup the "Open" action */ action = gtk_action_group_get_action (buttons->action_group, "location-buttons-open"); thunar_gtk_action_set_tooltip (action, _("Open \"%s\" in this window"), display_name); - g_object_set_data_full (G_OBJECT (action), I_("thunar-file"), g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); + g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); gtk_action_set_sensitive (action, (file != buttons->current_directory)); /* setup the "Open in New Window" action */ action = gtk_action_group_get_action (buttons->action_group, "location-buttons-open-in-new-window"); thunar_gtk_action_set_tooltip (action, _("Open \"%s\" in a new window"), display_name); - g_object_set_data_full (G_OBJECT (action), I_("thunar-file"), g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); + g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); + + /* setup the "Open in New Tab" action */ + action = gtk_action_group_get_action (buttons->action_group, "location-buttons-open-in-new-tab"); + thunar_gtk_action_set_tooltip (action, _("Open \"%s\" in a new tab"), display_name); + g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); /* setup the "Create Folder..." action */ action = gtk_action_group_get_action (buttons->action_group, "location-buttons-create-folder"); thunar_gtk_action_set_tooltip (action, _("Create a new folder in \"%s\""), display_name); - g_object_set_data_full (G_OBJECT (action), I_("thunar-file"), g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); + g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); gtk_action_set_sensitive (action, thunar_file_is_writable (file)); gtk_action_set_visible (action, !thunar_file_is_trashed (file)); @@ -1241,13 +1270,13 @@ /* setup the "Paste Into Folder" action */ action = gtk_action_group_get_action (buttons->action_group, "location-buttons-paste-into-folder"); thunar_gtk_action_set_tooltip (action, _("Move or copy files previously selected by a Cut or Copy command into \"%s\""), display_name); - g_object_set_data_full (G_OBJECT (action), I_("thunar-file"), g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); + g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); gtk_action_set_sensitive (action, thunar_clipboard_manager_get_can_paste (clipboard)); /* setup the "Properties..." action */ action = gtk_action_group_get_action (buttons->action_group, "location-buttons-properties"); thunar_gtk_action_set_tooltip (action, _("View the properties of the folder \"%s\""), display_name); - g_object_set_data_full (G_OBJECT (action), I_("thunar-file"), g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); + g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref); /* run the menu on the screen on the buttons' screen */ menu = gtk_ui_manager_get_widget (buttons->ui_manager, "/location-buttons-context-menu"); @@ -1275,7 +1304,7 @@ _thunar_return_if_fail (GTK_IS_ACTION (action)); /* determine the directory for the action */ - directory = g_object_get_data (G_OBJECT (action), "thunar-file"); + directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark); if (G_UNLIKELY (directory == NULL)) return; @@ -1358,7 +1387,7 @@ _thunar_return_if_fail (GTK_IS_ACTION (action)); /* determine the directory for the action */ - directory = g_object_get_data (G_OBJECT (action), "thunar-file"); + directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark); if (G_LIKELY (directory != NULL && thunar_file_is_directory (directory))) { /* open the folder in this window */ @@ -1369,6 +1398,26 @@ static void +thunar_location_buttons_action_open_in_new_tab (GtkAction *action, + ThunarLocationButtons *buttons) +{ + ThunarFile *directory; + + _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons)); + _thunar_return_if_fail (GTK_IS_ACTION (action)); + + /* determine the directory for the action */ + directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark); + if (G_LIKELY (directory != NULL)) + { + /* open tab in thsi window */ + thunar_navigator_open_new_tab (THUNAR_NAVIGATOR (buttons), directory); + } +} + + + +static void thunar_location_buttons_action_open_in_new_window (GtkAction *action, ThunarLocationButtons *buttons) { @@ -1379,7 +1428,7 @@ _thunar_return_if_fail (GTK_IS_ACTION (action)); /* determine the directory for the action */ - directory = g_object_get_data (G_OBJECT (action), "thunar-file"); + directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark); if (G_LIKELY (directory != NULL)) { /* open a new window for the directory */ @@ -1402,7 +1451,7 @@ _thunar_return_if_fail (GTK_IS_ACTION (action)); /* determine the directory for the action */ - directory = g_object_get_data (G_OBJECT (action), "thunar-file"); + directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark); if (G_LIKELY (directory != NULL)) { /* paste files from the clipboard to the folder represented by this button */ @@ -1426,38 +1475,18 @@ _thunar_return_if_fail (GTK_IS_ACTION (action)); /* determine the directory for the action */ - directory = g_object_get_data (G_OBJECT (action), "thunar-file"); + directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark); if (G_LIKELY (directory != NULL)) { /* determine the toplevel window */ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (buttons)); - if (G_LIKELY (toplevel != NULL && GTK_WIDGET_TOPLEVEL (toplevel))) + if (G_LIKELY (toplevel != NULL && gtk_widget_get_toplevel (toplevel))) { /* popup the properties dialog */ - dialog = thunar_properties_dialog_new (); - gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); + dialog = thunar_properties_dialog_new (GTK_WINDOW (toplevel)); thunar_properties_dialog_set_file (THUNAR_PROPERTIES_DIALOG (dialog), directory); - gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (toplevel)); gtk_widget_show (dialog); } } } - - -/** - * thunar_location_buttons_new: - * - * Creates a new #ThunarLocationButtons object, that does - * not display any path by default. - * - * Return value: the newly allocated #ThunarLocationButtons object. - **/ -GtkWidget* -thunar_location_buttons_new (void) -{ - return g_object_new (THUNAR_TYPE_LOCATION_BUTTONS, NULL); -} - - - diff -Nru thunar-1.2.3/thunar/thunar-location-buttons.h thunar-1.6.10/thunar/thunar-location-buttons.h --- thunar-1.2.3/thunar/thunar-location-buttons.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-location-buttons.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -36,8 +36,6 @@ GType thunar_location_buttons_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_location_buttons_new (void); - G_END_DECLS; #endif /* !__THUNAR_LOCATION_BUTTONS_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-location-buttons-ui.h thunar-1.6.10/thunar/thunar-location-buttons-ui.h --- thunar-1.2.3/thunar/thunar-location-buttons-ui.h 2011-09-20 20:28:44.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-location-buttons-ui.h 2015-05-22 20:47:38.000000000 +0000 @@ -10,12 +10,13 @@ { "" + "-open\" />" }; -static const unsigned thunar_location_buttons_ui_length = 462u; +static const unsigned thunar_location_buttons_ui_length = 516u; diff -Nru thunar-1.2.3/thunar/thunar-location-buttons-ui.xml thunar-1.6.10/thunar/thunar-location-buttons-ui.xml --- thunar-1.2.3/thunar/thunar-location-buttons-ui.xml 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-location-buttons-ui.xml 2015-05-22 20:31:54.000000000 +0000 @@ -1,8 +1,6 @@ s or "void" to use the * last selected view from the "last-view" preference. **/ - g_object_class_install_property (gobject_class, - PROP_DEFAULT_VIEW, - g_param_spec_string ("default-view", - "DefaultView", - "default-view", - "void", - EXO_PARAM_READWRITE)); + preferences_props[PROP_DEFAULT_VIEW] = + g_param_spec_string ("default-view", + "DefaultView", + NULL, + "void", + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:hidden-bookmarks: + * + * List of URI's that are hidden in the bookmarks (obtained from ~/.gtk-bookmarks). + * If an URI is not in the bookmarks file it will be removed from this list. + **/ + preferences_props[PROP_HIDDEN_BOOKMARKS] = + g_param_spec_boxed ("hidden-bookmarks", + NULL, + NULL, + G_TYPE_STRV, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:hidden-devices: + * + * List of hidden devices. The value could be an UUID or name. + * Visibility of the device can be obtained with + * thunar_device_get_hidden(). + **/ + preferences_props[PROP_HIDDEN_DEVICES] = + g_param_spec_boxed ("hidden-devices", + NULL, + NULL, + G_TYPE_STRV, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-compact-view-zoom-level: * * The last selected #ThunarZoomLevel for the #ThunarCompactView. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_COMPACT_VIEW_ZOOM_LEVEL, - g_param_spec_enum ("last-compact-view-zoom-level", - "LastCompactViewZoomLevel", - "last-compact-view-zoom-level", - THUNAR_TYPE_ZOOM_LEVEL, - THUNAR_ZOOM_LEVEL_SMALLEST, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_COMPACT_VIEW_ZOOM_LEVEL] = + g_param_spec_enum ("last-compact-view-zoom-level", + "LastCompactViewZoomLevel", + NULL, + THUNAR_TYPE_ZOOM_LEVEL, + THUNAR_ZOOM_LEVEL_SMALLEST, + EXO_PARAM_READWRITE); /** @@ -185,13 +217,12 @@ * The comma separated list of columns that specifies the order of the * columns in the #ThunarDetailsView. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_DETAILS_VIEW_COLUMN_ORDER, - g_param_spec_string ("last-details-view-column-order", - "LastDetailsViewColumnOrder", - "last-details-view-column-order", - "THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE,THUNAR_COLUMN_DATE_MODIFIED", - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_DETAILS_VIEW_COLUMN_ORDER] = + g_param_spec_string ("last-details-view-column-order", + "LastDetailsViewColumnOrder", + NULL, + "THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE,THUNAR_COLUMN_DATE_MODIFIED", + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-details-view-column-widths: @@ -199,13 +230,12 @@ * The comma separated list of column widths used for fixed width * #ThunarDetailsViews. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_DETAILS_VIEW_COLUMN_WIDTHS, - g_param_spec_string ("last-details-view-column-widths", - "LastDetailsViewColumnWidths", - "last-details-view-column-widths", - "", - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_DETAILS_VIEW_COLUMN_WIDTHS] = + g_param_spec_string ("last-details-view-column-widths", + "LastDetailsViewColumnWidths", + NULL, + "", + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-details-view-fixed-columns: @@ -213,54 +243,50 @@ * %TRUE to use fixed column widths in the #ThunarDetailsView. Else the * column widths will be automatically determined from the model contents. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_DETAILS_VIEW_FIXED_COLUMNS, - g_param_spec_boolean ("last-details-view-fixed-columns", - "LastDetailsViewFixedColumns", - "last-details-view-fixed-columns", - FALSE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_DETAILS_VIEW_FIXED_COLUMNS] = + g_param_spec_boolean ("last-details-view-fixed-columns", + "LastDetailsViewFixedColumns", + NULL, + FALSE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-details-view-visible-columns: * * The comma separated list of visible columns in the #ThunarDetailsView. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_DETAILS_VIEW_VISIBLE_COLUMNS, - g_param_spec_string ("last-details-view-visible-columns", - "LastDetailsViewVisibleColumns", - "last-details-view-visible-columns", - "THUNAR_COLUMN_DATE_MODIFIED,THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE", - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_DETAILS_VIEW_VISIBLE_COLUMNS] = + g_param_spec_string ("last-details-view-visible-columns", + "LastDetailsViewVisibleColumns", + NULL, + "THUNAR_COLUMN_DATE_MODIFIED,THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE", + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-details-view-zoom-level: * * The last selected #ThunarZoomLevel for the #ThunarDetailsView. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_DETAILS_VIEW_ZOOM_LEVEL, - g_param_spec_enum ("last-details-view-zoom-level", - "LastDetailsViewZoomLevel", - "last-details-view-zoom-level", - THUNAR_TYPE_ZOOM_LEVEL, - THUNAR_ZOOM_LEVEL_SMALLER, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_DETAILS_VIEW_ZOOM_LEVEL] = + g_param_spec_enum ("last-details-view-zoom-level", + "LastDetailsViewZoomLevel", + NULL, + THUNAR_TYPE_ZOOM_LEVEL, + THUNAR_ZOOM_LEVEL_SMALLER, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-icon-view-zoom-level: * * The last selected #ThunarZoomLevel for the #ThunarIconView. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_ICON_VIEW_ZOOM_LEVEL, - g_param_spec_enum ("last-icon-view-zoom-level", - "LastIconViewZoomLevel", - "last-icon-view-zoom-level", - THUNAR_TYPE_ZOOM_LEVEL, - THUNAR_ZOOM_LEVEL_NORMAL, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_ICON_VIEW_ZOOM_LEVEL] = + g_param_spec_enum ("last-icon-view-zoom-level", + "LastIconViewZoomLevel", + NULL, + THUNAR_TYPE_ZOOM_LEVEL, + THUNAR_ZOOM_LEVEL_NORMAL, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-location-bar: @@ -269,13 +295,24 @@ * location bar in #ThunarWindows or "void" to hide the * location bar. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_LOCATION_BAR, - g_param_spec_string ("last-location-bar", - "LastLocationBar", - "last-location-bar", - "ThunarLocationButtons", - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_LOCATION_BAR] = + g_param_spec_string ("last-location-bar", + "LastLocationBar", + NULL, + "ThunarLocationEntry", + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:last-menubar-visible: + * + * Whether to display a menubar in new windows by default. + **/ + preferences_props[PROP_LAST_MENUBAR_VISIBLE] = + g_param_spec_boolean ("last-menubar-visible", + "LastMenubarVisible", + NULL, + TRUE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-separator-position: @@ -283,26 +320,24 @@ * The last position of the gutter in the main window, * which separates the side pane from the main view. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_SEPARATOR_POSITION, - g_param_spec_int ("last-separator-position", - "LastSeparatorPosition", - "last-separator-position", - 0, G_MAXINT, 170, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_SEPARATOR_POSITION] = + g_param_spec_int ("last-separator-position", + "LastSeparatorPosition", + NULL, + 0, G_MAXINT, 170, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-show-hidden: * * Whether to show hidden files by default in new windows. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_SHOW_HIDDEN, - g_param_spec_boolean ("last-show-hidden", - "LastShowHidden", - "last-show-hidden", - FALSE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_SHOW_HIDDEN] = + g_param_spec_boolean ("last-show-hidden", + "LastShowHidden", + NULL, + FALSE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-side-pane: @@ -311,53 +346,49 @@ * side pane in #ThunarWindows or "void" to hide the * side pane completely. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_SIDE_PANE, - g_param_spec_string ("last-side-pane", - "LastSidePane", - "last-side-pane", - "ThunarShortcutsPane", - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_SIDE_PANE] = + g_param_spec_string ("last-side-pane", + "LastSidePane", + NULL, + "ThunarShortcutsPane", + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-sort-column: * * The default sort column for new views. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_SORT_COLUMN, - g_param_spec_enum ("last-sort-column", - "LastSortColumn", - "last-sort-column", - THUNAR_TYPE_COLUMN, - THUNAR_COLUMN_NAME, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_SORT_COLUMN] = + g_param_spec_enum ("last-sort-column", + "LastSortColumn", + NULL, + THUNAR_TYPE_COLUMN, + THUNAR_COLUMN_NAME, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-sort-order: * * The default sort order for new views. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_SORT_ORDER, - g_param_spec_enum ("last-sort-order", - "LastSortOrder", - "last-sort-order", - GTK_TYPE_SORT_TYPE, - GTK_SORT_ASCENDING, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_SORT_ORDER] = + g_param_spec_enum ("last-sort-order", + "LastSortOrder", + NULL, + GTK_TYPE_SORT_TYPE, + GTK_SORT_ASCENDING, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-statusbar-visible: * * Whether to display a statusbar in new windows by default. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_STATUSBAR_VISIBLE, - g_param_spec_boolean ("last-statusbar-visible", - "LastStatusbarVisible", - "last-statusbar-visible", - TRUE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_STATUSBAR_VISIBLE] = + g_param_spec_boolean ("last-statusbar-visible", + "LastStatusbarVisible", + NULL, + TRUE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-view: @@ -365,13 +396,12 @@ * The name of the widget class, which should be used for the * main view component in #ThunarWindows. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_VIEW, - g_param_spec_string ("last-view", - "LastView", - "last-view", - "ThunarIconView", - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_VIEW] = + g_param_spec_string ("last-view", + "LastView", + NULL, + "ThunarIconView", + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-window-height: @@ -379,13 +409,12 @@ * The last known height of a #ThunarWindow, which will be used as * default height for newly created windows. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_WINDOW_HEIGHT, - g_param_spec_int ("last-window-height", - "LastWindowHeight", - "last-window-height", - 1, G_MAXINT, 480, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_WINDOW_HEIGHT] = + g_param_spec_int ("last-window-height", + "LastWindowHeight", + NULL, + 1, G_MAXINT, 480, + EXO_PARAM_READWRITE); /** * ThunarPreferences:last-window-width: @@ -393,27 +422,37 @@ * The last known width of a #ThunarWindow, which will be used as * default width for newly created windows. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_WINDOW_WIDTH, - g_param_spec_int ("last-window-width", - "LastWindowWidth", - "last-window-width", - 1, G_MAXINT, 640, - EXO_PARAM_READWRITE)); - + preferences_props[PROP_LAST_WINDOW_WIDTH] = + g_param_spec_int ("last-window-width", + "LastWindowWidth", + NULL, + 1, G_MAXINT, 640, + EXO_PARAM_READWRITE); + /** * ThunarPreferences:last-window-maximized: * * The last known maximized state of a #ThunarWindow, which will be used as * default width for newly created windows. **/ - g_object_class_install_property (gobject_class, - PROP_LAST_WINDOW_FULLSCREEN, - g_param_spec_boolean ("last-window-maximized", - "LastWindowMaximized", - "last-window-maximized", - FALSE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_LAST_WINDOW_FULLSCREEN] = + g_param_spec_boolean ("last-window-maximized", + "LastWindowMaximized", + NULL, + FALSE, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:misc-always-show-tabs: + * + * If the view tabs should always be visible. + **/ + preferences_props[PROP_MISC_ALWAYS_SHOW_TABS] = + g_param_spec_boolean ("misc-always-show-tabs", + NULL, + NULL, + FALSE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-volume-management: @@ -421,53 +460,78 @@ * Whether to enable volume management capabilities (requires HAL and the * thunar-volman package). **/ - g_object_class_install_property (gobject_class, - PROP_MISC_VOLUME_MANAGEMENT, - g_param_spec_boolean ("misc-volume-management", - "MiscVolumeManagement", - "misc-volume-management", - TRUE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_VOLUME_MANAGEMENT] = + g_param_spec_boolean ("misc-volume-management", + "MiscVolumeManagement", + NULL, + TRUE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-case-sensitive: * * Whether to use case-sensitive sort. **/ - g_object_class_install_property (gobject_class, - PROP_MISC_CASE_SENSITIVE, - g_param_spec_boolean ("misc-case-sensitive", - "MiscCaseSensitive", - "misc-case-sensitive", - FALSE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_CASE_SENSITIVE] = + g_param_spec_boolean ("misc-case-sensitive", + "MiscCaseSensitive", + NULL, + FALSE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-date-style: * * The style used to display dates in the user interface. **/ - g_object_class_install_property (gobject_class, - PROP_MISC_DATE_STYLE, - g_param_spec_enum ("misc-date-style", - "MiscDateStyle", - "misc-date-style", - THUNAR_TYPE_DATE_STYLE, - THUNAR_DATE_STYLE_SIMPLE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_DATE_STYLE] = + g_param_spec_enum ("misc-date-style", + "MiscDateStyle", + NULL, + THUNAR_TYPE_DATE_STYLE, + THUNAR_DATE_STYLE_SIMPLE, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:misc-execute-shell-scripts-by-default: + * + * Shell scripts are often unsafe to execute, require additional + * parameters and most users will only want to edit them in their + * favorite editor, so the default is to open them in the associated + * application. Setting this to TRUE allows executing them, like + * binaries, by default. See bug #7596. + **/ + preferences_props[PROP_EXEC_SHELL_SCRIPTS_BY_DEFAULT] = + g_param_spec_boolean ("misc-exec-shell-scripts-by-default", + "MiscExecShellScriptsByDefault", + NULL, + FALSE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-folders-first: * * Whether to sort folders before files. **/ - g_object_class_install_property (gobject_class, - PROP_MISC_FOLDERS_FIRST, - g_param_spec_boolean ("misc-folders-first", - "MiscFoldersFirst", - "misc-folders-first", - TRUE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_FOLDERS_FIRST] = + g_param_spec_boolean ("misc-folders-first", + "MiscFoldersFirst", + NULL, + TRUE, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:misc-full-path-in-title: + * + * Show the full directory path in the window title, instead of + * only the directory name. + **/ + preferences_props[PROP_MISC_FULL_PATH_IN_TITLE] = + g_param_spec_boolean ("misc-full-path-in-title", + "MiscFullPathInTitle", + NULL, + FALSE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-horizontal-wheel-navigates: @@ -475,13 +539,38 @@ * Whether the horizontal mouse wheel is used to navigate * forth and back within a Thunar view. **/ - g_object_class_install_property (gobject_class, - PROP_MISC_HORIZONTAL_WHEEL_NAVIGATES, - g_param_spec_boolean ("misc-horizontal-wheel-navigates", - "MiscHorizontalWheelNavigates", - "misc-horizontal-wheel-navigates", - FALSE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_HORIZONTAL_WHEEL_NAVIGATES] = + g_param_spec_boolean ("misc-horizontal-wheel-navigates", + "MiscHorizontalWheelNavigates", + NULL, + FALSE, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:misc-image-size-in-statusbar: + * + * When a single image file is selected, show its size + * in the statusbar. This heavily increases I/O in image + * folders when moving the selection across files. + **/ + preferences_props[PROP_MISC_IMAGE_SIZE_IN_STATUSBAR] = + g_param_spec_boolean ("misc-image-size-in-statusbar", + "MiscImageSizeInStatusbar", + NULL, + FALSE, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:misc-middle-click-in-tab: + * + * If middle click opens a folder in a new window (FALSE) or in a new window (TRUE); + **/ + preferences_props[PROP_MISC_MIDDLE_CLICK_IN_TAB] = + g_param_spec_boolean ("misc-middle-click-in-tab", + NULL, + NULL, + FALSE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-recursive-permissions: @@ -489,14 +578,13 @@ * Whether to apply permissions recursively everytime the * permissions are altered by the user. **/ - g_object_class_install_property (gobject_class, - PROP_MISC_RECURSIVE_PERMISSIONS, - g_param_spec_enum ("misc-recursive-permissions", - "MiscRecursivePermissions", - "misc-recursive-permissions", - THUNAR_TYPE_RECURSIVE_PERMISSIONS, - THUNAR_RECURSIVE_PERMISSIONS_ASK, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_RECURSIVE_PERMISSIONS] = + g_param_spec_enum ("misc-recursive-permissions", + "MiscRecursivePermissions", + NULL, + THUNAR_TYPE_RECURSIVE_PERMISSIONS, + THUNAR_RECURSIVE_PERMISSIONS_ASK, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-remember-geometry: @@ -507,13 +595,12 @@ * %FALSE the user may specify the start size in "last-window-with" * and "last-window-height". **/ - g_object_class_install_property (gobject_class, - PROP_MISC_REMEMBER_GEOMETRY, - g_param_spec_boolean ("misc-remember-geometry", - "MiscRememberGeometry", - "misc-remember-geometry", - TRUE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_REMEMBER_GEOMETRY] = + g_param_spec_boolean ("misc-remember-geometry", + "MiscRememberGeometry", + NULL, + TRUE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-show-about-templates: @@ -521,39 +608,24 @@ * Whether to display the "About Templates" dialog, when opening the * Templates folder from the Go menu. **/ - g_object_class_install_property (gobject_class, - PROP_MISC_SHOW_ABOUT_TEMPLATES, - g_param_spec_boolean ("misc-show-about-templates", - "MiscShowAboutTemplates", - "misc-show-about-templates", - TRUE, - EXO_PARAM_READWRITE)); - - /** - * ThunarPreferences:misc-show-thumbnails: - * - * Whether to generate and display thumbnails for previewable files. - **/ - g_object_class_install_property (gobject_class, - PROP_MISC_SHOW_THUMBNAILS, - g_param_spec_boolean ("misc-show-thumbnails", - "MiscShowThumbnails", - "misc-show-thumbnails", - TRUE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_SHOW_ABOUT_TEMPLATES] = + g_param_spec_boolean ("misc-show-about-templates", + "MiscShowAboutTemplates", + NULL, + TRUE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-single-click: * * Whether to use single click navigation. **/ - g_object_class_install_property (gobject_class, - PROP_MISC_SINGLE_CLICK, - g_param_spec_boolean ("misc-single-click", - "MiscSingleClick", - "misc-single-click", - FALSE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_SINGLE_CLICK] = + g_param_spec_boolean ("misc-single-click", + "MiscSingleClick", + NULL, + FALSE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-single-click-timeout: @@ -563,13 +635,37 @@ * will be selected automatically. A value of %0 disables the * automatic selection. **/ - g_object_class_install_property (gobject_class, - PROP_MISC_SINGLE_CLICK_TIMEOUT, - g_param_spec_uint ("misc-single-click-timeout", - "MiscSingleClickTimeout", - "misc-single-click-timeout", - 0u, G_MAXUINT, 500u, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_SINGLE_CLICK_TIMEOUT] = + g_param_spec_uint ("misc-single-click-timeout", + "MiscSingleClickTimeout", + NULL, + 0u, G_MAXUINT, 500u, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:misc-small-toolbar-icons: + * + * Use small icons on the toolbar instead of the default toolbar size. + **/ + preferences_props[PROP_MISC_SMALL_TOOLBAR_ICONS] = + g_param_spec_boolean ("misc-small-toolbar-icons", + NULL, + NULL, + FALSE, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:misc-tab-close-middle-click: + * + * Whether to close tabs when the tab label is clicked with the 2nd + * mouse button. + **/ + preferences_props[PROP_MISC_TAB_CLOSE_MIDDLE_CLICK] = + g_param_spec_boolean ("misc-tab-close-middle-click", + NULL, + NULL, + TRUE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:misc-text-beside-icons: @@ -577,13 +673,37 @@ * Whether the icon view should display the file names beside the * file icons instead of below the file icons. **/ - g_object_class_install_property (gobject_class, - PROP_MISC_TEXT_BESIDE_ICONS, - g_param_spec_boolean ("misc-text-beside-icons", - "MiscTextBesideIcons", - "misc-text-beside-icons", - FALSE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_MISC_TEXT_BESIDE_ICONS] = + g_param_spec_boolean ("misc-text-beside-icons", + "MiscTextBesideIcons", + NULL, + FALSE, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:misc-thumbnail-mode: + * + * Whether to generate and display thumbnails for previewable files. + **/ + preferences_props[PROP_MISC_THUMBNAIL_MODE] = + g_param_spec_enum ("misc-thumbnail-mode", + NULL, + NULL, + THUNAR_TYPE_THUMBNAIL_MODE, + THUNAR_THUMBNAIL_MODE_ONLY_LOCAL, + EXO_PARAM_READWRITE); + + /** + * ThunarPreferences:misc-file-size-binary: + * + * Show file size in binary format instead of decimal. + **/ + preferences_props[PROP_MISC_FILE_SIZE_BINARY] = + g_param_spec_boolean ("misc-file-size-binary", + "MiscFileSizeBinary", + NULL, + FALSE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:shortcuts-icon-emblems: @@ -591,13 +711,12 @@ * Whether to display emblems for file icons (if defined) in the * shortcuts side pane. **/ - g_object_class_install_property (gobject_class, - PROP_SHORTCUTS_ICON_EMBLEMS, - g_param_spec_boolean ("shortcuts-icon-emblems", - "ShortcutsIconEmblems", - "shortcuts-icon-emblems", - TRUE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_SHORTCUTS_ICON_EMBLEMS] = + g_param_spec_boolean ("shortcuts-icon-emblems", + "ShortcutsIconEmblems", + NULL, + TRUE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:shortcuts-icon-size: @@ -605,14 +724,13 @@ * The icon size to use for the icons displayed in the * shortcuts side pane. **/ - g_object_class_install_property (gobject_class, - PROP_SHORTCUTS_ICON_SIZE, - g_param_spec_enum ("shortcuts-icon-size", - "ShortcutsIconSize", - "shortcuts-icon-size", - THUNAR_TYPE_ICON_SIZE, - THUNAR_ICON_SIZE_SMALLER, - EXO_PARAM_READWRITE)); + preferences_props[PROP_SHORTCUTS_ICON_SIZE] = + g_param_spec_enum ("shortcuts-icon-size", + "ShortcutsIconSize", + NULL, + THUNAR_TYPE_ICON_SIZE, + THUNAR_ICON_SIZE_SMALLER, + EXO_PARAM_READWRITE); /** * ThunarPreferences:tree-icon-emblems: @@ -620,13 +738,12 @@ * Whether to display emblems for file icons (if defined) in the * tree side pane. **/ - g_object_class_install_property (gobject_class, - PROP_TREE_ICON_EMBLEMS, - g_param_spec_boolean ("tree-icon-emblems", - "TreeIconEmblems", - "tree-icon-emblems", - TRUE, - EXO_PARAM_READWRITE)); + preferences_props[PROP_TREE_ICON_EMBLEMS] = + g_param_spec_boolean ("tree-icon-emblems", + "TreeIconEmblems", + NULL, + TRUE, + EXO_PARAM_READWRITE); /** * ThunarPreferences:tree-icon-size: @@ -634,14 +751,16 @@ * The icon size to use for the icons displayed in the * tree side pane. **/ - g_object_class_install_property (gobject_class, - PROP_TREE_ICON_SIZE, - g_param_spec_enum ("tree-icon-size", - "TreeIconSize", - "tree-icon-size", - THUNAR_TYPE_ICON_SIZE, - THUNAR_ICON_SIZE_SMALLEST, - EXO_PARAM_READWRITE)); + preferences_props[PROP_TREE_ICON_SIZE] = + g_param_spec_enum ("tree-icon-size", + "TreeIconSize", + NULL, + THUNAR_TYPE_ICON_SIZE, + THUNAR_ICON_SIZE_SMALLEST, + EXO_PARAM_READWRITE); + + /* install all properties */ + g_object_class_install_properties (gobject_class, N_PROPERTIES, preferences_props); } @@ -649,13 +768,29 @@ static void thunar_preferences_init (ThunarPreferences *preferences) { - preferences->monitor = NULL; + const gchar check_prop[] = "/last-view"; + + /* don't set a channel if xfconf init failed */ + if (no_xfconf) + return; + + /* load the channel */ + preferences->channel = xfconf_channel_get ("thunar"); + + /* check one of the property to see if there are values */ + if (!xfconf_channel_has_property (preferences->channel, check_prop)) + { + /* try to load the old config file */ + thunar_preferences_load_rc_file (preferences); - /* load the settings */ - thunar_preferences_load_idle (preferences); + /* set the string we check */ + if (!xfconf_channel_has_property (preferences->channel, check_prop)) + xfconf_channel_set_string (preferences->channel, check_prop, "ThunarIconView"); + } - /* launch the file monitor */ - thunar_preferences_resume_monitor (preferences); + preferences->property_changed_id = + g_signal_connect (G_OBJECT (preferences->channel), "property-changed", + G_CALLBACK (thunar_preferences_prop_changed), preferences); } @@ -664,30 +799,9 @@ thunar_preferences_finalize (GObject *object) { ThunarPreferences *preferences = THUNAR_PREFERENCES (object); - guint n; - - /* flush preferences */ - if (G_UNLIKELY (preferences->store_idle_id != 0)) - { - thunar_preferences_store_idle (preferences); - g_source_remove (preferences->store_idle_id); - } - /* stop any pending load idle source */ - if (G_UNLIKELY (preferences->load_idle_id != 0)) - g_source_remove (preferences->load_idle_id); - - /* stop the file monitor */ - if (G_LIKELY (preferences->monitor != NULL)) - { - thunar_preferences_suspend_monitor (preferences); - g_object_unref (G_OBJECT (preferences->monitor)); - } - - /* release the property values */ - for (n = 1; n < N_PROPERTIES; ++n) - if (G_IS_VALUE (preferences->values + n)) - g_value_unset (preferences->values + n); + /* disconnect from the updates */ + g_signal_handler_disconnect (preferences->channel, preferences->property_changed_id); (*G_OBJECT_CLASS (thunar_preferences_parent_class)->finalize) (object); } @@ -700,335 +814,197 @@ GValue *value, GParamSpec *pspec) { - ThunarPreferences *preferences = THUNAR_PREFERENCES (object); - GValue *src; - - src = preferences->values + prop_id; - if (G_IS_VALUE (src)) - g_value_copy (src, value); - else - g_param_value_set_default (pspec, value); -} + ThunarPreferences *preferences = THUNAR_PREFERENCES (object); + GValue src = { 0, }; + gchar prop_name[64]; + gchar **array; + /* only set defaults if channel is not set */ + if (G_UNLIKELY (preferences->channel == NULL)) + { + g_param_value_set_default (pspec, value); + return; + } + /* build property name */ + g_snprintf (prop_name, sizeof (prop_name), "/%s", g_param_spec_get_name (pspec)); -static void -thunar_preferences_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ThunarPreferences *preferences = THUNAR_PREFERENCES (object); - GValue *dst; - - dst = preferences->values + prop_id; - if (G_UNLIKELY (!G_IS_VALUE (dst))) + if (G_VALUE_TYPE (value) == G_TYPE_STRV) { - g_value_init (dst, pspec->value_type); - g_param_value_set_default (pspec, dst); + /* handle arrays directly since we cannot transform those */ + array = xfconf_channel_get_string_list (preferences->channel, prop_name); + g_value_take_boxed (value, array); } - - if (g_param_values_cmp (pspec, value, dst) != 0) + else if (xfconf_channel_get_property (preferences->channel, prop_name, &src)) { - g_value_copy (value, dst); - thunar_preferences_queue_store (preferences); + if (G_VALUE_TYPE (value) == G_VALUE_TYPE (&src)) + g_value_copy (&src, value); + else if (!g_value_transform (&src, value)) + g_printerr ("Thunar: Failed to transform property %s\n", prop_name); + g_value_unset (&src); } -} - - - -static void -thunar_preferences_resume_monitor (ThunarPreferences *preferences) -{ - GFile *file; - gchar *filename; - - /* verify that the monitor is suspended */ - if (G_LIKELY (preferences->monitor == NULL)) + else { - /* determine the save location for thunarrc to monitor */ - filename = xfce_resource_save_location (XFCE_RESOURCE_CONFIG, "Thunar/thunarrc", TRUE); - if (G_LIKELY (filename != NULL)) - { - /* monitor this file */ - file = g_file_new_for_path (filename); - preferences->monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, NULL); - if (G_LIKELY (preferences->monitor != NULL)) - g_signal_connect (preferences->monitor, "changed", G_CALLBACK (thunar_preferences_monitor), preferences); - g_object_unref (file); - - /* release the filename */ - g_free (filename); - } + /* value is not found, return default */ + g_param_value_set_default (pspec, value); } } static void -thunar_preferences_suspend_monitor (ThunarPreferences *preferences) +thunar_preferences_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) { - /* verify that the monitor is active */ - if (G_LIKELY (preferences->monitor != NULL - && !g_file_monitor_is_cancelled (preferences->monitor))) - { - /* disconnect the handle from the monitor */ - g_file_monitor_cancel (preferences->monitor); - } -} - + ThunarPreferences *preferences = THUNAR_PREFERENCES (object); + GValue dst = { 0, }; + gchar prop_name[64]; + gchar **array; + + /* leave if the channel is not set */ + if (G_UNLIKELY (preferences->channel == NULL)) + return; + /* build property name */ + g_snprintf (prop_name, sizeof (prop_name), "/%s", g_param_spec_get_name (pspec)); -static void -thunar_preferences_monitor (GFileMonitor *monitor, - GFile *file, - GFile *other_file, - GFileMonitorEvent event_type, - gpointer user_data) -{ - ThunarPreferences *preferences = THUNAR_PREFERENCES (user_data); + /* freeze */ + g_signal_handler_block (preferences->channel, preferences->property_changed_id); - _thunar_return_if_fail (THUNAR_IS_PREFERENCES (preferences)); - _thunar_return_if_fail (G_IS_FILE_MONITOR (monitor)); - _thunar_return_if_fail (preferences->monitor == monitor); - - /* schedule a reload whenever the file is created/changed */ - if (event_type == G_FILE_MONITOR_EVENT_CHANGED - || event_type == G_FILE_MONITOR_EVENT_CREATED) + if (G_VALUE_HOLDS_ENUM (value)) { - thunar_preferences_queue_load (preferences); + /* convert into a string */ + g_value_init (&dst, G_TYPE_STRING); + if (g_value_transform (value, &dst)) + xfconf_channel_set_property (preferences->channel, prop_name, &dst); + g_value_unset (&dst); } -} - - - -static void -thunar_preferences_queue_load (ThunarPreferences *preferences) -{ - if (preferences->load_idle_id == 0 && preferences->store_idle_id == 0) + else if (G_VALUE_HOLDS (value, G_TYPE_STRV)) { - preferences->load_idle_id = g_idle_add_full (G_PRIORITY_LOW, thunar_preferences_load_idle, - preferences, thunar_preferences_load_idle_destroy); + /* convert to a GValue GPtrArray in xfconf */ + array = g_value_get_boxed (value); + if (array != NULL && *array != NULL) + xfconf_channel_set_string_list (preferences->channel, prop_name, (const gchar * const *) array); + else + xfconf_channel_reset_property (preferences->channel, prop_name, FALSE); } -} - - - -static void -thunar_preferences_queue_store (ThunarPreferences *preferences) -{ - if (preferences->store_idle_id == 0 && !preferences->loading_in_progress) + else { - preferences->store_idle_id = g_idle_add_full (G_PRIORITY_LOW, thunar_preferences_store_idle, - preferences, thunar_preferences_store_idle_destroy); + /* other types we support directly */ + xfconf_channel_set_property (preferences->channel, prop_name, value); } + + /* thaw */ + g_signal_handler_unblock (preferences->channel, preferences->property_changed_id); } -#ifndef NDEBUG -static gchar* -property_name_to_option_name (const gchar *property_name) +static void +thunar_preferences_prop_changed (XfconfChannel *channel, + const gchar *prop_name, + const GValue *value, + ThunarPreferences *preferences) { - const gchar *s; - gboolean upper = TRUE; - gchar *option; - gchar *t; + GParamSpec *pspec; - option = g_new (gchar, strlen (property_name) + 1); - for (s = property_name, t = option; *s != '\0'; ++s) - { - if (*s == '-') - { - upper = TRUE; - } - else if (upper) - { - *t++ = g_ascii_toupper (*s); - upper = FALSE; - } - else - { - *t++ = *s; - } - } - *t = '\0'; - - return option; + /* check if the property exists and emit change */ + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (preferences), prop_name + 1); + if (G_LIKELY (pspec != NULL)) + g_object_notify_by_pspec (G_OBJECT (preferences), pspec); } -#endif -static gboolean -thunar_preferences_load_idle (gpointer user_data) +static void +thunar_preferences_load_rc_file (ThunarPreferences *preferences) { - ThunarPreferences *preferences = THUNAR_PREFERENCES (user_data); - const gchar *string; - GParamSpec **specs; - GParamSpec *spec; - XfceRc *rc; - GValue dst = { 0, }; - GValue src = { 0, }; -#ifndef NDEBUG - gchar *option; -#endif - guint nspecs; - guint n; + GParamSpec **pspecs; + GParamSpec *pspec; + XfceRc *rc; + guint nspecs, n; + const gchar *string; + GValue dst = { 0, }; + GValue src = { 0, }; + gchar prop_name[64]; + const gchar *nick; + gchar *filename; + + /* find file */ + filename = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, "Thunar/thunarrc"); + if (G_UNLIKELY (filename == NULL)) + return; - rc = xfce_rc_config_open (XFCE_RESOURCE_CONFIG, "Thunar/thunarrc", TRUE); + /* look for preferences */ + rc = xfce_rc_simple_open (filename, TRUE); if (G_UNLIKELY (rc == NULL)) - { - g_warning ("Failed to load thunar preferences."); - return FALSE; - } - - g_object_freeze_notify (G_OBJECT (preferences)); + return; xfce_rc_set_group (rc, "Configuration"); - preferences->loading_in_progress = TRUE; - - specs = g_object_class_list_properties (G_OBJECT_GET_CLASS (preferences), &nspecs); + pspecs = g_object_class_list_properties (G_OBJECT_GET_CLASS (preferences), &nspecs); for (n = 0; n < nspecs; ++n) { - spec = specs[n]; - -#ifndef NDEBUG - /* when debugging is enabled, check if the generated option name - * is equal to the nickname, to prevent typos */ - option = property_name_to_option_name (spec->name); - g_assert (exo_str_is_equal (option, g_param_spec_get_nick (spec))); - g_free (option); -#endif + pspec = pspecs[n]; - string = xfce_rc_read_entry (rc, g_param_spec_get_nick (spec), NULL); + /* continue if the nick is null */ + nick = g_param_spec_get_nick (pspec); + if (G_UNLIKELY (nick == NULL)) + continue; + /* read the value from the rc file */ + string = xfce_rc_read_entry (rc, nick, NULL); if (G_UNLIKELY (string == NULL)) continue; + /* xfconf property name, continue if exists */ + g_snprintf (prop_name, sizeof (prop_name), "/%s", g_param_spec_get_name (pspec)); + if (xfconf_channel_has_property (preferences->channel, prop_name)) + continue; + + /* source property */ g_value_init (&src, G_TYPE_STRING); g_value_set_static_string (&src, string); - if (spec->value_type == G_TYPE_STRING) + /* store string and enums directly */ + if (G_IS_PARAM_SPEC_STRING (pspec) || G_IS_PARAM_SPEC_ENUM (pspec)) { - g_object_set_property (G_OBJECT (preferences), spec->name, &src); + xfconf_channel_set_property (preferences->channel, prop_name, &src); } - else if (g_value_type_transformable (G_TYPE_STRING, spec->value_type)) + else if (g_value_type_transformable (G_TYPE_STRING, G_PARAM_SPEC_VALUE_TYPE (pspec))) { - g_value_init (&dst, spec->value_type); + g_value_init (&dst, G_PARAM_SPEC_VALUE_TYPE (pspec)); if (g_value_transform (&src, &dst)) - g_object_set_property (G_OBJECT (preferences), spec->name, &dst); + xfconf_channel_set_property (preferences->channel, prop_name, &dst); g_value_unset (&dst); } else { - g_warning ("Failed to load property \"%s\"", spec->name); + g_warning ("Failed to migrate property \"%s\"", g_param_spec_get_name (pspec)); } g_value_unset (&src); } - g_free (specs); - - preferences->loading_in_progress = FALSE; - - xfce_rc_close (rc); - - g_object_thaw_notify (G_OBJECT (preferences)); - - return FALSE; -} - - - -static void -thunar_preferences_load_idle_destroy (gpointer user_data) -{ - THUNAR_PREFERENCES (user_data)->load_idle_id = 0; -} - - - -static gboolean -thunar_preferences_store_idle (gpointer user_data) -{ - ThunarPreferences *preferences = THUNAR_PREFERENCES (user_data); - const gchar *string; - GParamSpec **specs; - GParamSpec *spec; - XfceRc *rc; - GValue dst = { 0, }; - GValue src = { 0, }; -#ifndef NDEBUG - gchar *option; -#endif - guint nspecs; - guint n; - - rc = xfce_rc_config_open (XFCE_RESOURCE_CONFIG, "Thunar/thunarrc", FALSE); - if (G_UNLIKELY (rc == NULL)) - { - g_warning ("Failed to store thunar preferences."); - return FALSE; - } - - /* suspend the monitor (hopefully tricking FAM to avoid unnecessary reloads) */ - thunar_preferences_suspend_monitor (preferences); - xfce_rc_set_group (rc, "Configuration"); - - specs = g_object_class_list_properties (G_OBJECT_GET_CLASS (preferences), &nspecs); - for (n = 0; n < nspecs; ++n) + /* manually migrate the thumbnails property */ + if (!xfce_rc_read_bool_entry (rc, "MiscShowThumbnails", TRUE)) { - spec = specs[n]; - - g_value_init (&dst, G_TYPE_STRING); - - if (spec->value_type == G_TYPE_STRING) - { - g_object_get_property (G_OBJECT (preferences), spec->name, &dst); - } - else - { - g_value_init (&src, spec->value_type); - g_object_get_property (G_OBJECT (preferences), spec->name, &src); - g_value_transform (&src, &dst); - g_value_unset (&src); - } - -#ifndef NDEBUG - /* when debugging is enabled, check if the generated option name - * is equal to the nickname, to prevent typos */ - option = property_name_to_option_name (spec->name); - g_assert (exo_str_is_equal (option, g_param_spec_get_nick (spec))); - g_free (option); -#endif - - /* store the setting */ - string = g_value_get_string (&dst); - if (G_LIKELY (string != NULL)) - xfce_rc_write_entry (rc, g_param_spec_get_nick (spec), string); - - /* cleanup */ - g_value_unset (&dst); + xfconf_channel_set_string (preferences->channel, + "/misc-thumbnail-mode", + "THUNAR_THUMBNAIL_MODE_NEVER"); } - /* cleanup */ + g_free (pspecs); xfce_rc_close (rc); - g_free (specs); - - /* restart the monitor */ - thunar_preferences_resume_monitor (preferences); - - return FALSE; -} - + g_print ("\n\n" + "Your Thunar settings have been migrated to Xfconf.\n" + "The config file \"%s\"\n" + "is not used anymore.\n\n", filename); -static void -thunar_preferences_store_idle_destroy (gpointer user_data) -{ - THUNAR_PREFERENCES (user_data)->store_idle_id = 0; + g_free (filename); } @@ -1063,3 +1039,9 @@ } + +void +thunar_preferences_xfconf_init_failed (void) +{ + no_xfconf = TRUE; +} diff -Nru thunar-1.2.3/thunar/thunar-preferences-dialog.c thunar-1.6.10/thunar/thunar-preferences-dialog.c --- thunar-1.2.3/thunar/thunar-preferences-dialog.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-preferences-dialog.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2007 Benedikt Meurer * @@ -23,7 +23,6 @@ #include -#include #include #include #include @@ -148,6 +147,41 @@ +static gboolean +transform_thumbnail_mode_to_index (const GValue *src_value, + GValue *dst_value, + gpointer user_data) +{ + GEnumClass *klass; + guint n; + + klass = g_type_class_ref (THUNAR_TYPE_THUMBNAIL_MODE); + for (n = 0; n < klass->n_values; ++n) + if (klass->values[n].value == g_value_get_enum (src_value)) + g_value_set_int (dst_value, n); + g_type_class_unref (klass); + + return TRUE; +} + + + +static gboolean +transform_thumbnail_index_to_mode (const GValue *src_value, + GValue *dst_value, + gpointer user_data) +{ + GEnumClass *klass; + + klass = g_type_class_ref (THUNAR_TYPE_THUMBNAIL_MODE); + g_value_set_enum (dst_value, klass->values[g_value_get_int (src_value)].value); + g_type_class_unref (klass); + + return TRUE; +} + + + static void thunar_preferences_dialog_class_init (ThunarPreferencesDialogClass *klass) { @@ -186,8 +220,7 @@ dialog->preferences = thunar_preferences_get (); /* configure the dialog properties */ - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); - gtk_window_set_icon_name (GTK_WINDOW (dialog), "xfce-filemanager"); + gtk_window_set_icon_name (GTK_WINDOW (dialog), "system-file-manager"); gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); gtk_window_set_title (GTK_WINDOW (dialog), _("File Manager Preferences")); @@ -221,7 +254,7 @@ gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_widget_show (label); - table = gtk_table_new (3, 2, FALSE); + table = gtk_table_new (4, 3, FALSE); gtk_table_set_row_spacings (GTK_TABLE (table), 6); gtk_table_set_col_spacings (GTK_TABLE (table), 12); gtk_container_set_border_width (GTK_CONTAINER (table), 12); @@ -229,14 +262,15 @@ gtk_widget_show (table); label = gtk_label_new_with_mnemonic (_("View _new folders using:")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (label); - combo = gtk_combo_box_new_text (); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Icon View")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Detailed List View")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Compact List View")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Last Active View")); + combo = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Icon View")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Detailed List View")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Compact List View")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Last Active View")); exo_mutual_binding_new_full (G_OBJECT (dialog->preferences), "default-view", G_OBJECT (combo), "active", transform_view_string_to_index, transform_view_index_to_string, NULL, NULL); gtk_table_attach (GTK_TABLE (table), combo, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); @@ -244,17 +278,32 @@ gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo); gtk_widget_show (combo); + label = gtk_label_new_with_mnemonic (_("Show thumbnails:")); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + + combo = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Never")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Local Files Only")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Always")); + exo_mutual_binding_new_full (G_OBJECT (dialog->preferences), "misc-thumbnail-mode", G_OBJECT (combo), "active", + transform_thumbnail_mode_to_index, transform_thumbnail_index_to_mode, NULL, NULL); + gtk_table_attach (GTK_TABLE (table), combo, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); + thunar_gtk_label_set_a11y_relation (GTK_LABEL (label), combo); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo); + gtk_widget_show (combo); + button = gtk_check_button_new_with_mnemonic (_("Sort _folders before files")); exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-folders-first", G_OBJECT (button), "active"); gtk_widget_set_tooltip_text (button, _("Select this option to list folders before files when you sort a folder.")); - gtk_table_attach (GTK_TABLE (table), button, 0, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (GTK_TABLE (table), button, 0, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (button); - button = gtk_check_button_new_with_mnemonic (_("_Show thumbnails")); - exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-show-thumbnails", G_OBJECT (button), "active"); - gtk_widget_set_tooltip_text (button, _("Select this option to display previewable files within a " - "folder as automatically generated thumbnail icons.")); - gtk_table_attach (GTK_TABLE (table), button, 0, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); + button = gtk_check_button_new_with_mnemonic (_("Show file size in binary format")); + exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-file-size-binary", G_OBJECT (button), "active"); + gtk_widget_set_tooltip_text (button, _("Select this option to show file size in binary format instead of decimal.")); + gtk_table_attach (GTK_TABLE (table), button, 0, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (button); frame = g_object_new (GTK_TYPE_FRAME, "border-width", 0, "shadow-type", GTK_SHADOW_NONE, NULL); @@ -300,11 +349,11 @@ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (label); - combo = gtk_combo_box_new_text (); + combo = gtk_combo_box_text_new (); for (date_style = THUNAR_DATE_STYLE_SIMPLE; date_style <= THUNAR_DATE_STYLE_ISO; ++date_style) { date = thunar_util_humanize_file_time (time (NULL), date_style); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), date); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), date); g_free (date); } exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-date-style", G_OBJECT (combo), "active"); @@ -343,14 +392,14 @@ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (label); - combo = gtk_combo_box_new_text (); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Very Small")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Smaller")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Small")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Normal")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Large")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Larger")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Very Large")); + combo = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Very Small")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Smaller")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Small")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Normal")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Large")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Larger")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Very Large")); exo_mutual_binding_new_full (G_OBJECT (dialog->preferences), "shortcuts-icon-size", G_OBJECT (combo), "active", transform_icon_size_to_index, transform_index_to_icon_size, NULL, NULL); gtk_table_attach (GTK_TABLE (table), combo, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); @@ -385,14 +434,14 @@ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (label); - combo = gtk_combo_box_new_text (); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Very Small")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Smaller")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Small")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Normal")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Large")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Larger")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Very Large")); + combo = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Very Small")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Smaller")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Small")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Normal")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Large")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Larger")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Very Large")); exo_mutual_binding_new_full (G_OBJECT (dialog->preferences), "tree-icon-size", G_OBJECT (combo), "active", transform_icon_size_to_index, transform_index_to_icon_size, NULL, NULL); gtk_table_attach (GTK_TABLE (table), combo, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); @@ -507,6 +556,30 @@ gtk_table_attach (GTK_TABLE (table), button, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0); gtk_widget_show (button); + frame = g_object_new (GTK_TYPE_FRAME, "border-width", 0, "shadow-type", GTK_SHADOW_NONE, NULL); + gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0); + gtk_widget_show (frame); + + label = gtk_label_new (_("Middle Click")); + gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ()); + gtk_frame_set_label_widget (GTK_FRAME (frame), label); + gtk_widget_show (label); + + vbox = gtk_vbox_new (FALSE, 6); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); + gtk_widget_show (vbox); + + button = gtk_radio_button_new_with_mnemonic_from_widget (NULL, _("Open folder in new _window")); + g_signal_connect (G_OBJECT (button), "toggled", G_CALLBACK (g_object_notify), "active"); + gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, TRUE, 0); + gtk_widget_show (button); + + button = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (button), _("Open folder in new _tab")); + exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-middle-click-in-tab", G_OBJECT (button), "active"); + g_signal_connect (G_OBJECT (button), "toggled", G_CALLBACK (g_object_notify), "active"); + gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, TRUE, 0); + gtk_widget_show (button); /* Advanced @@ -540,10 +613,10 @@ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (label); - combo = gtk_combo_box_new_text (); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Ask everytime")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Apply to Folder Only")); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Apply to Folder and Contents")); + combo = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Ask everytime")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Apply to Folder Only")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Apply to Folder and Contents")); exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-recursive-permissions", G_OBJECT (combo), "active"); gtk_table_attach (GTK_TABLE (table), combo, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); thunar_gtk_label_set_a11y_relation (GTK_LABEL (label), combo); @@ -574,13 +647,12 @@ gtk_table_attach (GTK_TABLE (table), button, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (button); - label = sexy_url_label_new (); + label = gtk_label_new (NULL); gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.5f); exo_binding_new (G_OBJECT (button), "active", G_OBJECT (label), "sensitive"); - g_signal_connect_swapped (G_OBJECT (label), "url-activated", G_CALLBACK (thunar_preferences_dialog_configure), dialog); - /* TRANSLATORS: Make sure you place the ...-link on the first line, otherwise the user will be unable to click on it */ - sexy_url_label_set_markup (SEXY_URL_LABEL (label), _("Configure the management of removable drives\n" - "and media (i.e. how cameras should be handled).")); + g_signal_connect_swapped (G_OBJECT (label), "activate-link", G_CALLBACK (thunar_preferences_dialog_configure), dialog); + gtk_label_set_markup (GTK_LABEL (label), _("Configure the management of removable drives\n" + "and media (i.e. how cameras should be handled).")); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (label); @@ -610,7 +682,8 @@ if (G_UNLIKELY (response == GTK_RESPONSE_HELP)) { /* open the preferences section of the user manual */ - thunar_dialogs_show_help (GTK_WIDGET (dialog), "preferences", NULL); + xfce_dialog_show_help (GTK_WINDOW (dialog), "thunar", + "preferences", NULL); } else { diff -Nru thunar-1.2.3/thunar/thunar-preferences-dialog.h thunar-1.6.10/thunar/thunar-preferences-dialog.h --- thunar-1.2.3/thunar/thunar-preferences-dialog.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-preferences-dialog.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-preferences.h thunar-1.6.10/thunar/thunar-preferences.h --- thunar-1.2.3/thunar/thunar-preferences.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-preferences.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -34,9 +34,11 @@ #define THUNAR_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_PREFERENCES)) #define THUNAR_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_PREFERENCES, ThunarPreferencesClass)) -GType thunar_preferences_get_type (void) G_GNUC_CONST; +GType thunar_preferences_get_type (void) G_GNUC_CONST; -ThunarPreferences *thunar_preferences_get (void); +ThunarPreferences *thunar_preferences_get (void); + +void thunar_preferences_xfconf_init_failed (void); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-private.h thunar-1.6.10/thunar/thunar-private.h --- thunar-1.2.3/thunar/thunar-private.h 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-private.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -74,23 +74,6 @@ }G_STMT_END #endif -#define XDG_USER_DIRS_PACKAGE "xdg-user-dirs" -#define LOCALE_FILE_NAME "user-dirs.locale" - -typedef GUserDirectory ThunarUserDirectory; -#define THUNAR_USER_DIRECTORY_DESKTOP G_USER_DIRECTORY_DESKTOP -#define THUNAR_USER_DIRECTORY_DOCUMENTS G_USER_DIRECTORY_DOCUMENTS -#define THUNAR_USER_DIRECTORY_DOWNLOAD G_USER_DIRECTORY_DOWNLOAD -#define THUNAR_USER_DIRECTORY_MUSIC G_USER_DIRECTORY_MUSIC -#define THUNAR_USER_DIRECTORY_PICTURES G_USER_DIRECTORY_PICTURES -#define THUNAR_USER_DIRECTORY_PUBLIC_SHARE G_USER_DIRECTORY_PUBLIC_SHARE -#define THUNAR_USER_DIRECTORY_TEMPLATES G_USER_DIRECTORY_TEMPLATES -#define THUNAR_USER_DIRECTORY_VIDEOS G_USER_DIRECTORY_VIDEOS -#define THUNAR_USER_N_DIRECTORIES (8) - -gchar *_thunar_get_xdg_user_dirs_locale (void); -extern const gchar *_thunar_user_directory_names[THUNAR_USER_N_DIRECTORIES+1]; - G_END_DECLS; #endif /* !__THUNAR_PRIVATE_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-progress-dialog.c thunar-1.6.10/thunar/thunar-progress-dialog.c --- thunar-1.2.3/thunar/thunar-progress-dialog.c 2011-01-26 22:00:08.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-progress-dialog.c 2015-05-22 13:25:36.000000000 +0000 @@ -92,11 +92,11 @@ dialog->views = NULL; gtk_window_set_title (GTK_WINDOW (dialog), _("File Operation Progress")); - gtk_window_set_default_size (GTK_WINDOW (dialog), 400, 10); + gtk_window_set_default_size (GTK_WINDOW (dialog), 450, 10); gtk_window_set_modal (GTK_WINDOW (dialog), FALSE); gtk_window_set_transient_for (GTK_WINDOW (dialog), NULL); gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), FALSE); - gtk_window_set_type_hint (GTK_WINDOW (dialog), GDK_WINDOW_TYPE_HINT_NORMAL); + gtk_window_set_type_hint (GTK_WINDOW (dialog), GDK_WINDOW_TYPE_HINT_DIALOG); g_signal_connect_swapped (dialog, "show", G_CALLBACK (thunar_progress_dialog_shown), dialog); @@ -188,7 +188,7 @@ _thunar_return_val_if_fail (GTK_IS_STATUS_ICON (status_icon), FALSE); /* check if the window is visible and has the focus */ - if (GTK_WIDGET_VISIBLE (GTK_WIDGET (dialog)) + if (gtk_widget_get_visible (GTK_WIDGET (dialog)) && gtk_window_is_active (GTK_WINDOW (dialog))) { /* remember the position of the dialog */ @@ -200,7 +200,7 @@ else { /* check if the dialog is invisible */ - if (!GTK_WIDGET_VISIBLE (GTK_WIDGET (dialog))) + if (!gtk_widget_get_visible (GTK_WIDGET (dialog))) { /* restore its previous position before presenting it */ gtk_window_move (GTK_WINDOW (dialog), dialog->x, dialog->y); @@ -264,7 +264,7 @@ if (n_views < SCROLLVIEW_THRESHOLD) { /* try to shrink the window */ - gtk_window_resize (GTK_WINDOW (dialog), 400, 10); + gtk_window_resize (GTK_WINDOW (dialog), 450, 10); } /* check if we still have at least one view */ @@ -302,11 +302,7 @@ n_views); /* update the tooltip */ -#if GTK_CHECK_VERSION (2, 16, 0) gtk_status_icon_set_tooltip_text (dialog->status_icon, tooltip_text); -#else - gtk_status_icon_set_tooltip (dialog->status_icon, tooltip_text); -#endif /* free the string */ g_free (tooltip_text); @@ -343,7 +339,11 @@ thunar_progress_view_set_title (THUNAR_PROGRESS_VIEW (view), title); gtk_box_pack_start (GTK_BOX (dialog->content_box), view, FALSE, TRUE, 0); gtk_widget_show (view); - + + /* use the first job's icon-name for the dialog */ + if (dialog->views == NULL) + gtk_window_set_icon_name (GTK_WINDOW (dialog), icon_name); + /* add the view to the list of known views */ dialog->views = g_list_prepend (dialog->views, view); diff -Nru thunar-1.2.3/thunar/thunar-progress-view.c thunar-1.6.10/thunar/thunar-progress-view.c --- thunar-1.2.3/thunar/thunar-progress-view.c 2011-01-24 19:06:05.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-progress-view.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2007 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -29,6 +29,8 @@ #include #include #include +#include +#include #include @@ -43,6 +45,7 @@ +static void thunar_progress_view_finalize (GObject *object); static void thunar_progress_view_dispose (GObject *object); static void thunar_progress_view_get_property (GObject *object, guint prop_id, @@ -72,6 +75,9 @@ static void thunar_progress_view_percent (ThunarProgressView *view, gdouble percent, ExoJob *job); +static ThunarJob *thunar_progress_view_get_job (ThunarProgressView *view); +static void thunar_progress_view_set_job (ThunarProgressView *view, + ThunarJob *job); @@ -86,11 +92,9 @@ ThunarJob *job; - GTimeVal start_time; - GTimeVal last_update_time; - GtkWidget *progress_bar; GtkWidget *progress_label; + GtkWidget *message_label; gchar *icon_name; gchar *title; @@ -108,6 +112,7 @@ GObjectClass *gobject_class; gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = thunar_progress_view_finalize; gobject_class->dispose = thunar_progress_view_dispose; gobject_class->get_property = thunar_progress_view_get_property; gobject_class->set_property = thunar_progress_view_set_property; @@ -115,7 +120,7 @@ /** * ThunarProgressView:job: * - * The #ThunarJob, whose progress is displayed by this view, or + * The #ThunarJob, whose progress is displayed by this view, or * %NULL if no job is set. **/ g_object_class_install_property (gobject_class, @@ -171,11 +176,9 @@ GtkWidget *button; GtkWidget *vbox; GtkWidget *vbox2; + GtkWidget *vbox3; GtkWidget *hbox; - /* remember the current time as start time */ - g_get_current_time (&view->start_time); - vbox = gtk_vbox_new (FALSE, 6); gtk_container_add (GTK_CONTAINER (view), vbox); gtk_widget_show (vbox); @@ -186,6 +189,7 @@ image = g_object_new (GTK_TYPE_IMAGE, "icon-size", GTK_ICON_SIZE_BUTTON, NULL); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); + exo_binding_new (G_OBJECT (view), "icon-name", G_OBJECT (image), "icon-name"); gtk_widget_show (image); vbox2 = gtk_vbox_new (FALSE, 6); @@ -198,26 +202,38 @@ gtk_box_pack_start (GTK_BOX (vbox2), label, TRUE, TRUE, 0); gtk_widget_show (label); - view->progress_label = g_object_new (GTK_TYPE_LABEL, "xalign", 0.0f, NULL); - gtk_label_set_ellipsize (GTK_LABEL (view->progress_label), PANGO_ELLIPSIZE_MIDDLE); - gtk_box_pack_start (GTK_BOX (vbox2), view->progress_label, TRUE, TRUE, 0); - gtk_widget_show (view->progress_label); + view->message_label = g_object_new (GTK_TYPE_LABEL, "xalign", 0.0f, NULL); + gtk_label_set_ellipsize (GTK_LABEL (view->message_label), PANGO_ELLIPSIZE_MIDDLE); + gtk_box_pack_start (GTK_BOX (vbox2), view->message_label, TRUE, TRUE, 0); + gtk_widget_show (view->message_label); - hbox = gtk_hbox_new (FALSE, 12); - gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); + hbox = gtk_hbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_widget_show (hbox); - view->progress_bar = g_object_new (GTK_TYPE_PROGRESS_BAR, "text", " ", NULL); - gtk_box_pack_start (GTK_BOX (hbox), view->progress_bar, TRUE, TRUE, 0); + vbox3 = gtk_vbox_new (FALSE, 3); + gtk_box_pack_start (GTK_BOX (hbox), vbox3, TRUE, TRUE, 0); + gtk_widget_show (vbox3); + + view->progress_bar = gtk_progress_bar_new (); + gtk_box_pack_start (GTK_BOX (vbox3), view->progress_bar, TRUE, TRUE, 0); gtk_widget_show (view->progress_bar); - button = gtk_button_new_from_stock (GTK_STOCK_CANCEL); + view->progress_label = g_object_new (GTK_TYPE_LABEL, "xalign", 0.0f, NULL); + gtk_label_set_ellipsize (GTK_LABEL (view->progress_label), PANGO_ELLIPSIZE_END); + gtk_label_set_attributes (GTK_LABEL (view->progress_label), thunar_pango_attr_list_small ()); + gtk_box_pack_start (GTK_BOX (vbox3), view->progress_label, FALSE, TRUE, 0); + gtk_widget_show (view->progress_label); + + button = gtk_button_new (); g_signal_connect_swapped (button, "clicked", G_CALLBACK (thunar_progress_view_cancel_job), view); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); + gtk_widget_set_can_focus (button, FALSE); gtk_widget_show (button); - - /* connect the view icon name to the action image */ - exo_binding_new (G_OBJECT (view), "icon-name", G_OBJECT (image), "icon-name"); + + image = gtk_image_new_from_stock (GTK_STOCK_CANCEL, GTK_ICON_SIZE_BUTTON); + gtk_container_add (GTK_CONTAINER (button), image); + gtk_widget_show (image); /* connect the view title to the action label */ exo_binding_new (G_OBJECT (view), "title", G_OBJECT (label), "label"); @@ -226,6 +242,19 @@ static void +thunar_progress_view_finalize (GObject *object) +{ + ThunarProgressView *view = THUNAR_PROGRESS_VIEW (object); + + g_free (view->icon_name); + g_free (view->title); + + (*G_OBJECT_CLASS (thunar_progress_view_parent_class)->finalize) (object); +} + + + +static void thunar_progress_view_dispose (GObject *object) { ThunarProgressView *view = THUNAR_PROGRESS_VIEW (object); @@ -314,16 +343,15 @@ exo_job_cancel (EXO_JOB (view->job)); /* don't listen to percentage updates any more */ - g_signal_handlers_disconnect_matched (view->job, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, + g_signal_handlers_disconnect_matched (view->job, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, thunar_progress_view_percent, NULL); /* don't listen to info messages any more */ g_signal_handlers_disconnect_matched (view->job, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, thunar_progress_view_info_message, NULL); - /* update the progress bar text */ - gtk_progress_bar_set_text (GTK_PROGRESS_BAR (view->progress_bar), - _("Cancelling...")); + /* update the status text */ + gtk_label_set_text (GTK_LABEL (view->progress_label), _("Cancelling...")); } } @@ -349,7 +377,7 @@ window = gtk_widget_get_toplevel (GTK_WIDGET (view)); /* display the question view */ - return thunar_dialogs_show_job_ask (window != NULL ? GTK_WINDOW (window) : NULL, + return thunar_dialogs_show_job_ask (window != NULL ? GTK_WINDOW (window) : NULL, message, choices); } @@ -376,7 +404,7 @@ window = gtk_widget_get_toplevel (GTK_WIDGET (view)); /* display the question view */ - return thunar_dialogs_show_job_ask_replace (window != NULL ? GTK_WINDOW (window) : NULL, + return thunar_dialogs_show_job_ask_replace (window != NULL ? GTK_WINDOW (window) : NULL, src_file, dst_file); } @@ -430,17 +458,7 @@ _thunar_return_if_fail (THUNAR_IS_JOB (job)); _thunar_return_if_fail (view->job == THUNAR_JOB (job)); - gtk_label_set_text (GTK_LABEL (view->progress_label), message); -} - - - -static inline guint64 -time_diff (const GTimeVal *now, - const GTimeVal *last) -{ - return ((guint64) now->tv_sec - last->tv_sec) * G_USEC_PER_SEC - + ((guint64) last->tv_usec - last->tv_usec); + gtk_label_set_text (GTK_LABEL (view->message_label), message); } @@ -450,78 +468,28 @@ gdouble percent, ExoJob *job) { - GTimeVal current_time; - gulong remaining_time; - gulong elapsed_time; - gchar text[512]; + gchar *text; _thunar_return_if_fail (THUNAR_IS_PROGRESS_VIEW (view)); _thunar_return_if_fail (percent >= 0.0 && percent <= 100.0); _thunar_return_if_fail (THUNAR_IS_JOB (job)); _thunar_return_if_fail (view->job == THUNAR_JOB (job)); - + + /* update progressbar */ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (view->progress_bar), percent / 100.0); - /* check if we should update the time display (every 400ms) */ - g_get_current_time (¤t_time); - if (time_diff (¤t_time, &view->last_update_time) > 400 * 1000) + /* set progress text */ + if (THUNAR_IS_TRANSFER_JOB (job)) { - /* calculate the remaining time (in seconds) */ - elapsed_time = time_diff (¤t_time, &view->start_time) / 1000; - remaining_time = ((100 * elapsed_time) / percent - elapsed_time) / 1000; - - /* setup the time label */ - if (G_LIKELY (remaining_time > 0)) - { - /* format the time text */ - if (remaining_time > 60 * 60) - { - remaining_time = (gulong) (remaining_time / (60 * 60)); - g_snprintf (text, sizeof (text), ngettext ("%lu hour remaining", "%lu hours remaining", remaining_time), remaining_time); - } - else if (remaining_time > 60) - { - remaining_time = (gulong) (remaining_time / 60); - g_snprintf (text, sizeof (text), ngettext ("%lu minute remaining", "%lu minutes remaining", remaining_time), remaining_time); - } - else - { - remaining_time = remaining_time; - g_snprintf (text, sizeof (text), ngettext ("%lu second remaining", "%lu seconds remaining", remaining_time), remaining_time); - } - - /* apply the time text */ - gtk_progress_bar_set_text (GTK_PROGRESS_BAR (view->progress_bar), text); - } - else - { - /* display an empty label */ - gtk_progress_bar_set_text (GTK_PROGRESS_BAR (view->progress_bar), " "); - } - - /* remember the current time as last update time */ - view->last_update_time = current_time; + text = thunar_transfer_job_get_status (THUNAR_TRANSFER_JOB (job)); + gtk_label_set_text (GTK_LABEL (view->progress_label), text); + g_free (text); } } /** - * thunar_progress_view_new: - * - * Allocates a new #ThunarProgressView. - * - * Return value: the newly allocated #ThunarProgressView. - **/ -GtkWidget* -thunar_progress_view_new (void) -{ - return thunar_progress_view_new_with_job (NULL); -} - - - -/** * thunar_progress_view_new_with_job: * @job : a #ThunarJob or %NULL. * @@ -547,7 +515,7 @@ * * Return value: the job associated with @view or %NULL. **/ -ThunarJob * +static ThunarJob * thunar_progress_view_get_job (ThunarProgressView *view) { _thunar_return_val_if_fail (THUNAR_IS_PROGRESS_VIEW (view), NULL); @@ -563,7 +531,7 @@ * * Associates @job with @view. **/ -void +static void thunar_progress_view_set_job (ThunarProgressView *view, ThunarJob *job) { diff -Nru thunar-1.2.3/thunar/thunar-progress-view.h thunar-1.6.10/thunar/thunar-progress-view.h --- thunar-1.2.3/thunar/thunar-progress-view.h 2009-09-14 16:20:23.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-progress-view.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -39,12 +39,8 @@ GType thunar_progress_view_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_progress_view_new (void) G_GNUC_MALLOC; GtkWidget *thunar_progress_view_new_with_job (ThunarJob *job) G_GNUC_MALLOC; -ThunarJob *thunar_progress_view_get_job (ThunarProgressView *view); -void thunar_progress_view_set_job (ThunarProgressView *view, - ThunarJob *job); void thunar_progress_view_set_icon_name (ThunarProgressView *view, const gchar *icon_name); void thunar_progress_view_set_title (ThunarProgressView *view, diff -Nru thunar-1.2.3/thunar/thunar-properties-dialog.c thunar-1.6.10/thunar/thunar-properties-dialog.c --- thunar-1.2.3/thunar/thunar-properties-dialog.c 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-properties-dialog.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,21 +1,23 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2007 Benedikt Meurer - * Copyright (c) 2009 Jannis Pohlmann + * Copyright (c) 2009-2011 Jannis Pohlmann + * Copyright (c) 2012 Nick Schermer * - * 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 free software; you can 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. + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -32,6 +34,7 @@ #include #include +#include #include #include @@ -52,6 +55,8 @@ #include #include #include +#include +#include @@ -59,7 +64,8 @@ enum { PROP_0, - PROP_FILE, + PROP_FILES, + PROP_FILE_SIZE_BINARY, }; /* Signal identifiers */ @@ -84,16 +90,16 @@ static void thunar_properties_dialog_response (GtkDialog *dialog, gint response); static gboolean thunar_properties_dialog_reload (ThunarPropertiesDialog *dialog); -static void thunar_properties_dialog_activate (GtkWidget *entry, +static void thunar_properties_dialog_name_activate (GtkWidget *entry, ThunarPropertiesDialog *dialog); -static gboolean thunar_properties_dialog_focus_out_event (GtkWidget *entry, +static gboolean thunar_properties_dialog_name_focus_out_event (GtkWidget *entry, GdkEventFocus *event, ThunarPropertiesDialog *dialog); static void thunar_properties_dialog_icon_button_clicked (GtkWidget *button, ThunarPropertiesDialog *dialog); static void thunar_properties_dialog_update (ThunarPropertiesDialog *dialog); static void thunar_properties_dialog_update_providers (ThunarPropertiesDialog *dialog); - +static GList *thunar_properties_dialog_get_files (ThunarPropertiesDialog *dialog); struct _ThunarPropertiesDialogClass @@ -113,20 +119,29 @@ ThunarPreferences *preferences; - ThunarFile *file; + GList *files; + gboolean file_size_binary; + + ThunarThumbnailer *thumbnailer; + guint thumbnail_request; GtkWidget *notebook; GtkWidget *icon_button; GtkWidget *icon_image; GtkWidget *name_entry; + GtkWidget *names_label; + GtkWidget *single_box; GtkWidget *kind_ebox; GtkWidget *kind_label; GtkWidget *openwith_chooser; GtkWidget *link_label; + GtkWidget *location_label; GtkWidget *origin_label; GtkWidget *deleted_label; GtkWidget *modified_label; GtkWidget *accessed_label; + GtkWidget *freespace_vbox; + GtkWidget *freespace_bar; GtkWidget *freespace_label; GtkWidget *volume_image; GtkWidget *volume_label; @@ -158,19 +173,32 @@ klass->reload = thunar_properties_dialog_reload; /** - * ThunarPropertiesDialog:file: + * ThunarPropertiesDialog:files: * - * The #ThunarFile whose properties are currently displayed by + * The list of currently selected files whose properties are displayed by * this #ThunarPropertiesDialog. This property may also be %NULL * in which case nothing is displayed. **/ g_object_class_install_property (gobject_class, - PROP_FILE, - g_param_spec_object ("file", "file", "file", - THUNAR_TYPE_FILE, + PROP_FILES, + g_param_spec_boxed ("files", "files", "files", + THUNARX_TYPE_FILE_INFO_LIST, EXO_PARAM_READWRITE)); /** + * ThunarPropertiesDialog:file_size_binary: + * + * Whether the file size should be shown in binary or decimal. + **/ + g_object_class_install_property (gobject_class, + PROP_FILE_SIZE_BINARY, + g_param_spec_boolean ("file-size-binary", + "FileSizeBinary", + NULL, + FALSE, + EXO_PARAM_READWRITE)); + + /** * ThunarPropertiesDialog::reload: * @dialog : a #ThunarPropertiesDialog. * @@ -202,12 +230,22 @@ GtkWidget *label; GtkWidget *box; GtkWidget *spacer; - gint row = 0; + guint row = 0; + GtkWidget *image; - /* acquire a reference on the preferences and monitor the "misc-date-style" setting */ + /* acquire a reference on the preferences and monitor the + "misc-date-style" and "misc-file-size-binary" settings */ dialog->preferences = thunar_preferences_get (); g_signal_connect_swapped (G_OBJECT (dialog->preferences), "notify::misc-date-style", G_CALLBACK (thunar_properties_dialog_reload), dialog); + exo_binding_new (G_OBJECT (dialog->preferences), "misc-file-size-binary", + G_OBJECT (dialog), "file-size-binary"); + g_signal_connect_swapped (G_OBJECT (dialog->preferences), "notify::misc-file-size-binary", + G_CALLBACK (thunar_properties_dialog_reload), dialog); + + /* create a new thumbnailer */ + dialog->thumbnailer = thunar_thumbnailer_get (); + dialog->thumbnail_request = 0; dialog->provider_factory = thunarx_provider_factory_get_default (); @@ -215,15 +253,14 @@ GTK_STOCK_HELP, GTK_RESPONSE_HELP, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); - gtk_window_set_default_size (GTK_WINDOW (dialog), 400, 430); + gtk_window_set_default_size (GTK_WINDOW (dialog), 500, 550); dialog->notebook = gtk_notebook_new (); gtk_container_set_border_width (GTK_CONTAINER (dialog->notebook), 6); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), dialog->notebook, TRUE, TRUE, 0); gtk_widget_show (dialog->notebook); - table = gtk_table_new (2, 2, FALSE); + table = gtk_table_new (16, 2, FALSE); label = gtk_label_new (_("General")); gtk_table_set_col_spacings (GTK_TABLE (table), 12); gtk_container_set_border_width (GTK_CONTAINER (table), 6); @@ -233,39 +270,60 @@ /* - First box (icon, name) + First box (icon, name) for 1 file */ - box = gtk_hbox_new (FALSE, 6); - gtk_table_attach (GTK_TABLE (table), box, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); - gtk_widget_show (box); + dialog->single_box = gtk_hbox_new (FALSE, 6); + gtk_table_attach (GTK_TABLE (table), dialog->single_box, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); dialog->icon_button = gtk_button_new (); g_signal_connect (G_OBJECT (dialog->icon_button), "clicked", G_CALLBACK (thunar_properties_dialog_icon_button_clicked), dialog); - gtk_box_pack_start (GTK_BOX (box), dialog->icon_button, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (dialog->single_box), dialog->icon_button, FALSE, TRUE, 0); gtk_widget_show (dialog->icon_button); dialog->icon_image = thunar_image_new (); - gtk_box_pack_start (GTK_BOX (box), dialog->icon_image, FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (dialog->single_box), dialog->icon_image, FALSE, TRUE, 0); gtk_widget_show (dialog->icon_image); - label = gtk_label_new (_("Name:")); + label = gtk_label_new_with_mnemonic (_("_Name:")); gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ()); gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); - gtk_box_pack_end (GTK_BOX (box), label, TRUE, TRUE, 0); + gtk_box_pack_end (GTK_BOX (dialog->single_box), label, TRUE, TRUE, 0); gtk_widget_show (label); dialog->name_entry = g_object_new (GTK_TYPE_ENTRY, "editable", FALSE, NULL); - g_signal_connect (G_OBJECT (dialog->name_entry), "activate", G_CALLBACK (thunar_properties_dialog_activate), dialog); - g_signal_connect (G_OBJECT (dialog->name_entry), "focus-out-event", G_CALLBACK (thunar_properties_dialog_focus_out_event), dialog); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), dialog->name_entry); + g_signal_connect (G_OBJECT (dialog->name_entry), "activate", G_CALLBACK (thunar_properties_dialog_name_activate), dialog); + g_signal_connect (G_OBJECT (dialog->name_entry), "focus-out-event", G_CALLBACK (thunar_properties_dialog_name_focus_out_event), dialog); gtk_table_attach (GTK_TABLE (table), dialog->name_entry, 1, 2, row, row + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); - gtk_widget_show (dialog->name_entry); + exo_binding_new (G_OBJECT (dialog->single_box), "visible", G_OBJECT (dialog->name_entry), "visible"); ++row; - spacer = g_object_new (GTK_TYPE_ALIGNMENT, "height-request", 12, NULL); - gtk_table_attach (GTK_TABLE (table), spacer, 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); - gtk_widget_show (spacer); + /* + First box (icon, name) for multiple files + */ + box = gtk_hbox_new (FALSE, 6); + gtk_table_attach (GTK_TABLE (table), box, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); + exo_binding_new_with_negation (G_OBJECT (dialog->single_box), "visible", G_OBJECT (box), "visible"); + + image = gtk_image_new_from_icon_name ("text-x-generic", GTK_ICON_SIZE_DIALOG); + gtk_box_pack_start (GTK_BOX (box), image, FALSE, TRUE, 0); + gtk_widget_show (image); + + label = gtk_label_new (_("Names:")); + gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ()); + gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); + gtk_box_pack_end (GTK_BOX (box), label, TRUE, TRUE, 0); + gtk_widget_show (label); + + dialog->names_label = gtk_label_new (""); + gtk_misc_set_alignment (GTK_MISC (dialog->names_label), 0.0f, 0.5f); + gtk_table_attach (GTK_TABLE (table), dialog->names_label, 1, 2, row, row + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); + gtk_label_set_ellipsize (GTK_LABEL (dialog->names_label), PANGO_ELLIPSIZE_END); + gtk_label_set_selectable (GTK_LABEL (dialog->names_label), TRUE); + exo_binding_new (G_OBJECT (box), "visible", G_OBJECT (dialog->names_label), "visible"); + ++row; @@ -276,7 +334,6 @@ label = gtk_label_new (_("Kind:")); gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ()); gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); - exo_binding_new (G_OBJECT (label), "visible", G_OBJECT (spacer), "visible"); gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (label); @@ -295,14 +352,14 @@ ++row; - label = gtk_label_new (_("Open With:")); + label = gtk_label_new_with_mnemonic (_("_Open With:")); gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ()); gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (label); dialog->openwith_chooser = thunar_chooser_button_new (); - exo_binding_new (G_OBJECT (dialog), "file", G_OBJECT (dialog->openwith_chooser), "file"); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), dialog->openwith_chooser); exo_binding_new (G_OBJECT (dialog->openwith_chooser), "visible", G_OBJECT (label), "visible"); gtk_table_attach (GTK_TABLE (table), dialog->openwith_chooser, 1, 2, row, row + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (dialog->openwith_chooser); @@ -341,6 +398,20 @@ ++row; + label = gtk_label_new (_("Location:")); + gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ()); + gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); + gtk_widget_show (label); + + dialog->location_label = g_object_new (GTK_TYPE_LABEL, "ellipsize", PANGO_ELLIPSIZE_START, "xalign", 0.0f, NULL); + gtk_label_set_selectable (GTK_LABEL (dialog->location_label), TRUE); + exo_binding_new (G_OBJECT (dialog->location_label), "visible", G_OBJECT (label), "visible"); + gtk_table_attach (GTK_TABLE (table), dialog->location_label, 1, 2, row, row + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); + gtk_widget_show (dialog->location_label); + + ++row; + spacer = g_object_new (GTK_TYPE_ALIGNMENT, "height-request", 12, NULL); gtk_table_attach (GTK_TABLE (table), spacer, 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); @@ -397,7 +468,7 @@ spacer = g_object_new (GTK_TYPE_ALIGNMENT, "height-request", 12, NULL); gtk_table_attach (GTK_TABLE (table), spacer, 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); - gtk_widget_show (spacer); + exo_binding_new (G_OBJECT (dialog->accessed_label), "visible", G_OBJECT (spacer), "visible"); ++row; @@ -412,7 +483,7 @@ gtk_widget_show (label); label = thunar_size_label_new (); - exo_binding_new (G_OBJECT (dialog), "file", G_OBJECT (label), "file"); + exo_binding_new (G_OBJECT (dialog), "files", G_OBJECT (label), "files"); gtk_table_attach (GTK_TABLE (table), label, 1, 2, row, row + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (label); @@ -442,20 +513,28 @@ ++row; - label = gtk_label_new (_("Free Space:")); + label = gtk_label_new (_("Usage:")); gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ()); - gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.5f); + gtk_misc_set_alignment (GTK_MISC (label), 1.0f, 0.0f); gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); gtk_widget_show (label); + dialog->freespace_vbox = gtk_vbox_new (FALSE, 4); + gtk_table_attach (GTK_TABLE (table), dialog->freespace_vbox, 1, 2, row, row + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); + exo_binding_new (G_OBJECT (dialog->freespace_vbox), "visible", G_OBJECT (label), "visible"); + gtk_widget_show (dialog->freespace_vbox); + dialog->freespace_label = g_object_new (GTK_TYPE_LABEL, "xalign", 0.0f, NULL); gtk_label_set_selectable (GTK_LABEL (dialog->freespace_label), TRUE); - exo_binding_new (G_OBJECT (dialog->freespace_label), "visible", G_OBJECT (label), "visible"); - gtk_table_attach (GTK_TABLE (table), dialog->freespace_label, 1, 2, row, row + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 3); + gtk_box_pack_start (GTK_BOX (dialog->freespace_vbox), dialog->freespace_label, TRUE, TRUE, 0); gtk_widget_show (dialog->freespace_label); - ++row; + dialog->freespace_bar = g_object_new (GTK_TYPE_PROGRESS_BAR, NULL); + gtk_box_pack_start (GTK_BOX (dialog->freespace_vbox), dialog->freespace_bar, TRUE, TRUE, 0); + gtk_widget_set_size_request (dialog->freespace_bar, -1, 10); + gtk_widget_show (dialog->freespace_bar); + ++row; spacer = g_object_new (GTK_TYPE_ALIGNMENT, "height-request", 12, NULL); gtk_table_attach (GTK_TABLE (table), spacer, 0, 2, row, row + 1, GTK_FILL, GTK_FILL, 0, 3); @@ -469,25 +548,20 @@ */ label = gtk_label_new (_("Emblems")); chooser = thunar_emblem_chooser_new (); - exo_binding_new (G_OBJECT (dialog), "file", G_OBJECT (chooser), "file"); + exo_binding_new (G_OBJECT (dialog), "files", G_OBJECT (chooser), "files"); gtk_notebook_append_page (GTK_NOTEBOOK (dialog->notebook), chooser, label); gtk_widget_show (chooser); gtk_widget_show (label); - /* Permissions chooser */ label = gtk_label_new (_("Permissions")); dialog->permissions_chooser = thunar_permissions_chooser_new (); - exo_binding_new (G_OBJECT (dialog), "file", G_OBJECT (dialog->permissions_chooser), "file"); + exo_binding_new (G_OBJECT (dialog), "files", G_OBJECT (dialog->permissions_chooser), "files"); gtk_notebook_append_page (GTK_NOTEBOOK (dialog->notebook), dialog->permissions_chooser, label); gtk_widget_show (dialog->permissions_chooser); gtk_widget_show (label); - - - /* place the initial focus on the name entry widget */ - gtk_widget_grab_focus (dialog->name_entry); } @@ -498,7 +572,7 @@ ThunarPropertiesDialog *dialog = THUNAR_PROPERTIES_DIALOG (object); /* reset the file displayed by the dialog */ - thunar_properties_dialog_set_file (dialog, NULL); + thunar_properties_dialog_set_files (dialog, NULL); (*G_OBJECT_CLASS (thunar_properties_dialog_parent_class)->dispose) (object); } @@ -510,13 +584,24 @@ { ThunarPropertiesDialog *dialog = THUNAR_PROPERTIES_DIALOG (object); + _thunar_return_if_fail (dialog->files == NULL); + /* disconnect from the preferences */ g_signal_handlers_disconnect_by_func (dialog->preferences, thunar_properties_dialog_reload, dialog); g_object_unref (dialog->preferences); + /* cancel any pending thumbnailer requests */ + if (dialog->thumbnail_request > 0) + { + thunar_thumbnailer_dequeue (dialog->thumbnailer, dialog->thumbnail_request); + dialog->thumbnail_request = 0; + } + + /* release the thumbnailer */ + g_object_unref (dialog->thumbnailer); + /* release the provider property pages */ - g_list_foreach (dialog->provider_pages, (GFunc) g_object_unref, NULL); - g_list_free (dialog->provider_pages); + g_list_free_full (dialog->provider_pages, g_object_unref); /* drop the reference on the provider factory */ g_object_unref (dialog->provider_factory); @@ -536,8 +621,12 @@ switch (prop_id) { - case PROP_FILE: - g_value_set_object (value, thunar_properties_dialog_get_file (dialog)); + case PROP_FILES: + g_value_set_boxed (value, thunar_properties_dialog_get_files (dialog)); + break; + + case PROP_FILE_SIZE_BINARY: + g_value_set_boolean (value, dialog->file_size_binary); break; default: @@ -558,8 +647,12 @@ switch (prop_id) { - case PROP_FILE: - thunar_properties_dialog_set_file (dialog, g_value_get_object (value)); + case PROP_FILES: + thunar_properties_dialog_set_files (dialog, g_value_get_boxed (value)); + break; + + case PROP_FILE_SIZE_BINARY: + dialog->file_size_binary = g_value_get_boolean (value); break; default: @@ -580,7 +673,9 @@ } else if (response == GTK_RESPONSE_HELP) { - thunar_dialogs_show_help (dialog, "working-with-files-and-folders", "file-properties"); + xfce_dialog_show_help (GTK_WINDOW (dialog), "thunar", + "working-with-files-and-folders", + "file_properties"); } else if (GTK_DIALOG_CLASS (thunar_properties_dialog_parent_class)->response != NULL) { @@ -593,20 +688,10 @@ static gboolean thunar_properties_dialog_reload (ThunarPropertiesDialog *dialog) { - /* verify that we still have a file */ - if (G_LIKELY (dialog->file != NULL)) - { - /* reload the file status */ - thunar_file_reload (dialog->file); + /* reload the active files */ + g_list_foreach (dialog->files, (GFunc) thunar_file_reload, NULL); - /* we handled the event */ - return TRUE; - } - else - { - /* did not handle the event */ - return FALSE; - } + return dialog->files != NULL; } @@ -619,10 +704,17 @@ _thunar_return_if_fail (EXO_IS_JOB (job)); _thunar_return_if_fail (error != NULL); _thunar_return_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog)); + _thunar_return_if_fail (g_list_length (dialog->files) == 1); + + /* reset the entry display name to the original name, so the focus + out event does not trigger the rename again by calling + thunar_properties_dialog_name_activate */ + gtk_entry_set_text (GTK_ENTRY (dialog->name_entry), + thunar_file_get_display_name (THUNAR_FILE (dialog->files->data))); /* display an error message */ thunar_dialogs_show_error (GTK_WIDGET (dialog), error, _("Failed to rename \"%s\""), - thunar_file_get_display_name (dialog->file)); + thunar_file_get_display_name (THUNAR_FILE (dialog->files->data))); } @@ -631,16 +723,9 @@ thunar_properties_dialog_rename_finished (ExoJob *job, ThunarPropertiesDialog *dialog) { - const gchar *new_name; - _thunar_return_if_fail (EXO_IS_JOB (job)); _thunar_return_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog)); - - /* determine the new display name */ - new_name = thunar_file_get_display_name (dialog->file); - - /* reset the entry widget to the new name */ - gtk_entry_set_text (GTK_ENTRY (dialog->name_entry), new_name); + _thunar_return_if_fail (g_list_length (dialog->files) == 1); g_signal_handlers_disconnect_matched (job, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, dialog); g_object_unref (job); @@ -649,23 +734,28 @@ static void -thunar_properties_dialog_activate (GtkWidget *entry, - ThunarPropertiesDialog *dialog) +thunar_properties_dialog_name_activate (GtkWidget *entry, + ThunarPropertiesDialog *dialog) { const gchar *old_name; ThunarJob *job; gchar *new_name; + ThunarFile *file; + + _thunar_return_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog)); /* check if we still have a valid file and if the user is allowed to rename */ - if (G_UNLIKELY (dialog->file == NULL || !GTK_WIDGET_SENSITIVE (dialog->name_entry))) + if (G_UNLIKELY (!gtk_widget_get_sensitive (dialog->name_entry) + || g_list_length (dialog->files) != 1)) return; /* determine new and old name */ + file = THUNAR_FILE (dialog->files->data); new_name = gtk_editable_get_chars (GTK_EDITABLE (dialog->name_entry), 0, -1); - old_name = thunar_file_get_display_name (dialog->file); + old_name = thunar_file_get_display_name (file); if (g_utf8_collate (new_name, old_name) != 0) { - job = thunar_io_jobs_rename_file (dialog->file, new_name); + job = thunar_io_jobs_rename_file (file, new_name); if (job != NULL) { g_signal_connect (job, "error", G_CALLBACK (thunar_properties_dialog_rename_error), dialog); @@ -677,11 +767,11 @@ static gboolean -thunar_properties_dialog_focus_out_event (GtkWidget *entry, - GdkEventFocus *event, - ThunarPropertiesDialog *dialog) +thunar_properties_dialog_name_focus_out_event (GtkWidget *entry, + GdkEventFocus *event, + ThunarPropertiesDialog *dialog) { - thunar_properties_dialog_activate (entry, dialog); + thunar_properties_dialog_name_activate (entry, dialog); return FALSE; } @@ -691,21 +781,25 @@ thunar_properties_dialog_icon_button_clicked (GtkWidget *button, ThunarPropertiesDialog *dialog) { - GtkWidget *chooser; - GError *err = NULL; - gchar *custom_icon; - gchar *title; - gchar *icon; + GtkWidget *chooser; + GError *err = NULL; + const gchar *custom_icon; + gchar *title; + gchar *icon; + ThunarFile *file; _thunar_return_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog)); _thunar_return_if_fail (GTK_IS_BUTTON (button)); + _thunar_return_if_fail (g_list_length (dialog->files) == 1); /* make sure we still have a file */ - if (G_UNLIKELY (dialog->file == NULL)) + if (G_UNLIKELY (dialog->files == NULL)) return; + file = THUNAR_FILE (dialog->files->data); + /* allocate the icon chooser */ - title = g_strdup_printf (_("Select an Icon for \"%s\""), thunar_file_get_display_name (dialog->file)); + title = g_strdup_printf (_("Select an Icon for \"%s\""), thunar_file_get_display_name (file)); chooser = exo_icon_chooser_dialog_new (title, GTK_WINDOW (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, @@ -715,23 +809,24 @@ g_free (title); /* use the custom_icon of the file as default */ - custom_icon = thunar_file_get_custom_icon (dialog->file); + custom_icon = thunar_file_get_custom_icon (file); if (G_LIKELY (custom_icon != NULL && *custom_icon != '\0')) exo_icon_chooser_dialog_set_icon (EXO_ICON_CHOOSER_DIALOG (chooser), custom_icon); - g_free (custom_icon); /* run the icon chooser dialog and make sure the dialog still has a file */ - if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT && dialog->file != NULL) + if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT && file != NULL) { /* determine the selected icon and use it for the file */ icon = exo_icon_chooser_dialog_get_icon (EXO_ICON_CHOOSER_DIALOG (chooser)); - if (!thunar_file_set_custom_icon (dialog->file, icon, &err)) + if (!thunar_file_set_custom_icon (file, icon, &err)) { /* hide the icon chooser dialog first */ gtk_widget_hide (chooser); /* tell the user that we failed to change the icon of the .desktop file */ - thunar_dialogs_show_error (GTK_WIDGET (dialog), err, _("Failed to change icon of \"%s\""), thunar_file_get_display_name (dialog->file)); + thunar_dialogs_show_error (GTK_WIDGET (dialog), err, + _("Failed to change icon of \"%s\""), + thunar_file_get_display_name (file)); g_error_free (err); } g_free (icon); @@ -749,7 +844,6 @@ GtkWidget *label_widget; GList *providers; GList *pages = NULL; - GList files; GList *tmp; GList *lp; @@ -757,13 +851,10 @@ providers = thunarx_provider_factory_list_providers (dialog->provider_factory, THUNARX_TYPE_PROPERTY_PAGE_PROVIDER); if (G_LIKELY (providers != NULL)) { - /* determine the (one-element) file list */ - files.data = dialog->file; files.next = files.prev = NULL; - /* load the pages offered by the menu providers */ for (lp = providers; lp != NULL; lp = lp->next) { - tmp = thunarx_property_page_provider_get_pages (lp->data, &files); + tmp = thunarx_property_page_provider_get_pages (lp->data, dialog->files); pages = g_list_concat (pages, tmp); g_object_unref (G_OBJECT (lp->data)); } @@ -792,7 +883,7 @@ static void -thunar_properties_dialog_update (ThunarPropertiesDialog *dialog) +thunar_properties_dialog_update_single (ThunarPropertiesDialog *dialog) { ThunarIconFactory *icon_factory; ThunarDateStyle date_style; @@ -801,17 +892,33 @@ const gchar *name; const gchar *path; GVolume *volume; - guint64 size; GIcon *gicon; glong offset; gchar *date; gchar *display_name; - gchar *size_string; + gchar *fs_string; gchar *str; gchar *volume_name; + ThunarFile *file; + ThunarFile *parent_file; + gboolean show_chooser; + guint64 fs_free; + guint64 fs_size; + gdouble fs_fraction = 0.0; _thunar_return_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog)); - _thunar_return_if_fail (THUNAR_IS_FILE (dialog->file)); + _thunar_return_if_fail (g_list_length (dialog->files) == 1); + _thunar_return_if_fail (THUNAR_IS_FILE (dialog->files->data)); + + /* whether the dialog shows a single file or a group of files */ + file = THUNAR_FILE (dialog->files->data); + + /* hide the permissions chooser for trashed files */ + gtk_widget_set_visible (dialog->permissions_chooser, !thunar_file_is_trashed (file)); + + /* queue a new thumbnail request */ + thunar_thumbnailer_queue_file (dialog->thumbnailer, file, + &dialog->thumbnail_request); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (dialog))); icon_factory = thunar_icon_factory_get_for_icon_theme (icon_theme); @@ -820,17 +927,18 @@ g_object_get (G_OBJECT (dialog->preferences), "misc-date-style", &date_style, NULL); /* update the properties dialog title */ - str = g_strdup_printf (_("%s - Properties"), thunar_file_get_display_name (dialog->file)); + str = g_strdup_printf (_("%s - Properties"), thunar_file_get_display_name (file)); gtk_window_set_title (GTK_WINDOW (dialog), str); g_free (str); /* update the preview image */ - thunar_image_set_file (THUNAR_IMAGE (dialog->icon_image), dialog->file); + thunar_image_set_file (THUNAR_IMAGE (dialog->icon_image), file); /* check if the icon may be changed (only for writable .desktop files) */ g_object_ref (G_OBJECT (dialog->icon_image)); gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (dialog->icon_image)), dialog->icon_image); - if (thunar_file_is_writable (dialog->file) && thunar_file_is_desktop_file (dialog->file)) + if (thunar_file_is_writable (file) + && thunar_file_is_desktop_file (file, NULL)) { gtk_container_add (GTK_CONTAINER (dialog->icon_button), dialog->icon_image); gtk_widget_show (dialog->icon_button); @@ -843,8 +951,8 @@ g_object_unref (G_OBJECT (dialog->icon_image)); /* update the name (if it differs) */ - gtk_editable_set_editable (GTK_EDITABLE (dialog->name_entry), thunar_file_is_renameable (dialog->file)); - name = thunar_file_get_display_name (dialog->file); + gtk_editable_set_editable (GTK_EDITABLE (dialog->name_entry), thunar_file_is_renameable (file)); + name = thunar_file_get_display_name (file); if (G_LIKELY (strcmp (name, gtk_entry_get_text (GTK_ENTRY (dialog->name_entry))) != 0)) { gtk_entry_set_text (GTK_ENTRY (dialog->name_entry), name); @@ -853,7 +961,7 @@ gtk_widget_grab_focus (dialog->name_entry); /* select the pre-dot part of the name */ - str = strrchr (name, '.'); + str = thunar_util_str_get_extension (name); if (G_LIKELY (str != NULL)) { /* calculate the offset */ @@ -866,13 +974,13 @@ } /* update the content type */ - content_type = thunar_file_get_content_type (dialog->file); + content_type = thunar_file_get_content_type (file); if (content_type != NULL) { if (G_UNLIKELY (g_content_type_equals (content_type, "inode/symlink"))) str = g_strdup (_("broken link")); - else if (G_UNLIKELY (thunar_file_is_symlink (dialog->file))) - str = g_strdup_printf (_("link to %s"), thunar_file_get_symlink_target (dialog->file)); + else if (G_UNLIKELY (thunar_file_is_symlink (file))) + str = g_strdup_printf (_("link to %s"), thunar_file_get_symlink_target (file)); else str = g_content_type_get_description (content_type); gtk_widget_set_tooltip_text (dialog->kind_ebox, content_type); @@ -885,12 +993,13 @@ } /* update the application chooser (shown only for non-executable regular files!) */ - g_object_set (G_OBJECT (dialog->openwith_chooser), - "visible", (thunar_file_is_regular (dialog->file) && !thunar_file_is_executable (dialog->file)), - NULL); + show_chooser = thunar_file_is_regular (file) && !thunar_file_is_executable (file); + gtk_widget_set_visible (dialog->openwith_chooser, show_chooser); + if (show_chooser) + thunar_chooser_button_set_file (THUNAR_CHOOSER_BUTTON (dialog->openwith_chooser), file); /* update the link target */ - path = thunar_file_is_symlink (dialog->file) ? thunar_file_get_symlink_target (dialog->file) : NULL; + path = thunar_file_is_symlink (file) ? thunar_file_get_symlink_target (file) : NULL; if (G_UNLIKELY (path != NULL)) { display_name = g_filename_display_name (path); @@ -904,7 +1013,7 @@ } /* update the original path */ - path = thunar_file_get_original_path (dialog->file); + path = thunar_file_get_original_path (file); if (G_UNLIKELY (path != NULL)) { display_name = g_filename_display_name (path); @@ -917,8 +1026,23 @@ gtk_widget_hide (dialog->origin_label); } + /* update the file or folder location (parent) */ + parent_file = thunar_file_get_parent (file, NULL); + if (G_UNLIKELY (parent_file != NULL)) + { + display_name = g_file_get_parse_name (thunar_file_get_file (parent_file)); + gtk_label_set_text (GTK_LABEL (dialog->location_label), display_name); + gtk_widget_show (dialog->location_label); + g_object_unref (G_OBJECT (parent_file)); + g_free (display_name); + } + else + { + gtk_widget_hide (dialog->location_label); + } + /* update the deleted time */ - date = thunar_file_get_deletion_date (dialog->file, date_style); + date = thunar_file_get_deletion_date (file, date_style); if (G_LIKELY (date != NULL)) { gtk_label_set_text (GTK_LABEL (dialog->deleted_label), date); @@ -931,7 +1055,7 @@ } /* update the modified time */ - date = thunar_file_get_date_string (dialog->file, THUNAR_FILE_DATE_MODIFIED, date_style); + date = thunar_file_get_date_string (file, THUNAR_FILE_DATE_MODIFIED, date_style); if (G_LIKELY (date != NULL)) { gtk_label_set_text (GTK_LABEL (dialog->modified_label), date); @@ -944,7 +1068,7 @@ } /* update the accessed time */ - date = thunar_file_get_date_string (dialog->file, THUNAR_FILE_DATE_ACCESSED, date_style); + date = thunar_file_get_date_string (file, THUNAR_FILE_DATE_ACCESSED, date_style); if (G_LIKELY (date != NULL)) { gtk_label_set_text (GTK_LABEL (dialog->accessed_label), date); @@ -957,21 +1081,35 @@ } /* update the free space (only for folders) */ - if (thunar_file_is_directory (dialog->file) - && thunar_file_get_free_space (dialog->file, &size)) + if (thunar_file_is_directory (file)) { - size_string = g_format_size_for_display (size); - gtk_label_set_text (GTK_LABEL (dialog->freespace_label), size_string); - gtk_widget_show (dialog->freespace_label); - g_free (size_string); + fs_string = thunar_g_file_get_free_space_string (thunar_file_get_file (file), + dialog->file_size_binary); + if (thunar_g_file_get_free_space (thunar_file_get_file (file), &fs_free, &fs_size) + && fs_size > 0) + { + /* free disk space fraction */ + fs_fraction = ((fs_size - fs_free) * 100 / fs_size); + } + if (fs_string != NULL) + { + gtk_label_set_text (GTK_LABEL (dialog->freespace_label), fs_string); + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (dialog->freespace_bar), fs_fraction / 100); + gtk_widget_show (dialog->freespace_vbox); + g_free (fs_string); + } + else + { + gtk_widget_hide (dialog->freespace_vbox); + } } else { - gtk_widget_hide (dialog->freespace_label); + gtk_widget_hide (dialog->freespace_vbox); } /* update the volume */ - volume = thunar_file_get_volume (dialog->file); + volume = thunar_file_get_volume (file); if (G_LIKELY (volume != NULL)) { gicon = g_volume_get_icon (volume); @@ -995,8 +1133,205 @@ +static void +thunar_properties_dialog_update_multiple (ThunarPropertiesDialog *dialog) +{ + ThunarFile *file; + GString *names_string; + gboolean first_file = TRUE; + GList *lp; + const gchar *content_type = NULL; + const gchar *tmp; + gchar *str; + GVolume *volume = NULL; + GVolume *tmp_volume; + GIcon *gicon; + gchar *volume_name; + gchar *display_name; + ThunarFile *parent_file = NULL; + ThunarFile *tmp_parent; + gboolean has_trashed_files = FALSE; + + _thunar_return_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog)); + _thunar_return_if_fail (g_list_length (dialog->files) > 1); + + /* update the properties dialog title */ + gtk_window_set_title (GTK_WINDOW (dialog), _("Properties")); + + /* widgets not used with > 1 file selected */ + gtk_widget_hide (dialog->deleted_label); + gtk_widget_hide (dialog->modified_label); + gtk_widget_hide (dialog->accessed_label); + gtk_widget_hide (dialog->freespace_vbox); + gtk_widget_hide (dialog->origin_label); + gtk_widget_hide (dialog->openwith_chooser); + gtk_widget_hide (dialog->link_label); + + names_string = g_string_new (NULL); + + /* collect data of the selected files */ + for (lp = dialog->files; lp != NULL; lp = lp->next) + { + _thunar_assert (THUNAR_IS_FILE (lp->data)); + file = THUNAR_FILE (lp->data); + + /* append the name */ + if (!first_file) + g_string_append (names_string, ", "); + g_string_append (names_string, thunar_file_get_display_name (file)); + + /* update the content type */ + if (first_file) + { + content_type = thunar_file_get_content_type (file); + } + else if (content_type != NULL) + { + /* check the types match */ + tmp = thunar_file_get_content_type (file); + if (tmp == NULL || !g_content_type_equals (content_type, tmp)) + content_type = NULL; + } + + /* check if all selected files are on the same volume */ + tmp_volume = thunar_file_get_volume (file); + if (first_file) + { + volume = tmp_volume; + } + else if (tmp_volume != NULL) + { + /* we only display information if the files are on the same volume */ + if (tmp_volume != volume) + { + if (volume != NULL) + g_object_unref (G_OBJECT (volume)); + volume = NULL; + } + + g_object_unref (G_OBJECT (tmp_volume)); + } + + /* check if all files have the same parent */ + tmp_parent = thunar_file_get_parent (file, NULL); + if (first_file) + { + parent_file = tmp_parent; + } + else if (tmp_parent != NULL) + { + /* we only display the location if they are all equal */ + if (!g_file_equal (thunar_file_get_file (parent_file), thunar_file_get_file (tmp_parent))) + { + if (parent_file != NULL) + g_object_unref (G_OBJECT (parent_file)); + parent_file = NULL; + } + + g_object_unref (G_OBJECT (tmp_parent)); + } + + if (thunar_file_is_trashed (file)) + has_trashed_files = TRUE; + + first_file = FALSE; + } + + /* set the labels string */ + gtk_label_set_text (GTK_LABEL (dialog->names_label), names_string->str); + gtk_widget_set_tooltip_text (dialog->names_label, names_string->str); + g_string_free (names_string, TRUE); + + /* hide the permissions chooser for trashed files */ + gtk_widget_set_visible (dialog->permissions_chooser, !has_trashed_files); + + /* update the content type */ + if (content_type != NULL + && !g_content_type_equals (content_type, "inode/symlink")) + { + str = g_content_type_get_description (content_type); + gtk_widget_set_tooltip_text (dialog->kind_ebox, content_type); + gtk_label_set_text (GTK_LABEL (dialog->kind_label), str); + g_free (str); + } + else + { + gtk_label_set_text (GTK_LABEL (dialog->kind_label), _("mixed")); + } + + /* update the file or folder location (parent) */ + if (G_UNLIKELY (parent_file != NULL)) + { + display_name = g_file_get_parse_name (thunar_file_get_file (parent_file)); + gtk_label_set_text (GTK_LABEL (dialog->location_label), display_name); + gtk_widget_show (dialog->location_label); + g_object_unref (G_OBJECT (parent_file)); + g_free (display_name); + } + else + { + gtk_widget_hide (dialog->location_label); + } + + /* update the volume */ + if (G_LIKELY (volume != NULL)) + { + gicon = g_volume_get_icon (volume); + gtk_image_set_from_gicon (GTK_IMAGE (dialog->volume_image), gicon, GTK_ICON_SIZE_MENU); + if (G_LIKELY (gicon != NULL)) + g_object_unref (gicon); + + volume_name = g_volume_get_name (volume); + gtk_label_set_text (GTK_LABEL (dialog->volume_label), volume_name); + gtk_widget_show (dialog->volume_label); + g_free (volume_name); + + g_object_unref (G_OBJECT (volume)); + } + else + { + gtk_widget_hide (dialog->volume_label); + } +} + + + +static void +thunar_properties_dialog_update (ThunarPropertiesDialog *dialog) +{ + _thunar_return_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog)); + _thunar_return_if_fail (dialog->files != NULL); + + /* cancel any pending thumbnail requests */ + if (dialog->thumbnail_request > 0) + { + thunar_thumbnailer_dequeue (dialog->thumbnailer, dialog->thumbnail_request); + dialog->thumbnail_request = 0; + } + + if (dialog->files->next == NULL) + { + /* show single file name box */ + gtk_widget_show (dialog->single_box); + + /* update the properties for a dialog showing 1 file */ + thunar_properties_dialog_update_single (dialog); + } + else + { + /* show multiple files box */ + gtk_widget_hide (dialog->single_box); + + /* update the properties for a dialog showing multiple files */ + thunar_properties_dialog_update_multiple (dialog); + } +} + + + /** * thunar_properties_dialog_new: + * @parent: transient window or NULL; * * Allocates a new #ThunarPropertiesDialog instance, * that is not associated with any #ThunarFile. @@ -1005,72 +1340,82 @@ * instance. **/ GtkWidget* -thunar_properties_dialog_new (void) +thunar_properties_dialog_new (GtkWindow *parent) { - return g_object_new (THUNAR_TYPE_PROPERTIES_DIALOG, NULL); + _thunar_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), NULL); + return g_object_new (THUNAR_TYPE_PROPERTIES_DIALOG, + "transient-for", parent, + "destroy-with-parent", parent != NULL, + NULL); } /** - * thunar_properties_dialog_get_file: + * thunar_properties_dialog_get_files: * @dialog : a #ThunarPropertiesDialog. * * Returns the #ThunarFile currently being displayed * by @dialog or %NULL if @dialog doesn't display * any file right now. * - * Return value: the #ThunarFile displayed by @dialog + * Return value: list of #ThunarFile's displayed by @dialog * or %NULL. **/ -ThunarFile* -thunar_properties_dialog_get_file (ThunarPropertiesDialog *dialog) +static GList* +thunar_properties_dialog_get_files (ThunarPropertiesDialog *dialog) { _thunar_return_val_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog), NULL); - return dialog->file; + return dialog->files; } /** - * thunar_properties_dialog_set_file: + * thunar_properties_dialog_set_files: * @dialog : a #ThunarPropertiesDialog. - * @file : a #ThunarFile or %NULL. + * @files : a GList of #ThunarFile's or %NULL. * * Sets the #ThunarFile that is displayed by @dialog - * to @file. + * to @files. **/ void -thunar_properties_dialog_set_file (ThunarPropertiesDialog *dialog, - ThunarFile *file) +thunar_properties_dialog_set_files (ThunarPropertiesDialog *dialog, + GList *files) { + GList *lp; + ThunarFile *file; + _thunar_return_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog)); - _thunar_return_if_fail (file == NULL || THUNAR_IS_FILE (file)); - /* check if we already display that file */ - if (G_UNLIKELY (dialog->file == file)) + /* check if the same lists are used (or null) */ + if (G_UNLIKELY (dialog->files == files)) return; - /* disconnect from any previously set file */ - if (dialog->file != NULL) + /* disconnect from any previously set files */ + for (lp = dialog->files; lp != NULL; lp = lp->next) { + file = THUNAR_FILE (lp->data); + /* unregister our file watch */ - thunar_file_unwatch (dialog->file); + thunar_file_unwatch (file); /* unregister handlers */ - g_signal_handlers_disconnect_by_func (G_OBJECT (dialog->file), thunar_properties_dialog_update, dialog); - g_signal_handlers_disconnect_by_func (G_OBJECT (dialog->file), gtk_widget_destroy, dialog); + g_signal_handlers_disconnect_by_func (G_OBJECT (file), thunar_properties_dialog_update, dialog); + g_signal_handlers_disconnect_by_func (G_OBJECT (file), gtk_widget_destroy, dialog); - g_object_unref (G_OBJECT (dialog->file)); + g_object_unref (G_OBJECT (file)); } + g_list_free (dialog->files); - /* activate the new file */ - dialog->file = file; + /* activate the new list */ + dialog->files = g_list_copy (files); - /* connect to the new file */ - if (file != NULL) + /* connect to the new files */ + for (lp = dialog->files; lp != NULL; lp = lp->next) { - g_object_ref (G_OBJECT (file)); + _thunar_assert (THUNAR_IS_FILE (lp->data)); + file = g_object_ref (G_OBJECT (lp->data)); /* watch the file for changes */ thunar_file_watch (file); @@ -1078,22 +1423,54 @@ /* install signal handlers */ g_signal_connect_swapped (G_OBJECT (file), "changed", G_CALLBACK (thunar_properties_dialog_update), dialog); g_signal_connect_swapped (G_OBJECT (file), "destroy", G_CALLBACK (gtk_widget_destroy), dialog); + } + /* update the dialog contents */ + if (dialog->files != NULL) + { /* update the UI for the new file */ thunar_properties_dialog_update (dialog); /* update the provider property pages */ thunar_properties_dialog_update_providers (dialog); - - /* hide the permissions chooser for trashed files */ - if (thunar_file_is_trashed (file)) - gtk_widget_hide (dialog->permissions_chooser); - else - gtk_widget_show (dialog->permissions_chooser); } /* tell everybody that we have a new file here */ - g_object_notify (G_OBJECT (dialog), "file"); + g_object_notify (G_OBJECT (dialog), "files"); +} + + + +/** + * thunar_properties_dialog_set_file: + * @dialog : a #ThunarPropertiesDialog. + * @file : a #ThunarFile or %NULL. + * + * Sets the #ThunarFile that is displayed by @dialog + * to @file. + **/ +void +thunar_properties_dialog_set_file (ThunarPropertiesDialog *dialog, + ThunarFile *file) +{ + GList foo; + + _thunar_return_if_fail (THUNAR_IS_PROPERTIES_DIALOG (dialog)); + _thunar_return_if_fail (file == NULL || THUNAR_IS_FILE (file)); + + if (file == NULL) + { + thunar_properties_dialog_set_files (dialog, NULL); + } + else + { + /* create a fake list */ + foo.next = NULL; + foo.prev = NULL; + foo.data = file; + + thunar_properties_dialog_set_files (dialog, &foo); + } } diff -Nru thunar-1.2.3/thunar/thunar-properties-dialog.h thunar-1.6.10/thunar/thunar-properties-dialog.h --- thunar-1.2.3/thunar/thunar-properties-dialog.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-properties-dialog.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -36,11 +36,13 @@ GType thunar_properties_dialog_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_properties_dialog_new (void); +GtkWidget *thunar_properties_dialog_new (GtkWindow *parent); -ThunarFile *thunar_properties_dialog_get_file (ThunarPropertiesDialog *dialog); -void thunar_properties_dialog_set_file (ThunarPropertiesDialog *dialog, - ThunarFile *file); +void thunar_properties_dialog_set_files (ThunarPropertiesDialog *dialog, + GList *files); + +void thunar_properties_dialog_set_file (ThunarPropertiesDialog *dialog, + ThunarFile *file); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-renamer-dialog.c thunar-1.6.10/thunar/thunar-renamer-dialog.c --- thunar-1.2.3/thunar/thunar-renamer-dialog.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-renamer-dialog.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2007 Benedikt Meurer * @@ -28,6 +28,8 @@ #include #endif +#include + #include #include #include @@ -62,73 +64,82 @@ -static void thunar_renamer_dialog_dispose (GObject *object); -static void thunar_renamer_dialog_finalize (GObject *object); -static void thunar_renamer_dialog_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void thunar_renamer_dialog_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void thunar_renamer_dialog_realize (GtkWidget *widget); -static void thunar_renamer_dialog_unrealize (GtkWidget *widget); -static void thunar_renamer_dialog_response (GtkDialog *dialog, - gint response); -static void thunar_renamer_dialog_context_menu (ThunarRenamerDialog *renamer_dialog, - guint button, - guint32 timestamp); -static void thunar_renamer_dialog_help (ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_save (ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_action_add_files (GtkAction *action, - ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_action_remove_files (GtkAction *action, - ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_action_clear (GtkAction *action, - ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_action_about (GtkAction *action, - ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_action_properties (GtkAction *action, - ThunarRenamerDialog *renamer_dialog); -static gboolean thunar_renamer_dialog_button_press_event (GtkWidget *tree_view, - GdkEventButton *event, - ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_drag_data_received (GtkWidget *tree_view, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint info, - guint timestamp, - ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_drag_leave (GtkWidget *tree_view, - GdkDragContext *context, - guint timestamp, - ThunarRenamerDialog *renamer_dialog); -static gboolean thunar_renamer_dialog_drag_motion (GtkWidget *tree_view, - GdkDragContext *context, - gint x, - gint y, - guint timestamp, - ThunarRenamerDialog *renamer_dialog); -static gboolean thunar_renamer_dialog_drag_drop (GtkWidget *tree_view, - GdkDragContext *context, - gint x, - gint y, - guint timestamp, - ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_notify_page (GtkNotebook *notebook, - GParamSpec *pspec, - ThunarRenamerDialog *renamer_dialog); -static gboolean thunar_renamer_dialog_popup_menu (GtkWidget *tree_view, - ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_row_activated (GtkTreeView *tree_view, - GtkTreePath *path, - GtkTreeViewColumn *column, - ThunarRenamerDialog *renamer_dialog); -static void thunar_renamer_dialog_selection_changed (GtkTreeSelection *selection, - ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_dispose (GObject *object); +static void thunar_renamer_dialog_finalize (GObject *object); +static void thunar_renamer_dialog_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void thunar_renamer_dialog_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void thunar_renamer_dialog_realize (GtkWidget *widget); +static void thunar_renamer_dialog_unrealize (GtkWidget *widget); +static void thunar_renamer_dialog_response (GtkDialog *dialog, + gint response); +static void thunar_renamer_dialog_context_menu (ThunarRenamerDialog *renamer_dialog, + guint button, + guint32 timestamp); +static void thunar_renamer_dialog_help (ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_save (ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_action_add_files (GtkAction *action, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_action_remove_files (GtkAction *action, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_action_clear (GtkAction *action, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_action_about (GtkAction *action, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_action_properties (GtkAction *action, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_name_column_clicked (GtkTreeViewColumn *column, + ThunarRenamerDialog *renamer_dialog); +static gboolean thunar_renamer_dialog_button_press_event (GtkWidget *tree_view, + GdkEventButton *event, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_drag_data_received (GtkWidget *tree_view, + GdkDragContext *context, + gint x, + gint y, + GtkSelectionData *selection_data, + guint info, + guint timestamp, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_drag_leave (GtkWidget *tree_view, + GdkDragContext *context, + guint timestamp, + ThunarRenamerDialog *renamer_dialog); +static gboolean thunar_renamer_dialog_drag_motion (GtkWidget *tree_view, + GdkDragContext *context, + gint x, + gint y, + guint timestamp, + ThunarRenamerDialog *renamer_dialog); +static gboolean thunar_renamer_dialog_drag_drop (GtkWidget *tree_view, + GdkDragContext *context, + gint x, + gint y, + guint timestamp, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_notify_page (GtkNotebook *notebook, + GParamSpec *pspec, + ThunarRenamerDialog *renamer_dialog); +static gboolean thunar_renamer_dialog_popup_menu (GtkWidget *tree_view, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_row_activated (GtkTreeView *tree_view, + GtkTreePath *path, + GtkTreeViewColumn *column, + ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_selection_changed (GtkTreeSelection *selection, + ThunarRenamerDialog *renamer_dialog); +static ThunarFile *thunar_renamer_dialog_get_current_directory (ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_set_current_directory (ThunarRenamerDialog *renamer_dialog, + ThunarFile *current_directory); +static GList *thunar_renamer_dialog_get_selected_files (ThunarRenamerDialog *renamer_dialog); +static gboolean thunar_renamer_dialog_get_standalone (ThunarRenamerDialog *renamer_dialog); +static void thunar_renamer_dialog_set_standalone (ThunarRenamerDialog *renamer_dialog, + gboolean fixed); @@ -157,6 +168,8 @@ GtkWidget *tree_view; GtkWidget *progress; + GtkTreeViewColumn *name_column; + /* the current directory used for the "Add Files" dialog */ ThunarFile *current_directory; @@ -278,7 +291,8 @@ trd_renamer_compare (gconstpointer a, gconstpointer b) { - return g_utf8_collate (thunarx_renamer_get_name (THUNARX_RENAMER (a)), thunarx_renamer_get_name (THUNARX_RENAMER (b))); + return g_utf8_collate (thunarx_renamer_get_name (THUNARX_RENAMER (a)), + thunarx_renamer_get_name (THUNARX_RENAMER (b))); } @@ -334,7 +348,6 @@ g_list_free (providers); /* initialize the dialog */ - gtk_dialog_set_has_separator (GTK_DIALOG (renamer_dialog), FALSE); gtk_window_set_default_size (GTK_WINDOW (renamer_dialog), 510, 490); gtk_window_set_title (GTK_WINDOW (renamer_dialog), _("Rename Multiple Files")); @@ -388,8 +401,7 @@ gtk_widget_show (swin); /* create the tree view */ - renamer_dialog->tree_view = exo_tree_view_new (); - gtk_tree_view_set_model (GTK_TREE_VIEW (renamer_dialog->tree_view), GTK_TREE_MODEL (renamer_dialog->model)); + renamer_dialog->tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (renamer_dialog->model)); gtk_tree_view_set_search_column (GTK_TREE_VIEW (renamer_dialog->tree_view), THUNAR_RENAMER_MODEL_COLUMN_OLDNAME); gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (renamer_dialog->tree_view), TRUE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (renamer_dialog->tree_view), TRUE); @@ -402,17 +414,19 @@ gtk_widget_show (renamer_dialog->tree_view); /* create the tree view column for the old file name */ - column = gtk_tree_view_column_new (); + renamer_dialog->name_column = column = gtk_tree_view_column_new (); gtk_tree_view_column_set_spacing (column, 2); gtk_tree_view_column_set_min_width (column, 100); gtk_tree_view_column_set_title (column, _("Name")); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_fixed_width (column, 250); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); + gtk_tree_view_column_set_clickable (column, TRUE); + g_signal_connect (G_OBJECT (column), "clicked", G_CALLBACK (thunar_renamer_dialog_name_column_clicked), renamer_dialog); renderer = g_object_new (THUNAR_TYPE_ICON_RENDERER, "size", 16, NULL); gtk_tree_view_column_pack_start (column, renderer, FALSE); gtk_tree_view_column_set_attributes (column, renderer, "file", THUNAR_RENAMER_MODEL_COLUMN_FILE, NULL); - renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, NULL); + renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", THUNAR_RENAMER_MODEL_COLUMN_OLDNAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (renamer_dialog->tree_view), column); @@ -425,15 +439,13 @@ gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "ellipsize", PANGO_ELLIPSIZE_END, - "ellipsize-set", TRUE, "foreground", "Red", - "weight", PANGO_WEIGHT_SEMIBOLD, NULL); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "foreground-set", THUNAR_RENAMER_MODEL_COLUMN_CONFLICT, "text", THUNAR_RENAMER_MODEL_COLUMN_NEWNAME, - "weight-set", THUNAR_RENAMER_MODEL_COLUMN_CONFLICT, + "weight", THUNAR_RENAMER_MODEL_COLUMN_CONFLICT_WEIGHT, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (renamer_dialog->tree_view), column); @@ -478,9 +490,9 @@ xfce_rc_set_group (rc, "Configuration"); /* create the renamer combo box for the renamer selection */ - rcombo = gtk_combo_box_new_text (); + rcombo = gtk_combo_box_text_new (); for (lp = renamers; lp != NULL; lp = lp->next) - gtk_combo_box_append_text (GTK_COMBO_BOX (rcombo), thunarx_renamer_get_name (lp->data)); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (rcombo), thunarx_renamer_get_name (lp->data)); gtk_box_pack_start (GTK_BOX (rbox), rcombo, FALSE, FALSE, 0); gtk_widget_show (rcombo); @@ -496,14 +508,14 @@ gtk_widget_show (image); /* create the name/suffix/both combo box */ - mcombo = gtk_combo_box_new_text (); + mcombo = gtk_combo_box_text_new (); klass = g_type_class_ref (THUNAR_TYPE_RENAMER_MODE); active_str = xfce_rc_read_entry_untranslated (rc, "LastActiveMode", ""); for (active = 0, n = 0; n < klass->n_values; ++n) { if (exo_str_is_equal (active_str, klass->values[n].value_name)) active = n; - gtk_combo_box_append_text (GTK_COMBO_BOX (mcombo), _(klass->values[n].value_nick)); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (mcombo), _(klass->values[n].value_nick)); } exo_mutual_binding_new (G_OBJECT (renamer_dialog->model), "mode", G_OBJECT (mcombo), "active"); gtk_box_pack_end (GTK_BOX (rbox), mcombo, FALSE, FALSE, 0); @@ -606,8 +618,7 @@ } /* release the renamers list */ - g_list_foreach (renamers, (GFunc) g_object_unref, NULL); - g_list_free (renamers); + g_list_free_full (renamers, g_object_unref); } @@ -778,7 +789,7 @@ /* check if this row should be renamed */ if (G_LIKELY (name != NULL && *name != '\0')) - pair_list = g_list_append (pair_list, thunar_renamer_pair_new (file, name)); + pair_list = g_list_prepend (pair_list, thunar_renamer_pair_new (file, name)); /* cleanup */ g_object_unref (file); @@ -928,7 +939,8 @@ if (G_LIKELY (help_url == NULL)) { /* open the general documentation if no specific URL */ - thunar_dialogs_show_help (GTK_WIDGET (renamer_dialog), "advanced-topics", "to-bulk-rename-files"); + xfce_dialog_show_help (GTK_WINDOW (renamer_dialog), "thunar", + "bulk-renamer/start", NULL); } else { @@ -1095,6 +1107,9 @@ /* append the file to the renamer model */ thunar_renamer_model_append (renamer_dialog->model, file); + /* unset sort order */ + gtk_tree_view_column_set_sort_indicator (renamer_dialog->name_column, FALSE); + /* release the file */ g_object_unref (G_OBJECT (file)); } @@ -1214,17 +1229,42 @@ _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (THUNAR_IS_RENAMER_DIALOG (renamer_dialog)); - /* verify that we have exactly one file selected */ - if (G_LIKELY (g_list_length (renamer_dialog->selected_files) == 1)) + /* popup the properties dialog */ + dialog = thunar_properties_dialog_new (GTK_WINDOW (renamer_dialog)); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + thunar_properties_dialog_set_files (THUNAR_PROPERTIES_DIALOG (dialog), renamer_dialog->selected_files); + gtk_widget_show (dialog); +} + + + +static void +thunar_renamer_dialog_name_column_clicked (GtkTreeViewColumn *column, + ThunarRenamerDialog *renamer_dialog) +{ + GtkSortType sort_order = GTK_SORT_ASCENDING; + + _thunar_return_if_fail (renamer_dialog->name_column == column); + + if (!gtk_tree_view_column_get_sort_indicator (column)) { - /* popup the properties dialog */ - dialog = thunar_properties_dialog_new (); - gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); - gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); - gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (renamer_dialog)); - thunar_properties_dialog_set_file (THUNAR_PROPERTIES_DIALOG (dialog), renamer_dialog->selected_files->data); - gtk_widget_show (dialog); + /* show sort order */ + gtk_tree_view_column_set_sort_indicator (column, TRUE); } + else + { + /* invert new sort order */ + if (gtk_tree_view_column_get_sort_order (column) == GTK_SORT_ASCENDING) + sort_order = GTK_SORT_DESCENDING; + else + sort_order = GTK_SORT_ASCENDING; + } + + /* set new sort direction */ + gtk_tree_view_column_set_sort_order (column, sort_order); + + /* sort the model */ + thunar_renamer_model_sort (renamer_dialog->model, sort_order); } @@ -1340,6 +1380,9 @@ /* insert the file in the model */ thunar_renamer_model_insert (renamer_dialog->model, file, position); + /* unset sort order */ + gtk_tree_view_column_set_sort_indicator (renamer_dialog->name_column, FALSE); + /* advance the offset if we do not append, so the drop order is consistent */ if (position != -1) position++; @@ -1520,9 +1563,14 @@ } /* perform the move */ - thunar_renamer_model_reorder (renamer_dialog->model, rows, position); - g_list_foreach (rows, (GFunc) gtk_tree_path_free, NULL); - g_list_free (rows); + if (G_LIKELY (rows != NULL)) + { + thunar_renamer_model_reorder (renamer_dialog->model, rows, position); + g_list_free_full (rows, (GDestroyNotify) gtk_tree_path_free); + } + + /* unset sort column */ + gtk_tree_view_column_set_sort_indicator (renamer_dialog->name_column, FALSE); } /* finish the dnd operation */ @@ -1648,7 +1696,7 @@ /* the "Properties" action is only sensitive if we have exactly one selected file */ action = gtk_action_group_get_action (renamer_dialog->action_group, "properties"); - gtk_action_set_sensitive (action, (n_selected_files == 1)); + gtk_action_set_sensitive (action, n_selected_files > 0); /* notify listeners */ g_object_notify (G_OBJECT (renamer_dialog), "selected-files"); @@ -1657,22 +1705,6 @@ /** - * thunar_renamer_dialog_new: - * - * Allocates a new #ThunarRenamerDialog instance. - * - * Return value: the newly allocated #ThunarRenamerDialog - * instance. - **/ -GtkWidget* -thunar_renamer_dialog_new (void) -{ - return g_object_new (THUNAR_TYPE_RENAMER_DIALOG, NULL); -} - - - -/** * thunar_renamer_dialog_get_current_directory: * @renamer_dialog : a #ThunarRenamerDialog. * @@ -1683,7 +1715,7 @@ * * Return value: the current directory for @renamer_dialog. **/ -ThunarFile* +static ThunarFile* thunar_renamer_dialog_get_current_directory (ThunarRenamerDialog *renamer_dialog) { _thunar_return_val_if_fail (THUNAR_IS_RENAMER_DIALOG (renamer_dialog), NULL); @@ -1702,7 +1734,7 @@ * is %NULL, the current directory of the file manager process * will be used. **/ -void +static void thunar_renamer_dialog_set_current_directory (ThunarRenamerDialog *renamer_dialog, ThunarFile *current_directory) { @@ -1739,7 +1771,7 @@ * * Return value: the list of currently selected files. **/ -GList* +static GList* thunar_renamer_dialog_get_selected_files (ThunarRenamerDialog *renamer_dialog) { _thunar_return_val_if_fail (THUNAR_IS_RENAMER_DIALOG (renamer_dialog), NULL); @@ -1758,7 +1790,7 @@ * * Return value: %TRUE if @renamer_dialog is standalone. **/ -gboolean +static gboolean thunar_renamer_dialog_get_standalone (ThunarRenamerDialog *renamer_dialog) { _thunar_return_val_if_fail (THUNAR_IS_RENAMER_DIALOG (renamer_dialog), FALSE); @@ -1776,7 +1808,7 @@ * toolbar and several other actions that do not make sense * when opened from within the file manager. **/ -void +static void thunar_renamer_dialog_set_standalone (ThunarRenamerDialog *renamer_dialog, gboolean standalone) { @@ -1877,7 +1909,7 @@ gtk_window_set_startup_id (GTK_WINDOW (dialog), startup_id); /* check if we have a toplevel window */ - if (G_LIKELY (window != NULL && GTK_WIDGET_TOPLEVEL (window))) + if (G_LIKELY (window != NULL && gtk_widget_get_toplevel (window))) { /* dialog is transient for toplevel window, but not modal */ gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); diff -Nru thunar-1.2.3/thunar/thunar-renamer-dialog.h thunar-1.6.10/thunar/thunar-renamer-dialog.h --- thunar-1.2.3/thunar/thunar-renamer-dialog.h 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-renamer-dialog.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -36,18 +36,6 @@ GType thunar_renamer_dialog_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_renamer_dialog_new (void) G_GNUC_MALLOC; - -ThunarFile *thunar_renamer_dialog_get_current_directory (ThunarRenamerDialog *renamer_dialog); -void thunar_renamer_dialog_set_current_directory (ThunarRenamerDialog *renamer_dialog, - ThunarFile *current_directory); - -GList *thunar_renamer_dialog_get_selected_files (ThunarRenamerDialog *renamer_dialog); - -gboolean thunar_renamer_dialog_get_standalone (ThunarRenamerDialog *renamer_dialog); -void thunar_renamer_dialog_set_standalone (ThunarRenamerDialog *renamer_dialog, - gboolean fixed); - void thunar_show_renamer_dialog (gpointer parent, ThunarFile *current_directory, GList *files, diff -Nru thunar-1.2.3/thunar/thunar-renamer-dialog-ui.xml thunar-1.6.10/thunar/thunar-renamer-dialog-ui.xml --- thunar-1.2.3/thunar/thunar-renamer-dialog-ui.xml 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-renamer-dialog-ui.xml 2015-05-22 20:31:54.000000000 +0000 @@ -1,8 +1,6 @@ s as @@ -241,6 +258,8 @@ GList *hp; GList *fp; guint n; + const gchar **mime_types; + const gchar *content_type; _thunar_return_val_if_fail (THUNAR_IS_SENDTO_MODEL (sendto_model), NULL); @@ -294,7 +313,30 @@ continue; } - /* FIXME Check if the GAppInfo supports all files */ + /* check if we need to test mime types for this handler */ + mime_types = g_object_get_data (G_OBJECT (hp->data), "mime-types"); + if (mime_types != NULL) + { + /* each file must match atleast one of the specified mime types */ + for (fp = files; fp != NULL; fp = fp->next) + { + /* each file must be supported by one of the mime types */ + for (n = 0; mime_types[n] != NULL; ++n) + { + content_type = thunar_file_get_content_type (fp->data); + if (g_content_type_equals (content_type, mime_types[n])) + break; + } + + /* check if all mime types failed */ + if (mime_types[n] == NULL) + break; + } + + /* check if the test failed */ + if (G_UNLIKELY (fp != NULL)) + continue; + } /* the handler is supported */ handlers = g_list_prepend (handlers, g_object_ref (G_OBJECT (hp->data))); diff -Nru thunar-1.2.3/thunar/thunar-sendto-model.h thunar-1.6.10/thunar/thunar-sendto-model.h --- thunar-1.2.3/thunar/thunar-sendto-model.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-sendto-model.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-session-client.c thunar-1.6.10/thunar/thunar-session-client.c --- thunar-1.2.3/thunar/thunar-session-client.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-session-client.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -36,10 +36,13 @@ #include #endif +#include + #include #include #include #include +#include @@ -72,6 +75,7 @@ struct _ThunarSessionClient { GObject __parent__; + gchar *path; gchar *id; @@ -269,12 +273,12 @@ thunar_session_client_restore (ThunarSessionClient *session_client) { ThunarApplication *application; - const gchar *uri; - ThunarFile *directory; + gchar **uris; GtkWidget *window; XfceRc *rc; gchar **roles; guint n; + gint active_tab; /* try to open the session file */ rc = xfce_rc_simple_open (session_client->path, TRUE); @@ -288,33 +292,35 @@ roles = xfce_rc_get_groups (rc); for (n = 0; roles[n] != NULL; ++n) { + /* skip the null group */ + if (strcmp (roles[n], "[NULL]") == 0) + continue; + /* enter the group */ xfce_rc_set_group (rc, roles[n]); /* determine the URI for the new window */ - uri = xfce_rc_read_entry (rc, "URI", NULL); - if (G_UNLIKELY (uri == NULL)) + uris = xfce_rc_read_list_entry (rc, "URI", ";"); + if (G_UNLIKELY (uris == NULL)) continue; - /* determine the directory for the new window */ - directory = thunar_file_get_for_uri (uri, NULL); - if (G_UNLIKELY (directory == NULL)) - continue; + /* active tab */ + active_tab = xfce_rc_read_int_entry (rc, "PAGE", -1); + + /* open the new window */ + window = g_object_new (THUNAR_TYPE_WINDOW, "role", roles[n], NULL); + thunar_application_take_window (application, GTK_WINDOW (window)); + gtk_widget_show (window); - /* verify that we have a directory */ - if (thunar_file_is_directory (directory)) + /* open tabs */ + if (!thunar_window_set_directories (THUNAR_WINDOW (window), uris, active_tab)) { - /* open the new window */ - window = g_object_new (THUNAR_TYPE_WINDOW, - "current-directory", directory, - "role", roles[n], - NULL); - thunar_application_take_window (application, GTK_WINDOW (window)); - gtk_widget_show (window); + /* no tabs were opened */ + gtk_widget_destroy (window); } /* cleanup */ - g_object_unref (G_OBJECT (directory)); + g_strfreev (uris); } /* cleanup */ @@ -358,11 +364,12 @@ { ThunarApplication *application; const gchar *role; - ThunarFile *directory; + gchar **uris; GList *windows; GList *lp; - gchar *uri; + guint n; FILE *fp; + gint active_page; _thunar_return_if_fail (THUNAR_IS_SESSION_CLIENT (session_client)); _thunar_return_if_fail (session_client->connection == connection); @@ -370,37 +377,57 @@ /* check if we should save our current state */ if (save_type == SmSaveLocal || save_type == SmSaveBoth) { - /* try to open the session file for writing */ - fp = fopen (session_client->path, "w"); - if (G_LIKELY (fp != NULL)) + /* save the active windows */ + application = thunar_application_get (); + windows = thunar_application_get_windows (application); + + if (windows != NULL) { - /* save the active windows */ - application = thunar_application_get (); - windows = thunar_application_get_windows (application); - for (lp = windows; lp != NULL; lp = lp->next) + /* try to open the session file for writing */ + fp = fopen (session_client->path, "w"); + if (G_LIKELY (fp != NULL)) { - /* determine the directory for the window */ - directory = thunar_window_get_current_directory (lp->data); - if (G_UNLIKELY (directory == NULL)) - continue; - - /* determine the role for the window */ - role = gtk_window_get_role (lp->data); - if (G_UNLIKELY (role == NULL)) - continue; - - /* save the window */ - uri = thunar_file_dup_uri (directory); - fprintf (fp, "[%s]\n", role); - fprintf (fp, "URI=%s\n\n", uri); - g_free (uri); + for (lp = windows; lp != NULL; lp = lp->next) + { + /* determine the role for the window */ + role = gtk_window_get_role (lp->data); + if (G_UNLIKELY (role == NULL)) + continue; + + /* determine the directories for the window */ + uris = thunar_window_get_directories (lp->data, &active_page); + if (G_UNLIKELY (uris == NULL)) + continue; + + /* save the window */ + fprintf (fp, "[%s]\n", role); + fprintf (fp, "PAGE=%d\n", active_page); + fprintf (fp, "URI="); + for (n = 0; uris[n] != NULL; n++) + { + fprintf (fp, "%s", uris[n]); + if (G_LIKELY (uris[n + 1] != NULL)) + fprintf (fp, ";"); + } + fprintf (fp, "\n\n"); + + /* cleanup */ + g_strfreev (uris); + } + + /* cleanup */ + fclose (fp); } - /* cleanup */ - g_object_unref (G_OBJECT (application)); g_list_free (windows); - fclose (fp); } + else + { + /* no windows, remove the file */ + g_unlink (session_client->path); + } + + g_object_unref (G_OBJECT (application)); } /* tell the session manager that we're done */ diff -Nru thunar-1.2.3/thunar/thunar-session-client.h thunar-1.6.10/thunar/thunar-session-client.h --- thunar-1.2.3/thunar/thunar-session-client.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-session-client.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-settings.desktop.in thunar-1.6.10/thunar/thunar-settings.desktop.in --- thunar-1.2.3/thunar/thunar-settings.desktop.in 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-settings.desktop.in 2015-05-22 13:25:36.000000000 +0000 @@ -3,8 +3,8 @@ _Name=File Manager _Comment=Configure the Thunar file manager Exec=thunar-settings -Icon=file-manager +Icon=system-file-manager Terminal=false Type=Application -Categories=X-XFCE;Settings;DesktopSettings;X-XfceSettingsDialog; +Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-PersonalSettings; StartupNotify=true diff -Nru thunar-1.2.3/thunar/thunar-shortcuts-icon-renderer.c thunar-1.6.10/thunar/thunar-shortcuts-icon-renderer.c --- thunar-1.2.3/thunar/thunar-shortcuts-icon-renderer.c 2011-06-05 01:07:16.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-shortcuts-icon-renderer.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -26,8 +26,10 @@ #include #include +#include #include #include +#include @@ -35,7 +37,8 @@ enum { PROP_0, - PROP_VOLUME, + PROP_DEVICE, + PROP_GICON, }; @@ -68,7 +71,8 @@ { ThunarIconRenderer __parent__; - GVolume *volume; + ThunarDevice *device; + GIcon *gicon; }; @@ -92,15 +96,27 @@ gtkcell_renderer_class->render = thunar_shortcuts_icon_renderer_render; /** - * ThunarShortcutsIconRenderer:volume: + * ThunarShortcutsIconRenderer:device: * - * The #GVolume for which to render an icon or %NULL to fallback + * The #ThunarDevice for which to render an icon or %NULL to fallback * to the default icon renderering (see #ThunarIconRenderer). **/ g_object_class_install_property (gobject_class, - PROP_VOLUME, - g_param_spec_object ("volume", "volume", "volume", - G_TYPE_VOLUME, + PROP_DEVICE, + g_param_spec_object ("device", "device", "device", + THUNAR_TYPE_DEVICE, + EXO_PARAM_READWRITE)); + + /** + * ThunarIconRenderer:gicon: + * + * The GIcon to render, this property has preference over the the icon returned + * by the ThunarFile property. + **/ + g_object_class_install_property (gobject_class, + PROP_GICON, + g_param_spec_object ("gicon", "gicon", "gicon", + G_TYPE_ICON, EXO_PARAM_READWRITE)); } @@ -119,11 +135,13 @@ static void thunar_shortcuts_icon_renderer_finalize (GObject *object) { - ThunarShortcutsIconRenderer *shortcuts_icon_renderer = THUNAR_SHORTCUTS_ICON_RENDERER (object); + ThunarShortcutsIconRenderer *renderer = THUNAR_SHORTCUTS_ICON_RENDERER (object); - /* release the volume (if any) */ - if (G_UNLIKELY (shortcuts_icon_renderer->volume != NULL)) - g_object_unref (shortcuts_icon_renderer->volume); + if (G_UNLIKELY (renderer->device != NULL)) + g_object_unref (renderer->device); + + if (G_UNLIKELY (renderer->gicon != NULL)) + g_object_unref (renderer->gicon); (*G_OBJECT_CLASS (thunar_shortcuts_icon_renderer_parent_class)->finalize) (object); } @@ -136,12 +154,16 @@ GValue *value, GParamSpec *pspec) { - ThunarShortcutsIconRenderer *shortcuts_icon_renderer = THUNAR_SHORTCUTS_ICON_RENDERER (object); + ThunarShortcutsIconRenderer *renderer = THUNAR_SHORTCUTS_ICON_RENDERER (object); switch (prop_id) { - case PROP_VOLUME: - g_value_set_object (value, shortcuts_icon_renderer->volume); + case PROP_DEVICE: + g_value_set_object (value, renderer->device); + break; + + case PROP_GICON: + g_value_set_object (value, renderer->gicon); break; default: @@ -158,14 +180,20 @@ const GValue *value, GParamSpec *pspec) { - ThunarShortcutsIconRenderer *shortcuts_icon_renderer = THUNAR_SHORTCUTS_ICON_RENDERER (object); + ThunarShortcutsIconRenderer *renderer = THUNAR_SHORTCUTS_ICON_RENDERER (object); switch (prop_id) { - case PROP_VOLUME: - if (G_UNLIKELY (shortcuts_icon_renderer->volume != NULL)) - g_object_unref (shortcuts_icon_renderer->volume); - shortcuts_icon_renderer->volume = g_value_dup_object (value); + case PROP_DEVICE: + if (G_UNLIKELY (renderer->device != NULL)) + g_object_unref (renderer->device); + renderer->device = g_value_dup_object (value); + break; + + case PROP_GICON: + if (G_UNLIKELY (renderer->gicon != NULL)) + g_object_unref (renderer->gicon); + renderer->gicon = g_value_dup_object (value); break; default: @@ -193,15 +221,22 @@ GdkPixbuf *icon = NULL; GdkPixbuf *temp; GIcon *gicon; + cairo_t *cr; + gdouble alpha; /* check if we have a volume set */ - if (G_UNLIKELY (shortcuts_icon_renderer->volume != NULL)) + if (G_UNLIKELY (shortcuts_icon_renderer->gicon != NULL + || shortcuts_icon_renderer->device != NULL)) { /* load the volume icon */ icon_theme = gtk_icon_theme_get_for_screen (gdk_drawable_get_screen (window)); - /* look up the volume icon info */ - gicon = g_volume_get_icon (shortcuts_icon_renderer->volume); + /* look up the icon info */ + if (shortcuts_icon_renderer->gicon != NULL) + gicon = g_object_ref (shortcuts_icon_renderer->gicon); + else + gicon = thunar_device_get_icon (shortcuts_icon_renderer->device); + icon_info = gtk_icon_theme_lookup_by_gicon (icon_theme, gicon, cell_area->width, GTK_ICON_LOOKUP_USE_BUILTIN); g_object_unref (gicon); @@ -224,7 +259,7 @@ if (G_UNLIKELY (icon_area.width > cell_area->width || icon_area.height > cell_area->height)) { /* scale down to fit */ - temp = exo_gdk_pixbuf_scale_down (icon, TRUE, cell_area->width, cell_area->height); + temp = exo_gdk_pixbuf_scale_down (icon, TRUE, MAX (1, cell_area->width), MAX (1, cell_area->height)); g_object_unref (G_OBJECT (icon)); icon = temp; @@ -233,13 +268,12 @@ icon_area.height = gdk_pixbuf_get_height (icon); } - if (!thunar_g_volume_is_mounted (shortcuts_icon_renderer->volume)) - { - /* 50% translucent for unmounted volumes */ - temp = exo_gdk_pixbuf_lucent (icon, 50); - g_object_unref (G_OBJECT (icon)); - icon = temp; - } + /* 50% translucent for unmounted volumes */ + if (shortcuts_icon_renderer->device != NULL + && !thunar_device_is_mounted (shortcuts_icon_renderer->device)) + alpha = 0.50; + else + alpha = 1.00; icon_area.x = cell_area->x + (cell_area->width - icon_area.width) / 2; icon_area.y = cell_area->y + (cell_area->height - icon_area.height) / 2; @@ -248,10 +282,11 @@ if (gdk_rectangle_intersect (expose_area, &icon_area, &draw_area)) { /* render the invalid parts of the icon */ - gdk_draw_pixbuf (window, widget->style->black_gc, icon, - draw_area.x - icon_area.x, draw_area.y - icon_area.y, - draw_area.x, draw_area.y, draw_area.width, draw_area.height, - GDK_RGB_DITHER_NORMAL, 0, 0); + cr = gdk_cairo_create (window); + thunar_gdk_cairo_set_source_pixbuf (cr, icon, icon_area.x, icon_area.y); + gdk_cairo_rectangle (cr, &draw_area); + cairo_paint_with_alpha (cr, alpha); + cairo_destroy (cr); } /* cleanup */ diff -Nru thunar-1.2.3/thunar/thunar-shortcuts-icon-renderer.h thunar-1.6.10/thunar/thunar-shortcuts-icon-renderer.h --- thunar-1.2.3/thunar/thunar-shortcuts-icon-renderer.h 2011-06-05 01:07:16.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-shortcuts-icon-renderer.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer . * diff -Nru thunar-1.2.3/thunar/thunar-shortcuts-model.c thunar-1.6.10/thunar/thunar-shortcuts-model.c --- thunar-1.2.3/thunar/thunar-shortcuts-model.c 2011-09-19 13:19:12.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-shortcuts-model.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,7 +1,8 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann + * Copyright (c) 2012 Nick Schermer * * 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 @@ -40,35 +41,43 @@ #include #include +#include +#include +#include #include +#define SPINNER_CYCLE_DURATION 1000 +#define SPINNER_NUM_STEPS 12 -#define THUNAR_SHORTCUT(obj) ((ThunarShortcut *) (obj)) +#define THUNAR_SHORTCUT(obj) ((ThunarShortcut *) (obj)) -/* I don't particularly like this here, but it's shared across a few - * files. */ -const gchar *_thunar_user_directory_names[9] = { - "Desktop", "Documents", "Download", "Music", "Pictures", "Public", - "Templates", "Videos", NULL, -}; typedef struct _ThunarShortcut ThunarShortcut; -typedef enum + + +enum { - THUNAR_SHORTCUT_SEPARATOR, - THUNAR_SHORTCUT_SYSTEM_DEFINED, - THUNAR_SHORTCUT_REMOVABLE_MEDIA, - THUNAR_SHORTCUT_USER_DEFINED, -} ThunarShortcutType; + PROP_0, + PROP_HIDDEN_BOOKMARKS, + PROP_FILE_SIZE_BINARY +}; static void thunar_shortcuts_model_tree_model_init (GtkTreeModelIface *iface); static void thunar_shortcuts_model_drag_source_init (GtkTreeDragSourceIface *iface); +static void thunar_shortcuts_model_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void thunar_shortcuts_model_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); static void thunar_shortcuts_model_finalize (GObject *object); static GtkTreeModelFlags thunar_shortcuts_model_get_flags (GtkTreeModel *tree_model); static gint thunar_shortcuts_model_get_n_columns (GtkTreeModel *tree_model); @@ -106,12 +115,17 @@ GtkSelectionData *selection_data); static gboolean thunar_shortcuts_model_drag_data_delete (GtkTreeDragSource *source, GtkTreePath *path); +static void thunar_shortcuts_model_header_visibility (ThunarShortcutsModel *model); +static void thunar_shortcuts_model_shortcut_devices (ThunarShortcutsModel *model); +static void thunar_shortcuts_model_shortcut_places (ThunarShortcutsModel *model); +static void thunar_shortcuts_model_shortcut_network (ThunarShortcutsModel *model); +static gboolean thunar_shortcuts_model_get_hidden (ThunarShortcutsModel *model, + ThunarShortcut *shortcut); static void thunar_shortcuts_model_add_shortcut (ThunarShortcutsModel *model, - ThunarShortcut *shortcut, - GtkTreePath *path); + ThunarShortcut *shortcut); static void thunar_shortcuts_model_remove_shortcut (ThunarShortcutsModel *model, ThunarShortcut *shortcut); -static void thunar_shortcuts_model_load (ThunarShortcutsModel *model); +static gboolean thunar_shortcuts_model_load (gpointer data); static void thunar_shortcuts_model_save (ThunarShortcutsModel *model); static void thunar_shortcuts_model_monitor (GFileMonitor *monitor, GFile *file, @@ -122,15 +136,16 @@ ThunarShortcutsModel *model); static void thunar_shortcuts_model_file_destroy (ThunarFile *file, ThunarShortcutsModel *model); -static void thunar_shortcuts_model_volume_added (GVolumeMonitor *volume_monitor, - GVolume *volume, +static void thunar_shortcuts_model_device_added (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, ThunarShortcutsModel *model); -static void thunar_shortcuts_model_volume_removed (GVolumeMonitor *volume_monitor, - GVolume *volume, +static void thunar_shortcuts_model_device_removed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, ThunarShortcutsModel *model); -static void thunar_shortcuts_model_volume_changed (GVolumeMonitor *monitor, - GVolume *volume, +static void thunar_shortcuts_model_device_changed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, ThunarShortcutsModel *model); + static void thunar_shortcut_free (ThunarShortcut *shortcut, ThunarShortcutsModel *model); @@ -150,23 +165,42 @@ * generated by another model. */ #ifndef NDEBUG - gint stamp; + gint stamp; #endif - GList *shortcuts; - GList *hidden_volumes; - GVolumeMonitor *volume_monitor; + GList *shortcuts; + + ThunarPreferences *preferences; + gchar **hidden_bookmarks; + gboolean file_size_binary; + + ThunarDeviceMonitor *device_monitor; + + gint64 bookmarks_time; + GFile *bookmarks_file; + GFileMonitor *bookmarks_monitor; + guint bookmarks_idle_id; - GFileMonitor *monitor; + guint busy_timeout_id; }; struct _ThunarShortcut { - ThunarShortcutType type; + ThunarShortcutGroup group; - gchar *name; - ThunarFile *file; - GVolume *volume; + gchar *name; + GIcon *gicon; + gchar *tooltip; + gint sort_id; + + guint busy : 1; + guint busy_pulse; + + GFile *location; + ThunarFile *file; + ThunarDevice *device; + + guint hidden : 1; }; @@ -176,7 +210,7 @@ G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_DRAG_SOURCE, thunar_shortcuts_model_drag_source_init)) - + static void thunar_shortcuts_model_class_init (ThunarShortcutsModelClass *klass) { @@ -184,6 +218,29 @@ gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_shortcuts_model_finalize; + gobject_class->get_property = thunar_shortcuts_model_get_property; + gobject_class->set_property = thunar_shortcuts_model_set_property; + + g_object_class_install_property (gobject_class, + PROP_HIDDEN_BOOKMARKS, + g_param_spec_boxed ("hidden-bookmarks", + NULL, + NULL, + G_TYPE_STRV, + EXO_PARAM_READWRITE)); + + /** + * ThunarPropertiesDialog:file_size_binary: + * + * Whether the file size should be shown in binary or decimal. + **/ + g_object_class_install_property (gobject_class, + PROP_FILE_SIZE_BINARY, + g_param_spec_boolean ("file-size-binary", + "FileSizeBinary", + NULL, + FALSE, + EXO_PARAM_READWRITE)); } @@ -220,157 +277,157 @@ static void thunar_shortcuts_model_init (ThunarShortcutsModel *model) { - ThunarShortcut *shortcut; - GtkTreePath *path; - ThunarFile *file; - GVolume *volume; - GFile *bookmarks; - GFile *desktop; - GFile *home; - GList *system_paths = NULL; - GList *volumes; - GList *lp; - #ifndef NDEBUG model->stamp = g_random_int (); #endif - /* connect to the volume monitor */ - model->volume_monitor = g_volume_monitor_get (); - g_signal_connect (model->volume_monitor, "volume-added", G_CALLBACK (thunar_shortcuts_model_volume_added), model); - g_signal_connect (model->volume_monitor, "volume-removed", G_CALLBACK (thunar_shortcuts_model_volume_removed), model); - g_signal_connect (model->volume_monitor, "volume-changed", G_CALLBACK (thunar_shortcuts_model_volume_changed), model); + /* hidden bookmarks */ + model->preferences = thunar_preferences_get (); + exo_binding_new (G_OBJECT (model->preferences), "hidden-bookmarks", + G_OBJECT (model), "hidden-bookmarks"); + + /* binary file size */ + exo_binding_new (G_OBJECT (model->preferences), "misc-file-size-binary", + G_OBJECT (model), "file-size-binary"); - /* add the home folder to the system paths */ - home = thunar_g_file_new_for_home (); - system_paths = g_list_append (system_paths, g_object_ref (home)); + /* load volumes */ + thunar_shortcuts_model_shortcut_devices (model); - /* append the user's desktop folder */ - desktop = thunar_g_file_new_for_desktop (); - if (!g_file_equal (desktop, home)) - system_paths = g_list_append (system_paths, desktop); - else - g_object_unref (desktop); + /* add network */ + thunar_shortcuts_model_shortcut_network (model); - /* append the trash icon if the trash is supported */ - if (thunar_g_vfs_is_uri_scheme_supported ("trash")) - system_paths = g_list_append (system_paths, thunar_g_file_new_for_trash ()); + /* add bookmarks */ + thunar_shortcuts_model_shortcut_places (model); +} - /* append the root file system */ - system_paths = g_list_append (system_paths, thunar_g_file_new_for_root ()); - /* append the network icon if browsing the network is supported */ - if (thunar_g_vfs_is_uri_scheme_supported ("network")) - system_paths = g_list_append (system_paths, g_file_new_for_uri ("network://")); - /* will be used to append the shortcuts to the list */ - path = gtk_tree_path_new_from_indices (0, -1); +static void +thunar_shortcuts_model_finalize (GObject *object) +{ + ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (object); - /* append the system defined items ('Home', 'Trash', 'File System') */ - for (lp = system_paths; lp != NULL; lp = lp->next) - { - /* determine the file for the path */ - file = thunar_file_get (lp->data, NULL); - if (G_LIKELY (file != NULL)) - { - /* create the shortcut */ - shortcut = g_slice_new0 (ThunarShortcut); - shortcut->type = THUNAR_SHORTCUT_SYSTEM_DEFINED; - shortcut->file = file; + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); - /* append the shortcut to the list */ - thunar_shortcuts_model_add_shortcut (model, shortcut, path); - gtk_tree_path_next (path); - } + /* stop the busy timeout */ + if (model->busy_timeout_id != 0) + g_source_remove (model->busy_timeout_id); + + /* stop bookmark load idle */ + if (model->bookmarks_idle_id != 0) + g_source_remove (model->bookmarks_idle_id); - /* release the system defined path */ - g_object_unref (lp->data); - } + /* free all shortcuts */ + g_list_foreach (model->shortcuts, (GFunc) thunar_shortcut_free, model); + g_list_free (model->shortcuts); + + /* disconnect from the preferences */ + g_object_unref (model->preferences); - g_list_free (system_paths); + /* free hidden list */ + g_strfreev (model->hidden_bookmarks); - /* prepend the removable media volumes */ - volumes = g_volume_monitor_get_volumes (model->volume_monitor); - for (lp = volumes; lp != NULL; lp = lp->next) + /* detach from the file monitor */ + if (model->bookmarks_monitor != NULL) { - /* monitor the volume for changes */ - volume = G_VOLUME (lp->data); + g_file_monitor_cancel (model->bookmarks_monitor); + g_object_unref (model->bookmarks_monitor); + } - /* we list only present, removable devices here */ - if (thunar_g_volume_is_removable (volume) && thunar_g_volume_is_present (volume)) - { - /* generate the shortcut (w/o a file, else we might - * prevent the volume from being unmounted) - */ - shortcut = g_slice_new0 (ThunarShortcut); - shortcut->type = THUNAR_SHORTCUT_REMOVABLE_MEDIA; - shortcut->volume = volume; + if (model->bookmarks_file != NULL) + g_object_unref (model->bookmarks_file); - /* link the shortcut to the list */ - thunar_shortcuts_model_add_shortcut (model, shortcut, path); - gtk_tree_path_next (path); - } - else - { - /* schedule the volume for later checking, not removable or - * there's no medium present */ - model->hidden_volumes = g_list_prepend (model->hidden_volumes, volume); - } - } - g_list_free (volumes); + /* unlink from the device monitor */ + g_signal_handlers_disconnect_matched (model->device_monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, model); + g_object_unref (model->device_monitor); - /* prepend the row separator */ - shortcut = g_slice_new0 (ThunarShortcut); - shortcut->type = THUNAR_SHORTCUT_SEPARATOR; - thunar_shortcuts_model_add_shortcut (model, shortcut, path); - gtk_tree_path_next (path); + (*G_OBJECT_CLASS (thunar_shortcuts_model_parent_class)->finalize) (object); +} - /* determine the URI to the Gtk+ bookmarks file */ - bookmarks = g_file_resolve_relative_path (home, ".gtk-bookmarks"); - /* register with the alteration monitor for the bookmarks file */ - model->monitor = g_file_monitor_file (bookmarks, G_FILE_MONITOR_NONE, NULL, NULL); - if (G_LIKELY (model->monitor != NULL)) - g_signal_connect (model->monitor, "changed", G_CALLBACK (thunar_shortcuts_model_monitor), model); - /* read the Gtk+ bookmarks file */ - thunar_shortcuts_model_load (model); +static void +thunar_shortcuts_model_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (object); - /* cleanup */ - g_object_unref (bookmarks); - g_object_unref (home); - gtk_tree_path_free (path); + switch (prop_id) + { + case PROP_HIDDEN_BOOKMARKS: + g_value_set_boxed (value, model->hidden_bookmarks); + break; + + case PROP_FILE_SIZE_BINARY: + g_value_set_boolean (value, model->file_size_binary); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } static void -thunar_shortcuts_model_finalize (GObject *object) +thunar_shortcuts_model_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) { ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (object); + GList *lp; + ThunarShortcut *shortcut; + gboolean hidden; + GtkTreeIter iter; + GtkTreePath *path; + guint idx; - _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); + switch (prop_id) + { + case PROP_HIDDEN_BOOKMARKS: + g_strfreev (model->hidden_bookmarks); + model->hidden_bookmarks = g_value_dup_boxed (value); - /* free all shortcuts */ - g_list_foreach (model->shortcuts, (GFunc) thunar_shortcut_free, model); - g_list_free (model->shortcuts); + /* update shortcuts */ + for (lp = model->shortcuts, idx = 0; lp != NULL; lp = lp->next, idx++) + { + shortcut = lp->data; - /* free all hidden volumes */ - g_list_foreach (model->hidden_volumes, (GFunc) g_object_unref, NULL); - g_list_free (model->hidden_volumes); + /* skip devices and headers*/ + if (shortcut->device != NULL + || (shortcut->file == NULL && shortcut->location == NULL)) + continue; - /* detach from the file monitor */ - if (model->monitor != NULL) - { - g_file_monitor_cancel (model->monitor); - g_object_unref (model->monitor); - } + /* update state if required */ + hidden = thunar_shortcuts_model_get_hidden (model, shortcut); + if (shortcut->hidden != hidden) + { + shortcut->hidden = hidden; - /* unlink from the volume monitor */ - g_signal_handlers_disconnect_matched (model->volume_monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, model); - g_object_unref (model->volume_monitor); + GTK_TREE_ITER_INIT (iter, model->stamp, lp); - (*G_OBJECT_CLASS (thunar_shortcuts_model_parent_class)->finalize) (object); + path = gtk_tree_path_new_from_indices (idx, -1); + gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); + gtk_tree_path_free (path); + } + } + + /* update header visibility */ + thunar_shortcuts_model_header_visibility (model); + break; + + case PROP_FILE_SIZE_BINARY: + model->file_size_binary = g_value_get_boolean (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } @@ -397,23 +454,47 @@ { switch (idx) { + case THUNAR_SHORTCUTS_MODEL_COLUMN_IS_HEADER: + return G_TYPE_BOOLEAN; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_IS_ITEM: + return G_TYPE_BOOLEAN; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_VISIBLE: + return G_TYPE_BOOLEAN; + case THUNAR_SHORTCUTS_MODEL_COLUMN_NAME: return G_TYPE_STRING; + case THUNAR_SHORTCUTS_MODEL_COLUMN_TOOLTIP: + return G_TYPE_STRING; + case THUNAR_SHORTCUTS_MODEL_COLUMN_FILE: return THUNAR_TYPE_FILE; - case THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME: - return G_TYPE_VOLUME; + case THUNAR_SHORTCUTS_MODEL_COLUMN_LOCATION: + return G_TYPE_FILE; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_GICON: + return G_TYPE_ICON; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE: + return THUNAR_TYPE_DEVICE; case THUNAR_SHORTCUTS_MODEL_COLUMN_MUTABLE: return G_TYPE_BOOLEAN; - case THUNAR_SHORTCUTS_MODEL_COLUMN_EJECT: - return G_TYPE_STRING; + case THUNAR_SHORTCUTS_MODEL_COLUMN_CAN_EJECT: + return G_TYPE_BOOLEAN; - case THUNAR_SHORTCUTS_MODEL_COLUMN_SEPARATOR: + case THUNAR_SHORTCUTS_MODEL_COLUMN_GROUP: + return G_TYPE_UINT; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_BUSY: return G_TYPE_BOOLEAN; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_BUSY_PULSE: + return G_TYPE_UINT; } _thunar_assert_not_reached (); @@ -473,90 +554,161 @@ GValue *value) { ThunarShortcut *shortcut; - ThunarFile *file; - GMount *mount; - GFile *mount_point; + gboolean can_eject; + GFile *file; + gchar *disk_usage; + guint32 trash_items; + gchar *trash_string; + gchar *parse_name; + gboolean file_size_binary; _thunar_return_if_fail (iter->stamp == THUNAR_SHORTCUTS_MODEL (tree_model)->stamp); _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (tree_model)); /* determine the shortcut for the list item */ shortcut = THUNAR_SHORTCUT (((GList *) iter->user_data)->data); + if (shortcut == NULL) + return; switch (column) { + case THUNAR_SHORTCUTS_MODEL_COLUMN_IS_HEADER: + g_value_init (value, G_TYPE_BOOLEAN); + g_value_set_boolean (value, (shortcut->group & THUNAR_SHORTCUT_GROUP_HEADER) != 0); + break; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_IS_ITEM: + g_value_init (value, G_TYPE_BOOLEAN); + g_value_set_boolean (value, (shortcut->group & THUNAR_SHORTCUT_GROUP_HEADER) == 0); + break; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_VISIBLE: + g_value_init (value, G_TYPE_BOOLEAN); + g_value_set_boolean (value, !shortcut->hidden); + break; + case THUNAR_SHORTCUTS_MODEL_COLUMN_NAME: g_value_init (value, G_TYPE_STRING); - if (G_UNLIKELY (shortcut->volume != NULL)) - g_value_take_string (value, g_volume_get_name (shortcut->volume)); + if (G_UNLIKELY (shortcut->device != NULL)) + g_value_take_string (value, thunar_device_get_name (shortcut->device)); else if (shortcut->name != NULL) g_value_set_static_string (value, shortcut->name); else if (shortcut->file != NULL) g_value_set_static_string (value, thunar_file_get_display_name (shortcut->file)); + else if (shortcut->location != NULL) + g_value_take_string (value, thunar_g_file_get_display_name_remote (shortcut->location)); else g_value_set_static_string (value, ""); break; - case THUNAR_SHORTCUTS_MODEL_COLUMN_FILE: - g_value_init (value, THUNAR_TYPE_FILE); - if (shortcut->volume != NULL && shortcut->file == NULL) + case THUNAR_SHORTCUTS_MODEL_COLUMN_TOOLTIP: + g_value_init (value, G_TYPE_STRING); + if ((shortcut->group & THUNAR_SHORTCUT_GROUP_DEVICES) != 0) { - /* determine the mount of the volume */ - mount = g_volume_get_mount (shortcut->volume); - - if (G_LIKELY (mount != NULL)) - { - /* the volume is mounted, get the mount point */ - mount_point = g_mount_get_root (mount); - - /* try to allocate/reference a file pointing to the mount point */ - file = thunar_file_get (mount_point, NULL); - g_value_take_object (value, file); + if (shortcut->device != NULL) + file = thunar_device_get_root (shortcut->device); + else if (shortcut->file != NULL) + file = g_object_ref (thunar_file_get_file (shortcut->file)); + else + file = NULL; - /* release resources */ - g_object_unref (mount_point); - g_object_unref (mount); + if (file != NULL) + { + file_size_binary = THUNAR_SHORTCUTS_MODEL (tree_model)->file_size_binary; + disk_usage = thunar_g_file_get_free_space_string (file, file_size_binary); + g_object_unref (file); + g_value_take_string (value, disk_usage); + } + break; + } + else if ((shortcut->group & THUNAR_SHORTCUT_GROUP_PLACES_TRASH) != 0) + { + trash_items = thunar_file_get_item_count (shortcut->file); + if (trash_items == 0) + { + g_value_set_static_string (value, _("Trash is empty")); + } + else + { + trash_string = g_strdup_printf (ngettext ("Trash contains %d file", + "Trash contains %d files", + trash_items), trash_items); + g_value_take_string (value, trash_string); } + break; } - else + else if (shortcut->tooltip == NULL) { - g_value_set_object (value, shortcut->file); + if (shortcut->file != NULL) + file = thunar_file_get_file (shortcut->file); + else if (shortcut->location != NULL) + file = shortcut->location; + else + file = NULL; + + if (G_LIKELY (file != NULL)) + { + parse_name = g_file_get_parse_name (file); + shortcut->tooltip = g_markup_escape_text (parse_name, -1); + g_free (parse_name); + } } + + g_value_set_static_string (value, shortcut->tooltip); + break; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_FILE: + g_value_init (value, THUNAR_TYPE_FILE); + g_value_set_object (value, shortcut->file); break; - case THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME: - g_value_init (value, G_TYPE_VOLUME); - g_value_set_object (value, shortcut->volume); + case THUNAR_SHORTCUTS_MODEL_COLUMN_GICON: + g_value_init (value, G_TYPE_ICON); + g_value_set_object (value, shortcut->gicon); + break; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE: + g_value_init (value, THUNAR_TYPE_DEVICE); + g_value_set_object (value, shortcut->device); + break; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_LOCATION: + g_value_init (value, G_TYPE_FILE); + if (shortcut->location != NULL) + g_value_set_object (value, shortcut->location); + else if (shortcut->file != NULL) + g_value_set_object (value, thunar_file_get_file (shortcut->file)); break; case THUNAR_SHORTCUTS_MODEL_COLUMN_MUTABLE: g_value_init (value, G_TYPE_BOOLEAN); - g_value_set_boolean (value, shortcut->type == THUNAR_SHORTCUT_USER_DEFINED); + g_value_set_boolean (value, + shortcut->group == THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS); break; - case THUNAR_SHORTCUTS_MODEL_COLUMN_EJECT: - g_value_init (value, G_TYPE_STRING); - if (shortcut->volume != NULL) - { - if (thunar_g_volume_is_removable (shortcut->volume) - && thunar_g_volume_is_present (shortcut->volume)) - { - g_value_set_static_string (value, "media-eject"); - } - else - { - g_value_set_static_string (value, ""); - } - } + case THUNAR_SHORTCUTS_MODEL_COLUMN_CAN_EJECT: + if (shortcut->device != NULL) + can_eject = thunar_device_can_eject (shortcut->device); else - { - g_value_set_static_string (value, ""); - } + can_eject = FALSE; + + g_value_init (value, G_TYPE_BOOLEAN); + g_value_set_boolean (value, can_eject); + break; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_GROUP: + g_value_init (value, G_TYPE_UINT); + g_value_set_uint (value, shortcut->group); break; - case THUNAR_SHORTCUTS_MODEL_COLUMN_SEPARATOR: + case THUNAR_SHORTCUTS_MODEL_COLUMN_BUSY: g_value_init (value, G_TYPE_BOOLEAN); - g_value_set_boolean (value, shortcut->type == THUNAR_SHORTCUT_SEPARATOR); + g_value_set_boolean (value, shortcut->busy); + break; + + case THUNAR_SHORTCUTS_MODEL_COLUMN_BUSY_PULSE: + g_value_init (value, G_TYPE_UINT); + g_value_set_uint (value, shortcut->busy_pulse); break; default: @@ -666,7 +818,7 @@ shortcut = g_list_nth_data (model->shortcuts, gtk_tree_path_get_indices (path)[0]); /* special shortcuts cannot be reordered */ - return (shortcut != NULL && shortcut->type == THUNAR_SHORTCUT_USER_DEFINED); + return (shortcut != NULL && shortcut->group == THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS); } @@ -698,17 +850,284 @@ static void -thunar_shortcuts_model_add_shortcut (ThunarShortcutsModel *model, - ThunarShortcut *shortcut, - GtkTreePath *path) +thunar_shortcuts_model_header_visibility (ThunarShortcutsModel *model) +{ + GList *lp; + ThunarShortcut *shortcut; + ThunarShortcut *header; + guint n_children = 0; + GList *lp_header = NULL; + gint idx_header = 0; + gint i; + GtkTreePath *path; + GtkTreeIter iter; + + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); + + for (lp = model->shortcuts, i = 0; lp != NULL; lp = lp->next, i++) + { + shortcut = lp->data; + + if ((shortcut->group & THUNAR_SHORTCUT_GROUP_HEADER) != 0) + { + if (lp_header != NULL) + { + update_header: + + header = lp_header->data; + if (header->hidden != (n_children == 0)) + { + /* set new visibility */ + header->hidden = (n_children == 0); + + /* notify view */ + path = gtk_tree_path_new_from_indices (idx_header, -1); + GTK_TREE_ITER_INIT (iter, model->stamp, lp_header); + gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); + gtk_tree_path_free (path); + } + + if (lp == NULL) + return; + } + + /* reset for new */ + idx_header = i; + lp_header = lp; + n_children = 0; + } + else if (!shortcut->hidden) + { + n_children++; + } + } + + _thunar_assert (lp == NULL); + if (lp_header != NULL) + goto update_header; +} + + + +static void +thunar_shortcuts_model_shortcut_devices (ThunarShortcutsModel *model) { - GtkTreeIter iter; + ThunarShortcut *shortcut; + GList *devices; + GList *lp; + + /* add the devices heading */ + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_DEVICES_HEADER; + shortcut->name = g_strdup (_("DEVICES")); + thunar_shortcuts_model_add_shortcut (model, shortcut); + + /* the filesystem entry */ + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_DEVICES_FILESYSTEM; + shortcut->name = g_strdup (_("File System")); + shortcut->file = thunar_file_get_for_uri ("file:///", NULL); + shortcut->gicon = g_themed_icon_new ("drive-harddisk"); + shortcut->hidden = thunar_shortcuts_model_get_hidden (model, shortcut); + thunar_shortcuts_model_add_shortcut (model, shortcut); + + /* connect to the device monitor */ + model->device_monitor = thunar_device_monitor_get (); + + /* get a list of all devices available */ + devices = thunar_device_monitor_get_devices (model->device_monitor); + for (lp = devices; lp != NULL; lp = lp->next) + { + thunar_shortcuts_model_device_added (NULL, lp->data, model); + g_object_unref (G_OBJECT (lp->data)); + } + g_list_free (devices); + + /* monitor for changes */ + g_signal_connect (model->device_monitor, "device-added", G_CALLBACK (thunar_shortcuts_model_device_added), model); + g_signal_connect (model->device_monitor, "device-removed", G_CALLBACK (thunar_shortcuts_model_device_removed), model); + g_signal_connect (model->device_monitor, "device-changed", G_CALLBACK (thunar_shortcuts_model_device_changed), model); + + thunar_shortcuts_model_header_visibility (model); +} + + + +static void +thunar_shortcuts_model_shortcut_network (ThunarShortcutsModel *model) +{ + ThunarShortcut *shortcut; + + /* add the network heading */ + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_NETWORK_HEADER; + shortcut->name = g_strdup (_("NETWORK")); + thunar_shortcuts_model_add_shortcut (model, shortcut); + + /* the browse network entry */ + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_NETWORK_DEFAULT; + shortcut->name = g_strdup (_("Browse Network")); + shortcut->location = g_file_new_for_uri ("network://"); + shortcut->gicon = g_themed_icon_new ("network-workgroup"); + shortcut->hidden = thunar_shortcuts_model_get_hidden (model, shortcut); + thunar_shortcuts_model_add_shortcut (model, shortcut); +} + + + +static void +thunar_shortcuts_model_shortcut_places (ThunarShortcutsModel *model) +{ + ThunarShortcut *shortcut; + GFile *home; + GFile *desktop; + GFile *trash; + ThunarFile *file; + + /* add the places heading */ + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_PLACES_HEADER; + shortcut->name = g_strdup (_("PLACES")); + thunar_shortcuts_model_add_shortcut (model, shortcut); + + /* get home path */ + home = thunar_g_file_new_for_home (); + + /* add home entry */ + file = thunar_file_get (home, NULL); + if (file != NULL) + { + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_PLACES_DEFAULT; + shortcut->file = file; + shortcut->gicon = g_themed_icon_new ("go-home"); + shortcut->sort_id = 0; + shortcut->hidden = thunar_shortcuts_model_get_hidden (model, shortcut); + thunar_shortcuts_model_add_shortcut (model, shortcut); + } + + /* add desktop entry */ + desktop = thunar_g_file_new_for_desktop (); + if (!g_file_equal (desktop, home)) + { + file = thunar_file_get (desktop, NULL); + if (file != NULL) + { + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_PLACES_DEFAULT; + shortcut->file = file; + shortcut->sort_id = 1; + shortcut->hidden = thunar_shortcuts_model_get_hidden (model, shortcut); + thunar_shortcuts_model_add_shortcut (model, shortcut); + } + } + g_object_unref (desktop); + g_object_unref (home); + + /* append the trash icon if the trash is supported */ + if (thunar_g_vfs_is_uri_scheme_supported ("trash")) + { + trash = thunar_g_file_new_for_trash (); + file = thunar_file_get (trash, NULL); + g_object_unref (trash); + + if (file != NULL) + { + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_PLACES_TRASH; + shortcut->file = file; + shortcut->hidden = thunar_shortcuts_model_get_hidden (model, shortcut); + thunar_shortcuts_model_add_shortcut (model, shortcut); + } + } + + /* determine the URI to the Gtk+ bookmarks file */ + model->bookmarks_file = thunar_g_file_new_for_bookmarks (); + + /* register with the alteration monitor for the bookmarks file */ + model->bookmarks_monitor = g_file_monitor_file (model->bookmarks_file, G_FILE_MONITOR_NONE, NULL, NULL); + if (G_LIKELY (model->bookmarks_monitor != NULL)) + { + g_signal_connect (model->bookmarks_monitor, "changed", + G_CALLBACK (thunar_shortcuts_model_monitor), model); + } + + /* read the Gtk+ bookmarks file */ + model->bookmarks_idle_id = g_idle_add_full (G_PRIORITY_DEFAULT, thunar_shortcuts_model_load, model, NULL); +} + + + +static gboolean +thunar_shortcuts_model_get_hidden (ThunarShortcutsModel *model, + ThunarShortcut *shortcut) +{ + gchar *uri; + guint n; + gboolean hidden = FALSE; + + _thunar_return_val_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model), FALSE); + _thunar_return_val_if_fail (shortcut->device == NULL, FALSE); + + if (model->hidden_bookmarks == NULL) + return FALSE; + + /* get the uri */ + if (shortcut->file != NULL) + uri = thunar_file_dup_uri (shortcut->file); + else if (shortcut->location != NULL) + uri = g_file_get_uri (shortcut->location); + else + _thunar_assert_not_reached (); + + if (uri == NULL) + return FALSE; + + for (n = 0; !hidden && model->hidden_bookmarks[n] != NULL; n++) + hidden = (g_strcmp0 (model->hidden_bookmarks[n], uri) == 0); + + g_free (uri); + + return hidden; +} + + + +static gint +thunar_shortcuts_model_sort_func (gconstpointer shortcut_a, + gconstpointer shortcut_b) +{ + const ThunarShortcut *a = shortcut_a; + const ThunarShortcut *b = shortcut_b; + + /* sort groups */ + if (a->group != b->group) + return a->group - b->group; + + /* use sort order */ + if (a->sort_id != b->sort_id) + return a->sort_id > b->sort_id ? 1 : -1; + + /* properly sort devices by timestamp */ + if (a->device != NULL && b->device != NULL) + return thunar_device_sort (a->device, b->device); + + return g_strcmp0 (a->name, b->name); +} + + + +static void +thunar_shortcuts_model_add_shortcut_with_path (ThunarShortcutsModel *model, + ThunarShortcut *shortcut, + GtkTreePath *path) +{ + GtkTreeIter iter; + GtkTreePath *sorted_path = NULL; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); _thunar_return_if_fail (shortcut->file == NULL || THUNAR_IS_FILE (shortcut->file)); - _thunar_return_if_fail (gtk_tree_path_get_depth (path) > 0); - _thunar_return_if_fail (gtk_tree_path_get_indices (path)[0] >= 0); - _thunar_return_if_fail (gtk_tree_path_get_indices (path)[0] <= (gint) g_list_length (model->shortcuts)); /* we want to stay informed about changes to the file */ if (G_LIKELY (shortcut->file != NULL)) @@ -723,12 +1142,36 @@ G_CALLBACK (thunar_shortcuts_model_file_destroy), model); } - /* insert the new shortcut to the shortcuts list */ - model->shortcuts = g_list_insert (model->shortcuts, shortcut, gtk_tree_path_get_indices (path)[0]); + if (path == NULL) + { + /* insert the new shortcut to the shortcuts list */ + model->shortcuts = g_list_insert_sorted (model->shortcuts, shortcut, thunar_shortcuts_model_sort_func); + sorted_path = gtk_tree_path_new_from_indices (g_list_index (model->shortcuts, shortcut), -1); + path = sorted_path; + } + else + { + model->shortcuts = g_list_insert (model->shortcuts, shortcut, gtk_tree_path_get_indices (path)[0]); + } /* tell everybody that we have a new shortcut */ gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, path); gtk_tree_model_row_inserted (GTK_TREE_MODEL (model), path, &iter); + + if (sorted_path) + gtk_tree_path_free (sorted_path); +} + + + +static void +thunar_shortcuts_model_add_shortcut (ThunarShortcutsModel *model, + ThunarShortcut *shortcut) +{ + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); + _thunar_return_if_fail (shortcut->file == NULL || THUNAR_IS_FILE (shortcut->file)); + + thunar_shortcuts_model_add_shortcut_with_path (model, shortcut, NULL); } @@ -739,6 +1182,7 @@ { GtkTreePath *path; gint idx; + gboolean needs_save; /* determine the index of the shortcut */ idx = g_list_index (model->shortcuts, shortcut); @@ -752,221 +1196,136 @@ gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path); gtk_tree_path_free (path); + /* check if we need to save */ + needs_save = (shortcut->group == THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS); + /* actually free the shortcut */ thunar_shortcut_free (shortcut, model); /* the shortcuts list was changed, so write the gtk bookmarks file */ - thunar_shortcuts_model_save (model); + if (needs_save) + thunar_shortcuts_model_save (model); + + /* update header visibility */ + thunar_shortcuts_model_header_visibility (model); } } -/* Reads the current xdg user dirs locale from ~/.config/xdg-user-dirs.locale - * Notice that the result shall be freed by using g_free (). */ -gchar * -_thunar_get_xdg_user_dirs_locale (void) -{ - gchar *file = NULL; - gchar *content = NULL; - gchar *locale = NULL; - - /* get the file pathname */ - file = g_build_filename (g_get_user_config_dir (), LOCALE_FILE_NAME, NULL); - /* grab the contents and get ride of the surrounding spaces */ - if (g_file_get_contents (file, &content, NULL, NULL)) - locale = g_strdup (g_strstrip (content)); - g_free (content); - g_free (file); +static gboolean +thunar_shortcuts_model_local_file (GFile *gfile) +{ + _thunar_return_val_if_fail (G_IS_FILE (gfile), FALSE); - /* if we got nothing, let's set the default locale as C */ - if (exo_str_is_equal (locale, "")) - { - g_free (locale); - locale = g_strdup ("C"); - } + /* schemes we'd like to have as ThunarFiles in the model */ + if (g_file_has_uri_scheme (gfile, "file") + || g_file_has_uri_scheme (gfile, "computer") + || g_file_has_uri_scheme (gfile, "recent")) + return TRUE; - return locale; + return FALSE; } + + static void -thunar_shortcuts_model_load (ThunarShortcutsModel *model) +thunar_shortcuts_model_load_line (GFile *file_path, + const gchar *name, + gint row_num, + gpointer user_data) { - ThunarShortcut *shortcut; - GtkTreePath *path; - const gchar *user_special_dir = NULL; - ThunarFile *file; - GFile *file_path; - GFile *home; - gchar *bookmarks_path; - gchar line[2048]; - gchar *name; - FILE *fp; - gint i; - - home = thunar_g_file_new_for_home (); + ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (user_data); + ThunarShortcut *shortcut; + ThunarFile *file; - /* determine the path to the GTK+ bookmarks file */ - bookmarks_path = xfce_get_homefile (".gtk-bookmarks", NULL); + _thunar_return_if_fail (G_IS_FILE (file_path)); + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); + _thunar_return_if_fail (name == NULL || g_utf8_validate (name, -1, NULL)); - /* append the GTK+ bookmarks (if any) */ - fp = fopen (bookmarks_path, "r"); - if (G_LIKELY (fp != NULL)) + /* handle local and remove files differently */ + if (thunar_shortcuts_model_local_file (file_path)) { - /* allocate a tree path for appending to the model */ - path = gtk_tree_path_new_from_indices (g_list_length (model->shortcuts), -1); + /* try to open the file corresponding to the uri */ + file = thunar_file_get (file_path, NULL); + if (G_UNLIKELY (file == NULL)) + return; - while (fgets (line, sizeof (line), fp) != NULL) + /* make sure the file refers to a directory */ + if (G_UNLIKELY (thunar_file_is_directory (file))) { - /* strip leading/trailing whitespace */ - g_strstrip (line); - - /* skip over the URI */ - for (name = line; *name != '\0' && !g_ascii_isspace (*name); ++name) - ; - - /* zero-terminate the URI */ - *name++ = '\0'; - - /* check if we have a name */ - for (; g_ascii_isspace (*name); ++name) - ; - - /* parse the URI */ - file_path = g_file_new_for_uri (line); - - /* try to open the file corresponding to the uri */ - file = thunar_file_get (file_path, NULL); - g_object_unref (file_path); - - if (G_UNLIKELY (file == NULL)) - continue; + /* create the shortcut entry */ + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS; + shortcut->file = file; + shortcut->sort_id = row_num; + shortcut->hidden = thunar_shortcuts_model_get_hidden (model, shortcut); + shortcut->name = g_strdup (name); - /* make sure the file refers to a directory */ - if (G_UNLIKELY (thunar_file_is_directory (file))) - { - /* create the shortcut entry */ - shortcut = g_slice_new0 (ThunarShortcut); - shortcut->type = THUNAR_SHORTCUT_USER_DEFINED; - shortcut->file = file; - shortcut->name = (*name != '\0') ? g_strdup (name) : NULL; - - /* append the shortcut to the list */ - thunar_shortcuts_model_add_shortcut (model, shortcut, path); - gtk_tree_path_next (path); - } - else - { - g_object_unref (file); - } + /* append the shortcut to the list */ + thunar_shortcuts_model_add_shortcut (model, shortcut); + } + else + { + g_object_unref (file); } - - /* clean up */ - gtk_tree_path_free (path); - fclose (fp); } else { - /* ~/.gtk-bookmarks wasn't there or it was unreadable. - * here we recreate it with some useful xdg user special dirs */ - gchar *old_locale = NULL; - gchar *locale = NULL; - - bindtextdomain (XDG_USER_DIRS_PACKAGE, PACKAGE_LOCALE_DIR); -#ifdef HAVE_BIND_TEXTDOMAIN_CODESET - bind_textdomain_codeset (XDG_USER_DIRS_PACKAGE, "UTF-8"); -#endif /* HAVE_BIND_TEXTDOMAIN_CODESET */ - - /* save the old locale */ - old_locale = g_strdup(setlocale (LC_MESSAGES, NULL)); - - /* set the new locale */ - locale = _thunar_get_xdg_user_dirs_locale (); - setlocale (LC_MESSAGES, locale); - g_free (locale); - - path = gtk_tree_path_new_from_indices (g_list_length (model->shortcuts), -1); - for (i = G_USER_DIRECTORY_DESKTOP; - i < G_USER_N_DIRECTORIES && _thunar_user_directory_names[i] != NULL; - ++i) - { - /* let's ignore some directories we don't want in the side pane */ - if (i == G_USER_DIRECTORY_DESKTOP - || i == G_USER_DIRECTORY_PUBLIC_SHARE - || i == G_USER_DIRECTORY_TEMPLATES) - { - continue; - } - - user_special_dir = g_get_user_special_dir (i); - - if (G_UNLIKELY (user_special_dir == NULL)) - continue; - - file_path = g_file_new_for_path (user_special_dir); - if (G_UNLIKELY (g_file_equal (file_path, home))) - { - g_object_unref (file_path); - continue; - } + /* create the shortcut entry */ + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->group = THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS; + shortcut->gicon = g_themed_icon_new ("folder-remote"); + shortcut->location = g_object_ref (file_path); + shortcut->sort_id = row_num; + shortcut->hidden = thunar_shortcuts_model_get_hidden (model, shortcut); + shortcut->name = g_strdup (name); - /* try to open the file corresponding to the uri */ - file = thunar_file_get (file_path, NULL); - g_object_unref (file_path); + /* append the shortcut to the list */ + thunar_shortcuts_model_add_shortcut (model, shortcut); + } +} - if (G_UNLIKELY (file == NULL)) - continue; - /* make sure the file refers to a directory */ - if (G_UNLIKELY (!thunar_file_is_directory (file))) - { - g_object_unref (file); - continue; - } - /* create the shortcut entry */ - shortcut = g_slice_new0 (ThunarShortcut); - shortcut->type = THUNAR_SHORTCUT_USER_DEFINED; - shortcut->file = file; - shortcut->name = g_strdup (dgettext (XDG_USER_DIRS_PACKAGE, - (gchar *) _thunar_user_directory_names[i])); +static gboolean +thunar_shortcuts_model_load (gpointer data) +{ + ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (data); - /* append the shortcut to the list */ - thunar_shortcuts_model_add_shortcut (model, shortcut, path); - gtk_tree_path_next (path); - } + _thunar_return_val_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model), FALSE); - /* restore the old locale */ - setlocale (LC_MESSAGES, old_locale); - g_free(old_locale); - gtk_tree_path_free (path); + GDK_THREADS_ENTER (); - /* we try to save the obtained new model */ - thunar_shortcuts_model_save (model); - } + /* parse the bookmarks */ + thunar_util_load_bookmarks (model->bookmarks_file, + thunar_shortcuts_model_load_line, + model); - /* clean up */ - g_object_unref (home); - g_free (bookmarks_path); -} + /* update the visibility */ + thunar_shortcuts_model_header_visibility (model); + GDK_THREADS_LEAVE (); + model->bookmarks_idle_id = 0; -static void -thunar_shortcuts_model_monitor (GFileMonitor *monitor, - GFile *file, - GFile *other_file, - GFileMonitorEvent event_type, - gpointer user_data) + return FALSE; +} + + + +static gboolean +thunar_shortcuts_model_reload (gpointer data) { - ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (user_data); + ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (data); ThunarShortcut *shortcut; GtkTreePath *path; GList *lp; gint idx; - _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); - _thunar_return_if_fail (model->monitor == monitor); + _thunar_return_val_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model), FALSE); + + GDK_THREADS_ENTER (); /* drop all existing user-defined shortcuts from the model */ for (idx = 0, lp = model->shortcuts; lp != NULL; ) @@ -978,11 +1337,11 @@ lp = g_list_next (lp); /* drop the shortcut if it is user-defined */ - if (shortcut->type == THUNAR_SHORTCUT_USER_DEFINED) + if (shortcut->group == THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS) { /* unlink the shortcut from the model */ model->shortcuts = g_list_remove (model->shortcuts, shortcut); - + /* tell everybody that we have lost a shortcut */ path = gtk_tree_path_new_from_indices (idx, -1); gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path); @@ -997,8 +1356,33 @@ } } + GDK_THREADS_LEAVE (); + + /* load new bookmarks */ + return thunar_shortcuts_model_load (data); +} + + + +static void +thunar_shortcuts_model_monitor (GFileMonitor *monitor, + GFile *file, + GFile *other_file, + GFileMonitorEvent event_type, + gpointer user_data) +{ + ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (user_data); + + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); + _thunar_return_if_fail (model->bookmarks_monitor == monitor); + + /* leave if we saved less than 2 seconds ago */ + if (model->bookmarks_time + 2 * G_USEC_PER_SEC > g_get_real_time ()) + return; + /* reload the shortcuts model */ - thunar_shortcuts_model_load (model); + if (model->bookmarks_idle_id == 0) + model->bookmarks_idle_id = g_idle_add (thunar_shortcuts_model_reload, model); } @@ -1006,58 +1390,66 @@ static void thunar_shortcuts_model_save (ThunarShortcutsModel *model) { + GString *contents; ThunarShortcut *shortcut; gchar *bookmarks_path; - gchar *tmp_path; gchar *uri; GList *lp; - FILE *fp; - gint fd; + GError *err = NULL; + GFile *parent = NULL; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); - /* open a temporary file for writing */ - tmp_path = xfce_get_homefile (".gtk-bookmarks.XXXXXX", NULL); - fd = g_mkstemp (tmp_path); - if (G_UNLIKELY (fd < 0)) - { - g_warning ("Failed to open `%s' for writing: %s", - tmp_path, g_strerror (errno)); - g_free (tmp_path); - return; - } + contents = g_string_new (NULL); - /* write the uris of user customizable shortcuts */ - fp = fdopen (fd, "w"); for (lp = model->shortcuts; lp != NULL; lp = lp->next) { shortcut = THUNAR_SHORTCUT (lp->data); - if (shortcut->type == THUNAR_SHORTCUT_USER_DEFINED) + if (shortcut->group == THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS) { - uri = g_file_get_uri (thunar_file_get_file (shortcut->file)); + if (shortcut->file != NULL) + uri = thunar_file_dup_uri (shortcut->file); + else if (shortcut->location != NULL) + uri = g_file_get_uri (shortcut->location); + else + continue; + if (G_LIKELY (shortcut->name != NULL)) - fprintf (fp, "%s %s\n", uri, shortcut->name); + g_string_append_printf (contents, "%s %s\n", uri, shortcut->name); else - fprintf (fp, "%s\n", uri); + g_string_append_printf (contents, "%s\n", uri); g_free (uri); } } - /* we're done writing the temporary file */ - fclose (fp); - - /* move the temporary file to it's final location (atomic writing) */ - bookmarks_path = xfce_get_homefile (".gtk-bookmarks", NULL); - if (rename (tmp_path, bookmarks_path) < 0) + /* create folder if it does not exist */ + parent = g_file_get_parent (model->bookmarks_file); + if (!g_file_make_directory_with_parents (parent, NULL, &err)) + { + if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_EXISTS)) + { + g_clear_error (&err); + } + else + { + g_warning ("Failed to create bookmarks folder: %s", err->message); + g_error_free (err); + } + } + g_clear_object (&parent); + + /* write data to the disk */ + bookmarks_path = g_file_get_path (model->bookmarks_file); + if (!g_file_set_contents (bookmarks_path, contents->str, contents->len, &err)) { - g_warning ("Failed to write `%s': %s", - bookmarks_path, g_strerror (errno)); - g_unlink (tmp_path); + g_warning ("Failed to write \"%s\": %s", bookmarks_path, err->message); + g_error_free (err); } - - /* cleanup */ g_free (bookmarks_path); - g_free (tmp_path); + g_string_free (contents, TRUE); + + /* store the save time */ + model->bookmarks_time = g_get_real_time (); } @@ -1074,9 +1466,9 @@ _thunar_return_if_fail (THUNAR_IS_FILE (file)); _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); - - /* check if the file still refers to a directory or a not mounted URI, - * otherwise we cannot keep it on the shortcuts list, and so we'll treat + + /* check if the file still refers to a directory or a not mounted URI, + * otherwise we cannot keep it on the shortcuts list, and so we'll treat * it like the file was destroyed (and thereby removed) */ if (G_UNLIKELY (!thunar_file_is_directory (file))) @@ -1131,143 +1523,129 @@ static void -thunar_shortcuts_model_volume_changed (GVolumeMonitor *volume_monitor, - GVolume *volume, - ThunarShortcutsModel *model) +thunar_shortcuts_model_device_added (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + ThunarShortcutsModel *model) { - ThunarShortcut *shortcut = NULL; - GtkTreePath *path; - GtkTreeIter iter; - GList *lp; - gint idx; + ThunarShortcut *shortcut; - _thunar_return_if_fail (G_IS_VOLUME_MONITOR (volume_monitor)); - _thunar_return_if_fail (model->volume_monitor == volume_monitor); - _thunar_return_if_fail (G_IS_VOLUME (volume)); + _thunar_return_if_fail (device_monitor == NULL || THUNAR_DEVICE_MONITOR (device_monitor)); + _thunar_return_if_fail (device_monitor == NULL || model->device_monitor == device_monitor); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); - /* check if the volume is on the hidden list */ - lp = g_list_find (model->hidden_volumes, volume); - if (lp != NULL) - { - /* check if we need to display the volume now */ - if (thunar_g_volume_is_removable (volume) && thunar_g_volume_is_present (volume)) - { - /* remove the volume from the list of hidden volumes */ - model->hidden_volumes = g_list_delete_link (model->hidden_volumes, lp); - - /* find the insert position */ - for (idx = 0, lp = model->shortcuts; lp != NULL; ++idx, lp = lp->next) - { - shortcut = THUNAR_SHORTCUT (lp->data); - if (shortcut->type == THUNAR_SHORTCUT_SEPARATOR - || shortcut->type == THUNAR_SHORTCUT_USER_DEFINED) - break; - } - - /* allocate a new shortcut */ - shortcut = g_slice_new0 (ThunarShortcut); - shortcut->type = THUNAR_SHORTCUT_REMOVABLE_MEDIA; - shortcut->volume = volume; + /* allocate a new shortcut */ + shortcut = g_slice_new0 (ThunarShortcut); + shortcut->device = g_object_ref (device); + shortcut->hidden = thunar_device_get_hidden (device); - /* the volume is present now, so we have to display it */ - path = gtk_tree_path_new_from_indices (idx, -1); - thunar_shortcuts_model_add_shortcut (model, shortcut, path); - gtk_tree_path_free (path); - } - } - else + switch (thunar_device_get_kind (device)) { - /* lookup the shortcut that contains the given volume */ - for (idx = 0, lp = model->shortcuts; - shortcut == NULL && lp != NULL; - ++idx, lp = lp->next) - { - if (THUNAR_SHORTCUT (lp->data)->volume == volume) - shortcut = lp->data; - } + case THUNAR_DEVICE_KIND_VOLUME: + shortcut->group = THUNAR_SHORTCUT_GROUP_DEVICES_VOLUMES; + break; - /* verify that we actually found the shortcut */ - _thunar_assert (shortcut != NULL); - _thunar_assert (shortcut->volume == volume); + case THUNAR_DEVICE_KIND_MOUNT_LOCAL: + shortcut->group = THUNAR_SHORTCUT_GROUP_DEVICES_MOUNTS; + break; - /* check if we need to hide the volume now */ - if (!thunar_g_volume_is_removable (volume) || !thunar_g_volume_is_present (volume)) - { - /* move the volume to the hidden list */ - model->hidden_volumes = g_list_prepend (model->hidden_volumes, - g_object_ref (volume)); + case THUNAR_DEVICE_KIND_MOUNT_REMOTE: + shortcut->group = THUNAR_SHORTCUT_GROUP_NETWORK_MOUNTS; + break; + } - /* remove the shortcut from the user interface */ - thunar_shortcuts_model_remove_shortcut (model, shortcut); - } - else - { - /* generate an iterator for the path */ - GTK_TREE_ITER_INIT (iter, model->stamp, lp); + /* insert in the model */ + thunar_shortcuts_model_add_shortcut (model, shortcut); - /* tell the view that the volume has changed in some way */ - path = gtk_tree_path_new_from_indices (idx, -1); - gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); - gtk_tree_path_free (path); - } - } + /* header visibility if call is from monitor */ + if (device_monitor != NULL + && !shortcut->hidden) + thunar_shortcuts_model_header_visibility (model); } static void -thunar_shortcuts_model_volume_added (GVolumeMonitor *volume_monitor, - GVolume *volume, - ThunarShortcutsModel *model) +thunar_shortcuts_model_device_removed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + ThunarShortcutsModel *model) { - _thunar_return_if_fail (G_IS_VOLUME_MONITOR (volume_monitor)); - _thunar_return_if_fail (model->volume_monitor == volume_monitor); - _thunar_return_if_fail (G_IS_VOLUME (volume)); + GList *lp; + + _thunar_return_if_fail (THUNAR_DEVICE_MONITOR (device_monitor)); + _thunar_return_if_fail (model->device_monitor == device_monitor); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); - /* place the volume on the hidden list */ - model->hidden_volumes = g_list_prepend (model->hidden_volumes, g_object_ref (volume)); + /* find the shortcut */ + for (lp = model->shortcuts; lp != NULL; lp = lp->next) + if (THUNAR_SHORTCUT (lp->data)->device == device) + break; + + /* something is broken if we don't have a shortcut here */ + _thunar_assert (lp != NULL); + _thunar_assert (THUNAR_SHORTCUT (lp->data)->device == device); - /* let the "changed" handler place the volume where appropriate */ - thunar_shortcuts_model_volume_changed (volume_monitor, volume, model); + /* drop the shortcut from the model */ + if (G_LIKELY (lp != NULL)) + thunar_shortcuts_model_remove_shortcut (model, lp->data); } static void -thunar_shortcuts_model_volume_removed (GVolumeMonitor *volume_monitor, - GVolume *volume, +thunar_shortcuts_model_device_changed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, ThunarShortcutsModel *model) { - GList *lp; + GtkTreeIter iter; + GList *lp; + gint idx; + GtkTreePath *path; + ThunarShortcut *shortcut; + gboolean update_header = FALSE; - _thunar_return_if_fail (G_IS_VOLUME_MONITOR (volume_monitor)); - _thunar_return_if_fail (model->volume_monitor == volume_monitor); - _thunar_return_if_fail (G_IS_VOLUME (volume)); + _thunar_return_if_fail (THUNAR_DEVICE_MONITOR (device_monitor)); + _thunar_return_if_fail (model->device_monitor == device_monitor); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); - - lp = g_list_find (model->hidden_volumes, volume); + + /* find the shortcut */ + for (lp = model->shortcuts, idx = 0; lp != NULL; lp = lp->next, idx++) + if (THUNAR_SHORTCUT (lp->data)->device == device) + break; + + /* something is broken if we don't have a shortcut here */ + _thunar_assert (lp != NULL); + _thunar_assert (THUNAR_SHORTCUT (lp->data)->device == device); + if (G_LIKELY (lp != NULL)) { - /* remove the volume from the hidden list and drop our reference */ - model->hidden_volumes = g_list_delete_link (model->hidden_volumes, lp); - g_object_unref (volume); - } - else - { - /* must be an active shortcut then... */ - for (lp = model->shortcuts; lp != NULL; lp = lp->next) - if (THUNAR_SHORTCUT (lp->data)->volume == volume) - break; + shortcut = lp->data; + + /* cleanup tooltip */ + g_free (shortcut->tooltip); + shortcut->tooltip = NULL; + + /* hidden state */ + if (shortcut->hidden != thunar_device_get_hidden (device)) + { + shortcut->hidden = thunar_device_get_hidden (device); + update_header = TRUE; + } - /* something is broken if we don't have a shortcut here */ - _thunar_assert (lp != NULL); - _thunar_assert (THUNAR_SHORTCUT (lp->data)->volume == volume); + /* generate an iterator for the path */ + GTK_TREE_ITER_INIT (iter, model->stamp, lp); - /* drop the shortcut from the model */ - thunar_shortcuts_model_remove_shortcut (model, lp->data); + /* tell the view that the volume has changed in some way */ + path = gtk_tree_path_new_from_indices (idx, -1); + gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); + gtk_tree_path_free (path); } + + /* header visibility */ + if (update_header) + thunar_shortcuts_model_header_visibility (model); } @@ -1288,16 +1666,17 @@ g_object_unref (shortcut->file); } - if (G_LIKELY (shortcut->volume != NULL)) - { - g_signal_handlers_disconnect_matched (shortcut->volume, - G_SIGNAL_MATCH_DATA, 0, - 0, NULL, NULL, model); - g_object_unref (shortcut->volume); - } + if (G_LIKELY (shortcut->device != NULL)) + g_object_unref (shortcut->device); + + if (G_LIKELY (shortcut->gicon != NULL)) + g_object_unref (shortcut->gicon); + + if (G_LIKELY (shortcut->location != NULL)) + g_object_unref (shortcut->location); - /* release the shortcut name */ g_free (shortcut->name); + g_free (shortcut->tooltip); /* release the shortcut itself */ g_slice_free (ThunarShortcut, shortcut); @@ -1305,6 +1684,55 @@ +static gboolean +thunar_shortcuts_model_busy_timeout (gpointer data) +{ + ThunarShortcutsModel *model = THUNAR_SHORTCUTS_MODEL (data); + gboolean keep_running = FALSE; + ThunarShortcut *shortcut; + GtkTreePath *path; + guint idx; + GtkTreeIter iter; + GList *lp; + + _thunar_return_val_if_fail (THUNAR_IS_SHORTCUTS_MODEL (data), FALSE); + + for (lp = model->shortcuts, idx = 0; lp != NULL; lp = lp->next, idx++) + { + shortcut = lp->data; + if (!shortcut->busy) + continue; + + /* loop the pulse of the shortcut */ + shortcut->busy_pulse++; + if (shortcut->busy_pulse >= SPINNER_NUM_STEPS) + shortcut->busy_pulse = 0; + + /* generate an iterator for the path */ + GTK_TREE_ITER_INIT (iter, model->stamp, lp); + + /* notify the views about the change */ + path = gtk_tree_path_new_from_indices (idx, -1); + gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); + gtk_tree_path_free (path); + + /* keep the timeout running */ + keep_running = TRUE; + } + + return keep_running; +} + + + +static void +thunar_shortcuts_model_busy_timeout_destroyed (gpointer data) +{ + THUNAR_SHORTCUTS_MODEL (data)->busy_timeout_id = 0; +} + + + /** * thunar_shortcuts_model_get_default: * @@ -1337,9 +1765,51 @@ /** + * thunar_shortcuts_model_has_bookmark: + * @model : a #ThunarShortcutsModel instance. + * @file : a #ThuanrFile instance. + * + * Returns %TRUE if there is a bookmark (not a mount or volume) with + * @file as destination. + * + * Return value: %TRUE if @file was found, else %FALSE. + **/ +gboolean +thunar_shortcuts_model_has_bookmark (ThunarShortcutsModel *model, + GFile *file) +{ + GList *lp; + ThunarShortcut *shortcut; + + _thunar_return_val_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model), FALSE); + _thunar_return_val_if_fail (G_IS_FILE (file), FALSE); + + for (lp = model->shortcuts; lp != NULL; lp = lp->next) + { + shortcut = lp->data; + + /* only check bookmarks */ + if (shortcut->group != THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS) + continue; + + if (shortcut->file != NULL + && g_file_equal (thunar_file_get_file (shortcut->file), file)) + return TRUE; + + if (shortcut->location != NULL + && g_file_equal (shortcut->location, file)) + return TRUE; + } + + return FALSE; +} + + + +/** * thunar_shortcuts_model_iter_for_file: * @model : a #ThunarShortcutsModel instance. - * @file : a #ThunarFile instance. + * @file : a #ThuanrFile instance. * @iter : pointer to a #GtkTreeIter. * * Tries to lookup the #GtkTreeIter, that belongs to a shortcut, which @@ -1354,42 +1824,47 @@ ThunarFile *file, GtkTreeIter *iter) { - GMount *mount; - GFile *mount_point; - GList *lp; - + GFile *mount_point; + GList *lp; + ThunarShortcut *shortcut; + _thunar_return_val_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model), FALSE); _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); _thunar_return_val_if_fail (iter != NULL, FALSE); for (lp = model->shortcuts; lp != NULL; lp = lp->next) { - /* check if we have a file that matches */ - if (THUNAR_SHORTCUT (lp->data)->file == file) + shortcut = lp->data; + + /* check if we have a location that matches */ + if (shortcut->file == file) { GTK_TREE_ITER_INIT (*iter, model->stamp, lp); return TRUE; } - /* but maybe we have a mounted(!) volume with a matching mount point */ - if (THUNAR_SHORTCUT (lp->data)->volume != NULL) + if (shortcut->location != NULL + && g_file_equal (shortcut->location, thunar_file_get_file (file))) { - mount = g_volume_get_mount (THUNAR_SHORTCUT (lp->data)->volume); + GTK_TREE_ITER_INIT (*iter, model->stamp, lp); + return TRUE; + } - if (G_LIKELY (mount != NULL)) + /* but maybe we have a mounted(!) volume with a matching mount point */ + if (shortcut->device != NULL + && !thunar_device_get_hidden (shortcut->device)) + { + mount_point = thunar_device_get_root (shortcut->device); + if (mount_point != NULL) { - mount_point = g_mount_get_root (mount); - - if (G_LIKELY (g_file_equal (mount_point, thunar_file_get_file (file)))) + if (g_file_equal (mount_point, thunar_file_get_file (file))) { GTK_TREE_ITER_INIT (*iter, model->stamp, lp); g_object_unref (mount_point); - g_object_unref (mount); return TRUE; } g_object_unref (mount_point); - g_object_unref (mount); } } } @@ -1423,12 +1898,19 @@ /* determine the list item for the path */ shortcut = g_list_nth_data (model->shortcuts, gtk_tree_path_get_indices (path)[0]); - /* append to the list is always possible */ + /* append to the list is not possible */ if (G_LIKELY (shortcut == NULL)) - return TRUE; + return FALSE; /* cannot drop before special shortcuts! */ - return (shortcut->type == THUNAR_SHORTCUT_USER_DEFINED); + if (shortcut->group == THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS) + return TRUE; + + /* we can drop at the end of the bookmarks (before network header) */ + if (shortcut->group == THUNAR_SHORTCUT_GROUP_NETWORK_HEADER) + return TRUE; + + return FALSE; } @@ -1445,29 +1927,39 @@ void thunar_shortcuts_model_add (ThunarShortcutsModel *model, GtkTreePath *dst_path, - ThunarFile *file) + gpointer file) { ThunarShortcut *shortcut; - GList *lp; + GFile *location; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); - _thunar_return_if_fail (gtk_tree_path_get_depth (dst_path) > 0); - _thunar_return_if_fail (gtk_tree_path_get_indices (dst_path)[0] >= 0); - _thunar_return_if_fail (gtk_tree_path_get_indices (dst_path)[0] <= (gint) g_list_length (model->shortcuts)); - _thunar_return_if_fail (THUNAR_IS_FILE (file)); + _thunar_return_if_fail (dst_path == NULL || gtk_tree_path_get_depth (dst_path) > 0); + _thunar_return_if_fail (dst_path == NULL || gtk_tree_path_get_indices (dst_path)[0] >= 0); + _thunar_return_if_fail (dst_path == NULL || gtk_tree_path_get_indices (dst_path)[0] <= (gint) g_list_length (model->shortcuts)); + _thunar_return_if_fail (THUNAR_IS_FILE (file) || G_IS_FILE (file)); + + location = G_IS_FILE (file) ? file : thunar_file_get_file (file); /* verify that the file is not already in use as shortcut */ - for (lp = model->shortcuts; lp != NULL; lp = lp->next) - if (THUNAR_SHORTCUT (lp->data)->file == file) - return; + if (thunar_shortcuts_model_has_bookmark (model, location)) + return; /* create the new shortcut that will be inserted */ shortcut = g_slice_new0 (ThunarShortcut); - shortcut->type = THUNAR_SHORTCUT_USER_DEFINED; - shortcut->file = g_object_ref (G_OBJECT (file)); + shortcut->group = THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS; + + if (thunar_shortcuts_model_local_file (location)) + { + shortcut->file = thunar_file_get (location, NULL); + } + else + { + shortcut->location = g_object_ref (G_OBJECT (location)); + shortcut->gicon = g_themed_icon_new ("folder-remote"); + } /* add the shortcut to the list at the given position */ - thunar_shortcuts_model_add_shortcut (model, shortcut, dst_path); + thunar_shortcuts_model_add_shortcut_with_path (model, shortcut, dst_path); /* the shortcuts list was changed, so write the gtk bookmarks file */ thunar_shortcuts_model_save (model); @@ -1490,12 +1982,13 @@ GtkTreePath *dst_path) { ThunarShortcut *shortcut; - GtkTreePath *path; - GList *lp; - gint *order; - gint index_src; - gint index_dst; - gint idx; + GtkTreePath *path; + GList *lp; + gint *order; + gint index_src; + gint index_dst; + gint idx; + gint n_shortcuts; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); _thunar_return_if_fail (gtk_tree_path_get_depth (src_path) > 0); @@ -1511,7 +2004,8 @@ return; /* generate the order for the rows prior the dst/src rows */ - order = g_newa (gint, g_list_length (model->shortcuts)); + n_shortcuts = g_list_length (model->shortcuts); + order = g_newa (gint, n_shortcuts); for (idx = 0, lp = model->shortcuts; idx < index_src && idx < index_dst; ++idx, lp = lp->next) order[idx] = idx; @@ -1521,6 +2015,8 @@ for (; idx < index_dst; ++idx, lp = lp->next) { + if (lp->next == NULL) + break; lp->data = lp->next->data; order[idx] = idx + 1; } @@ -1551,11 +2047,11 @@ } /* generate the remaining order */ - for (; idx < (gint) g_list_length (model->shortcuts); ++idx) + for (; idx < n_shortcuts; ++idx) order[idx] = idx; /* tell all listeners about the reordering just performed */ - path = gtk_tree_path_new (); + path = gtk_tree_path_new_first (); gtk_tree_model_rows_reordered (GTK_TREE_MODEL (model), path, NULL, order); gtk_tree_path_free (path); @@ -1590,11 +2086,10 @@ shortcut = g_list_nth_data (model->shortcuts, gtk_tree_path_get_indices (path)[0]); /* verify that the shortcut is removable */ - _thunar_assert (shortcut->type == THUNAR_SHORTCUT_USER_DEFINED); - _thunar_assert (THUNAR_IS_FILE (shortcut->file)); + _thunar_assert (shortcut->group == THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS); /* remove the shortcut (using the file destroy handler) */ - thunar_shortcuts_model_file_destroy (shortcut->file, model); + thunar_shortcuts_model_remove_shortcut (model, shortcut); } @@ -1629,8 +2124,7 @@ shortcut = THUNAR_SHORTCUT (((GList *) iter->user_data)->data); /* verify the shortcut */ - _thunar_assert (shortcut->type == THUNAR_SHORTCUT_USER_DEFINED); - _thunar_assert (THUNAR_IS_FILE (shortcut->file)); + _thunar_assert (shortcut->group == THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS); /* perform the rename */ if (G_UNLIKELY (shortcut->name != NULL)) @@ -1651,4 +2145,119 @@ +void +thunar_shortcuts_model_set_busy (ThunarShortcutsModel *model, + ThunarDevice *device, + gboolean busy) +{ + ThunarShortcut *shortcut; + GList *lp; + guint idx; + GtkTreeIter iter; + GtkTreePath *path; + + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); + + /* get the device */ + for (lp = model->shortcuts, idx = 0; lp != NULL; lp = lp->next, idx++) + if (THUNAR_SHORTCUT (lp->data)->device == device) + break; + + if (lp == NULL) + return; + + shortcut = lp->data; + _thunar_assert (shortcut->device == device); + + if (G_LIKELY (shortcut->busy != busy)) + { + shortcut->busy = busy; + + if (busy && model->busy_timeout_id == 0) + { + /* start the global cycle timeout */ + model->busy_timeout_id = + gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT, + SPINNER_CYCLE_DURATION / SPINNER_NUM_STEPS, + thunar_shortcuts_model_busy_timeout, model, + thunar_shortcuts_model_busy_timeout_destroyed); + } + else if (!busy) + { + /* generate an iterator for the path */ + GTK_TREE_ITER_INIT (iter, model->stamp, lp); + + /* notify the views about the change */ + path = gtk_tree_path_new_from_indices (idx, -1); + gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); + gtk_tree_path_free (path); + } + } +} + + + + +void +thunar_shortcuts_model_set_hidden (ThunarShortcutsModel *model, + GtkTreePath *path, + gboolean hidden) +{ + ThunarShortcut *shortcut; + guint length; + gchar **bookmarks; + guint pos; + gchar *uri; + guint n; + + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); + _thunar_return_if_fail (gtk_tree_path_get_depth (path) > 0); + _thunar_return_if_fail (gtk_tree_path_get_indices (path)[0] >= 0); + _thunar_return_if_fail (gtk_tree_path_get_indices (path)[0] < (gint) g_list_length (model->shortcuts)); + + /* lookup the shortcut for the given path */ + shortcut = g_list_nth_data (model->shortcuts, gtk_tree_path_get_indices (path)[0]); + _thunar_return_if_fail (shortcut != NULL); + + if (shortcut->device != NULL) + { + /* if this is a device, store in the device monitor */ + thunar_device_monitor_set_hidden (model->device_monitor, shortcut->device, hidden); + return; + } + + /* get the uri */ + if (shortcut->file != NULL) + uri = thunar_file_dup_uri (shortcut->file); + else if (shortcut->location != NULL) + uri = g_file_get_uri (shortcut->location); + else + _thunar_assert_not_reached (); + + /* prepare array */ + length = model->hidden_bookmarks != NULL ? g_strv_length (model->hidden_bookmarks) : 0; + bookmarks = g_new0 (gchar *, length + 2); + pos = 0; + + /* copy other uuid in the new list */ + if (model->hidden_bookmarks != NULL) + { + for (n = 0; model->hidden_bookmarks[n] != NULL; n++) + if (g_strcmp0 (model->hidden_bookmarks[n], uri) != 0) + bookmarks[pos++] = g_strdup (model->hidden_bookmarks[n]); + } + + /* add the new uri if it should hide */ + if (hidden) + bookmarks[pos++] = uri; + else + g_free (uri); + + /* store new list */ + g_object_set (G_OBJECT (model->preferences), "hidden-bookmarks", bookmarks, NULL); + g_strfreev (bookmarks); + /* header visibility */ + thunar_shortcuts_model_header_visibility (model); +} diff -Nru thunar-1.2.3/thunar/thunar-shortcuts-model.h thunar-1.6.10/thunar/thunar-shortcuts-model.h --- thunar-1.2.3/thunar/thunar-shortcuts-model.h 2011-09-14 17:55:33.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-shortcuts-model.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -21,11 +21,13 @@ #define __THUNAR_SHORTCUTS_MODEL_H__ #include +#include G_BEGIN_DECLS; typedef struct _ThunarShortcutsModelClass ThunarShortcutsModelClass; typedef struct _ThunarShortcutsModel ThunarShortcutsModel; +typedef enum _ThunarShortcutGroup ThunarShortcutGroup; #define THUNAR_TYPE_SHORTCUTS_MODEL (thunar_shortcuts_model_get_type ()) #define THUNAR_SHORTCUTS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_TYPE_SHORTCUTS_MODEL, ThunarShortcutsModel)) @@ -34,32 +36,68 @@ #define THUNAR_IS_SHORTCUTS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_SHORTCUTS_MODEL)) #define THUNAR_SHORTCUTS_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_MODEL_SHORTCUTS_MODEL, ThunarShortcutsModelClass)) -/** - * ThunarShortcutsModelColumn: - * @THUNAR_SHORTCUTS_MODEL_COLUMN_NAME : the index of the name column. - * @THUNAR_SHORTCUTS_MODEL_COLUMN_FILE : the index of the file column. - * @THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME : the index of the volume column. - * @THUNAR_SHORTCUTS_MODEL_COLUMN_MUTABLE : tells whether a row is mutable. - * @THUNAR_SHORTCUTS_MODEL_COLUMN_EJECT : stock icon name for eject symbol - * @THUNAR_SHORTCUTS_MODEL_COLUMN_SEPARATOR : tells whether a row is a separator. - * - * Columns exported by #ThunarShortcutsModel using the - * #GtkTreeModel interface. - **/ typedef enum { + THUNAR_SHORTCUTS_MODEL_COLUMN_IS_HEADER, + THUNAR_SHORTCUTS_MODEL_COLUMN_IS_ITEM, + THUNAR_SHORTCUTS_MODEL_COLUMN_VISIBLE, THUNAR_SHORTCUTS_MODEL_COLUMN_NAME, + THUNAR_SHORTCUTS_MODEL_COLUMN_TOOLTIP, THUNAR_SHORTCUTS_MODEL_COLUMN_FILE, - THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME, + THUNAR_SHORTCUTS_MODEL_COLUMN_LOCATION, + THUNAR_SHORTCUTS_MODEL_COLUMN_GICON, + THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE, THUNAR_SHORTCUTS_MODEL_COLUMN_MUTABLE, - THUNAR_SHORTCUTS_MODEL_COLUMN_EJECT, - THUNAR_SHORTCUTS_MODEL_COLUMN_SEPARATOR, + THUNAR_SHORTCUTS_MODEL_COLUMN_CAN_EJECT, + THUNAR_SHORTCUTS_MODEL_COLUMN_GROUP, + THUNAR_SHORTCUTS_MODEL_COLUMN_BUSY, + THUNAR_SHORTCUTS_MODEL_COLUMN_BUSY_PULSE, THUNAR_SHORTCUTS_MODEL_N_COLUMNS, } ThunarShortcutsModelColumn; +#define THUNAR_SHORTCUT_GROUP_DEVICES (THUNAR_SHORTCUT_GROUP_DEVICES_HEADER \ + | THUNAR_SHORTCUT_GROUP_DEVICES_FILESYSTEM \ + | THUNAR_SHORTCUT_GROUP_DEVICES_VOLUMES \ + | THUNAR_SHORTCUT_GROUP_DEVICES_MOUNTS) +#define THUNAR_SHORTCUT_GROUP_PLACES (THUNAR_SHORTCUT_GROUP_PLACES_HEADER \ + | THUNAR_SHORTCUT_GROUP_PLACES_DEFAULT \ + | THUNAR_SHORTCUT_GROUP_PLACES_TRASH \ + | THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS) +#define THUNAR_SHORTCUT_GROUP_NETWORK (THUNAR_SHORTCUT_GROUP_NETWORK_HEADER \ + | THUNAR_SHORTCUT_GROUP_NETWORK_DEFAULT \ + | THUNAR_SHORTCUT_GROUP_NETWORK_MOUNTS) +#define THUNAR_SHORTCUT_GROUP_HEADER (THUNAR_SHORTCUT_GROUP_DEVICES_HEADER \ + | THUNAR_SHORTCUT_GROUP_PLACES_HEADER \ + | THUNAR_SHORTCUT_GROUP_NETWORK_HEADER) + +enum _ThunarShortcutGroup +{ + /* THUNAR_SHORTCUT_GROUP_DEVICES */ + THUNAR_SHORTCUT_GROUP_DEVICES_HEADER = (1 << 0), /* devices header */ + THUNAR_SHORTCUT_GROUP_DEVICES_FILESYSTEM = (1 << 1), /* local filesystem */ + THUNAR_SHORTCUT_GROUP_DEVICES_VOLUMES = (1 << 2), /* local ThunarDevices */ + THUNAR_SHORTCUT_GROUP_DEVICES_MOUNTS = (1 << 3), /* local mounts, like cameras and archives */ + + /* THUNAR_SHORTCUT_GROUP_PLACES */ + THUNAR_SHORTCUT_GROUP_PLACES_HEADER = (1 << 4), /* places header */ + THUNAR_SHORTCUT_GROUP_PLACES_DEFAULT = (1 << 5), /* home and desktop */ + THUNAR_SHORTCUT_GROUP_PLACES_TRASH = (1 << 6), /* trash */ + THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS = (1 << 7), /* gtk-bookmarks */ + + /* THUNAR_SHORTCUT_GROUP_NETWORK */ + THUNAR_SHORTCUT_GROUP_NETWORK_HEADER = (1 << 8), /* network header */ + THUNAR_SHORTCUT_GROUP_NETWORK_DEFAULT = (1 << 9), /* browse network */ + THUNAR_SHORTCUT_GROUP_NETWORK_MOUNTS = (1 << 10), /* remote ThunarDevices */ +}; + + + GType thunar_shortcuts_model_get_type (void) G_GNUC_CONST; -ThunarShortcutsModel *thunar_shortcuts_model_get_default (void); +ThunarShortcutsModel *thunar_shortcuts_model_get_default (void); + +gboolean thunar_shortcuts_model_has_bookmark (ThunarShortcutsModel *model, + GFile *file); gboolean thunar_shortcuts_model_iter_for_file (ThunarShortcutsModel *model, ThunarFile *file, @@ -70,7 +108,7 @@ void thunar_shortcuts_model_add (ThunarShortcutsModel *model, GtkTreePath *dst_path, - ThunarFile *file); + gpointer file); void thunar_shortcuts_model_move (ThunarShortcutsModel *model, GtkTreePath *src_path, GtkTreePath *dst_path); @@ -79,6 +117,12 @@ void thunar_shortcuts_model_rename (ThunarShortcutsModel *model, GtkTreeIter *iter, const gchar *name); +void thunar_shortcuts_model_set_busy (ThunarShortcutsModel *model, + ThunarDevice *device, + gboolean busy); +void thunar_shortcuts_model_set_hidden (ThunarShortcutsModel *model, + GtkTreePath *path, + gboolean hidden); G_END_DECLS; diff -Nru thunar-1.2.3/thunar/thunar-shortcuts-pane.c thunar-1.6.10/thunar/thunar-shortcuts-pane.c --- thunar-1.2.3/thunar/thunar-shortcuts-pane.c 2011-09-14 17:55:33.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-shortcuts-pane.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -87,6 +87,8 @@ guint ui_merge_id; GtkWidget *view; + + guint idle_select_directory; }; @@ -179,6 +181,7 @@ /* connect the "shortcut-activated" signal */ g_signal_connect_swapped (G_OBJECT (shortcuts_pane->view), "shortcut-activated", G_CALLBACK (thunar_navigator_change_directory), shortcuts_pane); + g_signal_connect_swapped (G_OBJECT (shortcuts_pane->view), "shortcut-activated-tab", G_CALLBACK (thunar_navigator_open_new_tab), shortcuts_pane); } @@ -282,6 +285,25 @@ +static gboolean +thunar_shortcuts_pane_set_current_directory_idle (gpointer data) +{ + ThunarShortcutsPane *shortcuts_pane = THUNAR_SHORTCUTS_PANE (data); + + if (shortcuts_pane->current_directory != NULL) + { + thunar_shortcuts_view_select_by_file (THUNAR_SHORTCUTS_VIEW (shortcuts_pane->view), + shortcuts_pane->current_directory); + } + + /* unset id */ + shortcuts_pane->idle_select_directory = 0; + + return FALSE; +} + + + static void thunar_shortcuts_pane_set_current_directory (ThunarNavigator *navigator, ThunarFile *current_directory) @@ -292,6 +314,13 @@ if (G_LIKELY (shortcuts_pane->current_directory != NULL)) g_object_unref (G_OBJECT (shortcuts_pane->current_directory)); + /* remove pending timeout */ + if (shortcuts_pane->idle_select_directory != 0) + { + g_source_remove (shortcuts_pane->idle_select_directory); + shortcuts_pane->idle_select_directory = 0; + } + /* activate the new directory */ shortcuts_pane->current_directory = current_directory; @@ -301,8 +330,11 @@ /* take a reference on the new directory */ g_object_ref (G_OBJECT (current_directory)); - /* select the file in the view (if possible) */ - thunar_shortcuts_view_select_by_file (THUNAR_SHORTCUTS_VIEW (shortcuts_pane->view), current_directory); + /* start idle to select item in sidepane (this to also make + * the selection work when the bookmarks are loaded idle) */ + shortcuts_pane->idle_select_directory = + g_idle_add_full (G_PRIORITY_LOW, thunar_shortcuts_pane_set_current_directory_idle, + shortcuts_pane, NULL); } /* notify listeners */ @@ -325,16 +357,16 @@ { ThunarShortcutsPane *shortcuts_pane = THUNAR_SHORTCUTS_PANE (component); GtkTreeModel *model; - GtkTreeIter iter; + GtkTreeModel *child_model; GtkAction *action; GList *lp; gint n; /* disconnect from the previously selected files... */ - thunar_file_list_free (shortcuts_pane->selected_files); + thunar_g_file_list_free (shortcuts_pane->selected_files); /* ...and take a copy of the newly selected files */ - shortcuts_pane->selected_files = thunar_file_list_copy (selected_files); + shortcuts_pane->selected_files = thunar_g_file_list_copy (selected_files); /* check if the selection contains only folders */ for (lp = selected_files, n = 0; lp != NULL; lp = lp->next, ++n) @@ -350,8 +382,9 @@ if (G_LIKELY (model != NULL)) { /* check all selected folders */ + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); for (lp = selected_files; lp != NULL; lp = lp->next) - if (!thunar_shortcuts_model_iter_for_file (THUNAR_SHORTCUTS_MODEL (model), lp->data, &iter)) + if (!thunar_shortcuts_model_has_bookmark (THUNAR_SHORTCUTS_MODEL (child_model), thunar_file_get_file (lp->data))) break; } @@ -436,7 +469,7 @@ ThunarShortcutsPane *shortcuts_pane) { GtkTreeModel *model; - GtkTreePath *path; + GtkTreeModel *child_model; GList *lp; _thunar_return_if_fail (GTK_IS_ACTION (action)); @@ -447,36 +480,17 @@ if (G_LIKELY (model != NULL)) { /* add all selected folders to the model */ + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); for (lp = shortcuts_pane->selected_files; lp != NULL; lp = lp->next) if (G_LIKELY (thunar_file_is_directory (lp->data))) { /* append the folder to the shortcuts model */ - path = gtk_tree_path_new_from_indices (gtk_tree_model_iter_n_children (model, NULL), -1); - thunar_shortcuts_model_add (THUNAR_SHORTCUTS_MODEL (model), path, lp->data); - gtk_tree_path_free (path); + thunar_shortcuts_model_add (THUNAR_SHORTCUTS_MODEL (child_model), NULL, lp->data); } /* update the user interface to reflect the new action state */ - lp = thunar_file_list_copy (shortcuts_pane->selected_files); + lp = thunar_g_file_list_copy (shortcuts_pane->selected_files); thunar_component_set_selected_files (THUNAR_COMPONENT (shortcuts_pane), lp); - thunar_file_list_free (lp); + thunar_g_file_list_free (lp); } } - - - -/** - * thunar_shortcuts_pane_new: - * - * Allocates a new #ThunarShortcutsPane instance. - * - * Return value: the newly allocated #ThunarShortcutsPane instance. - **/ -GtkWidget* -thunar_shortcuts_pane_new (void) -{ - return g_object_new (THUNAR_TYPE_SHORTCUTS_PANE, NULL); -} - - - diff -Nru thunar-1.2.3/thunar/thunar-shortcuts-pane.h thunar-1.6.10/thunar/thunar-shortcuts-pane.h --- thunar-1.2.3/thunar/thunar-shortcuts-pane.h 2011-09-14 17:55:33.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-shortcuts-pane.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -36,8 +36,6 @@ GType thunar_shortcuts_pane_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_shortcuts_pane_new (void) G_GNUC_MALLOC; - G_END_DECLS; #endif /* !__THUNAR_SHORTCUTS_PANE_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-shortcuts-view.c thunar-1.6.10/thunar/thunar-shortcuts-view.c --- thunar-1.2.3/thunar/thunar-shortcuts-view.c 2011-09-14 17:55:33.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-shortcuts-view.c 2015-05-22 13:25:36.000000000 +0000 @@ -2,19 +2,20 @@ /*- * Copyright (c) 2005-2007 Benedikt Meurer * Copyright (c) 2009-2011 Jannis Pohlmann + * Copyright (c) 2012 Nick Schermer * - * This program is free software; you can redistribute it and/or + * 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 + * 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 + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ @@ -30,9 +31,8 @@ #include #endif -#ifdef HAVE_LIBNOTIFY -#include -#endif +#include + #include #include #include @@ -44,6 +44,8 @@ #include #include #include +#include +#include @@ -51,6 +53,7 @@ enum { SHORTCUT_ACTIVATED, + SHORTCUT_ACTIVATED_TAB, LAST_SIGNAL, }; @@ -61,6 +64,15 @@ TEXT_URI_LIST, }; +/* Target for open action */ +typedef enum +{ + OPEN_IN_VIEW, + OPEN_IN_WINDOW, + OPEN_IN_TAB +} +OpenTarget; + static void thunar_shortcuts_view_finalize (GObject *object); @@ -68,6 +80,8 @@ GdkEventButton *event); static gboolean thunar_shortcuts_view_button_release_event (GtkWidget *widget, GdkEventButton *event); +static gboolean thunar_shortcuts_view_key_release_event (GtkWidget *widget, + GdkEventKey *event); static void thunar_shortcuts_view_drag_begin (GtkWidget *widget, GdkDragContext *context); static void thunar_shortcuts_view_drag_data_received (GtkWidget *widget, @@ -94,11 +108,21 @@ static void thunar_shortcuts_view_row_activated (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column); +static gboolean thunar_shortcuts_view_selection_func (GtkTreeSelection *selection, + GtkTreeModel *model, + GtkTreePath *path, + gboolean path_currently_selected, + gpointer user_data); +static void thunar_shortcuts_view_context_menu_visibility (ThunarShortcutsView *view, + GdkEventButton *event, + GtkTreeModel *model); static void thunar_shortcuts_view_context_menu (ThunarShortcutsView *view, GdkEventButton *event, GtkTreeModel *model, GtkTreeIter *iter); static void thunar_shortcuts_view_remove_activated (GtkWidget *item, + GtkTreeModel *model); +static void thunar_shortcuts_view_editing_canceled (GtkCellRenderer *renderer, ThunarShortcutsView *view); static void thunar_shortcuts_view_rename_activated (GtkWidget *item, ThunarShortcutsView *view); @@ -121,14 +145,14 @@ GtkTreePath *dst_path); static void thunar_shortcuts_view_open_clicked (ThunarShortcutsView *view); static void thunar_shortcuts_view_open (ThunarShortcutsView *view, - gboolean new_window); + OpenTarget open_in); static void thunar_shortcuts_view_open_in_new_window_clicked (ThunarShortcutsView *view); +static void thunar_shortcuts_view_open_in_new_tab_clicked (ThunarShortcutsView *view); static void thunar_shortcuts_view_empty_trash (ThunarShortcutsView *view); +static void thunar_shortcuts_view_create_shortcut (ThunarShortcutsView *view); static void thunar_shortcuts_view_eject (ThunarShortcutsView *view); static void thunar_shortcuts_view_mount (ThunarShortcutsView *view); -static gboolean thunar_shortcuts_view_separator_func (GtkTreeModel *model, - GtkTreeIter *iter, - gpointer user_data); +static void thunar_shortcuts_view_unmount (ThunarShortcutsView *view); @@ -140,16 +164,18 @@ struct _ThunarShortcutsView { GtkTreeView __parent__; - ThunarPreferences *preferences; - GtkCellRenderer *icon_renderer; - + + + ThunarPreferences *preferences; + GtkCellRenderer *icon_renderer; + ThunarxProviderFactory *provider_factory; /* the currently pressed mouse button, set in the * button-press-event handler if the associated * button-release-event should activate. */ - gint pressed_button; + gint pressed_button; guint pressed_eject_button : 1; /* drop site support */ @@ -160,7 +186,7 @@ /* id of the signal used to queue a resize on the * column whenever the shortcuts icon size is changed. */ - gint queue_resize_signal_id; + gulong queue_resize_signal_id; }; @@ -200,6 +226,7 @@ gtkwidget_class = GTK_WIDGET_CLASS (klass); gtkwidget_class->button_press_event = thunar_shortcuts_view_button_press_event; gtkwidget_class->button_release_event = thunar_shortcuts_view_button_release_event; + gtkwidget_class->key_release_event = thunar_shortcuts_view_key_release_event; gtkwidget_class->drag_begin = thunar_shortcuts_view_drag_begin; gtkwidget_class->drag_data_received = thunar_shortcuts_view_drag_data_received; gtkwidget_class->drag_drop = thunar_shortcuts_view_drag_drop; @@ -222,6 +249,19 @@ 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, THUNAR_TYPE_FILE); + + /** + * ThunarShortcutsView:shortcut-activated-tab: + * + * Invoked whenever a shortcut is activated by the user and should be opened in a new tab, + **/ + view_signals[SHORTCUT_ACTIVATED_TAB] = + g_signal_new (I_("shortcut-activated-tab"), + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, THUNAR_TYPE_FILE); } @@ -231,11 +271,13 @@ { GtkTreeViewColumn *column; GtkCellRenderer *renderer; + GtkTreeSelection *selection; /* configure the tree view */ gtk_tree_view_set_enable_search (GTK_TREE_VIEW (view), FALSE); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), FALSE); - + gtk_tree_view_set_tooltip_column (GTK_TREE_VIEW (view), THUNAR_SHORTCUTS_MODEL_COLUMN_TOOLTIP); + /* grab a reference on the provider factory */ view->provider_factory = thunarx_provider_factory_get_default (); @@ -258,12 +300,34 @@ view->queue_resize_signal_id = g_signal_connect_swapped (G_OBJECT (view->preferences), "notify::shortcuts-icon-size", G_CALLBACK (gtk_tree_view_column_queue_resize), column); + /* header */ + renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, + "weight", PANGO_WEIGHT_BOLD, + "xpad", 6, + "ypad", 6, + NULL); + gtk_tree_view_column_pack_start (column, renderer, FALSE); + gtk_tree_view_column_set_attributes (column, renderer, + "text", THUNAR_SHORTCUTS_MODEL_COLUMN_NAME, + "visible", THUNAR_SHORTCUTS_MODEL_COLUMN_IS_HEADER, + NULL); + + /* separator for indent */ + renderer = gtk_cell_renderer_text_new (); + g_object_set (G_OBJECT (renderer), "xpad", 6, NULL); + gtk_tree_view_column_pack_start (column, renderer, FALSE); + gtk_tree_view_column_set_attributes (column, renderer, + "visible", THUNAR_SHORTCUTS_MODEL_COLUMN_IS_ITEM, + NULL); + /* allocate the special icon renderer */ view->icon_renderer = thunar_shortcuts_icon_renderer_new (); gtk_tree_view_column_pack_start (column, view->icon_renderer, FALSE); gtk_tree_view_column_set_attributes (column, view->icon_renderer, + "gicon", THUNAR_SHORTCUTS_MODEL_COLUMN_GICON, "file", THUNAR_SHORTCUTS_MODEL_COLUMN_FILE, - "volume", THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME, + "device", THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE, + "visible", THUNAR_SHORTCUTS_MODEL_COLUMN_IS_ITEM, NULL); /* sync the "emblems" property of the icon renderer with the "shortcuts-icon-emblems" preference @@ -274,25 +338,32 @@ /* allocate the text renderer (ellipsizing as required, but "File System" must fit) */ renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, - "ellipsize-set", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, - "width-chars", g_utf8_strlen (_("File System"), -1), NULL); g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (thunar_shortcuts_view_renamed), view); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", THUNAR_SHORTCUTS_MODEL_COLUMN_NAME, + "visible", THUNAR_SHORTCUTS_MODEL_COLUMN_IS_ITEM, + NULL); + + /* spinner to indicate (un)mount/eject delay */ + renderer = gtk_cell_renderer_spinner_new (); + gtk_tree_view_column_pack_start (column, renderer, FALSE); + gtk_tree_view_column_set_attributes (column, renderer, + "visible", THUNAR_SHORTCUTS_MODEL_COLUMN_BUSY, + "active", THUNAR_SHORTCUTS_MODEL_COLUMN_BUSY, + "pulse", THUNAR_SHORTCUTS_MODEL_COLUMN_BUSY_PULSE, NULL); /* allocate icon renderer for the eject symbol */ renderer = gtk_cell_renderer_pixbuf_new (); - g_object_set (renderer, "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL); + g_object_set (renderer, "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, "icon-name", "media-eject", NULL); gtk_tree_view_column_pack_start (column, renderer, FALSE); gtk_tree_view_column_set_attributes (column, renderer, - "icon-name", THUNAR_SHORTCUTS_MODEL_COLUMN_EJECT, + "visible", THUNAR_SHORTCUTS_MODEL_COLUMN_CAN_EJECT, NULL); - /* enable drag support for the shortcuts view (actually used to support reordering) */ gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW (view), GDK_BUTTON1_MASK, drag_targets, G_N_ELEMENTS (drag_targets), GDK_ACTION_MOVE); @@ -303,8 +374,8 @@ gtk_drag_dest_set (GTK_WIDGET (view), 0, drop_targets, G_N_ELEMENTS (drop_targets), GDK_ACTION_COPY | GDK_ACTION_LINK | GDK_ACTION_MOVE); - /* setup a row separator function to tell GtkTreeView about the separator */ - gtk_tree_view_set_row_separator_func (GTK_TREE_VIEW (view), thunar_shortcuts_view_separator_func, NULL, NULL); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); + gtk_tree_selection_set_select_function (selection, thunar_shortcuts_view_selection_func, NULL, NULL); } @@ -341,7 +412,8 @@ GtkTreePath *path; GtkTreeIter iter; gboolean result; - gchar *eject_icon; + gboolean can_eject; + gint icon_width, icon_height, column_width; /* reset the pressed button state */ view->pressed_button = -1; @@ -354,14 +426,15 @@ /* let the widget process the event first (handles focussing and scrolling) */ result = (*GTK_WIDGET_CLASS (thunar_shortcuts_view_parent_class)->button_press_event) (widget, event); + model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); + /* resolve the path at the cursor position */ if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget), event->x, event->y, &path, NULL, NULL, NULL)) { /* check if we should popup the context menu */ - if (G_UNLIKELY (event->button == 3 && event->type == GDK_BUTTON_PRESS)) + if (G_UNLIKELY (event->button == 3)) { /* determine the iterator for the path */ - model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); if (gtk_tree_model_get_iter (model, &iter, path)) { /* popup the context menu */ @@ -371,40 +444,37 @@ result = TRUE; } } - else if ((event->button == 1 || event->button == 2) && event->type == GDK_BUTTON_PRESS - && (event->state & gtk_accelerator_get_default_mod_mask ()) == 0) + else if (event->button == 1 || event->button == 2) { /* check if we clicked the eject button area */ - gint icon_width, icon_height, column_width; column_width = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW (view), 0)); gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &icon_width, &icon_height); - if (event->x >= column_width - icon_width - 3) + if (event->button == 1 && event->x >= column_width - icon_width - 3) { /* check if that shortcut actually has an eject button */ model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); if (gtk_tree_model_get_iter (model, &iter, path)) { - gtk_tree_model_get (model, &iter, THUNAR_SHORTCUTS_MODEL_COLUMN_EJECT, &eject_icon, -1); - if (strlen (eject_icon) > 0) + gtk_tree_model_get (model, &iter, THUNAR_SHORTCUTS_MODEL_COLUMN_CAN_EJECT, &can_eject, -1); + if (can_eject) view->pressed_eject_button = 1; - g_free (eject_icon); } } - - /* - g_debug("thunar_shortcuts_view_button_press_event(): x: %f, y: %f; my width: %i, eject width: %i, eject: %i", - event->x, event->y, column_width, icon_width, view->pressed_eject_button); - */ + else + gtk_tree_view_set_cursor (GTK_TREE_VIEW (widget), path, gtk_tree_view_get_column (GTK_TREE_VIEW (view), 0), FALSE); /* remember the button as pressed and handle it in the release handler */ view->pressed_button = event->button; - - } /* release the path */ gtk_tree_path_free (path); } + else if (event->button == 3) + { + thunar_shortcuts_view_context_menu_visibility (view, event, model); + result = TRUE; + } return result; } @@ -416,18 +486,32 @@ GdkEventButton *event) { ThunarShortcutsView *view = THUNAR_SHORTCUTS_VIEW (widget); + gboolean in_tab; /* check if we have an event matching the pressed button state */ if (G_LIKELY (view->pressed_button == (gint) event->button)) { + /* check if the eject button has been pressed */ if (view->pressed_eject_button) - thunar_shortcuts_view_eject (view); - - /* check if we should simply open or open in new window */ - if (G_LIKELY (event->button == 1)) - thunar_shortcuts_view_open (view, FALSE); + { + thunar_shortcuts_view_eject (view); + } + else if (G_LIKELY (event->button == 1)) + { + /* button 1 opens in the same window */ + thunar_shortcuts_view_open (view, OPEN_IN_VIEW); + } else if (G_UNLIKELY (event->button == 2)) - thunar_shortcuts_view_open (view, TRUE); + { + /* button 2 opens in a new window or tab */ + g_object_get (view->preferences, "misc-middle-click-in-tab", &in_tab, NULL); + + /* holding ctrl inverts the action */ + if ((event->state & GDK_CONTROL_MASK) != 0) + in_tab = !in_tab; + + thunar_shortcuts_view_open (view, in_tab ? OPEN_IN_TAB : OPEN_IN_WINDOW); + } } /* reset the pressed button state */ @@ -440,6 +524,32 @@ +static gboolean +thunar_shortcuts_view_key_release_event (GtkWidget *widget, + GdkEventKey *event) +{ + ThunarShortcutsView *view = THUNAR_SHORTCUTS_VIEW (widget); + + /* work nicer with keyboard navigation */ + switch (event->keyval) + { + case GDK_Up: + case GDK_Down: + case GDK_KP_Up: + case GDK_KP_Down: + thunar_shortcuts_view_open (view, OPEN_IN_VIEW); + + /* keep focus on us */ + gtk_widget_grab_focus (widget); + break; + } + + /* call the parent's release event handler */ + return (*GTK_WIDGET_CLASS (thunar_shortcuts_view_parent_class)->key_release_event) (widget, event); +} + + + static void thunar_shortcuts_view_drag_begin (GtkWidget *widget, GdkDragContext *context) @@ -575,6 +685,9 @@ GtkTreePath *src_path; GtkTreeIter iter; GdkAtom target; + GtkTreeModel *child_model; + GtkTreePath *child_dst_path; + GtkTreePath *child_src_path; _thunar_return_val_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view), FALSE); @@ -599,18 +712,29 @@ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { - /* we need to adjust the destination path here, because the path returned by - * the drop position computation effectively points after the insert position, - * which can led to unexpected results. - */ - gtk_tree_path_prev (dst_path); - if (!thunar_shortcuts_model_drop_possible (THUNAR_SHORTCUTS_MODEL (model), dst_path)) - gtk_tree_path_next (dst_path); + /* get the source path */ + src_path = gtk_tree_model_get_path (model, &iter); - /* perform the move */ + /* if we drop downwards, correct the drop destination */ + if (gtk_tree_path_compare (src_path, dst_path) < 0) + gtk_tree_path_prev (dst_path); + + /* convert iters */ src_path = gtk_tree_model_get_path (model, &iter); - thunar_shortcuts_model_move (THUNAR_SHORTCUTS_MODEL (model), src_path, dst_path); + child_src_path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (model), src_path); + child_dst_path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (model), dst_path); gtk_tree_path_free (src_path); + + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + + /* perform the move */ + thunar_shortcuts_model_move (THUNAR_SHORTCUTS_MODEL (child_model), child_src_path, child_dst_path); + + gtk_tree_path_free (child_src_path); + gtk_tree_path_free (child_dst_path); + + /* make sure the new position is selectde */ + gtk_tree_selection_select_path (selection, dst_path); } /* release the dst path */ @@ -680,6 +804,8 @@ /* compute the drop position for the coordinates */ path = thunar_shortcuts_view_compute_drop_position (view, x, y); + if (path == NULL) + return FALSE; /* check if path is about to append to the model */ model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); @@ -785,7 +911,134 @@ (*GTK_TREE_VIEW_CLASS (thunar_shortcuts_view_parent_class)->row_activated) (tree_view, path, column); /* open the selected shortcut */ - thunar_shortcuts_view_open (view, FALSE); + thunar_shortcuts_view_open (view, OPEN_IN_VIEW); +} + + + +static gboolean +thunar_shortcuts_view_selection_func (GtkTreeSelection *selection, + GtkTreeModel *model, + GtkTreePath *path, + gboolean path_currently_selected, + gpointer user_data) +{ + GtkTreeIter iter; + gboolean is_header; + + /* don't allow selecting headers */ + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, THUNAR_SHORTCUTS_MODEL_COLUMN_IS_HEADER, &is_header, -1); + return !is_header; +} + + + +static void +thunar_shortcuts_view_context_menu_visibility_toggled (GtkCheckMenuItem *item, + GtkTreeModel *model) +{ + gboolean hidden; + GtkTreePath *path; + GtkTreeRowReference *row; + + _thunar_return_if_fail (GTK_IS_CHECK_MENU_ITEM (item)); + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_MODEL (model)); + + row = g_object_get_data (G_OBJECT (item), I_("thunar-shortcuts-row")); + path = gtk_tree_row_reference_get_path (row); + if (G_LIKELY (path != NULL)) + { + hidden = !gtk_check_menu_item_get_active (item); + thunar_shortcuts_model_set_hidden (THUNAR_SHORTCUTS_MODEL (model), path, hidden); + gtk_tree_path_free (path); + } +} + + + +static void +thunar_shortcuts_view_context_menu_visibility (ThunarShortcutsView *view, + GdkEventButton *event, + GtkTreeModel *model) +{ + GtkTreeIter iter; + guint mask = 0; + ThunarShortcutGroup group; + GtkWidget *menu; + GtkWidget *mi; + gchar *label; + GtkTreeSelection *selection; + gboolean visible; + GtkTreePath *path; + GtkTreeModel *child_model; + GtkWidget *submenu; + + /* unselect the items */ + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); + gtk_tree_selection_unselect_all (GTK_TREE_SELECTION (selection)); + + /* prepare the popup menu */ + menu = submenu = gtk_menu_new (); + + /* process all items below the header */ + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (child_model), &iter)) + return; + path = gtk_tree_model_get_path (child_model, &iter); + do + { + /* get all the info */ + gtk_tree_model_get (GTK_TREE_MODEL (child_model), &iter, + THUNAR_SHORTCUTS_MODEL_COLUMN_GROUP, &group, + THUNAR_SHORTCUTS_MODEL_COLUMN_NAME, &label, + THUNAR_SHORTCUTS_MODEL_COLUMN_VISIBLE, &visible, + -1); + + if ((group & THUNAR_SHORTCUT_GROUP_HEADER) != 0) + { + /* get the mask of the group */ + if ((group & THUNAR_SHORTCUT_GROUP_DEVICES) != 0) + mask = THUNAR_SHORTCUT_GROUP_DEVICES; + else if ((group & THUNAR_SHORTCUT_GROUP_PLACES) != 0) + mask = THUNAR_SHORTCUT_GROUP_PLACES; + else if ((group & THUNAR_SHORTCUT_GROUP_NETWORK) != 0) + mask = THUNAR_SHORTCUT_GROUP_NETWORK; + else + _thunar_assert_not_reached (); + + /* create menu items */ + mi = gtk_menu_item_new_with_label (label); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi); + gtk_widget_show (mi); + + submenu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), submenu); + } + else if ((group & mask) != 0) + { + mi = gtk_check_menu_item_new_with_label (label); + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), mi); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (mi), visible); + g_object_set_data_full (G_OBJECT (mi), I_("thunar-shortcuts-row"), + gtk_tree_row_reference_new (child_model, path), + (GDestroyNotify) gtk_tree_row_reference_free); + g_signal_connect (G_OBJECT (mi), "toggled", + G_CALLBACK (thunar_shortcuts_view_context_menu_visibility_toggled), child_model); + gtk_widget_show (mi); + } + + g_free (label); + gtk_tree_path_next (path); + } + while (gtk_tree_model_iter_next (child_model, &iter)); + + gtk_tree_path_free (path); + + /* run the menu on the view's screen (taking over the floating reference on menu) */ + thunar_gtk_menu_run (GTK_MENU (menu), GTK_WIDGET (view), NULL, NULL, + (event != NULL) ? event->button : 0, + (event != NULL) ? event->time : gtk_get_current_event_time ()); } @@ -796,16 +1049,31 @@ GtkTreeModel *model, GtkTreeIter *iter) { - GtkTreePath *path; - ThunarFile *file; - GtkWidget *image; - GtkWidget *menu; - GtkWidget *item; - GtkWidget *window; - gboolean mutable; - GVolume *volume; - GList *providers, *lp; - GList *actions = NULL, *tmp; + GtkTreePath *path; + ThunarFile *file; + GtkWidget *image; + GtkWidget *menu; + GtkWidget *item; + GtkWidget *window; + gboolean mutable; + ThunarDevice *device; + GList *providers, *lp; + GList *actions = NULL, *tmp; + ThunarShortcutGroup group; + gboolean is_header; + GFile *mount_point; + GtkTreeModel *shortcuts_model; + gboolean can_mount; + gboolean can_unmount; + gboolean can_eject; + + /* check if this is an item menu or a header menu */ + gtk_tree_model_get (model, iter, THUNAR_SHORTCUTS_MODEL_COLUMN_IS_HEADER, &is_header, -1); + if (is_header) + { + thunar_shortcuts_view_context_menu_visibility (view, event, model); + return; + } /* determine the tree path for the given iter */ path = gtk_tree_model_get_path (model, iter); @@ -815,8 +1083,9 @@ /* check whether the shortcut at the given path is mutable */ gtk_tree_model_get (model, iter, THUNAR_SHORTCUTS_MODEL_COLUMN_FILE, &file, - THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME, &volume, - THUNAR_SHORTCUTS_MODEL_COLUMN_MUTABLE, &mutable, + THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE, &device, + THUNAR_SHORTCUTS_MODEL_COLUMN_MUTABLE, &mutable, + THUNAR_SHORTCUTS_MODEL_COLUMN_GROUP, &group, -1); /* prepare the popup menu */ @@ -831,7 +1100,12 @@ /* set the stock icon */ image = gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); + + /* append the "Open in New Tab" menu action */ + item = gtk_image_menu_item_new_with_mnemonic (_("Open in New Tab")); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_open_in_new_tab_clicked), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); /* append the "Open in New Window" menu action */ item = gtk_image_menu_item_new_with_mnemonic (_("Open in New Window")); @@ -839,49 +1113,98 @@ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); - /* append a menu separator */ - item = gtk_separator_menu_item_new (); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - - /* check if we have a volume here */ - if (G_UNLIKELY (volume != NULL)) + switch (group) { - /* append the "Mount Volume" menu action */ - item = gtk_image_menu_item_new_with_mnemonic (_("_Mount Volume")); - gtk_widget_set_sensitive (item, !thunar_g_volume_is_mounted (volume)); - g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_mount), view); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); + case THUNAR_SHORTCUT_GROUP_DEVICES_VOLUMES: + can_mount = thunar_device_can_mount (device); + can_unmount = thunar_device_can_unmount (device); + can_eject = thunar_device_can_eject (device); - /* check if the volume is present and can be ejected */ - if (thunar_g_volume_is_present (volume) && thunar_g_volume_is_removable (volume)) - { - /* append the "Eject Volume" menu action */ - item = gtk_image_menu_item_new_with_mnemonic (_("E_ject Volume")); - g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_eject), view); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - } + if (!can_mount && !can_unmount && !can_eject) + break; - /* append a menu separator */ - item = gtk_separator_menu_item_new (); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - } - else if (G_UNLIKELY (file != NULL && thunar_file_is_trashed (file) && thunar_file_is_root (file))) - { - /* append the "Empty Trash" menu action */ - item = gtk_image_menu_item_new_with_mnemonic (_("_Empty Trash")); - gtk_widget_set_sensitive (item, (thunar_file_get_item_count (file) > 0)); - g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_empty_trash), view); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); + /* append a menu separator */ + item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + /* append the "Mount" item */ + item = gtk_image_menu_item_new_with_mnemonic (_("_Mount")); + gtk_widget_set_visible (item, can_mount); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_mount), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + + /* append the "Unmount" item */ + item = gtk_image_menu_item_new_with_mnemonic (_("_Unmount")); + gtk_widget_set_visible (item, can_unmount); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_unmount), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + + /* append the "Disconnect" (eject + safely remove drive) item */ + item = gtk_image_menu_item_new_with_mnemonic (_("_Eject")); + gtk_widget_set_visible (item, can_eject); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_eject), view); + break; - /* append a menu separator */ - item = gtk_separator_menu_item_new (); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); + case THUNAR_SHORTCUT_GROUP_NETWORK_MOUNTS: + /* append a menu separator */ + item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + /* get the mount point */ + mount_point = thunar_device_get_root (device); + shortcuts_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + + /* append the "Disconnect" item */ + item = gtk_image_menu_item_new_with_mnemonic (_("Create _Shortcut")); + gtk_widget_set_sensitive (item, mount_point != NULL && !thunar_shortcuts_model_has_bookmark (THUNAR_SHORTCUTS_MODEL (shortcuts_model), mount_point)); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_create_shortcut), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + image = gtk_image_new_from_stock (THUNAR_STOCK_SHORTCUTS, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + + if (mount_point != NULL) + g_object_unref (mount_point); + + /* fall-through */ + + case THUNAR_SHORTCUT_GROUP_DEVICES_MOUNTS: + /* append a menu separator */ + item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + /* append the "Disconnect" item */ + item = gtk_image_menu_item_new_with_mnemonic (_("Disconn_ect")); + gtk_widget_set_sensitive (item, thunar_device_can_eject (device)); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_eject), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + image = gtk_image_new_from_stock (GTK_STOCK_DISCONNECT, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + break; + + case THUNAR_SHORTCUT_GROUP_PLACES_TRASH: + /* append a menu separator */ + item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + /* append the "Empty Trash" menu action */ + item = gtk_image_menu_item_new_with_mnemonic (_("_Empty Trash")); + gtk_widget_set_sensitive (item, (thunar_file_get_item_count (file) > 0)); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_empty_trash), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + break; + + default: + break; } /* create provider menu items if there is a non-trashed file */ @@ -903,6 +1226,14 @@ } g_list_free (providers); + if (actions != NULL) + { + /* append a menu separator */ + item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + } + /* add the actions to the menu */ for (lp = actions; lp != NULL; lp = lp->next) { @@ -914,80 +1245,96 @@ g_object_unref (G_OBJECT (lp->data)); } - /* add a separator to the end of the menu */ - if (G_LIKELY (lp != actions)) - { - /* append a menu separator */ - item = gtk_separator_menu_item_new (); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); - } - /* cleanup */ g_list_free (actions); } } /* append the remove menu item */ - item = gtk_image_menu_item_new_with_mnemonic (_("_Remove Shortcut")); - g_object_set_data_full (G_OBJECT (item), I_("thunar-shortcuts-row"), - gtk_tree_row_reference_new (model, path), - (GDestroyNotify) gtk_tree_row_reference_free); - g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_remove_activated), view); - gtk_widget_set_sensitive (item, mutable); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); + if (group == THUNAR_SHORTCUT_GROUP_PLACES_BOOKMARKS) + { + /* append a menu separator */ + item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); - /* set the remove stock icon */ - image = gtk_image_new_from_stock (GTK_STOCK_REMOVE, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); + item = gtk_image_menu_item_new_with_mnemonic (_("_Remove Shortcut")); + g_object_set_data_full (G_OBJECT (item), I_("thunar-shortcuts-row"), + gtk_tree_row_reference_new (model, path), + (GDestroyNotify) gtk_tree_row_reference_free); + g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_remove_activated), model); + gtk_widget_set_sensitive (item, mutable); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); - /* append the rename menu item */ - item = gtk_image_menu_item_new_with_mnemonic (_("Re_name Shortcut")); - g_object_set_data_full (G_OBJECT (item), I_("thunar-shortcuts-row"), - gtk_tree_row_reference_new (model, path), - (GDestroyNotify) gtk_tree_row_reference_free); - g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_rename_activated), view); - gtk_widget_set_sensitive (item, mutable); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); + /* set the remove stock icon */ + image = gtk_image_new_from_stock (GTK_STOCK_REMOVE, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + + /* append the rename menu item */ + item = gtk_image_menu_item_new_with_mnemonic (_("Re_name Shortcut")); + g_object_set_data_full (G_OBJECT (item), I_("thunar-shortcuts-row"), + gtk_tree_row_reference_new (model, path), + (GDestroyNotify) gtk_tree_row_reference_free); + g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (thunar_shortcuts_view_rename_activated), view); + gtk_widget_set_sensitive (item, mutable); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - /* run the menu on the view's screen (taking over the floating reference on menu) */ - thunar_gtk_menu_run (GTK_MENU (menu), GTK_WIDGET (view), NULL, NULL, (event != NULL) ? event->button : 0, - (event != NULL) ? event->time : gtk_get_current_event_time ()); + gtk_widget_show (item); + } /* clean up */ if (G_LIKELY (file != NULL)) g_object_unref (G_OBJECT (file)); - if (G_UNLIKELY (volume != NULL)) - g_object_unref (G_OBJECT (volume)); + if (G_UNLIKELY (device != NULL)) + g_object_unref (G_OBJECT (device)); gtk_tree_path_free (path); + + /* run the menu on the view's screen (taking over the floating reference on menu) */ + thunar_gtk_menu_run (GTK_MENU (menu), GTK_WIDGET (view), NULL, NULL, (event != NULL) ? event->button : 0, + (event != NULL) ? event->time : gtk_get_current_event_time ()); } static void -thunar_shortcuts_view_remove_activated (GtkWidget *item, - ThunarShortcutsView *view) +thunar_shortcuts_view_remove_activated (GtkWidget *item, + GtkTreeModel *model) { GtkTreeRowReference *row; - GtkTreeModel *model; + GtkTreeModel *child_model; GtkTreePath *path; + GtkTreePath *child_path; row = g_object_get_data (G_OBJECT (item), I_("thunar-shortcuts-row")); path = gtk_tree_row_reference_get_path (row); if (G_LIKELY (path != NULL)) { - model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); - thunar_shortcuts_model_remove (THUNAR_SHORTCUTS_MODEL (model), path); + child_path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (model), path); gtk_tree_path_free (path); + + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_remove (THUNAR_SHORTCUTS_MODEL (child_model), child_path); + gtk_tree_path_free (child_path); } } static void +thunar_shortcuts_view_editing_canceled (GtkCellRenderer *renderer, + ThunarShortcutsView *view) +{ + g_object_set (G_OBJECT (renderer), "editable", FALSE, NULL); + + g_signal_handlers_disconnect_by_func (G_OBJECT (renderer), + G_CALLBACK (thunar_shortcuts_view_editing_canceled), + view); +} + + + +static void thunar_shortcuts_view_rename_activated (GtkWidget *item, ThunarShortcutsView *view) { @@ -1004,11 +1351,15 @@ /* determine the text renderer */ column = gtk_tree_view_get_column (GTK_TREE_VIEW (view), 0); renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (column)); - renderer = g_list_nth_data (renderers, 1); + renderer = g_list_nth_data (renderers, 3); /* make sure the text renderer is editable */ g_object_set (G_OBJECT (renderer), "editable", TRUE, NULL); + /* set up signals for the cell renderer */ + g_signal_connect (G_OBJECT (renderer), "editing-canceled", + G_CALLBACK (thunar_shortcuts_view_editing_canceled), view); + /* tell the tree view to start editing the given row */ gtk_tree_view_set_cursor_on_cell (GTK_TREE_VIEW (view), path, column, renderer, TRUE); @@ -1028,6 +1379,8 @@ { GtkTreeModel *model; GtkTreeIter iter; + GtkTreeModel *child_model; + GtkTreeIter child_iter; /* reset the editable flag */ g_object_set (G_OBJECT (renderer), "editable", FALSE, NULL); @@ -1035,7 +1388,11 @@ /* perform the rename */ model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); if (gtk_tree_model_get_iter_from_string (model, &iter, path_string)) - thunar_shortcuts_model_rename (THUNAR_SHORTCUTS_MODEL (model), &iter, text); + { + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model), &child_iter, &iter); + thunar_shortcuts_model_rename (THUNAR_SHORTCUTS_MODEL (child_model), &child_iter, text); + } } @@ -1112,6 +1469,9 @@ /* but maybe we can add as shortcut */ path = thunar_shortcuts_view_compute_drop_position (view, x, y); + if (path == NULL) + return 0; + /* check if path is about to append to the model */ if (gtk_tree_path_get_indices (path)[0] >= gtk_tree_model_iter_n_children (model, NULL)) { @@ -1148,6 +1508,9 @@ GdkRectangle area; GtkTreePath *path; gint n_rows; + gboolean result; + GtkTreePath *child_path; + GtkTreeModel *child_model; _thunar_return_val_if_fail (gtk_tree_view_get_model (GTK_TREE_VIEW (view)) != NULL, NULL); _thunar_return_val_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view), NULL); @@ -1159,25 +1522,29 @@ if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (view), x, y, &path, &column, &x, &y)) { - /* determine the exact path of the row the user is trying to drop + /* determine the exact path of the row the user is trying to drop * (taking into account the relative y position) */ gtk_tree_view_get_background_area (GTK_TREE_VIEW (view), path, column, &area); if (y >= area.height / 2) gtk_tree_path_next (path); + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + /* find a suitable drop path (we cannot drop into the default shortcuts list) */ for (; gtk_tree_path_get_indices (path)[0] < n_rows; gtk_tree_path_next (path)) - if (thunar_shortcuts_model_drop_possible (THUNAR_SHORTCUTS_MODEL (model), path)) - return path; - } - else - { - /* we'll append to the shortcuts list */ - path = gtk_tree_path_new_from_indices (n_rows, -1); + { + child_path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (model), path); + result = thunar_shortcuts_model_drop_possible (THUNAR_SHORTCUTS_MODEL (child_model), child_path); + gtk_tree_path_free (child_path); + if (result) + return path; + } + + gtk_tree_path_free (path); } - return path; + return NULL; } @@ -1192,12 +1559,15 @@ ThunarFile *file; GError *error = NULL; GList *lp; + GtkTreeModel *child_model; + GtkTreePath *child_path; /* take a copy of the destination path */ path = gtk_tree_path_copy (dst_path); /* process the URIs one-by-one and stop on error */ model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); for (lp = path_list; lp != NULL; lp = lp->next) { file = thunar_file_get (lp->data, &error); @@ -1214,7 +1584,10 @@ break; } - thunar_shortcuts_model_add (THUNAR_SHORTCUTS_MODEL (model), path, file); + child_path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (model), path); + thunar_shortcuts_model_add (THUNAR_SHORTCUTS_MODEL (child_model), child_path, file); + gtk_tree_path_free (child_path); + g_object_unref (file); gtk_tree_path_next (path); } @@ -1238,7 +1611,7 @@ thunar_shortcuts_view_open_clicked (ThunarShortcutsView *view) { _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); - thunar_shortcuts_view_open (view, FALSE); + thunar_shortcuts_view_open (view, OPEN_IN_VIEW); } @@ -1251,22 +1624,27 @@ gpointer user_data) { ThunarApplication *application; - gboolean new_window = GPOINTER_TO_UINT (user_data); + OpenTarget open_in = GPOINTER_TO_UINT (user_data); _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (browser)); - _thunar_return_if_fail (THUNAR_IS_FILE (file)); + _thunar_return_if_fail (THUNAR_IS_FILE (target_file)); if (error == NULL) { - if (new_window) + if (open_in == OPEN_IN_WINDOW) { /* open a new window for the target folder */ application = thunar_application_get (); - thunar_application_open_window (application, target_file, + thunar_application_open_window (application, target_file, gtk_widget_get_screen (GTK_WIDGET (browser)), NULL); g_object_unref (application); } - else + else if (open_in == OPEN_IN_TAB) + { + /* invoke the signal to change to open folder in a new tab */ + g_signal_emit (browser, view_signals[SHORTCUT_ACTIVATED_TAB], 0, target_file); + } + else if (thunar_file_check_loaded (target_file)) { /* invoke the signal to change to that folder */ g_signal_emit (browser, view_signals[SHORTCUT_ACTIVATED], 0, target_file); @@ -1282,44 +1660,80 @@ static void -thunar_shortcuts_view_poke_volume_finish (ThunarBrowser *browser, - GVolume *volume, +thunar_shortcuts_view_poke_location_finish (ThunarBrowser *browser, + GFile *location, + ThunarFile *file, + ThunarFile *target_file, + GError *error, + gpointer user_data) +{ + gchar *name; + + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (browser)); + _thunar_return_if_fail (G_IS_FILE (location)); + + /* sotre the new file in the shortcuts model */ + if (error == NULL) + { + thunar_shortcuts_view_poke_file_finish (browser, file, target_file, error, user_data); + } + else + { + name = thunar_g_file_get_display_name_remote (location); + thunar_dialogs_show_error (GTK_WIDGET (browser), error, _("Failed to open \"%s\""), name); + g_free (name); + } +} + + + +static void +thunar_shortcuts_view_poke_device_finish (ThunarBrowser *browser, + ThunarDevice *device, ThunarFile *mount_point, GError *error, gpointer user_data) { - gboolean new_window = GPOINTER_TO_UINT (user_data); - gchar *volume_name; + gchar *device_name; + GtkTreeModel *model; + GtkTreeModel *child_model; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (browser)); - _thunar_return_if_fail (G_IS_VOLUME (volume)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); if (error == NULL) { thunar_browser_poke_file (browser, mount_point, GTK_WIDGET (browser), thunar_shortcuts_view_poke_file_finish, - GUINT_TO_POINTER (new_window)); + user_data); } else { - volume_name = g_volume_get_name (volume); - thunar_dialogs_show_error (GTK_WIDGET (browser), error, - _("Failed to mount \"%s\""), volume_name); - g_free (volume_name); + device_name = thunar_device_get_name (device); + thunar_dialogs_show_error (GTK_WIDGET (browser), error, + _("Failed to mount \"%s\""), device_name); + g_free (device_name); } + + /* stop the spinner */ + model = gtk_tree_view_get_model (GTK_TREE_VIEW (browser)); + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_set_busy (THUNAR_SHORTCUTS_MODEL (child_model), device, FALSE); } static void thunar_shortcuts_view_open (ThunarShortcutsView *view, - gboolean new_window) + OpenTarget open_in) { GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; ThunarFile *file; - GVolume *volume; + ThunarDevice *device; + GFile *location; + GtkTreeModel *child_model; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); @@ -1333,29 +1747,43 @@ if (gtk_tree_selection_get_selected (selection, &model, &iter)) { /* determine the file for the shortcut at the given tree iterator */ - gtk_tree_model_get (model, &iter, + gtk_tree_model_get (model, &iter, THUNAR_SHORTCUTS_MODEL_COLUMN_FILE, &file, - THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME, &volume, + THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE, &device, + THUNAR_SHORTCUTS_MODEL_COLUMN_LOCATION, &location, -1); - if (G_LIKELY (volume != NULL)) + if (G_LIKELY (device != NULL)) { - thunar_browser_poke_volume (THUNAR_BROWSER (view), volume, view, - thunar_shortcuts_view_poke_volume_finish, - GUINT_TO_POINTER (new_window)); + /* start the spinner */ + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_set_busy (THUNAR_SHORTCUTS_MODEL (child_model), device, TRUE); + + thunar_browser_poke_device (THUNAR_BROWSER (view), device, view, + thunar_shortcuts_view_poke_device_finish, + GUINT_TO_POINTER (open_in)); } - else if (file != NULL) + else if (file != NULL) { thunar_browser_poke_file (THUNAR_BROWSER (view), file, view, thunar_shortcuts_view_poke_file_finish, - GUINT_TO_POINTER (new_window)); + GUINT_TO_POINTER (open_in)); + } + else if (location != NULL) + { + thunar_browser_poke_location (THUNAR_BROWSER (view), location, view, + thunar_shortcuts_view_poke_location_finish, + GUINT_TO_POINTER (open_in)); } if (file != NULL) g_object_unref (file); - if (volume != NULL) - g_object_unref (volume); + if (device != NULL) + g_object_unref (device); + + if (location != NULL) + g_object_unref (location); } } @@ -1365,7 +1793,16 @@ thunar_shortcuts_view_open_in_new_window_clicked (ThunarShortcutsView *view) { _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); - thunar_shortcuts_view_open (view, TRUE); + thunar_shortcuts_view_open (view, OPEN_IN_WINDOW); +} + + + +static void +thunar_shortcuts_view_open_in_new_tab_clicked (ThunarShortcutsView *view) +{ + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); + thunar_shortcuts_view_open (view, OPEN_IN_TAB); } @@ -1386,81 +1823,66 @@ static void -thunar_shortcuts_view_eject_finish (GObject *object, - GAsyncResult *result, - gpointer user_data) +thunar_shortcuts_view_create_shortcut (ThunarShortcutsView *view) { - ThunarShortcutsView *view = THUNAR_SHORTCUTS_VIEW (user_data); - GtkWidget *window; - GVolume *volume = G_VOLUME (object); - GError *error = NULL; - gchar *volume_name; + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter; + ThunarDevice *device; + GFile *mount_point; + GtkTreeModel *shortcuts_model; - _thunar_return_if_fail (G_IS_VOLUME (object)); - _thunar_return_if_fail (G_IS_ASYNC_RESULT (result)); _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); - /* check if there was an error */ - if (!g_volume_eject_finish (volume, result, &error)) + /* determine the selected item */ + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); + if (gtk_tree_selection_get_selected (selection, &model, &iter)) { - /* ignore GIO errors already handled */ - if (error->domain != G_IO_ERROR || error->code != G_IO_ERROR_FAILED_HANDLED) - { - window = gtk_widget_get_toplevel (GTK_WIDGET (view)); - - /* display an error dialog to inform the user */ - volume_name = g_volume_get_name (volume); - thunar_dialogs_show_error (window, error, _("Failed to eject \"%s\""), volume_name); - g_free (volume_name); + /* determine the device/mount for the shortcut at the given tree iterator */ + gtk_tree_model_get (model, &iter, THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE, &device, -1); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); - g_error_free (error); + /* add the mount point to the model */ + mount_point = thunar_device_get_root (device); + if (mount_point != NULL) + { + shortcuts_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_add (THUNAR_SHORTCUTS_MODEL (shortcuts_model), NULL, mount_point); + g_object_unref (mount_point); } - } - -#ifdef HAVE_LIBNOTIFY - thunar_notify_eject_finish (volume); -#endif - g_object_unref (view); + g_object_unref (G_OBJECT (device)); + } } static void -thunar_shortcuts_view_unmount_finish (GObject *object, - GAsyncResult *result, - gpointer user_data) +thunar_shortcuts_view_eject_finish (ThunarDevice *device, + const GError *error, + gpointer user_data) { ThunarShortcutsView *view = THUNAR_SHORTCUTS_VIEW (user_data); - GtkWidget *window; - GMount *mount = G_MOUNT (object); - GError *error = NULL; - gchar *mount_name; + gchar *device_name; + GtkTreeModel *model; + GtkTreeModel *child_model; - _thunar_return_if_fail (G_IS_MOUNT (object)); - _thunar_return_if_fail (G_IS_ASYNC_RESULT (result)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); /* check if there was an error */ - if (!g_mount_unmount_finish (mount, result, &error)) + if (error != NULL) { - /* ignore GIO errors already handled */ - if (error->domain != G_IO_ERROR || error->code != G_IO_ERROR_FAILED_HANDLED) - { - window = gtk_widget_get_toplevel (GTK_WIDGET (view)); - - /* display an error dialog to inform the user */ - mount_name = g_mount_get_name (mount); - thunar_dialogs_show_error (window, error, _("Failed to eject \"%s\""), mount_name); - g_free (mount_name); - - g_error_free (error); - } + /* display an error dialog to inform the user */ + device_name = thunar_device_get_name (device); + thunar_dialogs_show_error (GTK_WIDGET (view), error, _("Failed to eject \"%s\""), device_name); + g_free (device_name); } -#ifdef HAVE_LIBNOTIFY - thunar_notify_unmount_finish (mount); -#endif + /* stop the spinner */ + model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_set_busy (THUNAR_SHORTCUTS_MODEL (child_model), device, FALSE); g_object_unref (view); } @@ -1473,8 +1895,9 @@ GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; - GVolume *volume; - GMount *mount; + ThunarDevice *device; + GMountOperation *mount_operation; + GtkTreeModel *child_model; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); @@ -1482,71 +1905,58 @@ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { - /* determine the volume for the shortcut at the given tree iterator */ - gtk_tree_model_get (model, &iter, THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME, &volume, -1); - if (G_UNLIKELY (volume != NULL)) - { - /* determine what the appropriate method is: eject or unmount */ - if (g_volume_can_eject (volume)) - { -#ifdef HAVE_LIBNOTIFY - thunar_notify_eject (volume); -#endif + /* determine the device/mount for the shortcut at the given tree iterator */ + gtk_tree_model_get (model, &iter, THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE, &device, -1); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); - /* try to to eject the volume asynchronously */ - g_volume_eject (volume, G_MOUNT_UNMOUNT_NONE, NULL, - thunar_shortcuts_view_eject_finish, - g_object_ref (view)); - } - else - { - /* determine the mount of the volume */ - mount = g_volume_get_mount (volume); - if (G_LIKELY (mount != NULL)) - { -#ifdef HAVE_LIBNOTIFY - thunar_notify_unmount (mount); -#endif + /* prepare a mount operation */ + mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view)); - /* the volume is mounted, try to unmount the mount */ - g_mount_unmount (mount, G_MOUNT_UNMOUNT_NONE, NULL, - thunar_shortcuts_view_unmount_finish, - g_object_ref (view)); + /* start the spinner */ + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_set_busy (THUNAR_SHORTCUTS_MODEL (child_model), device, TRUE); - /* release the mount */ - g_object_unref (mount); - } - } + /* try to unmount */ + thunar_device_eject (device, + mount_operation, + NULL, + thunar_shortcuts_view_eject_finish, + g_object_ref (view)); - /* cleanup */ - g_object_unref (volume); - } + g_object_unref (G_OBJECT (device)); + g_object_unref (G_OBJECT (mount_operation)); } } static void -thunar_shortcuts_view_poke_volume_mount_finish (ThunarBrowser *browser, - GVolume *volume, +thunar_shortcuts_view_poke_device_mount_finish (ThunarBrowser *browser, + ThunarDevice *device, ThunarFile *mount_point, GError *error, gpointer ignored) { - gchar *volume_name; + gchar *device_name; + GtkTreeModel *model; + GtkTreeModel *child_model; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (browser)); - _thunar_return_if_fail (G_IS_VOLUME (volume)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); if (error != NULL) { - volume_name = g_volume_get_name (volume); - thunar_dialogs_show_error (GTK_WIDGET (browser), error, - _("Failed to mount \"%s\""), volume_name); - g_free (volume_name); + device_name = thunar_device_get_name (device); + thunar_dialogs_show_error (GTK_WIDGET (browser), error, + _("Failed to mount \"%s\""), device_name); + g_free (device_name); } -} + /* stop the spinner */ + model = gtk_tree_view_get_model (GTK_TREE_VIEW (browser)); + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_set_busy (THUNAR_SHORTCUTS_MODEL (child_model), device, FALSE); +} @@ -1556,7 +1966,8 @@ GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; - GVolume *volume; + ThunarDevice *device; + GtkTreeModel *child_model; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); @@ -1570,30 +1981,93 @@ if (gtk_tree_selection_get_selected (selection, &model, &iter)) { /* determine the file for the shortcut at the given tree iterator */ - gtk_tree_model_get (model, &iter, - THUNAR_SHORTCUTS_MODEL_COLUMN_VOLUME, &volume, - -1); + gtk_tree_model_get (model, &iter, THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE, &device, -1); - if (G_LIKELY (volume != NULL)) + if (G_LIKELY (device != NULL)) { - thunar_browser_poke_volume (THUNAR_BROWSER (view), volume, view, - thunar_shortcuts_view_poke_volume_mount_finish, + /* start the spinner */ + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_set_busy (THUNAR_SHORTCUTS_MODEL (child_model), device, TRUE); + + thunar_browser_poke_device (THUNAR_BROWSER (view), device, view, + thunar_shortcuts_view_poke_device_mount_finish, NULL); - g_object_unref (volume); + g_object_unref (device); } } } -static gboolean -thunar_shortcuts_view_separator_func (GtkTreeModel *model, - GtkTreeIter *iter, +static void +thunar_shortcuts_view_unmount_finish (ThunarDevice *device, + const GError *error, gpointer user_data) { - gboolean separator; - gtk_tree_model_get (model, iter, THUNAR_SHORTCUTS_MODEL_COLUMN_SEPARATOR, &separator, -1); - return separator; + ThunarShortcutsView *view = THUNAR_SHORTCUTS_VIEW (user_data); + gchar *device_name; + GtkTreeModel *model; + GtkTreeModel *child_model; + + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); + + /* check if there was an error */ + if (error != NULL) + { + /* display an error dialog to inform the user */ + device_name = thunar_device_get_name (device); + thunar_dialogs_show_error (GTK_WIDGET (view), error, _("Failed to unmount \"%s\""), device_name); + g_free (device_name); + } + + /* stop the spinner */ + model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_set_busy (THUNAR_SHORTCUTS_MODEL (child_model), device, FALSE); + + g_object_unref (view); +} + + + +static void +thunar_shortcuts_view_unmount (ThunarShortcutsView *view) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter; + ThunarDevice *device; + GMountOperation *mount_operation; + GtkTreeModel *child_model; + + _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); + + /* determine the selected item */ + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); + if (gtk_tree_selection_get_selected (selection, &model, &iter)) + { + /* determine the device/mount for the shortcut at the given tree iterator */ + gtk_tree_model_get (model, &iter, THUNAR_SHORTCUTS_MODEL_COLUMN_DEVICE, &device, -1); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); + + /* prepare a mount operation */ + mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view)); + + /* start the spinner */ + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + thunar_shortcuts_model_set_busy (THUNAR_SHORTCUTS_MODEL (child_model), device, TRUE); + + /* try to unmount */ + thunar_device_unmount (device, + mount_operation, + NULL, + thunar_shortcuts_view_unmount_finish, + g_object_ref (view)); + + g_object_unref (G_OBJECT (device)); + g_object_unref (G_OBJECT (mount_operation)); + } } @@ -1610,12 +2084,17 @@ thunar_shortcuts_view_new (void) { ThunarShortcutsModel *model; - GtkWidget *view; + GtkWidget *view; + GtkTreeModel *filter_model; model = thunar_shortcuts_model_get_default (); - view = g_object_new (THUNAR_TYPE_SHORTCUTS_VIEW, "model", model, NULL); + filter_model = gtk_tree_model_filter_new (GTK_TREE_MODEL (model), NULL); + gtk_tree_model_filter_set_visible_column (GTK_TREE_MODEL_FILTER (filter_model), THUNAR_SHORTCUTS_MODEL_COLUMN_VISIBLE); g_object_unref (G_OBJECT (model)); + view = g_object_new (THUNAR_TYPE_SHORTCUTS_VIEW, "model", filter_model, NULL); + g_object_unref (G_OBJECT (filter_model)); + return view; } @@ -1637,18 +2116,24 @@ GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter iter; + GtkTreeModel *child_model; + GtkTreeIter child_iter; _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view)); _thunar_return_if_fail (THUNAR_IS_FILE (file)); - /* clear the selection */ + /* get the selection */ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); - gtk_tree_selection_unselect_all (selection); - /* try to lookup a tree iter for the given file */ model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); - if (thunar_shortcuts_model_iter_for_file (THUNAR_SHORTCUTS_MODEL (model), file, &iter)) + child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); + + /* try to lookup a tree iter for the given file */ + if (thunar_shortcuts_model_iter_for_file (THUNAR_SHORTCUTS_MODEL (child_model), file, &child_iter) + && gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER (model), &iter, &child_iter)) gtk_tree_selection_select_iter (selection, &iter); + else + gtk_tree_selection_unselect_all (selection); } diff -Nru thunar-1.2.3/thunar/thunar-shortcuts-view.h thunar-1.6.10/thunar/thunar-shortcuts-view.h --- thunar-1.2.3/thunar/thunar-shortcuts-view.h 2011-09-14 17:55:33.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-shortcuts-view.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-side-pane.c thunar-1.6.10/thunar/thunar-side-pane.c --- thunar-1.2.3/thunar/thunar-side-pane.c 2011-05-25 23:07:14.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-side-pane.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-side-pane.h thunar-1.6.10/thunar/thunar-side-pane.h --- thunar-1.2.3/thunar/thunar-side-pane.h 2011-05-25 23:07:14.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-side-pane.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-simple-job.c thunar-1.6.10/thunar/thunar-simple-job.c --- thunar-1.2.3/thunar/thunar-simple-job.c 2011-01-30 17:24:16.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-simple-job.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -54,9 +54,10 @@ struct _ThunarSimpleJob { - ThunarJob __parent__; - ThunarSimpleJobFunc func; - GValueArray *param_values; + ThunarJob __parent__; + + ThunarSimpleJobFunc func; + GArray *param_values; }; @@ -91,9 +92,12 @@ thunar_simple_job_finalize (GObject *object) { ThunarSimpleJob *simple_job = THUNAR_SIMPLE_JOB (object); + guint i; /* release the param values */ - g_value_array_free (simple_job->param_values); + for (i = 0; i < simple_job->param_values->len; i++) + g_value_unset (&g_array_index (simple_job->param_values, GValue, i)); + g_array_free (simple_job->param_values, TRUE); (*G_OBJECT_CLASS (thunar_simple_job_parent_class)->finalize) (object); } @@ -176,7 +180,7 @@ /* allocate and initialize the simple job */ simple_job = g_object_new (THUNAR_TYPE_SIMPLE_JOB, NULL); simple_job->func = func; - simple_job->param_values = g_value_array_new (n_param_values); + simple_job->param_values = g_array_sized_new (FALSE, TRUE, sizeof (GValue), n_param_values); /* collect the parameters */ va_start (var_args, n_param_values); @@ -195,8 +199,11 @@ g_free (error_message); } - g_value_array_insert (simple_job->param_values, n, &value); - g_value_unset (&value); + g_array_insert_val (simple_job->param_values, n, value); + + /* manually unset the value, g_value_unset doesn't work + * because we don't want to free the data */ + memset (&value, 0, sizeof (GValue)); } va_end (var_args); @@ -206,7 +213,7 @@ -GValueArray * +GArray * thunar_simple_job_get_param_values (ThunarSimpleJob *job) { _thunar_return_val_if_fail (THUNAR_IS_SIMPLE_JOB (job), NULL); diff -Nru thunar-1.2.3/thunar/thunar-simple-job.h thunar-1.6.10/thunar/thunar-simple-job.h --- thunar-1.2.3/thunar/thunar-simple-job.h 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-simple-job.h 2015-05-22 13:25:36.000000000 +0000 @@ -28,7 +28,7 @@ /** * ThunarSimpleJobFunc: * @job : a #ThunarJob. - * @param_values : a #GValueArray of the #GValues passed to + * @param_values : a #GArray of the #GValues passed to * thunar_simple_job_launch(). * @error : return location for errors. * @@ -37,9 +37,9 @@ * * Return value: %TRUE on success, %FALSE in case of an error. **/ -typedef gboolean (*ThunarSimpleJobFunc) (ThunarJob *job, - GValueArray *param_values, - GError **error); +typedef gboolean (*ThunarSimpleJobFunc) (ThunarJob *job, + GArray *param_values, + GError **error); typedef struct _ThunarSimpleJobClass ThunarSimpleJobClass; @@ -57,7 +57,7 @@ ThunarJob *thunar_simple_job_launch (ThunarSimpleJobFunc func, guint n_param_values, ...) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; -GValueArray *thunar_simple_job_get_param_values (ThunarSimpleJob *job); +GArray *thunar_simple_job_get_param_values (ThunarSimpleJob *job); G_END_DECLS diff -Nru thunar-1.2.3/thunar/thunar-size-label.c thunar-1.6.10/thunar/thunar-size-label.c --- thunar-1.2.3/thunar/thunar-size-label.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-size-label.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,7 +1,8 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann + * Copyright (c) 2012 Nick Schermer * * 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 @@ -29,11 +30,11 @@ #include #endif +#include #include +#include #include #include -#include -#include @@ -41,7 +42,8 @@ enum { PROP_0, - PROP_FILE, + PROP_FILES, + PROP_FILE_SIZE_BINARY }; @@ -58,8 +60,7 @@ static gboolean thunar_size_label_button_press_event (GtkWidget *ebox, GdkEventButton *event, ThunarSizeLabel *size_label); -static void thunar_size_label_file_changed (ThunarFile *file, - ThunarSizeLabel *size_label); +static void thunar_size_label_files_changed (ThunarSizeLabel *size_label); static void thunar_size_label_error (ExoJob *job, const GError *error, ThunarSizeLabel *size_label); @@ -71,8 +72,9 @@ guint directory_count, guint unreadable_directory_count, ThunarSizeLabel *size_label); -static gboolean thunar_size_label_animate_timer (gpointer user_data); -static void thunar_size_label_animate_timer_destroy (gpointer user_data); +static GList *thunar_size_label_get_files (ThunarSizeLabel *size_label); +static void thunar_size_label_set_files (ThunarSizeLabel *size_label, + GList *files); @@ -86,14 +88,13 @@ GtkHBox __parent__; ThunarDeepCountJob *job; + ThunarPreferences *preferences; - ThunarFile *file; + GList *files; + gboolean file_size_binary; GtkWidget *label; - GtkWidget *throbber; - - /* the throbber animation is started after a timeout */ - gint animate_timer_id; + GtkWidget *spinner; }; @@ -119,10 +120,23 @@ * by this #ThunarSizeLabel. **/ g_object_class_install_property (gobject_class, - PROP_FILE, - g_param_spec_object ("file", "file", "file", - THUNAR_TYPE_FILE, - EXO_PARAM_READWRITE)); + PROP_FILES, + g_param_spec_boxed ("files", "files", "files", + THUNARX_TYPE_FILE_INFO_LIST, + EXO_PARAM_READWRITE)); + + /** + * ThunarPropertiesDialog:file_size_binary: + * + * Whether the file size should be shown in binary or decimal. + **/ + g_object_class_install_property (gobject_class, + PROP_FILE_SIZE_BINARY, + g_param_spec_boolean ("file-size-binary", + "FileSizeBinary", + NULL, + FALSE, + EXO_PARAM_READWRITE)); } @@ -132,29 +146,32 @@ { GtkWidget *ebox; - size_label->animate_timer_id = -1; - + /* binary file size */ + size_label->preferences = thunar_preferences_get (); + exo_binding_new (G_OBJECT (size_label->preferences), "misc-file-size-binary", + G_OBJECT (size_label), "file-size-binary"); + g_signal_connect_swapped (G_OBJECT (size_label->preferences), "notify::misc-file-size-binary", + G_CALLBACK (thunar_size_label_files_changed), size_label); gtk_widget_push_composite_child (); /* configure the box */ gtk_box_set_spacing (GTK_BOX (size_label), 6); - /* add an evenbox for the throbber */ + /* add an evenbox for the spinner */ ebox = gtk_event_box_new (); gtk_event_box_set_visible_window (GTK_EVENT_BOX (ebox), FALSE); g_signal_connect (G_OBJECT (ebox), "button-press-event", G_CALLBACK (thunar_size_label_button_press_event), size_label); gtk_widget_set_tooltip_text (ebox, _("Click here to stop calculating the total size of the folder.")); gtk_box_pack_start (GTK_BOX (size_label), ebox, FALSE, FALSE, 0); - gtk_widget_show (ebox); - /* add the throbber widget */ - size_label->throbber = thunar_throbber_new (); - exo_binding_new (G_OBJECT (size_label->throbber), "visible", G_OBJECT (ebox), "visible"); - gtk_container_add (GTK_CONTAINER (ebox), size_label->throbber); - gtk_widget_show (size_label->throbber); + /* add the spinner widget */ + size_label->spinner = gtk_spinner_new (); + exo_binding_new (G_OBJECT (size_label->spinner), "visible", G_OBJECT (ebox), "visible"); + gtk_container_add (GTK_CONTAINER (ebox), size_label->spinner); + gtk_widget_show (size_label->spinner); /* add the label widget */ - size_label->label = gtk_label_new (""); + size_label->label = gtk_label_new (_("Calculating...")); gtk_misc_set_alignment (GTK_MISC (size_label->label), 0.0f, 0.5f); gtk_label_set_selectable (GTK_LABEL (size_label->label), TRUE); gtk_label_set_ellipsize (GTK_LABEL (size_label->label), PANGO_ELLIPSIZE_MIDDLE); @@ -180,11 +197,11 @@ } /* reset the file property */ - thunar_size_label_set_file (size_label, NULL); + thunar_size_label_set_files (size_label, NULL); - /* be sure to cancel any pending animate timer */ - if (G_UNLIKELY (size_label->animate_timer_id >= 0)) - g_source_remove (size_label->animate_timer_id); + /* disconnect from the preferences */ + g_signal_handlers_disconnect_by_func (size_label->preferences, thunar_size_label_files_changed, size_label); + g_object_unref (size_label->preferences); (*G_OBJECT_CLASS (thunar_size_label_parent_class)->finalize) (object); } @@ -201,8 +218,12 @@ switch (prop_id) { - case PROP_FILE: - g_value_set_object (value, thunar_size_label_get_file (size_label)); + case PROP_FILES: + g_value_set_boxed (value, thunar_size_label_get_files (size_label)); + break; + + case PROP_FILE_SIZE_BINARY: + g_value_set_boolean (value, size_label->file_size_binary); break; default: @@ -223,8 +244,12 @@ switch (prop_id) { - case PROP_FILE: - thunar_size_label_set_file (size_label, g_value_get_object (value)); + case PROP_FILES: + thunar_size_label_set_files (size_label, g_value_get_boxed (value)); + break; + + case PROP_FILE_SIZE_BINARY: + size_label->file_size_binary = g_value_get_boolean (value); break; default: @@ -243,13 +268,9 @@ _thunar_return_val_if_fail (GTK_IS_EVENT_BOX (ebox), FALSE); _thunar_return_val_if_fail (THUNAR_IS_SIZE_LABEL (size_label), FALSE); - /* left button press on the throbber cancels the calculation */ + /* left button press on the spinner cancels the calculation */ if (G_LIKELY (event->button == 1)) { - /* be sure to cancel the animate timer */ - if (G_UNLIKELY (size_label->animate_timer_id >= 0)) - g_source_remove (size_label->animate_timer_id); - /* cancel the pending job (if any) */ if (G_UNLIKELY (size_label->job != NULL)) { @@ -259,9 +280,9 @@ size_label->job = NULL; } - /* be sure to stop and hide the throbber */ - thunar_throbber_set_animated (THUNAR_THROBBER (size_label->throbber), FALSE); - gtk_widget_hide (size_label->throbber); + /* be sure to stop and hide the spinner */ + gtk_spinner_stop (GTK_SPINNER (size_label->spinner)); + gtk_widget_hide (size_label->spinner); /* tell the user that the operation was canceled */ gtk_label_set_text (GTK_LABEL (size_label->label), _("Calculation aborted")); @@ -275,68 +296,15 @@ -static gchar* -tsl_format_size_string (guint64 size) -{ - GString *result; - gchar *grouping; - gchar *thousep; - gint ndigits = 0; - -#ifdef HAVE_LOCALECONV - grouping = localeconv ()->grouping; - thousep = localeconv ()->thousands_sep; -#else - grouping = "\3\0"; - thousep = ","; -#endif - - result = g_string_sized_new (32); - do - { - /* prepend the next digit to the string */ - g_string_prepend_c (result, '0' + (size % 10)); - ++ndigits; - - /* check if we should add the thousands separator */ - if (ndigits == *grouping && *grouping != CHAR_MAX && size > 9) - { - g_string_prepend (result, thousep); - ndigits = 0; - - /* if *(grouping+1) == '\0' then we have to use the - * *grouping character (last grouping rule) for all - * following cases. - */ - if (*(grouping + 1) != '\0') - ++grouping; - } - - size /= 10; - } - while (size > 0); - - return g_string_free (result, FALSE); -} - - - static void -thunar_size_label_file_changed (ThunarFile *file, - ThunarSizeLabel *size_label) +thunar_size_label_files_changed (ThunarSizeLabel *size_label) { - guint64 size; - gchar *size_humanized; - gchar *size_string; - gchar *text; + gchar *size_string; + guint64 size; _thunar_return_if_fail (THUNAR_IS_SIZE_LABEL (size_label)); - _thunar_return_if_fail (size_label->file == file); - _thunar_return_if_fail (THUNAR_IS_FILE (file)); - - /* be sure to cancel the animate timer */ - if (G_UNLIKELY (size_label->animate_timer_id >= 0)) - g_source_remove (size_label->animate_timer_id); + _thunar_return_if_fail (size_label->files != NULL); + _thunar_return_if_fail (THUNAR_IS_FILE (size_label->files->data)); /* cancel the pending job (if any) */ if (G_UNLIKELY (size_label->job != NULL)) @@ -347,50 +315,36 @@ size_label->job = NULL; } - /* be sure to stop and hide the throbber */ - thunar_throbber_set_animated (THUNAR_THROBBER (size_label->throbber), FALSE); - gtk_widget_hide (size_label->throbber); - - /* check if the file is a directory */ - if (thunar_file_is_directory (file)) + /* check if there are multiple files or the single file is a directory */ + if (size_label->files->next != NULL + || thunar_file_is_directory (THUNAR_FILE (size_label->files->data))) { /* schedule a new job to determine the total size of the directory (not following symlinks) */ - size_label->job = thunar_deep_count_job_new (thunar_file_get_file (file), G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS); + size_label->job = thunar_deep_count_job_new (size_label->files, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS); g_signal_connect (size_label->job, "error", G_CALLBACK (thunar_size_label_error), size_label); g_signal_connect (size_label->job, "finished", G_CALLBACK (thunar_size_label_finished), size_label); g_signal_connect (size_label->job, "status-update", G_CALLBACK (thunar_size_label_status_update), size_label); /* tell the user that we started calculation */ gtk_label_set_text (GTK_LABEL (size_label->label), _("Calculating...")); + gtk_spinner_start (GTK_SPINNER (size_label->spinner)); + gtk_widget_show (size_label->spinner); /* launch the job */ exo_job_launch (EXO_JOB (size_label->job)); } else { - /* determine the size of the file */ - size = thunar_file_get_size (file); + /* this is going to be quick, stop and hide the spinner */ + gtk_spinner_stop (GTK_SPINNER (size_label->spinner)); + gtk_widget_hide (size_label->spinner); - /* determine the size in bytes */ - text = tsl_format_size_string (size); - size_string = g_strdup_printf (_("%s Bytes"), text); - g_free (text); - - /* check if the file is larger that 1kB */ - if (G_LIKELY (size > 1024ul)) - { - /* prepend the humanized size */ - size_humanized = g_format_size_for_display (size); - text = g_strdup_printf ("%s (%s)", size_humanized, size_string); - g_free (size_humanized); - g_free (size_string); - size_string = text; - } + /* determine the size of the file */ + size = thunar_file_get_size (THUNAR_FILE (size_label->files->data)); /* setup the new label */ + size_string = g_format_size_full (size, size_label->file_size_binary ? G_FORMAT_SIZE_LONG_FORMAT | G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_LONG_FORMAT); gtk_label_set_text (GTK_LABEL (size_label->label), size_string); - - /* cleanup */ g_free (size_string); } } @@ -420,13 +374,9 @@ _thunar_return_if_fail (THUNAR_IS_SIZE_LABEL (size_label)); _thunar_return_if_fail (size_label->job == THUNAR_DEEP_COUNT_JOB (job)); - /* be sure to cancel the animate timer */ - if (G_UNLIKELY (size_label->animate_timer_id >= 0)) - g_source_remove (size_label->animate_timer_id); - - /* stop and hide the throbber */ - thunar_throbber_set_animated (THUNAR_THROBBER (size_label->throbber), FALSE); - gtk_widget_hide (size_label->throbber); + /* stop and hide the spinner */ + gtk_spinner_stop (GTK_SPINNER (size_label->spinner)); + gtk_widget_hide (size_label->spinner); /* disconnect from the job */ g_signal_handlers_disconnect_matched (size_label->job, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, size_label); @@ -444,131 +394,117 @@ guint unreadable_directory_count, ThunarSizeLabel *size_label) { - gchar *size_string; - gchar *text; - guint n; + gchar *size_string; + gchar *text; + guint n; + gchar *unreable_text; _thunar_return_if_fail (THUNAR_IS_DEEP_COUNT_JOB (job)); _thunar_return_if_fail (THUNAR_IS_SIZE_LABEL (size_label)); _thunar_return_if_fail (size_label->job == job); - /* check if the animate timer is already running */ - if (G_UNLIKELY (size_label->animate_timer_id < 0)) - { - /* schedule the animate timer to animate and display the throbber after 1s */ - size_label->animate_timer_id = g_timeout_add_full (G_PRIORITY_LOW, 1000, thunar_size_label_animate_timer, - size_label, thunar_size_label_animate_timer_destroy); - } - /* determine the total number of items */ n = file_count + directory_count + unreadable_directory_count; - /* update the label */ - size_string = g_format_size_for_display (total_size); - text = g_strdup_printf (ngettext ("%u item, totalling %s", "%u items, totalling %s", n), n, size_string); - gtk_label_set_text (GTK_LABEL (size_label->label), text); - g_free (size_string); - g_free (text); -} - - - -static gboolean -thunar_size_label_animate_timer (gpointer user_data) -{ - ThunarSizeLabel *size_label = THUNAR_SIZE_LABEL (user_data); - - GDK_THREADS_ENTER (); - - /* animate and display the throbber */ - thunar_throbber_set_animated (THUNAR_THROBBER (size_label->throbber), TRUE); - gtk_widget_show (size_label->throbber); - - GDK_THREADS_LEAVE (); - - return FALSE; -} - - - -static void -thunar_size_label_animate_timer_destroy (gpointer user_data) -{ - THUNAR_SIZE_LABEL (user_data)->animate_timer_id = -1; -} - - - -/** - * thunar_size_label_new: - * - * Allocates a new #ThunarSizeLabel instance. - * - * Return value: the newly allocated #ThunarSizeLabel. - **/ -GtkWidget* -thunar_size_label_new (void) -{ - return g_object_new (THUNAR_TYPE_SIZE_LABEL, NULL); + if (G_LIKELY (n > unreadable_directory_count)) + { + /* update the label */ + size_string = g_format_size_full (total_size, size_label->file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + text = g_strdup_printf (ngettext ("%u item, totalling %s", "%u items, totalling %s", n), n, size_string); + g_free (size_string); + + if (unreadable_directory_count > 0) + { + /* TRANSLATORS: this is shows if during the deep count size + * directories were not accessible */ + unreable_text = g_strconcat (text, "\n", _("(some contents unreadable)"), NULL); + g_free (text); + text = unreable_text; + } + + gtk_label_set_text (GTK_LABEL (size_label->label), text); + g_free (text); + } + else + { + /* nothing was readable, so permission was denied */ + gtk_label_set_text (GTK_LABEL (size_label->label), _("Permission denied")); + } } /** - * thunar_size_label_get_file: + * thunar_size_label_get_files: * @size_label : a #ThunarSizeLabel. * - * Returns the #ThunarFile for the @size_label. - * - * Return value: the file for @size_label. + * Get the files displayed by the @size_label. **/ -ThunarFile* -thunar_size_label_get_file (ThunarSizeLabel *size_label) +static GList* +thunar_size_label_get_files (ThunarSizeLabel *size_label) { _thunar_return_val_if_fail (THUNAR_IS_SIZE_LABEL (size_label), NULL); - return size_label->file; + return size_label->files; } /** - * thunar_size_label_set_file: + * thunar_size_label_set_files: * @size_label : a #ThunarSizeLabel. - * @file : a #ThunarFile or %NULL. + * @files : a list of #ThunarFile's or %NULL. * * Sets @file as the #ThunarFile displayed by the @size_label. **/ -void -thunar_size_label_set_file (ThunarSizeLabel *size_label, - ThunarFile *file) +static void +thunar_size_label_set_files (ThunarSizeLabel *size_label, + GList *files) { - _thunar_return_if_fail (THUNAR_IS_SIZE_LABEL (size_label)); - _thunar_return_if_fail (file == NULL || THUNAR_IS_FILE (file)); + GList *lp; - /* check if we already display that file */ - if (G_UNLIKELY (size_label->file == file)) - return; + _thunar_return_if_fail (THUNAR_IS_SIZE_LABEL (size_label)); + _thunar_return_if_fail (files == NULL || THUNAR_IS_FILE (files->data)); - /* disconnect from the previous file */ - if (G_UNLIKELY (size_label->file != NULL)) + /* disconnect from the previous files */ + for (lp = size_label->files; lp != NULL; lp = lp->next) { - g_signal_handlers_disconnect_by_func (G_OBJECT (size_label->file), thunar_size_label_file_changed, size_label); - g_object_unref (G_OBJECT (size_label->file)); + _thunar_assert (THUNAR_IS_FILE (lp->data)); + + g_signal_handlers_disconnect_by_func (G_OBJECT (lp->data), thunar_size_label_files_changed, size_label); + g_object_unref (G_OBJECT (lp->data)); } + g_list_free (size_label->files); - /* activate the new file */ - size_label->file = file; + size_label->files = g_list_copy (files); /* connect to the new file */ - if (G_LIKELY (file != NULL)) + for (lp = size_label->files; lp != NULL; lp = lp->next) { - g_object_ref (G_OBJECT (file)); - thunar_size_label_file_changed (file, size_label); - g_signal_connect (G_OBJECT (file), "changed", G_CALLBACK (thunar_size_label_file_changed), size_label); + _thunar_assert (THUNAR_IS_FILE (lp->data)); + + g_object_ref (G_OBJECT (lp->data)); + g_signal_connect_swapped (G_OBJECT (lp->data), "changed", G_CALLBACK (thunar_size_label_files_changed), size_label); } + if (size_label->files != NULL) + thunar_size_label_files_changed (size_label); + /* notify listeners */ - g_object_notify (G_OBJECT (size_label), "file"); + g_object_notify (G_OBJECT (size_label), "files"); } + +/** + * thunar_size_label_new: + * + * Allocates a new #ThunarSizeLabel instance. + * + * Return value: the newly allocated #ThunarSizeLabel. + **/ +GtkWidget* +thunar_size_label_new (void) +{ + return g_object_new (THUNAR_TYPE_SIZE_LABEL, NULL); +} + diff -Nru thunar-1.2.3/thunar/thunar-size-label.h thunar-1.6.10/thunar/thunar-size-label.h --- thunar-1.2.3/thunar/thunar-size-label.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-size-label.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -38,10 +38,6 @@ GtkWidget *thunar_size_label_new (void) G_GNUC_MALLOC; -ThunarFile *thunar_size_label_get_file (ThunarSizeLabel *size_label); -void thunar_size_label_set_file (ThunarSizeLabel *size_label, - ThunarFile *file); - G_END_DECLS; #endif /* !__THUNAR_SIZE_LABEL_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-standard-view.c thunar-1.6.10/thunar/thunar-standard-view.c --- thunar-1.2.3/thunar/thunar-standard-view.c 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-standard-view.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,21 +1,22 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer - * Copyright (c) 2009 Jannis Pohlmann + * Copyright (c) 2009-2011 Jannis Pohlmann * - * 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 free software; you can 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. + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -39,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -48,7 +50,9 @@ #include #include #include +#include #include +#include #if defined(GDK_WINDOWING_X11) #include @@ -66,11 +70,14 @@ PROP_0, PROP_CURRENT_DIRECTORY, PROP_LOADING, + PROP_DISPLAY_NAME, + PROP_TOOLTIP_TEXT, PROP_SELECTED_FILES, PROP_SHOW_HIDDEN, PROP_STATUSBAR_TEXT, PROP_UI_MANAGER, PROP_ZOOM_LEVEL, + N_PROPERTIES }; /* Signal identifiers */ @@ -132,7 +139,8 @@ static void thunar_standard_view_set_zoom_level (ThunarView *view, ThunarZoomLevel zoom_level); static void thunar_standard_view_reset_zoom_level (ThunarView *view); -static void thunar_standard_view_reload (ThunarView *view); +static void thunar_standard_view_reload (ThunarView *view, + gboolean reload_info); static gboolean thunar_standard_view_get_visible_range (ThunarView *view, ThunarFile **start_file, ThunarFile **end_file); @@ -156,6 +164,10 @@ static void thunar_standard_view_merge_custom_actions (ThunarStandardView *standard_view, GList *selected_items); static void thunar_standard_view_update_statusbar_text (ThunarStandardView *standard_view); +static void thunar_standard_view_current_directory_destroy (ThunarFile *current_directory, + ThunarStandardView *standard_view); +static void thunar_standard_view_current_directory_changed (ThunarFile *current_directory, + ThunarStandardView *standard_view); static void thunar_standard_view_action_create_empty_file (GtkAction *action, ThunarStandardView *standard_view); static void thunar_standard_view_action_create_folder (GtkAction *action, @@ -171,7 +183,9 @@ ThunarStandardView *standard_view); static void thunar_standard_view_action_paste (GtkAction *action, ThunarStandardView *standard_view); -static void thunar_standard_view_action_delete (GtkAction *action, +static void thunar_standard_view_action_move_to_trash (GtkAction *action, + ThunarStandardView *standard_view); +static void thunar_standard_view_action_delete (GtkAction *action, ThunarStandardView *standard_view); static void thunar_standard_view_action_paste_into_folder (GtkAction *action, ThunarStandardView *standard_view); @@ -179,6 +193,8 @@ ThunarStandardView *standard_view); static void thunar_standard_view_action_select_by_pattern (GtkAction *action, ThunarStandardView *standard_view); +static void thunar_standard_view_action_selection_invert (GtkAction *action, + ThunarStandardView *standard_view); static void thunar_standard_view_action_duplicate (GtkAction *action, ThunarStandardView *standard_view); static void thunar_standard_view_action_make_link (GtkAction *action, @@ -187,7 +203,8 @@ ThunarStandardView *standard_view); static void thunar_standard_view_action_restore (GtkAction *action, ThunarStandardView *standard_view); -static GClosure *thunar_standard_view_new_files_closure (ThunarStandardView *standard_view); +static GClosure *thunar_standard_view_new_files_closure (ThunarStandardView *standard_view, + GtkWidget *source_view); static void thunar_standard_view_new_files (ThunarStandardView *standard_view, GList *path_list); static gboolean thunar_standard_view_button_release_event (GtkWidget *view, @@ -247,8 +264,18 @@ static void thunar_standard_view_row_deleted (ThunarListModel *model, GtkTreePath *path, ThunarStandardView *standard_view); -static void thunar_standard_view_restore_selection (ThunarListModel *model, +static void thunar_standard_view_select_after_row_deleted (ThunarListModel *model, + GtkTreePath *path, + ThunarStandardView *standard_view); +static gboolean thunar_standard_view_restore_selection_idle (ThunarStandardView *standard_view); +static void thunar_standard_view_row_changed (ThunarListModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + ThunarStandardView *standard_view); +static void thunar_standard_view_rows_reordered (ThunarListModel *model, GtkTreePath *path, + GtkTreeIter *iter, + gpointer new_order, ThunarStandardView *standard_view); static void thunar_standard_view_error (ThunarListModel *model, const GError *error, @@ -260,40 +287,68 @@ static void thunar_standard_view_drag_scroll_timer_destroy (gpointer user_data); static gboolean thunar_standard_view_drag_timer (gpointer user_data); static void thunar_standard_view_drag_timer_destroy (gpointer user_data); +static void thunar_standard_view_finished_thumbnailing (ThunarThumbnailer *thumbnailer, + guint request, + ThunarStandardView *standard_view); +static void thunar_standard_view_thumbnailing_destroyed (gpointer data); +static void thunar_standard_view_cancel_thumbnailing (ThunarStandardView *standard_view); +static void thunar_standard_view_schedule_thumbnail_timeout (ThunarStandardView *standard_view); +static void thunar_standard_view_schedule_thumbnail_idle (ThunarStandardView *standard_view); +static gboolean thunar_standard_view_request_thumbnails (gpointer data); +static gboolean thunar_standard_view_request_thumbnails_lazy (gpointer data); +static void thunar_standard_view_thumbnail_mode_toggled (ThunarStandardView *standard_view, + GParamSpec *pspec, + ThunarIconFactory *icon_factory); +static void thunar_standard_view_scrolled (GtkAdjustment *adjustment, + ThunarStandardView *standard_view); +static void thunar_standard_view_size_allocate (ThunarStandardView *standard_view, + GtkAllocation *allocation); struct _ThunarStandardViewPrivate { + /* current directory of the view */ + ThunarFile *current_directory; + GtkAction *action_create_folder; GtkAction *action_create_document; GtkAction *action_properties; GtkAction *action_cut; GtkAction *action_copy; GtkAction *action_paste; + GtkAction *action_move_to_trash; GtkAction *action_delete; GtkAction *action_paste_into_folder; - GtkAction *action_select_all_files; - GtkAction *action_select_by_pattern; GtkAction *action_duplicate; GtkAction *action_make_link; GtkAction *action_rename; GtkAction *action_restore; + /* history of the current view */ + ThunarHistory *history; + /* support for file manager extensions */ ThunarxProviderFactory *provider_factory; /* zoom-level support */ ThunarZoomLevel zoom_level; + /* scroll_to_file support */ + GHashTable *scroll_to_files; + + /* statusbar */ + gchar *statusbar_text; + guint statusbar_text_idle_id; + /* custom menu actions support */ GtkActionGroup *custom_actions; gint custom_merge_id; /* right-click drag/popup support */ GList *drag_g_file_list; - gint drag_scroll_timer_id; - gint drag_timer_id; + guint drag_scroll_timer_id; + guint drag_timer_id; gint drag_x; gint drag_y; @@ -303,16 +358,16 @@ guint drop_occurred : 1; /* whether the data was dropped */ GList *drop_file_list; /* the list of URIs that are contained in the drop data */ - /* the "new-files" closure, which is used to select files whenever + /* the "new-files" closure, which is used to select files whenever * new files are created by a ThunarJob associated with this view */ GClosure *new_files_closure; - /* the "new-files" path list that was remember in the closure callback + /* the "new-files" path list that was remembered in the closure callback * if the view is currently being loaded and as such the folder may * not have all "new-files" at hand. This list is used when the * folder tells that it's ready loading and the view will try again - * to select exactly this files. + * to select exactly these files. */ GList *new_files_path_list; @@ -325,8 +380,18 @@ /* selected_files support */ GList *selected_files; + guint restore_selection_idle_id; + + /* support for generating thumbnails */ + ThunarThumbnailer *thumbnailer; + guint thumbnail_request; + guint thumbnail_source_id; + gboolean thumbnailing_scheduled; + + /* file insert signal */ + gulong row_changed_id; - /* Tree path for restoring the selection after selecting and + /* Tree path for restoring the selection after selecting and * deleting an item */ GtkTreePath *selection_before_delete; }; @@ -337,15 +402,17 @@ { { "file-context-menu", NULL, N_ ("File Context Menu"), NULL, NULL, NULL, }, { "folder-context-menu", NULL, N_ ("Folder Context Menu"), NULL, NULL, NULL, }, - { "create-folder", NULL, N_ ("Create _Folder..."), "N", N_ ("Create an empty folder within the current folder"), G_CALLBACK (thunar_standard_view_action_create_folder), }, + { "create-folder", "folder-new", N_ ("Create _Folder..."), "N", N_ ("Create an empty folder within the current folder"), G_CALLBACK (thunar_standard_view_action_create_folder), }, { "properties", GTK_STOCK_PROPERTIES, N_ ("_Properties..."), "Return", N_ ("View the properties of the selected file"), G_CALLBACK (thunar_standard_view_action_properties), }, { "cut", GTK_STOCK_CUT, N_ ("Cu_t"), NULL, NULL, G_CALLBACK (thunar_standard_view_action_cut), }, { "copy", GTK_STOCK_COPY, N_ ("_Copy"), NULL, NULL, G_CALLBACK (thunar_standard_view_action_copy), }, { "paste", GTK_STOCK_PASTE, N_ ("_Paste"), NULL, N_ ("Move or copy files previously selected by a Cut or Copy command"), G_CALLBACK (thunar_standard_view_action_paste), }, + { "move-to-trash", THUNAR_STOCK_TRASH_FULL, N_ ("Mo_ve to Trash"), NULL, NULL, G_CALLBACK (thunar_standard_view_action_move_to_trash), }, { "delete", GTK_STOCK_DELETE, N_ ("_Delete"), NULL, NULL, G_CALLBACK (thunar_standard_view_action_delete), }, { "paste-into-folder", GTK_STOCK_PASTE, N_ ("Paste Into Folder"), NULL, N_ ("Move or copy files previously selected by a Cut or Copy command into the selected folder"), G_CALLBACK (thunar_standard_view_action_paste_into_folder), }, { "select-all-files", NULL, N_ ("Select _all Files"), NULL, N_ ("Select all files in this window"), G_CALLBACK (thunar_standard_view_action_select_all_files), }, { "select-by-pattern", NULL, N_ ("Select _by Pattern..."), "S", N_ ("Select all files that match a certain pattern"), G_CALLBACK (thunar_standard_view_action_select_by_pattern), }, + { "invert-selection", NULL, N_ ("_Invert Selection"), NULL, N_ ("Select all and only the items that are not currently selected"), G_CALLBACK (thunar_standard_view_action_selection_invert), }, { "duplicate", NULL, N_ ("Du_plicate"), NULL, NULL, G_CALLBACK (thunar_standard_view_action_duplicate), }, { "make-link", NULL, N_ ("Ma_ke Link"), NULL, NULL, G_CALLBACK (thunar_standard_view_action_make_link), }, { "rename", NULL, N_ ("_Rename..."), "F2", NULL, G_CALLBACK (thunar_standard_view_action_rename), }, @@ -368,7 +435,8 @@ -static guint standard_view_signals[LAST_SIGNAL]; +static guint standard_view_signals[LAST_SIGNAL]; +static GParamSpec *standard_view_props[N_PROPERTIES] = { NULL, }; @@ -385,6 +453,7 @@ GtkWidgetClass *gtkwidget_class; GtkBindingSet *binding_set; GObjectClass *gobject_class; + gpointer g_iface; g_type_class_add_private (klass, sizeof (ThunarStandardViewPrivate)); @@ -410,27 +479,74 @@ * * Whether the folder associated with this view is * currently being loaded from the underlying media. + * + * Override property to set the property as writable + * for the binding. + **/ + standard_view_props[PROP_LOADING] = + g_param_spec_override ("loading", + g_param_spec_boolean ("loading", + "loading", + "loading", + FALSE, + EXO_PARAM_READWRITE)); + + /** + * ThunarStandardView:display-name: + * + * Display name of the current directory, for label text + **/ + standard_view_props[PROP_DISPLAY_NAME] = + g_param_spec_string ("display-name", + "display-name", + "display-name", + NULL, + EXO_PARAM_READABLE); + + /** + * ThunarStandardView:parse-name: + * + * Full parsed name of the current directory, for label tooltip **/ - g_object_class_install_property (gobject_class, - PROP_LOADING, - g_param_spec_override ("loading", - g_param_spec_boolean ("loading", - "loading", - "loading", - FALSE, - EXO_PARAM_READWRITE))); + standard_view_props[PROP_TOOLTIP_TEXT] = + g_param_spec_string ("tooltip-text", + "tooltip-text", + "tooltip-text", + NULL, + EXO_PARAM_READABLE); /* override ThunarComponent's properties */ - g_object_class_override_property (gobject_class, PROP_SELECTED_FILES, "selected-files"); - g_object_class_override_property (gobject_class, PROP_UI_MANAGER, "ui-manager"); + g_iface = g_type_default_interface_peek (THUNAR_TYPE_COMPONENT); + standard_view_props[PROP_SELECTED_FILES] = + g_param_spec_override ("selected-files", + g_object_interface_find_property (g_iface, "selected-files")); + + standard_view_props[PROP_UI_MANAGER] = + g_param_spec_override ("ui-manager", + g_object_interface_find_property (g_iface, "ui-manager")); /* override ThunarNavigator's properties */ - g_object_class_override_property (gobject_class, PROP_CURRENT_DIRECTORY, "current-directory"); + g_iface = g_type_default_interface_peek (THUNAR_TYPE_NAVIGATOR); + standard_view_props[PROP_CURRENT_DIRECTORY] = + g_param_spec_override ("current-directory", + g_object_interface_find_property (g_iface, "current-directory")); /* override ThunarView's properties */ - g_object_class_override_property (gobject_class, PROP_STATUSBAR_TEXT, "statusbar-text"); - g_object_class_override_property (gobject_class, PROP_SHOW_HIDDEN, "show-hidden"); - g_object_class_override_property (gobject_class, PROP_ZOOM_LEVEL, "zoom-level"); + g_iface = g_type_default_interface_peek (THUNAR_TYPE_VIEW); + standard_view_props[PROP_STATUSBAR_TEXT] = + g_param_spec_override ("statusbar-text", + g_object_interface_find_property (g_iface, "statusbar-text")); + + standard_view_props[PROP_SHOW_HIDDEN] = + g_param_spec_override ("show-hidden", + g_object_interface_find_property (g_iface, "show-hidden")); + + standard_view_props[PROP_ZOOM_LEVEL] = + g_param_spec_override ("zoom-level", + g_object_interface_find_property (g_iface, "zoom-level")); + + /* install all properties */ + g_object_class_install_properties (gobject_class, N_PROPERTIES, standard_view_props); /** * ThunarStandardView::start-opn-location: @@ -520,10 +636,9 @@ thunar_standard_view_init (ThunarStandardView *standard_view) { standard_view->priv = THUNAR_STANDARD_VIEW_GET_PRIVATE (standard_view); - standard_view->priv->drag_scroll_timer_id = -1; - standard_view->priv->drag_timer_id = -1; - standard_view->priv->selection_before_delete = NULL; + /* allocate the scroll_to_files mapping (directory GFile -> first visible child GFile) */ + standard_view->priv->scroll_to_files = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, g_object_unref); /* grab a reference on the preferences */ standard_view->preferences = thunar_preferences_get (); @@ -531,6 +646,11 @@ /* grab a reference on the provider factory */ standard_view->priv->provider_factory = thunarx_provider_factory_get_default (); + /* create a thumbnailer */ + standard_view->priv->thumbnailer = thunar_thumbnailer_get (); + g_signal_connect (G_OBJECT (standard_view->priv->thumbnailer), "request-finished", G_CALLBACK (thunar_standard_view_finished_thumbnailing), standard_view); + standard_view->priv->thumbnailing_scheduled = FALSE; + /* initialize the scrolled window */ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (standard_view), GTK_POLICY_AUTOMATIC, @@ -552,10 +672,9 @@ standard_view->priv->action_cut = gtk_action_group_get_action (standard_view->action_group, "cut"); standard_view->priv->action_copy = gtk_action_group_get_action (standard_view->action_group, "copy"); standard_view->priv->action_paste = gtk_action_group_get_action (standard_view->action_group, "paste"); + standard_view->priv->action_move_to_trash = gtk_action_group_get_action (standard_view->action_group, "move-to-trash"); standard_view->priv->action_delete = gtk_action_group_get_action (standard_view->action_group, "delete"); standard_view->priv->action_paste_into_folder = gtk_action_group_get_action (standard_view->action_group, "paste-into-folder"); - standard_view->priv->action_select_all_files = gtk_action_group_get_action (standard_view->action_group, "select-all-files"); - standard_view->priv->action_select_by_pattern = gtk_action_group_get_action (standard_view->action_group, "select-by-pattern"); standard_view->priv->action_duplicate = gtk_action_group_get_action (standard_view->action_group, "duplicate"); standard_view->priv->action_make_link = gtk_action_group_get_action (standard_view->action_group, "make-link"); standard_view->priv->action_rename = gtk_action_group_get_action (standard_view->action_group, "rename"); @@ -570,14 +689,21 @@ gtk_action_group_add_action (standard_view->action_group, standard_view->priv->action_create_document); g_object_unref (G_OBJECT (standard_view->priv->action_create_document)); + /* setup the history support */ + standard_view->priv->history = g_object_new (THUNAR_TYPE_HISTORY, "action-group", standard_view->action_group, NULL); + g_signal_connect_swapped (G_OBJECT (standard_view->priv->history), "change-directory", G_CALLBACK (thunar_navigator_change_directory), standard_view); + /* setup the list model */ standard_view->model = thunar_list_model_new (); g_signal_connect (G_OBJECT (standard_view->model), "row-deleted", G_CALLBACK (thunar_standard_view_row_deleted), standard_view); - g_signal_connect_after (G_OBJECT (standard_view->model), "row-deleted", G_CALLBACK (thunar_standard_view_restore_selection), standard_view); + g_signal_connect_after (G_OBJECT (standard_view->model), "row-deleted", G_CALLBACK (thunar_standard_view_select_after_row_deleted), standard_view); + standard_view->priv->row_changed_id = g_signal_connect (G_OBJECT (standard_view->model), "row-changed", G_CALLBACK (thunar_standard_view_row_changed), standard_view); + g_signal_connect (G_OBJECT (standard_view->model), "rows-reordered", G_CALLBACK (thunar_standard_view_rows_reordered), standard_view); g_signal_connect (G_OBJECT (standard_view->model), "error", G_CALLBACK (thunar_standard_view_error), standard_view); exo_binding_new (G_OBJECT (standard_view->preferences), "misc-case-sensitive", G_OBJECT (standard_view->model), "case-sensitive"); exo_binding_new (G_OBJECT (standard_view->preferences), "misc-date-style", G_OBJECT (standard_view->model), "date-style"); exo_binding_new (G_OBJECT (standard_view->preferences), "misc-folders-first", G_OBJECT (standard_view->model), "folders-first"); + exo_binding_new (G_OBJECT (standard_view->preferences), "misc-file-size-binary", G_OBJECT (standard_view->model), "file-size-binary"); /* setup the icon renderer */ standard_view->icon_renderer = thunar_icon_renderer_new (); @@ -596,6 +722,13 @@ * files in our model changes. */ g_signal_connect_swapped (G_OBJECT (standard_view->model), "notify::num-files", G_CALLBACK (thunar_standard_view_update_statusbar_text), standard_view); + + /* be sure to update the statusbar text whenever the file-size-binary property changes */ + g_signal_connect_swapped (G_OBJECT (standard_view->model), "notify::file-size-binary", G_CALLBACK (thunar_standard_view_update_statusbar_text), standard_view); + + /* connect to size allocation signals for generating thumbnail requests */ + g_signal_connect_after (G_OBJECT (standard_view), "size-allocate", + G_CALLBACK (thunar_standard_view_size_allocate), NULL); } @@ -607,6 +740,7 @@ { ThunarStandardView *standard_view; ThunarZoomLevel zoom_level; + GtkAdjustment *adjustment; ThunarColumn sort_column; GtkSortType sort_order; GtkWidget *view; @@ -625,7 +759,7 @@ thunar_view_set_zoom_level (THUNAR_VIEW (standard_view), zoom_level); /* save the "zoom-level" as "last--zoom-level" whenever the user changes the zoom level */ - exo_binding_new (object, "zoom-level", G_OBJECT (standard_view->preferences), THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->zoom_level_property_name); + g_object_bind_property (object, "zoom-level", G_OBJECT (standard_view->preferences), THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->zoom_level_property_name, G_BINDING_DEFAULT); /* determine the real view widget (treeview or iconview) */ view = GTK_BIN (object)->child; @@ -667,6 +801,14 @@ g_signal_connect (G_OBJECT (view), "drag-data-delete", G_CALLBACK (thunar_standard_view_drag_data_delete), object); g_signal_connect (G_OBJECT (view), "drag-end", G_CALLBACK (thunar_standard_view_drag_end), object); + /* connect to scroll events for generating thumbnail requests */ + adjustment = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (standard_view)); + g_signal_connect (adjustment, "value-changed", + G_CALLBACK (thunar_standard_view_scrolled), object); + adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (standard_view)); + g_signal_connect (adjustment, "value-changed", + G_CALLBACK (thunar_standard_view_scrolled), object); + /* done, we have a working object */ return object; } @@ -678,21 +820,33 @@ { ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (object); + /* cancel pending thumbnail sources and requests */ + thunar_standard_view_cancel_thumbnailing (standard_view); + /* unregister the "loading" binding */ if (G_UNLIKELY (standard_view->loading_binding != NULL)) exo_binding_unbind (standard_view->loading_binding); /* be sure to cancel any pending drag autoscroll timer */ - if (G_UNLIKELY (standard_view->priv->drag_scroll_timer_id >= 0)) + if (G_UNLIKELY (standard_view->priv->drag_scroll_timer_id != 0)) g_source_remove (standard_view->priv->drag_scroll_timer_id); /* be sure to cancel any pending drag timer */ - if (G_UNLIKELY (standard_view->priv->drag_timer_id >= 0)) + if (G_UNLIKELY (standard_view->priv->drag_timer_id != 0)) g_source_remove (standard_view->priv->drag_timer_id); /* reset the UI manager property */ thunar_component_set_ui_manager (THUNAR_COMPONENT (standard_view), NULL); + /* disconnect from file */ + if (standard_view->priv->current_directory != NULL) + { + g_signal_handlers_disconnect_matched (standard_view->priv->current_directory, + G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, standard_view); + g_object_unref (standard_view->priv->current_directory); + standard_view->priv->current_directory = NULL; + } + (*G_OBJECT_CLASS (thunar_standard_view_parent_class)->dispose) (object); } @@ -709,12 +863,16 @@ _thunar_assert (standard_view->ui_manager == NULL); _thunar_assert (standard_view->clipboard == NULL); + /* release the thumbnailer */ + g_signal_handlers_disconnect_by_func (standard_view->priv->thumbnailer, thunar_standard_view_finished_thumbnailing, standard_view); + g_object_unref (standard_view->priv->thumbnailer); + /* release the scroll_to_file reference (if any) */ if (G_UNLIKELY (standard_view->priv->scroll_to_file != NULL)) g_object_unref (G_OBJECT (standard_view->priv->scroll_to_file)); /* release the selected_files list (if any) */ - thunar_file_list_free (standard_view->priv->selected_files); + thunar_g_file_list_free (standard_view->priv->selected_files); /* release our reference on the provider factory */ g_object_unref (G_OBJECT (standard_view->priv->provider_factory)); @@ -725,6 +883,9 @@ /* release the drop path list (just in case the drag-leave wasn't fired before) */ thunar_g_file_list_free (standard_view->priv->drop_file_list); + /* release the history */ + g_object_unref (standard_view->priv->history); + /* release the reference on the name renderer */ g_object_unref (G_OBJECT (standard_view->name_renderer)); @@ -751,12 +912,18 @@ /* disconnect from the list model */ g_signal_handlers_disconnect_matched (G_OBJECT (standard_view->model), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, standard_view); g_object_unref (G_OBJECT (standard_view->model)); - - /* release our list of currently selected files */ - thunar_file_list_free (standard_view->selected_files); + + /* remove selection restore timeout */ + if (standard_view->priv->restore_selection_idle_id != 0) + g_source_remove (standard_view->priv->restore_selection_idle_id); /* free the statusbar text (if any) */ - g_free (standard_view->statusbar_text); + if (standard_view->priv->statusbar_text_idle_id != 0) + g_source_remove (standard_view->priv->statusbar_text_idle_id); + g_free (standard_view->priv->statusbar_text); + + /* release the scroll_to_files hash table */ + g_hash_table_destroy (standard_view->priv->scroll_to_files); (*G_OBJECT_CLASS (thunar_standard_view_parent_class)->finalize) (object); } @@ -769,6 +936,8 @@ GValue *value, GParamSpec *pspec) { + ThunarFile *current_directory; + switch (prop_id) { case PROP_CURRENT_DIRECTORY: @@ -779,6 +948,18 @@ g_value_set_boolean (value, thunar_view_get_loading (THUNAR_VIEW (object))); break; + case PROP_DISPLAY_NAME: + current_directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (object)); + if (current_directory != NULL) + g_value_set_static_string (value, thunar_file_get_display_name (current_directory)); + break; + + case PROP_TOOLTIP_TEXT: + current_directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (object)); + if (current_directory != NULL) + g_value_take_string (value, g_file_get_parse_name (thunar_file_get_file (current_directory))); + break; + case PROP_SELECTED_FILES: g_value_set_boxed (value, thunar_component_get_selected_files (THUNAR_COMPONENT (object))); break; @@ -824,8 +1005,7 @@ case PROP_LOADING: thunar_standard_view_set_loading (standard_view, g_value_get_boolean (value)); break; - break; - + case PROP_SELECTED_FILES: thunar_component_set_selected_files (THUNAR_COMPONENT (object), g_value_get_boxed (value)); break; @@ -867,14 +1047,16 @@ /* we need update the selection state based on the clipboard content */ g_signal_connect_swapped (G_OBJECT (standard_view->clipboard), "changed", G_CALLBACK (thunar_standard_view_selection_changed), standard_view); - thunar_standard_view_selection_changed (standard_view); /* determine the icon factory for the screen on which we are realized */ icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); standard_view->icon_factory = thunar_icon_factory_get_for_icon_theme (icon_theme); - /* we need to redraw whenever the "show-thumbnails" property is toggled */ - g_signal_connect_swapped (G_OBJECT (standard_view->icon_factory), "notify::show-thumbnails", G_CALLBACK (gtk_widget_queue_draw), standard_view); + /* we need to redraw whenever the "thumbnail_mode" property is toggled */ + g_signal_connect_swapped (standard_view->icon_factory, + "notify::thumbnail_mode", + G_CALLBACK (thunar_standard_view_thumbnail_mode_toggled), + standard_view); } @@ -952,7 +1134,7 @@ static GList* thunar_standard_view_get_selected_files (ThunarComponent *component) { - return THUNAR_STANDARD_VIEW (component)->selected_files; + return THUNAR_STANDARD_VIEW (component)->priv->selected_files; } @@ -969,7 +1151,7 @@ /* release the previous selected files list (if any) */ if (G_UNLIKELY (standard_view->priv->selected_files != NULL)) { - thunar_file_list_free (standard_view->priv->selected_files); + thunar_g_file_list_free (standard_view->priv->selected_files); standard_view->priv->selected_files = NULL; } @@ -977,7 +1159,7 @@ if (thunar_view_get_loading (THUNAR_VIEW (standard_view))) { /* remember a copy of the list for later */ - standard_view->priv->selected_files = thunar_file_list_copy (selected_files); + standard_view->priv->selected_files = thunar_g_file_list_copy (selected_files); } else { @@ -1014,8 +1196,7 @@ (*THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->scroll_to_path) (standard_view, first_path, FALSE, 0.0f, 0.0f); /* release the tree paths */ - g_list_foreach (paths, (GFunc) gtk_tree_path_free, NULL); - g_list_free (paths); + g_list_free_full (paths, (GDestroyNotify) gtk_tree_path_free); } } } @@ -1037,6 +1218,10 @@ ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (component); GError *error = NULL; + /* leave if nothing changed */ + if (standard_view->ui_manager == ui_manager) + return; + /* disconnect from the previous UI manager */ if (G_LIKELY (standard_view->ui_manager != NULL)) { @@ -1064,6 +1249,9 @@ /* unmerge our ui controls from the previous UI manager */ gtk_ui_manager_remove_ui (standard_view->ui_manager, standard_view->ui_merge_id); + /* force update to remove all actions and proxies */ + gtk_ui_manager_ensure_update (standard_view->ui_manager); + /* drop the reference on the previous UI manager */ g_object_unref (G_OBJECT (standard_view->ui_manager)); } @@ -1091,10 +1279,13 @@ /* merge the ui controls from derived classes */ (*THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->connect_ui_manager) (standard_view, ui_manager); + + /* force update to avoid flickering */ + gtk_ui_manager_ensure_update (standard_view->ui_manager); } /* let others know that we have a new manager */ - g_object_notify (G_OBJECT (standard_view), "ui-manager"); + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_UI_MANAGER]); } @@ -1103,16 +1294,97 @@ thunar_standard_view_get_current_directory (ThunarNavigator *navigator) { ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (navigator); - ThunarFolder *folder; - _thunar_return_val_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view), NULL); + return standard_view->priv->current_directory; +} - /* try to determine the current folder from the model */ - folder = thunar_list_model_get_folder (standard_view->model); - if (G_LIKELY (folder != NULL)) - return thunar_folder_get_corresponding_file (folder); - return NULL; + +static void +thunar_standard_view_scroll_position_save (ThunarStandardView *standard_view) +{ + ThunarFile *first_file; + GtkAdjustment *vadjustment; + GtkAdjustment *hadjustment; + GFile *gfile; + + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + /* store the previous directory in the scroll hash table */ + if (standard_view->priv->current_directory != NULL) + { + /* only stop the first file is the scroll bar is actually moved */ + vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (standard_view)); + hadjustment = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (standard_view)); + gfile = thunar_file_get_file (standard_view->priv->current_directory); + + if (gtk_adjustment_get_value (vadjustment) == 0.0 + && gtk_adjustment_get_value (hadjustment) == 0.0) + { + /* remove from the hash table, we already scroll to 0,0 */ + g_hash_table_remove (standard_view->priv->scroll_to_files, gfile); + } + else if (thunar_view_get_visible_range (THUNAR_VIEW (standard_view), &first_file, NULL)) + { + /* add the file to our internal mapping of directories to scroll files */ + g_hash_table_replace (standard_view->priv->scroll_to_files, + g_object_ref (gfile), + g_object_ref (thunar_file_get_file (first_file))); + g_object_unref (first_file); + } + } +} + + + +static void +thunar_standard_view_restore_selection_from_history (ThunarStandardView *standard_view) +{ + GList selected_files; + ThunarFile *selected_file; + + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + _thunar_return_if_fail (THUNAR_IS_FILE (standard_view->priv->current_directory)); + + /* reset the selected files list */ + selected_files.data = NULL; + selected_files.prev = NULL; + selected_files.next = NULL; + + /* determine the next file in the history */ + selected_file = thunar_history_peek_forward (standard_view->priv->history); + if (selected_file != NULL) + { + /* mark the file from history for selection if it is inside the new + * directory */ + if (thunar_file_is_parent (standard_view->priv->current_directory, selected_file)) + selected_files.data = selected_file; + else + g_object_unref (selected_file); + } + + /* do the same with the previous file in the history */ + if (selected_files.data == NULL) + { + selected_file = thunar_history_peek_back (standard_view->priv->history); + if (selected_file != NULL) + { + /* mark the file from history for selection if it is inside the + * new directory */ + if (thunar_file_is_parent (standard_view->priv->current_directory, selected_file)) + selected_files.data = selected_file; + else + g_object_unref (selected_file); + } + } + + /* select the previous or next file from the history if it is inside the + * new current directory */ + if (selected_files.data != NULL) + { + thunar_component_set_selected_files (THUNAR_COMPONENT (standard_view), &selected_files); + g_object_unref (G_OBJECT (selected_files.data)); + } } @@ -1128,13 +1400,35 @@ _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); _thunar_return_if_fail (current_directory == NULL || THUNAR_IS_FILE (current_directory)); + /* get the current directory */ + if (standard_view->priv->current_directory == current_directory) + return; + + /* cancel any pending thumbnail sources and requests */ + thunar_standard_view_cancel_thumbnailing (standard_view); + /* disconnect any previous "loading" binding */ if (G_LIKELY (standard_view->loading_binding != NULL)) exo_binding_unbind (standard_view->loading_binding); + /* store the current scroll position */ + if (current_directory != NULL) + thunar_standard_view_scroll_position_save (standard_view); + + /* release previous directory */ + if (standard_view->priv->current_directory != NULL) + { + g_signal_handlers_disconnect_matched (standard_view->priv->current_directory, + G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, standard_view); + g_object_unref (standard_view->priv->current_directory); + } + /* check if we want to reset the directory */ if (G_UNLIKELY (current_directory == NULL)) { + /* unset */ + standard_view->priv->current_directory = NULL; + /* resetting the folder for the model can take some time if the view has * to update the selection everytime (i.e. closing a window with a lot of * selected files), so we temporarily disconnect the model from the view. @@ -1151,10 +1445,18 @@ return; } + /* take ref on new directory */ + standard_view->priv->current_directory = g_object_ref (current_directory); + g_signal_connect (G_OBJECT (current_directory), "destroy", G_CALLBACK (thunar_standard_view_current_directory_destroy), standard_view); + g_signal_connect (G_OBJECT (current_directory), "changed", G_CALLBACK (thunar_standard_view_current_directory_changed), standard_view); + /* scroll to top-left when changing folder */ gtk_adjustment_set_value (gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (standard_view)), 0.0); gtk_adjustment_set_value (gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (standard_view)), 0.0); + /* store the directory in the history */ + thunar_navigator_set_current_directory (THUNAR_NAVIGATOR (standard_view->priv->history), current_directory); + /* We drop the model from the view as a simple optimization to speed up * the process of disconnecting the model data from the view. */ @@ -1189,8 +1491,18 @@ /* update the "Restore" action */ gtk_action_set_visible (standard_view->priv->action_restore, trashed); + /* schedule a thumbnail timeout */ + /* NOTE: quickly after this we always trigger a size allocate wich will handle this */ + /* notify all listeners about the new/old current directory */ - g_object_notify (G_OBJECT (standard_view), "current-directory"); + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_CURRENT_DIRECTORY]); + + /* update tab label and tooltip */ + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_DISPLAY_NAME]); + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_TOOLTIP_TEXT]); + + /* restore the selection from the history */ + thunar_standard_view_restore_selection_from_history (standard_view); } @@ -1210,6 +1522,8 @@ ThunarFile *file; GList *new_files_path_list; GList *selected_files; + GFile *first_file; + ThunarFile *current_directory; loading = !!loading; @@ -1220,22 +1534,49 @@ /* apply the new state */ standard_view->loading = loading; + /* block or unblock the insert signal to avoid queueing thumbnail reloads */ + if (loading) + g_signal_handler_block (standard_view->model, standard_view->priv->row_changed_id); + else + g_signal_handler_unblock (standard_view->model, standard_view->priv->row_changed_id); + /* check if we're done loading and have a scheduled scroll_to_file */ - if (G_UNLIKELY (!loading && standard_view->priv->scroll_to_file != NULL)) + if (G_UNLIKELY (!loading)) { - /* remember and reset the scroll_to_file reference */ - file = standard_view->priv->scroll_to_file; - standard_view->priv->scroll_to_file = NULL; - - /* and try again */ - thunar_view_scroll_to_file (THUNAR_VIEW (standard_view), file, - standard_view->priv->scroll_to_select, - standard_view->priv->scroll_to_use_align, - standard_view->priv->scroll_to_row_align, - standard_view->priv->scroll_to_col_align); + if (standard_view->priv->scroll_to_file != NULL) + { + /* remember and reset the scroll_to_file reference */ + file = standard_view->priv->scroll_to_file; + standard_view->priv->scroll_to_file = NULL; + + /* and try again */ + thunar_view_scroll_to_file (THUNAR_VIEW (standard_view), file, + standard_view->priv->scroll_to_select, + standard_view->priv->scroll_to_use_align, + standard_view->priv->scroll_to_row_align, + standard_view->priv->scroll_to_col_align); - /* cleanup */ - g_object_unref (G_OBJECT (file)); + /* cleanup */ + g_object_unref (G_OBJECT (file)); + } + else + { + /* look for a first visible file in the hash table */ + current_directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (standard_view)); + if (G_LIKELY (current_directory != NULL)) + { + first_file = g_hash_table_lookup (standard_view->priv->scroll_to_files, thunar_file_get_file (current_directory)); + if (G_LIKELY (first_file != NULL)) + { + file = thunar_file_cache_lookup (first_file); + if (G_LIKELY (file != NULL)) + { + thunar_view_scroll_to_file (THUNAR_VIEW (standard_view), file, FALSE, TRUE, 0.0f, 0.0f); + g_object_unref (file); + } + } + } + } } /* check if we have a path list from new_files pending */ @@ -1263,13 +1604,24 @@ thunar_component_set_selected_files (THUNAR_COMPONENT (standard_view), selected_files); /* cleanup */ - thunar_file_list_free (selected_files); + thunar_g_file_list_free (selected_files); + } + + /* check if we're done loading and a thumbnail timeout or idle was requested */ + if (!loading && standard_view->priv->thumbnailing_scheduled) + { + /* We've just finished loading. It will probably take the user some time to + * understand the contents of the folder before he will start interacting + * with the view. So here we can safely schedule an idle function instead + * of a timeout. */ + thunar_standard_view_schedule_thumbnail_idle (standard_view); + standard_view->priv->thumbnailing_scheduled = FALSE; } /* notify listeners */ g_object_freeze_notify (G_OBJECT (standard_view)); - g_object_notify (G_OBJECT (standard_view), "loading"); - g_object_notify (G_OBJECT (standard_view), "statusbar-text"); + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_LOADING]); + thunar_standard_view_update_statusbar_text (standard_view); g_object_thaw_notify (G_OBJECT (standard_view)); } @@ -1284,7 +1636,7 @@ _thunar_return_val_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view), NULL); /* generate the statusbar text on-demand */ - if (standard_view->statusbar_text == NULL) + if (standard_view->priv->statusbar_text == NULL) { /* query the selected items (actually a list of GtkTreePath's) */ items = THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->get_selected_items (standard_view); @@ -1295,12 +1647,11 @@ if (items == NULL && standard_view->loading) return _("Loading folder contents..."); - standard_view->statusbar_text = thunar_list_model_get_statusbar_text (standard_view->model, items); - g_list_foreach (items, (GFunc) gtk_tree_path_free, NULL); - g_list_free (items); + standard_view->priv->statusbar_text = thunar_list_model_get_statusbar_text (standard_view->model, items); + g_list_free_full (items, (GDestroyNotify) gtk_tree_path_free); } - return standard_view->statusbar_text; + return standard_view->priv->statusbar_text; } @@ -1340,7 +1691,7 @@ if (G_LIKELY (standard_view->priv->zoom_level != zoom_level)) { standard_view->priv->zoom_level = zoom_level; - g_object_notify (G_OBJECT (standard_view), "zoom-level"); + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_ZOOM_LEVEL]); } } @@ -1366,7 +1717,8 @@ static void -thunar_standard_view_reload (ThunarView *view) +thunar_standard_view_reload (ThunarView *view, + gboolean reload_info) { ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (view); ThunarFolder *folder; @@ -1374,7 +1726,11 @@ /* determine the folder for the view model */ folder = thunar_list_model_get_folder (standard_view->model); if (G_LIKELY (folder != NULL)) - thunar_folder_reload (folder); + thunar_folder_reload (folder, reload_info); + + /* schedule thumbnail reload update */ + if (!standard_view->priv->thumbnailing_scheduled) + thunar_standard_view_schedule_thumbnail_idle (standard_view); } @@ -1470,8 +1826,7 @@ } /* cleanup */ - g_list_foreach (paths, (GFunc) gtk_tree_path_free, NULL); - g_list_free (paths); + g_list_free_full (paths, (GDestroyNotify) gtk_tree_path_free); } } } @@ -1481,27 +1836,36 @@ static gboolean thunar_standard_view_delete_selected_files (ThunarStandardView *standard_view) { - GtkAction *action = GTK_ACTION (standard_view->priv->action_delete); + GtkAction *action = GTK_ACTION (standard_view->priv->action_move_to_trash); const gchar *accel_path; GtkAccelKey key; - GdkModifierType state; - gboolean permanently; _thunar_return_val_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view), FALSE); - /* if this looks like a permanently delete */ - permanently = (gtk_get_current_event_state (&state) && (state & GDK_SHIFT_MASK) != 0); - - /* check if the user defined a custom accelerator and is not holding the - * shift button. if he or she has, we don't response to the predefined key - * bindings (bug #4173) */ - accel_path = gtk_action_get_accel_path (action); - if (accel_path != NULL && gtk_accel_map_lookup_entry (accel_path, &key) - && key.accel_key != 0 && key.accel_mods != 0 && permanently == FALSE) - return FALSE; + if (thunar_g_vfs_is_uri_scheme_supported ("trash")) + { + /* Check if there is a user defined accelerator for the delete action, + * if there is, skip events from the hard-coded keys which are set in + * the class of the standard view. See bug #4173. + * + * The trick here is that if a custom accelerator is set by the user, + * this function is never called. If a hardcoded key combination is + * pressed and a custom accelerator is set, accel_key || accel_mods + * are no 0. */ + accel_path = gtk_action_get_accel_path (action); + if (accel_path != NULL + && gtk_accel_map_lookup_entry (accel_path, &key) + && (key.accel_key != 0 || key.accel_mods != 0)) + return FALSE; - /* just emit the "activate" signal on the "delete" action */ - gtk_action_activate (action); + /* just emit the "activate" signal on the "move-trash" action */ + gtk_action_activate (action); + } + else + { + /* do a permanent delete */ + gtk_action_activate (GTK_ACTION (standard_view->priv->action_delete)); + } /* ...and we're done */ return TRUE; @@ -1653,8 +2017,9 @@ { gtk_tree_model_get_iter (GTK_TREE_MODEL (standard_view->model), &iter, lp->data); file = thunar_list_model_get_file (standard_view->model, &iter); - files = g_list_append (files, file); + files = g_list_prepend (files, file); } + files = g_list_reverse (files); } else { @@ -1678,7 +2043,7 @@ /* cleanup the selected files list (if any) */ if (G_LIKELY (files != NULL)) - thunar_file_list_free (files); + thunar_g_file_list_free (files); } /* remove the previously determined menu actions from the UI manager */ @@ -1747,17 +2112,162 @@ +static gboolean +thunar_standard_view_update_statusbar_text_idle (gpointer data) +{ + ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (data); + + _thunar_return_val_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view), FALSE); + + GDK_THREADS_ENTER (); + + /* clear the current status text (will be recalculated on-demand) */ + g_free (standard_view->priv->statusbar_text); + standard_view->priv->statusbar_text = NULL; + + standard_view->priv->statusbar_text_idle_id = 0; + + /* tell everybody that the statusbar text may have changed */ + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_STATUSBAR_TEXT]); + + GDK_THREADS_LEAVE (); + + return FALSE; +} + + + static void thunar_standard_view_update_statusbar_text (ThunarStandardView *standard_view) { + /* stop pending timeout */ + if (standard_view->priv->statusbar_text_idle_id != 0) + g_source_remove (standard_view->priv->statusbar_text_idle_id); + + /* restart a new one, this way we avoid multiple update when + * the user is pressing a key to scroll */ + standard_view->priv->statusbar_text_idle_id = + g_timeout_add_full (G_PRIORITY_LOW, 50, thunar_standard_view_update_statusbar_text_idle, + standard_view, NULL); +} + + + +/* + * Find a fallback directory we can navigate to if the directory gets + * deleted. It first tries the parent folders, and finally if none can + * be found, the home folder. If the home folder cannot be accessed, + * the error will be stored for use by the caller. + */ +static ThunarFile * +thunar_standard_view_get_fallback_directory (ThunarFile *directory, + GError *error) +{ + ThunarFile *new_directory = NULL; + GFile *path; + GFile *tmp; + + _thunar_return_if_fail (THUNAR_IS_FILE (directory)); + + /* determine the path of the directory */ + path = g_object_ref (thunar_file_get_file (directory)); + + /* try to find a parent directory that still exists */ + while (new_directory == NULL) + { + /* check whether the directory exists */ + if (g_file_query_exists (path, NULL)) + { + /* it does, try to load the file */ + new_directory = thunar_file_get (path, NULL); + + /* fall back to $HOME if loading the file failed */ + if (new_directory == NULL) + break; + } + else + { + /* determine the parent of the directory */ + tmp = g_file_get_parent (path); + + /* if there's no parent this means that we've found no parent + * that still exists at all. Fall back to $HOME then */ + if (tmp == NULL) + break; + + /* free the old directory */ + g_object_unref (path); + + /* check the parent next */ + path = tmp; + } + } + + /* release last ref */ + if (path != NULL) + g_object_unref (path); + + if (new_directory == NULL) + { + /* fall-back to the home directory */ + path = thunar_g_file_new_for_home (); + new_directory = thunar_file_get (path, &error); + g_object_unref (path); + } + + return new_directory; +} + + + +static void +thunar_standard_view_current_directory_destroy (ThunarFile *current_directory, + ThunarStandardView *standard_view) +{ + GtkWidget *window; + ThunarFile *new_directory = NULL; + GError *error = NULL; + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + _thunar_return_if_fail (THUNAR_IS_FILE (current_directory)); + _thunar_return_if_fail (standard_view->priv->current_directory == current_directory); - /* clear the current status text (will be recalculated on-demand) */ - g_free (standard_view->statusbar_text); - standard_view->statusbar_text = NULL; + /* get a fallback directory (parents or home) we can navigate to */ + new_directory = thunar_standard_view_get_fallback_directory (current_directory, error); + if (G_UNLIKELY (new_directory == NULL)) + { + /* display an error to the user */ + thunar_dialogs_show_error (GTK_WIDGET (standard_view), error, _("Failed to open the home folder")); + g_error_free (error); + return; + } - /* tell everybody that the statusbar text may have changed */ - g_object_notify (G_OBJECT (standard_view), "statusbar-text"); + /* let the parent window update all active and inactive views (tabs) */ + window = gtk_widget_get_toplevel (GTK_WIDGET (standard_view)); + thunar_window_update_directories (THUNAR_WINDOW (window), + current_directory, + new_directory); + + /* release the reference to the new directory */ + g_object_unref (new_directory); +} + + + +static void +thunar_standard_view_current_directory_changed (ThunarFile *current_directory, + ThunarStandardView *standard_view) +{ + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + _thunar_return_if_fail (THUNAR_IS_FILE (current_directory)); + _thunar_return_if_fail (standard_view->priv->current_directory == current_directory); + + /* update tab label and tooltip */ + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_DISPLAY_NAME]); + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_TOOLTIP_TEXT]); + + /* directory is possibly moved, schedule a thumbnail update */ + thunar_standard_view_schedule_thumbnail_timeout (standard_view); } @@ -1775,9 +2285,9 @@ _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); /* ask the user to enter a name for the new empty file */ - name = thunar_show_create_dialog (GTK_WIDGET (standard_view), - "text/plain", - _("New Empty File"), + name = thunar_show_create_dialog (GTK_WIDGET (standard_view), + "text/plain", + _("New Empty File"), _("New Empty File...")); if (G_LIKELY (name != NULL)) { @@ -1791,8 +2301,8 @@ /* launch the operation */ application = thunar_application_get (); - thunar_application_creat (application, GTK_WIDGET (standard_view), &path_list, - thunar_standard_view_new_files_closure (standard_view)); + thunar_application_creat (application, GTK_WIDGET (standard_view), &path_list, NULL, + thunar_standard_view_new_files_closure (standard_view, NULL)); g_object_unref (application); /* release the path */ @@ -1819,9 +2329,9 @@ _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); /* ask the user to enter a name for the new folder */ - name = thunar_show_create_dialog (GTK_WIDGET (standard_view), - "inode/directory", - _("New Folder"), + name = thunar_show_create_dialog (GTK_WIDGET (standard_view), + "inode/directory", + _("New Folder"), _("Create New Folder")); if (G_LIKELY (name != NULL)) { @@ -1836,7 +2346,7 @@ /* launch the operation */ application = thunar_application_get (); thunar_application_mkdir (application, GTK_WIDGET (standard_view), &path_list, - thunar_standard_view_new_files_closure (standard_view)); + thunar_standard_view_new_files_closure (standard_view, NULL)); g_object_unref (G_OBJECT (application)); /* release the path */ @@ -1857,7 +2367,6 @@ { ThunarApplication *application; ThunarFile *current_directory; - GList source_path_list; GList target_path_list; gchar *name; gchar *title; @@ -1867,13 +2376,13 @@ _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); /* generate a title for the create dialog */ - title = g_strdup_printf (_("Create Document from template \"%s\""), + title = g_strdup_printf (_("Create Document from template \"%s\""), thunar_file_get_display_name (file)); /* ask the user to enter a name for the new document */ - name = thunar_show_create_dialog (GTK_WIDGET (standard_view), - thunar_file_get_content_type (file), - thunar_file_get_display_name (file), + name = thunar_show_create_dialog (GTK_WIDGET (standard_view), + thunar_file_get_content_type (THUNAR_FILE (file)), + thunar_file_get_display_name (file), title); if (G_LIKELY (name != NULL)) { @@ -1881,11 +2390,6 @@ current_directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (standard_view)); if (G_LIKELY (current_directory != NULL)) { - /* fake the source path list */ - source_path_list.data = thunar_file_get_file (file); - source_path_list.next = NULL; - source_path_list.prev = NULL; - /* fake the target path list */ target_path_list.data = g_file_get_child (thunar_file_get_file (current_directory), name); target_path_list.next = NULL; @@ -1893,8 +2397,9 @@ /* launch the operation */ application = thunar_application_get (); - thunar_application_copy_to (application, GTK_WIDGET (standard_view), &source_path_list, &target_path_list, - thunar_standard_view_new_files_closure (standard_view)); + thunar_application_creat (application, GTK_WIDGET (standard_view), &target_path_list, + thunar_file_get_file (file), + thunar_standard_view_new_files_closure (standard_view, NULL)); g_object_unref (G_OBJECT (application)); /* release the target path */ @@ -1915,40 +2420,36 @@ thunar_standard_view_action_properties (GtkAction *action, ThunarStandardView *standard_view) { - ThunarFile *file = NULL; + ThunarFile *directory; GtkWidget *toplevel; GtkWidget *dialog; _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); - /* check if no files are currently selected */ - if (standard_view->selected_files == NULL) - { - /* if we don't have any files selected, we just popup - * the properties dialog for the current folder. - */ - file = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (standard_view)); - } - else if (g_list_length (standard_view->selected_files) == 1) + /* popup the files dialog */ + toplevel = gtk_widget_get_toplevel (GTK_WIDGET (standard_view)); + if (G_LIKELY (toplevel != NULL)) { - /* popup the properties dialog for the one and only selected file */ - file = THUNAR_FILE (standard_view->selected_files->data); - } + dialog = thunar_properties_dialog_new (GTK_WINDOW (toplevel)); - /* popup the properties dialog if we have exactly one file */ - if (G_LIKELY (file != NULL)) - { - toplevel = gtk_widget_get_toplevel (GTK_WIDGET (standard_view)); - if (G_LIKELY (toplevel != NULL)) + /* check if no files are currently selected */ + if (standard_view->priv->selected_files == NULL) + { + /* if we don't have any files selected, we just popup + * the properties dialog for the current folder. + */ + directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (standard_view)); + thunar_properties_dialog_set_file (THUNAR_PROPERTIES_DIALOG (dialog), directory); + } + else { - dialog = g_object_new (THUNAR_TYPE_PROPERTIES_DIALOG, - "destroy-with-parent", TRUE, - "file", file, - NULL); - gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (toplevel)); - gtk_widget_show (dialog); + /* popup the properties dialog for all file(s) */ + thunar_properties_dialog_set_files (THUNAR_PROPERTIES_DIALOG (dialog), + standard_view->priv->selected_files); } + + gtk_widget_show (dialog); } } @@ -1962,7 +2463,7 @@ _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); _thunar_return_if_fail (THUNAR_IS_CLIPBOARD_MANAGER (standard_view->clipboard)); - thunar_clipboard_manager_cut_files (standard_view->clipboard, standard_view->selected_files); + thunar_clipboard_manager_cut_files (standard_view->clipboard, standard_view->priv->selected_files); } @@ -1975,7 +2476,7 @@ _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); _thunar_return_if_fail (THUNAR_IS_CLIPBOARD_MANAGER (standard_view->clipboard)); - thunar_clipboard_manager_copy_files (standard_view->clipboard, standard_view->selected_files); + thunar_clipboard_manager_copy_files (standard_view->clipboard, standard_view->priv->selected_files); } @@ -1993,25 +2494,69 @@ if (G_LIKELY (current_directory != NULL)) { thunar_clipboard_manager_paste_files (standard_view->clipboard, thunar_file_get_file (current_directory), - GTK_WIDGET (standard_view), thunar_standard_view_new_files_closure (standard_view)); + GTK_WIDGET (standard_view), thunar_standard_view_new_files_closure (standard_view, NULL)); } } static void -thunar_standard_view_action_delete (GtkAction *action, - ThunarStandardView *standard_view) +thunar_standard_view_unlink_selection (ThunarStandardView *standard_view, + gboolean permanently) { ThunarApplication *application; - _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); /* delete the selected files */ application = thunar_application_get (); - thunar_application_unlink_files (application, GTK_WIDGET (standard_view), standard_view->selected_files, FALSE); + thunar_application_unlink_files (application, GTK_WIDGET (standard_view), + standard_view->priv->selected_files, + permanently); g_object_unref (G_OBJECT (application)); + + /* do not select new files */ + thunar_component_set_selected_files (THUNAR_COMPONENT (standard_view), NULL); +} + + + +static void +thunar_standard_view_action_move_to_trash (GtkAction *action, + ThunarStandardView *standard_view) +{ + gboolean permanently; + GdkModifierType state; + const gchar *accel_path; + GtkAccelKey key; + + _thunar_return_if_fail (GTK_IS_ACTION (action)); + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + /* check if we should permanently delete the files (user holds shift) */ + permanently = (gtk_get_current_event_state (&state) && (state & GDK_SHIFT_MASK) != 0); + if (permanently) + { + /* look if the user has set a custom accelerator (accel_key != 0) + * that contains a shift modifier */ + accel_path = gtk_action_get_accel_path (action); + if (accel_path != NULL + && gtk_accel_map_lookup_entry (accel_path, &key) + && key.accel_key != 0 + && (key.accel_mods & GDK_SHIFT_MASK) != 0) + permanently = FALSE; + } + + thunar_standard_view_unlink_selection (standard_view, permanently); +} + + + +static void +thunar_standard_view_action_delete (GtkAction *action, + ThunarStandardView *standard_view) +{ + thunar_standard_view_unlink_selection (standard_view, TRUE); } @@ -2026,7 +2571,7 @@ _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); /* determine the first selected file and verify that it's a folder */ - file = g_list_nth_data (standard_view->selected_files, 0); + file = g_list_nth_data (standard_view->priv->selected_files, 0); if (G_LIKELY (file != NULL && thunar_file_is_directory (file))) thunar_clipboard_manager_paste_files (standard_view->clipboard, thunar_file_get_file (file), GTK_WIDGET (standard_view), NULL); } @@ -2053,14 +2598,16 @@ thunar_standard_view_action_select_by_pattern (GtkAction *action, ThunarStandardView *standard_view) { - GtkWidget *window; - GtkWidget *dialog; - GtkWidget *hbox; - GtkWidget *label; - GtkWidget *entry; - GList *paths; - GList *lp; - gint response; + GtkWidget *window; + GtkWidget *dialog; + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *entry; + GList *paths; + GList *lp; + gint response; + const gchar *pattern; + gchar *pattern_extended = NULL; _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); @@ -2085,7 +2632,8 @@ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); - entry = g_object_new (GTK_TYPE_ENTRY, "activates-default", TRUE, NULL); + entry = gtk_entry_new (); + gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); gtk_widget_show (entry); @@ -2093,15 +2641,32 @@ response = gtk_dialog_run (GTK_DIALOG (dialog)); if (response == GTK_RESPONSE_OK) { - /* select all files that match the entered pattern */ - paths = thunar_list_model_get_paths_for_pattern (standard_view->model, gtk_entry_get_text (GTK_ENTRY (entry))); + /* get entered pattern */ + pattern = gtk_entry_get_text (GTK_ENTRY (entry)); + if (pattern != NULL + && strchr (pattern, '*') == NULL + && strchr (pattern, '?') == NULL) + { + /* make file matching pattern */ + pattern_extended = g_strdup_printf ("*%s*", pattern); + pattern = pattern_extended; + } + + /* select all files that match pattern */ + paths = thunar_list_model_get_paths_for_pattern (standard_view->model, pattern); THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->unselect_all (standard_view); + + /* set the cursor and scroll to the first selected item */ + if (paths != NULL) + THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->set_cursor (standard_view, g_list_last (paths)->data, FALSE); + for (lp = paths; lp != NULL; lp = lp->next) { THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->select_path (standard_view, lp->data); gtk_tree_path_free (lp->data); } g_list_free (paths); + g_free (pattern_extended); } gtk_widget_destroy (dialog); @@ -2110,6 +2675,22 @@ static void +thunar_standard_view_action_selection_invert (GtkAction *action, + ThunarStandardView *standard_view) +{ + _thunar_return_if_fail (GTK_IS_ACTION (action)); + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + /* grab the focus to the view */ + gtk_widget_grab_focus (GTK_WIDGET (standard_view)); + + /* invert all files in the real view */ + (*THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->selection_invert) (standard_view); +} + + + +static void thunar_standard_view_action_duplicate (GtkAction *action, ThunarStandardView *standard_view) { @@ -2126,14 +2707,14 @@ if (G_LIKELY (current_directory != NULL)) { /* determine the selected files for the view */ - selected_files = thunar_file_list_to_thunar_g_file_list (standard_view->selected_files); + selected_files = thunar_file_list_to_thunar_g_file_list (standard_view->priv->selected_files); if (G_LIKELY (selected_files != NULL)) { /* copy the selected files into the current directory, which effectively * creates duplicates of the files. */ application = thunar_application_get (); - new_files_closure = thunar_standard_view_new_files_closure (standard_view); + new_files_closure = thunar_standard_view_new_files_closure (standard_view, NULL); thunar_application_copy_into (application, GTK_WIDGET (standard_view), selected_files, thunar_file_get_file (current_directory), new_files_closure); g_object_unref (G_OBJECT (application)); @@ -2163,14 +2744,14 @@ if (G_LIKELY (current_directory != NULL)) { /* determine the selected paths for the view */ - selected_files = thunar_file_list_to_thunar_g_file_list (standard_view->selected_files); + selected_files = thunar_file_list_to_thunar_g_file_list (standard_view->priv->selected_files); if (G_LIKELY (selected_files != NULL)) { /* link the selected files into the current directory, which effectively * creates new unique links for the files. */ application = thunar_application_get (); - new_files_closure = thunar_standard_view_new_files_closure (standard_view); + new_files_closure = thunar_standard_view_new_files_closure (standard_view, NULL); thunar_application_link_into (application, GTK_WIDGET (standard_view), selected_files, thunar_file_get_file (current_directory), new_files_closure); g_object_unref (G_OBJECT (application)); @@ -2188,18 +2769,18 @@ GError *error, ThunarStandardView *standard_view) { - GValueArray *param_values; - ThunarFile *file; + GArray *param_values; + ThunarFile *file; _thunar_return_if_fail (EXO_IS_JOB (job)); _thunar_return_if_fail (error != NULL); _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); param_values = thunar_simple_job_get_param_values (THUNAR_SIMPLE_JOB (job)); - file = g_value_get_object (g_value_array_get_nth (param_values, 0)); + file = g_value_get_object (&g_array_index (param_values, GValue, 0)); /* display an error message */ - thunar_dialogs_show_error (GTK_WIDGET (standard_view), error, + thunar_dialogs_show_error (GTK_WIDGET (standard_view), error, _("Failed to rename \"%s\""), thunar_file_get_display_name (file)); } @@ -2210,14 +2791,14 @@ thunar_standard_view_rename_finished (ExoJob *job, ThunarStandardView *standard_view) { - GValueArray *param_values; - ThunarFile *file; + GArray *param_values; + ThunarFile *file; _thunar_return_if_fail (EXO_IS_JOB (job)); _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); param_values = thunar_simple_job_get_param_values (THUNAR_SIMPLE_JOB (job)); - file = g_value_get_object (g_value_array_get_nth (param_values, 0)); + file = g_value_get_object (&g_array_index (param_values, GValue, 0)); /* make sure the file is still visible */ thunar_view_scroll_to_file (THUNAR_VIEW (standard_view), file, TRUE, FALSE, 0.0f, 0.0f); @@ -2238,21 +2819,43 @@ thunar_standard_view_action_rename (GtkAction *action, ThunarStandardView *standard_view) { - ThunarFile *file; - GtkWidget *window; - ThunarJob *job; + ThunarFile *file; + GtkWidget *window; + ThunarJob *job; + GdkModifierType state; + gboolean force_bulk_renamer; + const gchar *accel_path; + GtkAccelKey key; _thunar_return_if_fail (GTK_IS_ACTION (action)); _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + /* leave if no files are selected */ + if (G_UNLIKELY (standard_view->priv->selected_files == NULL)) + return; + + /* open the bulk renamer also with one file selected and shift */ + force_bulk_renamer = (gtk_get_current_event_state (&state) && (state & GDK_SHIFT_MASK) != 0); + if (G_UNLIKELY (force_bulk_renamer)) + { + /* Check if the user defined a custom accelerator that includes the + * shift button. If he or she has, we won't force the bulk renamer. */ + accel_path = gtk_action_get_accel_path (action); + if (accel_path != NULL + && gtk_accel_map_lookup_entry (accel_path, &key) + && (key.accel_mods & GDK_SHIFT_MASK) != 0) + force_bulk_renamer = FALSE; + } + /* start renaming if we have exactly one selected file */ - if (G_LIKELY (standard_view->selected_files != NULL && standard_view->selected_files->next == NULL)) + if (!force_bulk_renamer + && standard_view->priv->selected_files->next == NULL) { /* get the window */ window = gtk_widget_get_toplevel (GTK_WIDGET (standard_view)); /* get the file */ - file = THUNAR_FILE (standard_view->selected_files->data); + file = THUNAR_FILE (standard_view->priv->selected_files->data); /* run the rename dialog */ job = thunar_dialogs_show_rename_file (GTK_WINDOW (window), file); @@ -2262,13 +2865,13 @@ g_signal_connect (job, "finished", G_CALLBACK (thunar_standard_view_rename_finished), standard_view); } } - else if (g_list_length (standard_view->selected_files) > 1) + else { /* determine the current directory of the view */ file = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (standard_view)); /* display the bulk rename dialog */ - thunar_show_renamer_dialog (GTK_WIDGET (standard_view), file, standard_view->selected_files, FALSE, NULL); + thunar_show_renamer_dialog (GTK_WIDGET (standard_view), file, standard_view->priv->selected_files, FALSE, NULL); } } @@ -2285,16 +2888,19 @@ /* restore the selected files */ application = thunar_application_get (); - thunar_application_restore_files (application, GTK_WIDGET (standard_view), standard_view->selected_files, - thunar_standard_view_new_files_closure (standard_view)); + thunar_application_restore_files (application, GTK_WIDGET (standard_view), standard_view->priv->selected_files, + thunar_standard_view_new_files_closure (standard_view, NULL)); g_object_unref (G_OBJECT (application)); } static GClosure* -thunar_standard_view_new_files_closure (ThunarStandardView *standard_view) +thunar_standard_view_new_files_closure (ThunarStandardView *standard_view, + GtkWidget *source_view) { + _thunar_return_val_if_fail (source_view == NULL || THUNAR_IS_VIEW (source_view), NULL); + /* drop any previous "new-files" closure */ if (G_UNLIKELY (standard_view->priv->new_files_closure != NULL)) { @@ -2302,6 +2908,9 @@ g_closure_unref (standard_view->priv->new_files_closure); } + /* set the remove view data we possibly need to reload */ + g_object_set_data (G_OBJECT (standard_view), I_("source-view"), source_view); + /* allocate a new "new-files" closure */ standard_view->priv->new_files_closure = g_cclosure_new_swap (G_CALLBACK (thunar_standard_view_new_files), standard_view, NULL); g_closure_ref (standard_view->priv->new_files_closure); @@ -2320,6 +2929,9 @@ ThunarFile*file; GList *file_list = NULL; GList *lp; + GtkWidget *source_view; + GFile *parent_file; + gboolean belongs_here; _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); @@ -2338,12 +2950,18 @@ } else if (G_LIKELY (path_list != NULL)) { + /* to check if we should reload */ + parent_file = thunar_file_get_file (standard_view->priv->current_directory); + belongs_here = FALSE; + /* determine the files for the paths */ for (lp = path_list; lp != NULL; lp = lp->next) { file = thunar_file_cache_lookup (lp->data); if (G_LIKELY (file != NULL)) file_list = g_list_prepend (file_list, file); + else if (!belongs_here && g_file_has_parent (lp->data, parent_file)) + belongs_here = TRUE; } /* check if we have any new files here */ @@ -2353,15 +2971,24 @@ thunar_component_set_selected_files (THUNAR_COMPONENT (standard_view), file_list); /* release the file list */ - g_list_free (file_list); + g_list_free_full (file_list, g_object_unref); /* grab the focus to the view widget */ gtk_widget_grab_focus (GTK_BIN (standard_view)->child); } - - /* manually reload the folder to avoid a delay */ - thunar_standard_view_reload (THUNAR_VIEW (standard_view)); + else if (belongs_here) + { + /* thunar files are not created yet, try again later because we know + * some of them belong in this directory, so eventually they + * will get a ThunarFile */ + standard_view->priv->new_files_path_list = thunar_g_file_list_copy (path_list); + } } + + /* when performing dnd between 2 views, we force a reload on the source as well */ + source_view = g_object_get_data (G_OBJECT (standard_view), I_("source-view")); + if (THUNAR_IS_VIEW (source_view)) + thunar_view_reload (THUNAR_VIEW (source_view), FALSE); } @@ -2372,7 +2999,7 @@ ThunarStandardView *standard_view) { _thunar_return_val_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view), FALSE); - _thunar_return_val_if_fail (standard_view->priv->drag_timer_id >= 0, FALSE); + _thunar_return_val_if_fail (standard_view->priv->drag_timer_id != 0, FALSE); /* cancel the pending drag timer */ g_source_remove (standard_view->priv->drag_timer_id); @@ -2394,7 +3021,7 @@ GtkTargetList *target_list; _thunar_return_val_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view), FALSE); - _thunar_return_val_if_fail (standard_view->priv->drag_timer_id >= 0, FALSE); + _thunar_return_val_if_fail (standard_view->priv->drag_timer_id != 0, FALSE); /* check if we passed the DnD threshold */ if (gtk_drag_check_threshold (view, standard_view->priv->drag_x, standard_view->priv->drag_y, event->x, event->y)) @@ -2445,7 +3072,7 @@ if ((event->state & GDK_CONTROL_MASK) != 0 && (event->direction == GDK_SCROLL_UP || event->direction == GDK_SCROLL_DOWN)) { thunar_view_set_zoom_level (THUNAR_VIEW (standard_view), - (event->direction == GDK_SCROLL_DOWN) + (event->direction == GDK_SCROLL_UP) ? MIN (standard_view->priv->zoom_level + 1, THUNAR_ZOOM_N_LEVELS - 1) : MAX (standard_view->priv->zoom_level, 1) - 1); return TRUE; @@ -2468,9 +3095,9 @@ { /* determine the appropriate action ("back" for button 8, "forward" for button 9) */ if (G_UNLIKELY (event->button == 8)) - action = gtk_ui_manager_get_action (standard_view->ui_manager, "/main-menu/go-menu/back"); + action = gtk_ui_manager_get_action (standard_view->ui_manager, "/main-menu/go-menu/placeholder-go-history-actions/back"); else if (G_UNLIKELY (event->button == 9)) - action = gtk_ui_manager_get_action (standard_view->ui_manager, "/main-menu/go-menu/forward"); + action = gtk_ui_manager_get_action (standard_view->ui_manager, "/main-menu/go-menu/placeholder-go-history-actions/forward"); /* perform the action (if any) */ if (G_UNLIKELY (action != NULL)) @@ -2550,7 +3177,7 @@ if (G_LIKELY (*prop_text != '\0' && strchr ((const gchar *) prop_text, G_DIR_SEPARATOR) == NULL)) { /* allocate the relative path for the target */ - path = g_file_resolve_relative_path (thunar_file_get_file (file), + path = g_file_resolve_relative_path (thunar_file_get_file (file), (const gchar *)prop_text); /* determine the new URI */ @@ -2648,6 +3275,8 @@ gchar **bits; gint pid; gint n = 0; + GtkWidget *source_widget; + GtkWidget *source_view = NULL; /* check if we don't already know the drop data */ if (G_LIKELY (!standard_view->priv->drop_data_ready)) @@ -2689,7 +3318,7 @@ { /* reload the folder corresponding to the file */ folder = thunar_folder_get_for_file (file); - thunar_folder_reload (folder); + thunar_folder_reload (folder, FALSE); g_object_unref (G_OBJECT (folder)); } @@ -2715,7 +3344,7 @@ if (G_LIKELY (file != NULL)) { /* determine the absolute path to the target directory */ - working_directory = g_file_get_uri (thunar_file_get_file (file)); + working_directory = thunar_file_dup_uri (file); /* prepare the basic part of the command */ argv[n++] = "exo-desktop-item-edit"; @@ -2727,7 +3356,7 @@ /* determine the toplevel window */ toplevel = gtk_widget_get_toplevel (view); - if (toplevel != NULL && GTK_WIDGET_TOPLEVEL (toplevel)) + if (toplevel != NULL && gtk_widget_is_toplevel (toplevel)) { #if defined(GDK_WINDOWING_X11) /* on X11, we can supply the parent window id here */ @@ -2782,8 +3411,19 @@ /* perform the requested action */ if (G_LIKELY (action != 0)) { + /* look if we can find the drag source widget */ + source_widget = gtk_drag_get_source_widget (context); + if (source_widget != NULL) + { + /* if this is a source view, attach it to the view receiving + * the data, see thunar_standard_view_new_files */ + source_view = gtk_widget_get_parent (source_widget); + if (!THUNAR_IS_VIEW (source_view)) + source_view = NULL; + } + succeed = thunar_dnd_perform (GTK_WIDGET (standard_view), file, standard_view->priv->drop_file_list, - action, thunar_standard_view_new_files_closure (standard_view)); + action, thunar_standard_view_new_files_closure (standard_view, source_view)); } } @@ -2812,7 +3452,7 @@ g_object_set (G_OBJECT (standard_view->icon_renderer), "drop-file", NULL, NULL); /* stop any running drag autoscroll timer */ - if (G_UNLIKELY (standard_view->priv->drag_scroll_timer_id >= 0)) + if (G_UNLIKELY (standard_view->priv->drag_scroll_timer_id != 0)) g_source_remove (standard_view->priv->drag_scroll_timer_id); /* disable the drop highlighting around the view */ @@ -2861,9 +3501,9 @@ file = thunar_standard_view_get_drop_file (standard_view, x, y, &path); /* check if we can save here */ - if (G_LIKELY (file != NULL - && thunar_file_is_local (file) - && thunar_file_is_directory (file) + if (G_LIKELY (file != NULL + && thunar_file_is_local (file) + && thunar_file_is_directory (file) && thunar_file_is_writable (file))) { action = context->suggested_action; @@ -2912,7 +3552,7 @@ } /* start the drag autoscroll timer if not already running */ - if (G_UNLIKELY (standard_view->priv->drag_scroll_timer_id < 0)) + if (G_UNLIKELY (standard_view->priv->drag_scroll_timer_id == 0)) { /* schedule the drag autoscroll timer */ standard_view->priv->drag_scroll_timer_id = g_timeout_add_full (G_PRIORITY_LOW, 50, thunar_standard_view_drag_scroll_timer, @@ -2937,7 +3577,7 @@ thunar_g_file_list_free (standard_view->priv->drag_g_file_list); /* query the list of selected URIs */ - standard_view->priv->drag_g_file_list = thunar_file_list_to_thunar_g_file_list (standard_view->selected_files); + standard_view->priv->drag_g_file_list = thunar_file_list_to_thunar_g_file_list (standard_view->priv->selected_files); if (G_LIKELY (standard_view->priv->drag_g_file_list != NULL)) { /* determine the first selected file */ @@ -2966,12 +3606,15 @@ guint timestamp, ThunarStandardView *standard_view) { - gchar *uri_string; + gchar **uris; /* set the URI list for the drag selection */ - uri_string = thunar_g_file_list_to_string (standard_view->priv->drag_g_file_list); - gtk_selection_data_set (selection_data, selection_data->target, 8, (guchar *) uri_string, strlen (uri_string)); - g_free (uri_string); + if (standard_view->priv->drag_g_file_list != NULL) + { + uris = thunar_g_file_list_to_stringv (standard_view->priv->drag_g_file_list); + gtk_selection_data_set_uris (selection_data, uris); + g_strfreev (uris); + } } @@ -2993,7 +3636,7 @@ ThunarStandardView *standard_view) { /* stop any running drag autoscroll timer */ - if (G_UNLIKELY (standard_view->priv->drag_scroll_timer_id >= 0)) + if (G_UNLIKELY (standard_view->priv->drag_scroll_timer_id != 0)) g_source_remove (standard_view->priv->drag_scroll_timer_id); /* release the list of dragged URIs */ @@ -3008,7 +3651,7 @@ GtkTreePath *path, ThunarStandardView *standard_view) { - GtkTreePath *path_copy = NULL; + GtkTreePath *path_copy; GList *selected_items; _thunar_return_if_fail (THUNAR_IS_LIST_MODEL (model)); @@ -3022,40 +3665,132 @@ /* Do nothing if the deleted row is not selected or there is more than one file selected */ if (G_UNLIKELY (g_list_find_custom (selected_items, path, (GCompareFunc) gtk_tree_path_compare) == NULL || g_list_length (selected_items) != 1)) { - g_list_foreach (selected_items, (GFunc) gtk_tree_path_free, NULL); - g_list_free (selected_items); + g_list_free_full (selected_items, (GDestroyNotify) gtk_tree_path_free); return; } /* Create a copy the path (we're not allowed to modify it in this handler) */ path_copy = gtk_tree_path_copy (path); - /* Remember the selected path so that it can be restored after the row has + /* Remember the selected path so that it can be restored after the row has * been removed. If the first row is removed, select the first row after the * removal, if any other row is removed, select the row before that one */ if (G_LIKELY (gtk_tree_path_prev (path_copy))) - standard_view->priv->selection_before_delete = gtk_tree_path_copy (path_copy); + { + standard_view->priv->selection_before_delete = path_copy; + } else - standard_view->priv->selection_before_delete = gtk_tree_path_copy (path_copy); + { + standard_view->priv->selection_before_delete = gtk_tree_path_new_first (); + gtk_tree_path_free (path_copy); + } /* Free path list */ - g_list_foreach (selected_items, (GFunc) gtk_tree_path_free, NULL); - g_list_free (selected_items); + g_list_free_full (selected_items, (GDestroyNotify) gtk_tree_path_free); +} + + + +static gboolean +thunar_standard_view_restore_selection_idle (ThunarStandardView *standard_view) +{ + GtkAdjustment *hadjustment; + GtkAdjustment *vadjustment; + gdouble h, v, hl, hu, vl, vu; + + _thunar_return_val_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view), FALSE); + + /* save the current scroll position and limits */ + hadjustment = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (standard_view)); + vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (standard_view)); + g_object_get (G_OBJECT (hadjustment), "value", &h, "lower", &hl, "upper", &hu, NULL); + g_object_get (G_OBJECT (vadjustment), "value", &v, "lower", &vl, "upper", &vu, NULL); + + /* keep the current scroll position by setting the limits to the current value */ + g_object_set (G_OBJECT (hadjustment), "lower", h, "upper", h, NULL); + g_object_set (G_OBJECT (vadjustment), "lower", v, "upper", v, NULL); + + /* restore the selection */ + thunar_component_restore_selection (THUNAR_COMPONENT (standard_view)); + standard_view->priv->restore_selection_idle_id = 0; + + /* unfreeze the scroll position */ + g_object_set (G_OBJECT (hadjustment), "value", h, "lower", hl, "upper", hu, NULL); + g_object_set (G_OBJECT (vadjustment), "value", v, "lower", vl, "upper", vu, NULL); + + return FALSE; } static void -thunar_standard_view_restore_selection (ThunarListModel *model, - GtkTreePath *path, - ThunarStandardView *standard_view) +thunar_standard_view_rows_reordered (ThunarListModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer new_order, + ThunarStandardView *standard_view) +{ + _thunar_return_if_fail (THUNAR_IS_LIST_MODEL (model)); + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + _thunar_return_if_fail (standard_view->model == model); + + /* the order of the paths might have changed, but the selection + * stayed the same, so restore the selection of the proper files + * after letting row changes accumulate a bit */ + if (standard_view->priv->restore_selection_idle_id == 0) + standard_view->priv->restore_selection_idle_id = + g_timeout_add (50, + (GSourceFunc) thunar_standard_view_restore_selection_idle, + standard_view); +} + + + +static void +thunar_standard_view_row_changed (ThunarListModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + ThunarStandardView *standard_view) +{ + ThunarFile *file; + + _thunar_return_if_fail (THUNAR_IS_LIST_MODEL (model)); + _thunar_return_if_fail (path != NULL); + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + _thunar_return_if_fail (standard_view->model == model); + + if (standard_view->priv->thumbnail_request != 0) + return; + + /* leave if this view is not suitable for generating thumbnails */ + if (!thunar_icon_factory_get_show_thumbnail (standard_view->icon_factory, + standard_view->priv->current_directory)) + return; + + /* queue a thumbnail request */ + file = thunar_list_model_get_file (standard_view->model, iter); + if (thunar_file_get_thumb_state (file) == THUNAR_FILE_THUMB_STATE_UNKNOWN) + { + thunar_standard_view_cancel_thumbnailing (standard_view); + thunar_thumbnailer_queue_file (standard_view->priv->thumbnailer, file, + &standard_view->priv->thumbnail_request); + } + g_object_unref (G_OBJECT (file)); +} + + + +static void +thunar_standard_view_select_after_row_deleted (ThunarListModel *model, + GtkTreePath *path, + ThunarStandardView *standard_view) { _thunar_return_if_fail (THUNAR_IS_LIST_MODEL (model)); _thunar_return_if_fail (path != NULL); _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); _thunar_return_if_fail (standard_view->model == model); - /* Check if there was only one file selected before the row was deleted. The + /* Check if there was only one file selected before the row was deleted. The * path is set by thunar_standard_view_row_deleted() if this is the case */ if (G_LIKELY (standard_view->priv->selection_before_delete != NULL)) { @@ -3101,12 +3836,15 @@ thunar_standard_view_sort_column_changed (GtkTreeSortable *tree_sortable, ThunarStandardView *standard_view) { - GtkSortType sort_order; - gint sort_column; + GtkSortType sort_order; + gint sort_column; _thunar_return_if_fail (GTK_IS_TREE_SORTABLE (tree_sortable)); _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + /* keep the currently selected files selected after the change */ + thunar_component_restore_selection (THUNAR_COMPONENT (standard_view)); + /* determine the new sort column and sort order */ if (gtk_tree_sortable_get_sort_column_id (tree_sortable, &sort_column, &sort_order)) { @@ -3133,8 +3871,8 @@ { standard_view->loading = FALSE; g_object_freeze_notify (G_OBJECT (standard_view)); - g_object_notify (G_OBJECT (standard_view), "loading"); - g_object_notify (G_OBJECT (standard_view), "statusbar-text"); + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_LOADING]); + thunar_standard_view_update_statusbar_text (standard_view); g_object_thaw_notify (G_OBJECT (standard_view)); } } @@ -3154,7 +3892,7 @@ GDK_THREADS_ENTER (); /* verify that we are realized */ - if (G_LIKELY (GTK_WIDGET_REALIZED (standard_view))) + if (G_LIKELY (gtk_widget_get_realized (GTK_WIDGET (standard_view)))) { /* determine pointer location and window geometry */ gdk_window_get_pointer (GTK_BIN (standard_view)->child->window, &x, &y, NULL); @@ -3207,7 +3945,7 @@ static void thunar_standard_view_drag_scroll_timer_destroy (gpointer user_data) { - THUNAR_STANDARD_VIEW (user_data)->priv->drag_scroll_timer_id = -1; + THUNAR_STANDARD_VIEW (user_data)->priv->drag_scroll_timer_id = 0; } @@ -3235,7 +3973,265 @@ g_signal_handlers_disconnect_by_func (GTK_BIN (user_data)->child, thunar_standard_view_motion_notify_event, user_data); /* reset the drag timer source id */ - THUNAR_STANDARD_VIEW (user_data)->priv->drag_timer_id = -1; + THUNAR_STANDARD_VIEW (user_data)->priv->drag_timer_id = 0; +} + + + +static void +thunar_standard_view_finished_thumbnailing (ThunarThumbnailer *thumbnailer, + guint request, + ThunarStandardView *standard_view) +{ + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + if (standard_view->priv->thumbnail_request == request) + standard_view->priv->thumbnail_request = 0; +} + + + +static void +thunar_standard_view_thumbnailing_destroyed (gpointer data) +{ + ThunarStandardView *standard_view = data; + + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + standard_view->priv->thumbnail_source_id = 0; +} + + + +static void +thunar_standard_view_cancel_thumbnailing (ThunarStandardView *standard_view) +{ + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + /* check if we have a pending thumbnail timeout/idle handler */ + if (standard_view->priv->thumbnail_source_id > 0) + g_source_remove (standard_view->priv->thumbnail_source_id); + + /* check if we have a pending thumbnail request */ + if (standard_view->priv->thumbnail_request > 0) + { + /* cancel the request */ + thunar_thumbnailer_dequeue (standard_view->priv->thumbnailer, + standard_view->priv->thumbnail_request); + standard_view->priv->thumbnail_request = 0; + } +} + + + +static void +thunar_standard_view_schedule_thumbnail_timeout (ThunarStandardView *standard_view) +{ + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + /* delay creating the idle until the view has finished loading. + * this is done because we only can tell the visible range reliably after + * all items have been added and we've perhaps scrolled to the file remember + * the last time */ + if (thunar_view_get_loading (THUNAR_VIEW (standard_view))) + { + standard_view->priv->thumbnailing_scheduled = TRUE; + return; + } + + /* cancel any pending thumbnail sources and requests */ + thunar_standard_view_cancel_thumbnailing (standard_view); + + /* schedule the timeout handler */ + g_assert (standard_view->priv->thumbnail_source_id == 0); + standard_view->priv->thumbnail_source_id = + g_timeout_add_full (G_PRIORITY_DEFAULT, 175, thunar_standard_view_request_thumbnails_lazy, + standard_view, thunar_standard_view_thumbnailing_destroyed); +} + + + +static void +thunar_standard_view_schedule_thumbnail_idle (ThunarStandardView *standard_view) +{ + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + /* delay creating the idle until the view has finished loading. + * this is done because we only can tell the visible range reliably after + * all items have been added, layouting has finished and we've perhaps + * scrolled to the file remembered the last time */ + if (thunar_view_get_loading (THUNAR_VIEW (standard_view))) + { + standard_view->priv->thumbnailing_scheduled = TRUE; + return; + } + + /* cancel any pending thumbnail sources or requests */ + thunar_standard_view_cancel_thumbnailing (standard_view); + + /* schedule the timeout or idle handler */ + g_assert (standard_view->priv->thumbnail_source_id == 0); + standard_view->priv->thumbnail_source_id = + g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, thunar_standard_view_request_thumbnails, + standard_view, thunar_standard_view_thumbnailing_destroyed); +} + + + +static gboolean +thunar_standard_view_request_thumbnails_real (ThunarStandardView *standard_view, + gboolean lazy_request) +{ + GtkTreePath *start_path; + GtkTreePath *end_path; + GtkTreePath *path; + GtkTreeIter iter; + ThunarFile *file; + gboolean valid_iter; + GList *visible_files = NULL; + + _thunar_return_val_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view), FALSE); + _thunar_return_val_if_fail (THUNAR_IS_ICON_FACTORY (standard_view->icon_factory), FALSE); + + /* do nothing if we are not supposed to show thumbnails at all */ + if (!thunar_icon_factory_get_show_thumbnail (standard_view->icon_factory, + standard_view->priv->current_directory)) + return FALSE; + + /* reschedule the source if we're still loading the folder */ + if (thunar_view_get_loading (THUNAR_VIEW (standard_view))) + return TRUE; + + /* compute visible item range */ + if ((*THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->get_visible_range) (standard_view, + &start_path, + &end_path)) + { + /* iterate over the range to collect all files */ + valid_iter = gtk_tree_model_get_iter (GTK_TREE_MODEL (standard_view->model), + &iter, start_path); + + while (valid_iter) + { + /* prepend the file to the visible items list */ + file = thunar_list_model_get_file (standard_view->model, &iter); + visible_files = g_list_prepend (visible_files, file); + + /* check if we've reached the end of the visible range */ + path = gtk_tree_model_get_path (GTK_TREE_MODEL (standard_view->model), &iter); + if (gtk_tree_path_compare (path, end_path) != 0) + { + /* try to compute the next visible item */ + valid_iter = + gtk_tree_model_iter_next (GTK_TREE_MODEL (standard_view->model), &iter); + } + else + { + /* we have reached the end, terminate the loop */ + valid_iter = FALSE; + } + + /* release the tree path */ + gtk_tree_path_free (path); + } + + /* queue a thumbnail request */ + thunar_thumbnailer_queue_files (standard_view->priv->thumbnailer, + lazy_request, visible_files, + &standard_view->priv->thumbnail_request); + + /* release the file list */ + g_list_free_full (visible_files, g_object_unref); + + /* release the start and end path */ + gtk_tree_path_free (start_path); + gtk_tree_path_free (end_path); + } + + return FALSE; +} + + + +static gboolean +thunar_standard_view_request_thumbnails (gpointer data) +{ + return thunar_standard_view_request_thumbnails_real (data, FALSE); +} + + + +static gboolean +thunar_standard_view_request_thumbnails_lazy (gpointer data) +{ + return thunar_standard_view_request_thumbnails_real (data, TRUE); +} + + + +static void +thunar_standard_view_thumbnail_mode_toggled (ThunarStandardView *standard_view, + GParamSpec *pspec, + ThunarIconFactory *icon_factory) +{ + GtkAdjustment *vadjustment; + + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + _thunar_return_if_fail (THUNAR_IS_ICON_FACTORY (icon_factory)); + _thunar_return_if_fail (standard_view->icon_factory == icon_factory); + + /* check whether the user wants us to generate thumbnails */ + if (thunar_icon_factory_get_show_thumbnail (icon_factory, + standard_view->priv->current_directory)) + { + /* get the vertical adjustment of the view */ + vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (standard_view)); + + /* fake a scroll event to generate thumbnail requests */ + thunar_standard_view_scrolled (vadjustment, standard_view); + } + else + { + /* cancel any pending thumbnail requests */ + thunar_standard_view_cancel_thumbnailing (standard_view); + } +} + + + +static void +thunar_standard_view_scrolled (GtkAdjustment *adjustment, + ThunarStandardView *standard_view) +{ + _thunar_return_if_fail (GTK_IS_ADJUSTMENT (adjustment)); + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + /* ignore adjustment changes when the view is still loading */ + if (thunar_view_get_loading (THUNAR_VIEW (standard_view))) + return; + + /* reschedule a thumbnail request timeout */ + thunar_standard_view_schedule_thumbnail_timeout (standard_view); +} + + + +static void +thunar_standard_view_size_allocate (ThunarStandardView *standard_view, + GtkAllocation *allocation) +{ + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + + /* ignore size changes when the view is still loading */ + if (thunar_view_get_loading (THUNAR_VIEW (standard_view))) + return; + + /* to avoid a flow of updates, don't update if there is already a request pending */ + if (standard_view->priv->thumbnail_source_id == 0) + { + /* reschedule a thumbnail request timeout */ + thunar_standard_view_schedule_thumbnail_timeout (standard_view); + } } @@ -3264,8 +4260,7 @@ /* merge the custom menu actions for the selected items */ selected_items = (*THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->get_selected_items) (standard_view); thunar_standard_view_merge_custom_actions (standard_view, selected_items); - g_list_foreach (selected_items, (GFunc) gtk_tree_path_free, NULL); - g_list_free (selected_items); + g_list_free_full (selected_items, (GDestroyNotify) gtk_tree_path_free); /* grab an additional reference on the view */ g_object_ref (G_OBJECT (standard_view)); @@ -3308,7 +4303,7 @@ _thunar_return_if_fail (event != NULL); /* check if we have already scheduled a drag timer */ - if (G_LIKELY (standard_view->priv->drag_timer_id < 0)) + if (G_LIKELY (standard_view->priv->drag_timer_id == 0)) { /* remember the new coordinates */ standard_view->priv->drag_x = event->x; @@ -3317,12 +4312,13 @@ /* figure out the real view */ view = GTK_BIN (standard_view)->child; - /* we use the menu popup delay here, which should give us good values */ + /* we use the menu popup delay here, note that we only use this to + * allow higher values! see bug #3549 */ settings = gtk_settings_get_for_screen (gtk_widget_get_screen (view)); g_object_get (G_OBJECT (settings), "gtk-menu-popup-delay", &delay, NULL); /* schedule the timer */ - standard_view->priv->drag_timer_id = g_timeout_add_full (G_PRIORITY_LOW, delay, thunar_standard_view_drag_timer, + standard_view->priv->drag_timer_id = g_timeout_add_full (G_PRIORITY_LOW, MAX (225, delay), thunar_standard_view_drag_timer, standard_view, thunar_standard_view_drag_timer_destroy); /* register the motion notify and the button release events on the real view */ @@ -3367,10 +4363,11 @@ } /* release the previously selected files */ - thunar_file_list_free (standard_view->selected_files); + thunar_g_file_list_free (standard_view->priv->selected_files); /* determine the new list of selected files (replacing GtkTreePath's with ThunarFile's) */ selected_files = (*THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->get_selected_items) (standard_view); + restorable = (selected_files != NULL); for (lp = selected_files; lp != NULL; lp = lp->next, ++n_selected_files) { /* determine the iterator for the path */ @@ -3381,18 +4378,14 @@ /* ...and replace it with the file */ lp->data = thunar_list_model_get_file (standard_view->model, &iter); + + /* enable "Restore" if we have only trashed files (atleast one file) */ + if (!thunar_file_is_trashed (lp->data)) + restorable = FALSE; } /* and setup the new selected files list */ - standard_view->selected_files = selected_files; - - /* enable "Restore" if we have only trashed files (atleast one file) */ - for (lp = selected_files, restorable = (lp != NULL); lp != NULL; lp = lp->next) - if (!thunar_file_is_trashed (lp->data)) - { - restorable = FALSE; - break; - } + standard_view->priv->selected_files = selected_files; /* check whether the folder displayed by the view is writable/in the trash */ current_directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (standard_view)); @@ -3413,7 +4406,8 @@ gtk_action_set_sensitive (standard_view->priv->action_create_document, !trashed && writable); /* update the "Properties" action */ - gtk_action_set_sensitive (standard_view->priv->action_properties, (n_selected_files == 1 || (n_selected_files == 0 && current_directory != NULL))); + gtk_action_set_sensitive (standard_view->priv->action_properties, + current_directory != NULL || n_selected_files > 0); /* update the "Cut" action */ g_object_set (G_OBJECT (standard_view->priv->action_cut), @@ -3434,11 +4428,20 @@ /* update the "Paste" action */ gtk_action_set_sensitive (standard_view->priv->action_paste, writable && pastable); + /* update the "Move to Trash" action */ + g_object_set (G_OBJECT (standard_view->priv->action_move_to_trash), + "sensitive", (n_selected_files > 0) && writable, + "visible", !trashed && thunar_g_vfs_is_uri_scheme_supported ("trash"), + "tooltip", ngettext ("Move the selected file to the Trash", + "Move the selected files to the Trash", + n_selected_files), + NULL); + /* update the "Delete" action */ g_object_set (G_OBJECT (standard_view->priv->action_delete), "sensitive", (n_selected_files > 0) && writable, - "tooltip", ngettext ("Delete the selected file", - "Delete the selected files", + "tooltip", ngettext ("Permanently delete the selected file", + "Permanently delete the selected files", n_selected_files), NULL); @@ -3485,8 +4488,35 @@ thunar_standard_view_update_statusbar_text (standard_view); /* emit notification for "selected-files" */ - g_object_notify (G_OBJECT (standard_view), "selected-files"); + g_object_notify_by_pspec (G_OBJECT (standard_view), standard_view_props[PROP_SELECTED_FILES]); } +void +thunar_standard_view_set_history (ThunarStandardView *standard_view, + ThunarHistory *history) +{ + _thunar_return_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view)); + _thunar_return_if_fail (history == NULL || THUNAR_IS_HISTORY (history)); + + /* set the new history */ + g_object_unref (standard_view->priv->history); + standard_view->priv->history = history; + + /* connect callback */ + g_signal_connect_swapped (G_OBJECT (history), "change-directory", G_CALLBACK (thunar_navigator_change_directory), standard_view); + + /* make the history use the action group of this view */ + g_object_set (G_OBJECT (history), "action-group", standard_view->action_group, NULL); +} + + + +ThunarHistory * +thunar_standard_view_copy_history (ThunarStandardView *standard_view) +{ + _thunar_return_val_if_fail (THUNAR_IS_STANDARD_VIEW (standard_view), NULL); + + return thunar_history_copy (standard_view->priv->history, NULL); +} diff -Nru thunar-1.2.3/thunar/thunar-standard-view.h thunar-1.6.10/thunar/thunar-standard-view.h --- thunar-1.2.3/thunar/thunar-standard-view.h 2011-02-06 23:14:06.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-standard-view.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -21,6 +21,7 @@ #define __THUNAR_STANDARD_VIEW_H__ #include +#include #include #include #include @@ -61,6 +62,9 @@ /* Unselects all items in the view */ void (*unselect_all) (ThunarStandardView *standard_view); + /* Invert selection in the view */ + void (*selection_invert) (ThunarStandardView *standard_view); + /* Selects the given item */ void (*select_path) (ThunarStandardView *standard_view, GtkTreePath *path); @@ -123,9 +127,6 @@ ThunarClipboardManager *clipboard; ThunarListModel *model; - gchar *statusbar_text; - - GList *selected_files; GtkActionGroup *action_group; GtkUIManager *ui_manager; @@ -152,6 +153,12 @@ void thunar_standard_view_selection_changed (ThunarStandardView *standard_view); + +void thunar_standard_view_set_history (ThunarStandardView *standard_view, + ThunarHistory *history); + +ThunarHistory *thunar_standard_view_copy_history (ThunarStandardView *standard_view); + G_END_DECLS; #endif /* !__THUNAR_STANDARD_VIEW_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-standard-view-ui.h thunar-1.6.10/thunar/thunar-standard-view-ui.h --- thunar-1.2.3/thunar/thunar-standard-view-ui.h 2011-09-20 20:28:44.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-standard-view-ui.h 2015-05-22 20:47:38.000000000 +0000 @@ -14,27 +14,34 @@ "me=\"placeholder-file-properties\">" - "" + "tion=\"copy\" /><" + "separator />" }; -static const unsigned thunar_standard_view_ui_length = 1735u; +static const unsigned thunar_standard_view_ui_length = 2179u; diff -Nru thunar-1.2.3/thunar/thunar-standard-view-ui.xml thunar-1.6.10/thunar/thunar-standard-view-ui.xml --- thunar-1.2.3/thunar/thunar-standard-view-ui.xml 2011-05-23 19:14:58.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-standard-view-ui.xml 2015-05-22 20:31:54.000000000 +0000 @@ -1,8 +1,6 @@ diff -Nru thunar-1.2.3/thunar/thunar-statusbar.c thunar-1.6.10/thunar/thunar-statusbar.c --- thunar-1.2.3/thunar/thunar-statusbar.c 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-statusbar.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,20 +1,22 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer + * Copyright (c) 2011 Jannis Pohlmann * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -41,7 +43,8 @@ guint prop_id, const GValue *value, GParamSpec *pspec); - +static void thunar_statusbar_set_text (ThunarStatusbar *statusbar, + const gchar *text); struct _ThunarStatusbarClass @@ -64,6 +67,8 @@ static void thunar_statusbar_class_init (ThunarStatusbarClass *klass) { + static gboolean style_initialized = FALSE; + GObjectClass *gobject_class; gobject_class = G_OBJECT_CLASS (klass); @@ -82,6 +87,15 @@ "text", NULL, EXO_PARAM_WRITABLE)); + + if (!style_initialized) + { + gtk_rc_parse_string ("style \"thunar-statusbar-internal\" {\n" + " GtkStatusbar::shadow-type = GTK_SHADOW_NONE\n" + "}\n" + "class \"ThunarStatusbar\" " + "style \"thunar-statusbar-internal\"\n"); + } } @@ -118,29 +132,13 @@ /** - * thunar_statusbar_new: - * - * Allocates a new #ThunarStatusbar instance with no - * text set. - * - * Return value: the newly allocated #ThunarStatusbar instance. - **/ -GtkWidget* -thunar_statusbar_new (void) -{ - return g_object_new (THUNAR_TYPE_STATUSBAR, NULL); -} - - - -/** * thunar_statusbar_set_text: * @statusbar : a #ThunarStatusbar instance. * @text : the main text to be displayed in @statusbar. * * Sets up a new main text for @statusbar. **/ -void +static void thunar_statusbar_set_text (ThunarStatusbar *statusbar, const gchar *text) { @@ -153,3 +151,16 @@ +/** + * thunar_statusbar_new: + * + * Allocates a new #ThunarStatusbar instance with no + * text set. + * + * Return value: the newly allocated #ThunarStatusbar instance. + **/ +GtkWidget* +thunar_statusbar_new (void) +{ + return g_object_new (THUNAR_TYPE_STATUSBAR, NULL); +} diff -Nru thunar-1.2.3/thunar/thunar-statusbar.h thunar-1.6.10/thunar/thunar-statusbar.h --- thunar-1.2.3/thunar/thunar-statusbar.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-statusbar.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -38,9 +38,6 @@ GtkWidget *thunar_statusbar_new (void); -void thunar_statusbar_set_text (ThunarStatusbar *statusbar, - const gchar *text); - G_END_DECLS; #endif /* !__THUNAR_STATUSBAR_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-stock.c thunar-1.6.10/thunar/thunar-stock.c --- thunar-1.2.3/thunar/thunar-stock.c 2010-01-09 15:50:40.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-stock.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer . * @@ -45,18 +45,11 @@ /* keep in sync with thunar-stock.h */ static const ThunarStockIcon thunar_stock_icons[] = { - { THUNAR_STOCK_DESKTOP, "user-desktop", }, - { THUNAR_STOCK_HOME, "user-home", }, - { THUNAR_STOCK_SHORTCUTS, "stock_thunar-shortcuts", }, - { THUNAR_STOCK_TEMPLATES, "text-x-generic-template", }, + { THUNAR_STOCK_DESKTOP, "user-desktop" }, + { THUNAR_STOCK_SHORTCUTS, "stock_thunar-shortcuts" }, + { THUNAR_STOCK_TEMPLATES, "text-x-generic-template" }, { THUNAR_STOCK_TRASH_EMPTY, "user-trash", }, - { THUNAR_STOCK_TRASH_FULL, "user-trash-full", }, - { THUNAR_STOCK_DOWNLOADS, "emblem-downloads", }, - { THUNAR_STOCK_DOCUMENTS, "emblem-documents", }, - { THUNAR_STOCK_MUSIC, "audio-x-generic", }, - { THUNAR_STOCK_PICTURES, "emblem-photos", }, - { THUNAR_STOCK_VIDEOS, "video-x-generic", }, - { THUNAR_STOCK_PUBLIC, "emblem-shared", }, + { THUNAR_STOCK_TRASH_FULL, "user-trash-full" }, }; diff -Nru thunar-1.2.3/thunar/thunar-stock.h thunar-1.6.10/thunar/thunar-stock.h --- thunar-1.2.3/thunar/thunar-stock.h 2010-01-09 15:49:43.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-stock.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer . * @@ -23,18 +23,10 @@ G_BEGIN_DECLS; #define THUNAR_STOCK_DESKTOP "thunar-desktop" /* see ThunarLauncher */ -#define THUNAR_STOCK_HOME "thunar-home" /* see ThunarWindow */ #define THUNAR_STOCK_SHORTCUTS "thunar-shortcuts" /* see ThunarShortcutsPane */ #define THUNAR_STOCK_TEMPLATES "thunar-templates" /* see ThunarWindow */ #define THUNAR_STOCK_TRASH_EMPTY "thunar-trash" /* see ThunarTrashAction */ #define THUNAR_STOCK_TRASH_FULL "thunar-trash-full" /* see ThunarTrashAction */ -#define THUNAR_STOCK_DIRECTORY GTK_STOCK_DIRECTORY -#define THUNAR_STOCK_DOWNLOADS "thunar-downloads" -#define THUNAR_STOCK_DOCUMENTS "thunar-documents" -#define THUNAR_STOCK_MUSIC "thunar-music" -#define THUNAR_STOCK_PICTURES "thunar-pictures" -#define THUNAR_STOCK_VIDEOS "thunar-videos" -#define THUNAR_STOCK_PUBLIC "thunar-public" void thunar_stock_init (void); diff -Nru thunar-1.2.3/thunar/thunar-templates-action.c thunar-1.6.10/thunar/thunar-templates-action.c --- thunar-1.2.3/thunar/thunar-templates-action.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-templates-action.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -29,7 +29,7 @@ #include #include #include - +#include /* Signal identifiers */ @@ -367,8 +367,8 @@ { /* generate a label by stripping off the extension */ label = g_strdup (thunar_file_get_display_name (file)); - dot = g_utf8_strrchr (label, -1, '.'); - if (G_LIKELY (dot != NULL)) + dot = thunar_util_str_get_extension (label); + if (dot) *dot = '\0'; /* allocate a new menu item */ @@ -379,17 +379,18 @@ templates_action); gtk_menu_shell_append (GTK_MENU_SHELL (parent_menu), item); gtk_widget_show (item); + + g_free(label); } /* determine the icon for this file/directory */ icon = thunar_icon_factory_load_file_icon (icon_factory, file, THUNAR_FILE_ICON_STATE_DEFAULT, - GTK_ICON_SIZE_MENU); + 16); /* allocate an image based on the icon */ image = gtk_image_new_from_pixbuf (icon); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); /* release the icon reference */ g_object_unref (icon); @@ -486,9 +487,8 @@ gtk_widget_show (item); /* add the icon for the emtpy file item */ - image = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_MENU); + image = gtk_image_new_from_stock (GTK_STOCK_FILE, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); } g_signal_handlers_disconnect_matched (job, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, @@ -509,8 +509,7 @@ /* drop all existing children of the menu first */ children = gtk_container_get_children (GTK_CONTAINER (menu)); - g_list_foreach (children, (GFunc) gtk_widget_destroy, NULL); - g_list_free (children); + g_list_free_full (children, (GDestroyNotify) gtk_widget_destroy); if (G_LIKELY (templates_action->job == NULL)) { @@ -553,6 +552,7 @@ "hide-if-empty", FALSE, "label", label, "name", name, + "icon-name", "document-new", NULL); } diff -Nru thunar-1.2.3/thunar/thunar-templates-action.h thunar-1.6.10/thunar/thunar-templates-action.h --- thunar-1.2.3/thunar/thunar-templates-action.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-templates-action.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-text-renderer.c thunar-1.6.10/thunar/thunar-text-renderer.c --- thunar-1.2.3/thunar/thunar-text-renderer.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-text-renderer.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -34,17 +34,20 @@ #include #include #include +#include enum { PROP_0, + PROP_ALIGNMENT, PROP_FOLLOW_PRELIT, PROP_FOLLOW_STATE, PROP_TEXT, PROP_WRAP_MODE, PROP_WRAP_WIDTH, + N_PROPERTIES }; enum @@ -118,29 +121,32 @@ { GtkCellRenderer __parent__; - PangoLayout *layout; - GtkWidget *widget; - gboolean text_static; - gchar *text; - gint char_width; - gint char_height; - PangoWrapMode wrap_mode; - gint wrap_width; - gboolean follow_state; - gint focus_width;; + /* pango renderer properties */ + PangoLayout *layout; + GtkWidget *widget; + guint text_static : 1; + gchar *text; + gint char_width; + gint char_height; + PangoWrapMode wrap_mode; + gint wrap_width; + guint follow_state : 1; + gint focus_width;; + PangoAlignment alignment; /* underline prelited rows */ - gboolean follow_prelit; + guint follow_prelit : 1; /* cell editing support */ - GtkWidget *entry; - gboolean entry_menu_active; - gint entry_menu_popdown_timer_id; + GtkWidget *entry; + guint entry_menu_active : 1; + guint entry_menu_popdown_timer_id; }; -static guint text_renderer_signals[LAST_SIGNAL]; +static guint text_renderer_signals[LAST_SIGNAL]; +static GParamSpec *text_renderer_props[N_PROPERTIES] = { NULL, }; @@ -165,18 +171,30 @@ gtkcell_renderer_class->start_editing = thunar_text_renderer_start_editing; /** + * ThunarTextRenderer:alignment: + * + * Specifies how to align the lines of text with respect to each other. + **/ + text_renderer_props[PROP_ALIGNMENT] = + g_param_spec_enum ("alignment", + "alignment", + "alignment", + PANGO_TYPE_ALIGNMENT, + PANGO_ALIGN_LEFT, + EXO_PARAM_READWRITE); + + /** * ThunarTextRenderer:follow-prelit: * * Whether to underline prelited cells. This is used for the single * click support in the detailed list view. **/ - g_object_class_install_property (gobject_class, - PROP_FOLLOW_PRELIT, - g_param_spec_boolean ("follow-prelit", - "follow-prelit", - "follow-prelit", - FALSE, - EXO_PARAM_READWRITE)); + text_renderer_props[PROP_FOLLOW_PRELIT] = + g_param_spec_boolean ("follow-prelit", + "follow-prelit", + "follow-prelit", + FALSE, + EXO_PARAM_READWRITE); /** * ThunarTextRenderer:follow-state: @@ -186,26 +204,24 @@ * for #ExoIconView, which doesn't draw any item state indicators * itself. **/ - g_object_class_install_property (gobject_class, - PROP_FOLLOW_STATE, - g_param_spec_boolean ("follow-state", - "follow-state", - "follow-state", - FALSE, - EXO_PARAM_READWRITE)); + text_renderer_props[PROP_FOLLOW_STATE] = + g_param_spec_boolean ("follow-state", + "follow-state", + "follow-state", + FALSE, + EXO_PARAM_READWRITE); /** * ThunarTextRenderer:text: * * The text to render. **/ - g_object_class_install_property (gobject_class, - PROP_TEXT, - g_param_spec_string ("text", - "text", - "text", - NULL, - EXO_PARAM_READWRITE)); + text_renderer_props[PROP_TEXT] = + g_param_spec_string ("text", + "text", + "text", + NULL, + EXO_PARAM_READWRITE); /** * ThunarTextRenderer:wrap-mode: @@ -214,14 +230,13 @@ * does not have enough room to display the entire string. This property has * no effect unless the wrap-width property is set. **/ - g_object_class_install_property (gobject_class, - PROP_WRAP_MODE, - g_param_spec_enum ("wrap-mode", - "wrap-mode", - "wrap-mode", - PANGO_TYPE_WRAP_MODE, - PANGO_WRAP_CHAR, - EXO_PARAM_READWRITE)); + text_renderer_props[PROP_WRAP_MODE] = + g_param_spec_enum ("wrap-mode", + "wrap-mode", + "wrap-mode", + PANGO_TYPE_WRAP_MODE, + PANGO_WRAP_CHAR, + EXO_PARAM_READWRITE); /** * ThunarTextRenderer:wrap-width: @@ -230,13 +245,15 @@ * be used to influence at what character positions the line breaks can be placed. * Setting wrap-width to -1 turns wrapping off. **/ - g_object_class_install_property (gobject_class, - PROP_WRAP_WIDTH, - g_param_spec_int ("wrap-width", - "wrap-width", - "wrap-width", - -1, G_MAXINT, -1, - EXO_PARAM_READWRITE)); + text_renderer_props[PROP_WRAP_WIDTH] = + g_param_spec_int ("wrap-width", + "wrap-width", + "wrap-width", + -1, G_MAXINT, -1, + EXO_PARAM_READWRITE); + + /* install properties */ + g_object_class_install_properties (gobject_class, N_PROPERTIES, text_renderer_props); /** * ThunarTextRenderer::edited: @@ -263,7 +280,7 @@ thunar_text_renderer_init (ThunarTextRenderer *text_renderer) { text_renderer->wrap_width = -1; - text_renderer->entry_menu_popdown_timer_id = -1; + text_renderer->alignment = PANGO_ALIGN_LEFT; } @@ -295,6 +312,10 @@ switch (prop_id) { + case PROP_ALIGNMENT: + g_value_set_enum (value, text_renderer->alignment); + break; + case PROP_FOLLOW_PRELIT: g_value_set_boolean (value, text_renderer->follow_prelit); break; @@ -334,6 +355,10 @@ switch (prop_id) { + case PROP_ALIGNMENT: + text_renderer->alignment = g_value_get_enum (value); + break; + case PROP_FOLLOW_PRELIT: text_renderer->follow_prelit = g_value_get_boolean (value); break; @@ -459,29 +484,28 @@ GtkStateType state; cairo_t *cr; gint x0, x1, y0, y1; - gint text_width; - gint text_height; gint x_offset; gint y_offset; + PangoRectangle rect; /* setup the new widget */ thunar_text_renderer_set_widget (text_renderer, widget); if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED) { - if (GTK_WIDGET_HAS_FOCUS (widget)) + if (gtk_widget_has_focus (widget)) state = GTK_STATE_SELECTED; else state = GTK_STATE_ACTIVE; } else if ((flags & GTK_CELL_RENDERER_PRELIT) == GTK_CELL_RENDERER_PRELIT - && GTK_WIDGET_STATE (widget) == GTK_STATE_PRELIGHT) + && gtk_widget_get_state (widget) == GTK_STATE_PRELIGHT) { state = GTK_STATE_PRELIGHT; } else { - if (GTK_WIDGET_STATE (widget) == GTK_STATE_INSENSITIVE) + if (gtk_widget_get_state (widget) == GTK_STATE_INSENSITIVE) state = GTK_STATE_INSENSITIVE; else state = GTK_STATE_NORMAL; @@ -506,24 +530,25 @@ } pango_layout_set_text (text_renderer->layout, text_renderer->text, -1); + pango_layout_set_alignment (text_renderer->layout, text_renderer->alignment); /* calculate the real text dimension */ - pango_layout_get_pixel_size (text_renderer->layout, &text_width, &text_height); + pango_layout_get_pixel_extents (text_renderer->layout, NULL, &rect); /* take into account the state indicator (required for calculation) */ if (text_renderer->follow_state) { - text_width += 2 * text_renderer->focus_width; - text_height += 2 * text_renderer->focus_width; + rect.width += 2 * text_renderer->focus_width; + rect.height += 2 * text_renderer->focus_width; } /* calculate the real x-offset */ x_offset = ((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ? (1.0 - renderer->xalign) : renderer->xalign) - * (cell_area->width - text_width - (2 * renderer->xpad)); + * (cell_area->width - rect.width - (2 * renderer->xpad)); x_offset = MAX (x_offset, 0); /* calculate the real y-offset */ - y_offset = renderer->yalign * (cell_area->height - text_height - (2 * renderer->ypad)); + y_offset = renderer->yalign * (cell_area->height - rect.height - (2 * renderer->ypad)); y_offset = MAX (y_offset, 0); /* render the state indicator */ @@ -532,8 +557,8 @@ /* calculate the text bounding box (including the focus padding/width) */ x0 = cell_area->x + x_offset; y0 = cell_area->y + y_offset; - x1 = x0 + text_width; - y1 = y0 + text_height; + x1 = x0 + rect.width; + y1 = y0 + rect.height; /* Cairo produces nicer results than using a polygon * and so we use it directly if possible. @@ -556,15 +581,15 @@ /* draw the focus indicator */ if (text_renderer->follow_state && (flags & GTK_CELL_RENDERER_FOCUSED) != 0) { - gtk_paint_focus (widget->style, window, GTK_WIDGET_STATE (widget), NULL, widget, "icon_view", - cell_area->x + x_offset, cell_area->y + y_offset, text_width, text_height); + gtk_paint_focus (widget->style, window, gtk_widget_get_state (widget), NULL, widget, "icon_view", + cell_area->x + x_offset, cell_area->y + y_offset, rect.width, rect.height); } /* get proper sizing for the layout drawing */ if (text_renderer->follow_state) { - text_width -= 2 * text_renderer->focus_width; - text_height -= 2 * text_renderer->focus_width; + rect.width -= 2 * text_renderer->focus_width; + rect.height -= 2 * text_renderer->focus_width; x_offset += text_renderer->focus_width; y_offset += text_renderer->focus_width; } @@ -572,8 +597,8 @@ /* draw the text */ gtk_paint_layout (widget->style, window, state, TRUE, expose_area, widget, "cellrenderertext", - cell_area->x + x_offset + renderer->xpad, - cell_area->y + y_offset + renderer->ypad, + cell_area->x + x_offset + renderer->xpad - rect.x, + cell_area->y + y_offset + renderer->ypad - rect.y, text_renderer->layout); } @@ -732,7 +757,7 @@ text = gtk_entry_get_text (GTK_ENTRY (entry)); /* lookup the last dot in the text */ - dot = strrchr (text, '.'); + dot = thunar_util_str_get_extension (text); if (G_LIKELY (dot != NULL)) { /* determine the UTF-8 char offset */ @@ -769,7 +794,7 @@ GtkMenu *menu, ThunarTextRenderer *text_renderer) { - if (G_UNLIKELY (text_renderer->entry_menu_popdown_timer_id >= 0)) + if (G_UNLIKELY (text_renderer->entry_menu_popdown_timer_id != 0)) g_source_remove (text_renderer->entry_menu_popdown_timer_id); text_renderer->entry_menu_active = TRUE; @@ -785,7 +810,7 @@ { text_renderer->entry_menu_active = FALSE; - if (G_LIKELY (text_renderer->entry_menu_popdown_timer_id < 0)) + if (G_LIKELY (text_renderer->entry_menu_popdown_timer_id == 0)) { text_renderer->entry_menu_popdown_timer_id = g_timeout_add_full (G_PRIORITY_LOW, 500u, thunar_text_renderer_entry_menu_popdown_timer, text_renderer, thunar_text_renderer_entry_menu_popdown_timer_destroy); @@ -802,7 +827,7 @@ GDK_THREADS_ENTER (); /* check if we still have the keyboard focus */ - if (G_UNLIKELY (!GTK_WIDGET_HAS_FOCUS (text_renderer->entry))) + if (G_UNLIKELY (!gtk_widget_has_focus (text_renderer->entry))) thunar_text_renderer_editing_done (GTK_CELL_EDITABLE (text_renderer->entry), text_renderer); GDK_THREADS_LEAVE (); @@ -815,7 +840,7 @@ static void thunar_text_renderer_entry_menu_popdown_timer_destroy (gpointer user_data) { - THUNAR_TEXT_RENDERER (user_data)->entry_menu_popdown_timer_id = -1; + THUNAR_TEXT_RENDERER (user_data)->entry_menu_popdown_timer_id = 0; } diff -Nru thunar-1.2.3/thunar/thunar-text-renderer.h thunar-1.6.10/thunar/thunar-text-renderer.h --- thunar-1.2.3/thunar/thunar-text-renderer.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-text-renderer.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-throbber.c thunar-1.6.10/thunar/thunar-throbber.c --- thunar-1.2.3/thunar/thunar-throbber.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-throbber.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,371 +0,0 @@ -/* $Id$ */ -/*- - * Copyright (c) 2005-2006 Benedikt Meurer - * - * 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 - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include -#include -#include -#include - - - -/* Property identifiers */ -enum -{ - PROP_0, - PROP_ANIMATED, -}; - - - -static void thunar_throbber_dispose (GObject *object); -static void thunar_throbber_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void thunar_throbber_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void thunar_throbber_realize (GtkWidget *widget); -static void thunar_throbber_unrealize (GtkWidget *widget); -static void thunar_throbber_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static gboolean thunar_throbber_expose_event (GtkWidget *widget, - GdkEventExpose *event); -static gboolean thunar_throbber_timer (gpointer user_data); -static void thunar_throbber_timer_destroy (gpointer user_data); - - - -struct _ThunarThrobberClass -{ - GtkWidgetClass __parent__; -}; - -struct _ThunarThrobber -{ - GtkWidget __parent__; - - GdkPixbuf *icon; - - gboolean animated; - gint index; - gint timer_id; -}; - - - -G_DEFINE_TYPE (ThunarThrobber, thunar_throbber, GTK_TYPE_WIDGET) - - - -static void -thunar_throbber_class_init (ThunarThrobberClass *klass) -{ - GtkWidgetClass *gtkwidget_class; - GObjectClass *gobject_class; - GdkPixbuf *icon; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->dispose = thunar_throbber_dispose; - gobject_class->get_property = thunar_throbber_get_property; - gobject_class->set_property = thunar_throbber_set_property; - - gtkwidget_class = GTK_WIDGET_CLASS (klass); - gtkwidget_class->realize = thunar_throbber_realize; - gtkwidget_class->unrealize = thunar_throbber_unrealize; - gtkwidget_class->size_request = thunar_throbber_size_request; - gtkwidget_class->expose_event = thunar_throbber_expose_event; - - /** - * ThunarThrobber:animated: - * - * Whether the throbber should display an animation. - **/ - g_object_class_install_property (gobject_class, - PROP_ANIMATED, - g_param_spec_boolean ("animated", - "animated", - "animated", - FALSE, - EXO_PARAM_READWRITE)); - - /* register the "process-working" fallback icon */ - icon = gdk_pixbuf_new_from_inline (-1, thunar_throbber_fallback, FALSE, NULL); - gtk_icon_theme_add_builtin_icon ("process-working", 16, icon); - g_object_unref (G_OBJECT (icon)); -} - - - -static void -thunar_throbber_init (ThunarThrobber *throbber) -{ - GTK_WIDGET_SET_FLAGS (throbber, GTK_NO_WINDOW); - throbber->timer_id = -1; -} - - - -static void -thunar_throbber_dispose (GObject *object) -{ - ThunarThrobber *throbber = THUNAR_THROBBER (object); - - /* stop any running animation */ - if (G_UNLIKELY (throbber->timer_id >= 0)) - g_source_remove (throbber->timer_id); - - (*G_OBJECT_CLASS (thunar_throbber_parent_class)->dispose) (object); -} - - - -static void -thunar_throbber_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - ThunarThrobber *throbber = THUNAR_THROBBER (object); - - switch (prop_id) - { - case PROP_ANIMATED: - g_value_set_boolean (value, thunar_throbber_get_animated (throbber)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - - - -static void -thunar_throbber_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - ThunarThrobber *throbber = THUNAR_THROBBER (object); - - switch (prop_id) - { - case PROP_ANIMATED: - thunar_throbber_set_animated (throbber, g_value_get_boolean (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - - - -static void -thunar_throbber_realize (GtkWidget *widget) -{ - ThunarThrobber *throbber = THUNAR_THROBBER (widget); - GtkIconTheme *icon_theme; - - /* let Gtk+ realize the widget */ - (*GTK_WIDGET_CLASS (thunar_throbber_parent_class)->realize) (widget); - - /* determine the icon theme for our screen */ - icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); - - /* try to lookup the "process-working" icon */ - throbber->icon = gtk_icon_theme_load_icon (icon_theme, "process-working", 16, GTK_ICON_LOOKUP_USE_BUILTIN | GTK_ICON_LOOKUP_NO_SVG, NULL); -} - - - -static void -thunar_throbber_unrealize (GtkWidget *widget) -{ - ThunarThrobber *throbber = THUNAR_THROBBER (widget); - - /* release the icon if any */ - if (G_LIKELY (throbber->icon != NULL)) - { - g_object_unref (G_OBJECT (throbber->icon)); - throbber->icon = NULL; - } - - /* let Gtk+ unrealize the widget */ - (*GTK_WIDGET_CLASS (thunar_throbber_parent_class)->unrealize) (widget); -} - - - -static void -thunar_throbber_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - requisition->width = 16; - requisition->height = 16; -} - - - -static gboolean -thunar_throbber_expose_event (GtkWidget *widget, - GdkEventExpose *event) -{ - ThunarThrobber *throbber = THUNAR_THROBBER (widget); - gint icon_index; - gint icon_cols; - gint icon_rows; - gint icon_x; - gint icon_y; - - /* verify that we have a valid icon */ - if (G_LIKELY (throbber->icon != NULL)) - { - /* determine the icon columns and icon rows */ - icon_cols = gdk_pixbuf_get_width (throbber->icon) / 16; - icon_rows = gdk_pixbuf_get_height (throbber->icon) / 16; - - /* verify that the icon is usable */ - if (G_LIKELY (icon_cols > 0 && icon_rows > 0)) - { - /* determine the icon index */ - icon_index = throbber->index % (icon_cols * icon_rows); - - /* make sure, we don't display the "empty state" while animated */ - if (G_LIKELY (throbber->timer_id >= 0)) - icon_index = MAX (icon_index, 1); - - /* determine the icon x/y offset for the icon index */ - icon_x = (icon_index % icon_cols) * 16; - icon_y = (icon_index / icon_cols) * 16; - - /* render the given part of the icon */ - gdk_draw_pixbuf (event->window, NULL, throbber->icon, icon_x, icon_y, - widget->allocation.x, widget->allocation.y, - 16, 16, GDK_RGB_DITHER_NONE, 0, 0); - } - } - - return TRUE; -} - - - -static gboolean -thunar_throbber_timer (gpointer user_data) -{ - ThunarThrobber *throbber = THUNAR_THROBBER (user_data); - - GDK_THREADS_ENTER (); - throbber->index += 1; - gtk_widget_queue_draw (GTK_WIDGET (throbber)); - GDK_THREADS_LEAVE (); - - return throbber->animated; -} - - - -static void -thunar_throbber_timer_destroy (gpointer user_data) -{ - THUNAR_THROBBER (user_data)->index = 0; - THUNAR_THROBBER (user_data)->timer_id = -1; -} - - - -/** - * thunar_throbber_new: - * - * Allocates a new #ThunarThrobber instance. - * - * Return value: the newly allocated #ThunarThrobber. - **/ -GtkWidget* -thunar_throbber_new (void) -{ - return g_object_new (THUNAR_TYPE_THROBBER, NULL); -} - - - -/** - * thunar_throbber_get_animated: - * @throbber : a #ThunarThrobber. - * - * Returns whether @throbber is currently animated. - * - * Return value: %TRUE if @throbber is animated. - **/ -gboolean -thunar_throbber_get_animated (const ThunarThrobber *throbber) -{ - _thunar_return_val_if_fail (THUNAR_IS_THROBBER (throbber), FALSE); - return throbber->animated; -} - - - -/** - * thunar_throbber_set_animated: - * @throbber : a #ThunarThrobber. - * @animated : whether to animate @throbber. - * - * If @animated is %TRUE, @throbber will display an animation. - **/ -void -thunar_throbber_set_animated (ThunarThrobber *throbber, - gboolean animated) -{ - _thunar_return_if_fail (THUNAR_IS_THROBBER (throbber)); - - /* check if we're already in the requested state */ - if (G_UNLIKELY (throbber->animated == animated)) - return; - - /* pick up the new state */ - throbber->animated = animated; - - /* start the timer if animated and not already running */ - if (animated && (throbber->timer_id < 0)) - { - /* start the animation */ - throbber->timer_id = g_timeout_add_full (G_PRIORITY_LOW, 25, thunar_throbber_timer, - throbber, thunar_throbber_timer_destroy); - } - - /* schedule a redraw with the new animation state */ - gtk_widget_queue_draw (GTK_WIDGET (throbber)); - - /* notify listeners */ - g_object_notify (G_OBJECT (throbber), "animated"); -} - - diff -Nru thunar-1.2.3/thunar/thunar-throbber-fallback.c thunar-1.6.10/thunar/thunar-throbber-fallback.c --- thunar-1.2.3/thunar/thunar-throbber-fallback.c 2011-09-20 20:28:45.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-throbber-fallback.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,1000 +0,0 @@ -#include -/* GdkPixbuf RGBA C-Source image dump */ - -#ifdef __SUNPRO_C -#pragma align 4 (thunar_throbber_fallback) -#endif -#ifdef __GNUC__ -const guint8 thunar_throbber_fallback[] __attribute__ ((__aligned__ (4))) = -#else -const guint8 thunar_throbber_fallback[] = -#endif -{ "" - /* Pixbuf magic (0x47646b50) */ - "GdkP" - /* length: header (24) + pixel_data (32768) */ - "\0\0\200\30" - /* pixdata_type (0x1010002) */ - "\1\1\0\2" - /* rowstride (512) */ - "\0\0\2\0" - /* width (128) */ - "\0\0\0\200" - /* height (64) */ - "\0\0\0@" - /* pixel_data: */ - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\0\0" - "\0""6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\267\0\0\0\265" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\267\0\0\0\265\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\267\0\0\0\265\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\267\0\0\0\265\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\222\0\0\0\221\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\222\0\0\0\221\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0n\0\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\33\0\0\0\345\0\0\0\343\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\33\0\0\0\345\0\0\0\343\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33" - "\0\0\0\345\0\0\0\343\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33\0\0" - "\0\345\0\0\0\343\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26\0\0\0\267" - "\0\0\0\266\0\0\0\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26\0\0\0\267\0\0" - "\0\266\0\0\0\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\211\0\0\0\210" - "\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0/\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14\0" - "\0\0\0\0\0\0\17\0\0\0;\0\0\0/\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~" - "\0\0\0\237\0\0\0'\0\0\0\0\0\0\0&\0\0\0\350\0\0\0\351\0\0\0'\0\0\0\0\0" - "\0\0\17\0\0\0;\0\0\0/\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\237" - "\0\0\0'\0\0\0\0\0\0\0&\0\0\0\350\0\0\0\351\0\0\0'\0\0\0\0\0\0\0\24\0" - "\0\0P\0\0\0\77\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^\0\0\0w\0\0\0\35" - "\0\0\0\0\0\0\0&\0\0\0\350\0\0\0\351\0\0\0'\0\0\0\0\0\0\0\35\0\0\0w\0" - "\0\0^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^\0\0\0w\0\0\0\35\0\0\0\0" - "\0\0\0&\0\0\0\350\0\0\0\351\0\0\0'\0\0\0\0\0\0\0'\0\0\0\237\0\0\0~\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^\0\0\0w\0\0\0\35\0\0\0\0\0\0\0\36" - "\0\0\0\272\0\0\0\272\0\0\0\37\0\0\0\0\0\0\0""1\0\0\0\307\0\0\0\235\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^\0\0\0w\0\0\0\35\0\0\0\0\0\0\0\36" - "\0\0\0\272\0\0\0\272\0\0\0\37\0\0\0\0\0\0\0""1\0\0\0\307\0\0\0\235\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\77\0\0\0P\0\0\0\24\0\0\0\0\0\0\0" - "\27\0\0\0\213\0\0\0\214\0\0\0\27\0\0\0\0\0\0\0""1\0\0\0\307\0\0\0\235" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D\0\0\0\11\0\0\0" - "\0\0\0\0@\0\0\0@\0\0\0\1\0\0\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\237\0\0\0\314\0\0\0\267\0\0\0\27\0\0\0\1\0\0" - "\0\326\0\0\0\330\0\0\0\2\0\0\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\237\0\0\0\314\0\0\0\267\0\0\0\27\0\0\0\1\0\0" - "\0\326\0\0\0\330\0\0\0\2\0\0\0\13\0\0\0Z\0\0\0f\0\0\0P\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\231\0\0\0\211\0\0\0\21\0\0\0\1\0\0\0" - "\326\0\0\0\330\0\0\0\2\0\0\0\20\0\0\0\210\0\0\0\231\0\0\0w\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\231\0\0\0\211\0\0\0\21\0\0\0\1\0" - "\0\0\326\0\0\0\330\0\0\0\2\0\0\0\26\0\0\0\265\0\0\0\314\0\0\0\237\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\231\0\0\0\211\0\0\0\21\0\0" - "\0\1\0\0\0\253\0\0\0\255\0\0\0\2\0\0\0\33\0\0\0\342\0\0\0\377\0\0\0\307" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\231\0\0\0\211\0\0\0\21" - "\0\0\0\1\0\0\0\253\0\0\0\255\0\0\0\2\0\0\0\33\0\0\0\342\0\0\0\377\0\0" - "\0\307\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0P\0\0\0f\0\0\0\\\0\0\0\14" - "\0\0\0\1\0\0\0\200\0\0\0\202\0\0\0\1\0\0\0\33\0\0\0\342\0\0\0\377\0\0" - "\0\307\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0\0," - "\0\0\0\0\0\0\0\3\0\0\0\3\0\0\0\0\0\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'\0\0\0\265\0\0\0\314\0\0\0v\0\0\0\0" - "\0\0\0\11\0\0\0\11\0\0\0\0\0\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0'\0\0\0\265\0\0\0\314\0\0\0v\0\0\0\0\0\0\0" - "\11\0\0\0\11\0\0\0\0\0\0\0:\0\0\0f\0\0\0\\\0\0\0\24\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\35\0\0\0\210\0\0\0\231\0\0\0Y\0\0\0\0\0\0\0\11\0" - "\0\0\11\0\0\0\0\0\0\0V\0\0\0\231\0\0\0\211\0\0\0\35\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\35\0\0\0\210\0\0\0\231\0\0\0Y\0\0\0\0\0\0\0\11\0" - "\0\0\11\0\0\0\0\0\0\0s\0\0\0\314\0\0\0\267\0\0\0'\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\35\0\0\0\210\0\0\0\231\0\0\0Y\0\0\0\0\0\0\0\7\0\0" - "\0\7\0\0\0\0\0\0\0\220\0\0\0\377\0\0\0\345\0\0\0""1\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\35\0\0\0\210\0\0\0\231\0\0\0Y\0\0\0\0\0\0\0\7\0" - "\0\0\7\0\0\0\0\0\0\0\220\0\0\0\377\0\0\0\345\0\0\0""1\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0Z\0\0\0f\0\0\0;\0\0\0\0\0\0\0\5\0\0\0" - "\5\0\0\0\0\0\0\0\220\0\0\0\377\0\0\0\345\0\0\0""1\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0+\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\12\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\26\0\0\0s\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\12\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\26\0\0\0s\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16" - "\0\0\0;\0\0\0\14\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\20\0\0\0V\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0" - "Y\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0" - "\0\0V\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33\0\0\0v\0\0\0" - "\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0V\0" - "\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"\0\0\0\224\0\0\0\35\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0V\0\0\0" - "\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"\0\0\0\224\0\0\0\35\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0:\0\0\0\16\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"\0\0\0\224\0\0\0\35\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0" - "\0\0\0\0\0\0\0\0\0\0\16\0\0\0\27\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0\0\0" - "\0\0\0\0\0\0\0\0\16\0\0\0\27\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0\0\0\0\0" - "\0\0\0\0\0\0\12\0\0\0\20\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0\0\0\0\0\0\0" - "\0\0\0\0\12\0\0\0\20\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0\0\0\0\0\0\0\0\0" - "\0\0\12\0\0\0\20\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0" - "\12\0\0\0\20\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\7\0" - "\0\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\1\0\0\0\27\0\0\0\20\0\0\0\0\0\0\0""6\0\0\0D\0\0\0E\0" - "\0\0@\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4" - "\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0\0\0m\0\0\0\210\0\0\0\214\0\0\0\202" - "\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0" - "\0\77\0\0\0E\0\0\0D\0\0\0""5\0\0\0m\0\0\0\210\0\0\0\214\0\0\0\202\0\0" - "\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77" - "\0\0\0E\0\0\0D\0\0\0""5\0\0\0H\0\0\0[\0\0\0]\0\0\0V\0\0\0\4\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0" - "D\0\0\0""5\0\0\0H\0\0\0[\0\0\0]\0\0\0V\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0" - "\0\0H\0\0\0[\0\0\0]\0\0\0V\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0\0\0H\0\0\0[" - "\0\0\0]\0\0\0V\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\6\0\0\0U\0\0\0]\0\0\0\\\0\0\0G\0\0\0""6\0\0\0D\0\0\0E\0\0\0" - "@\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0" - "\0\0\200\0\0\0\213\0\0\0\211\0\0\0j\0\0\0""7\0\0\0D\0\0\0E\0\0\0@\0\0" - "\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0@\0" - "\0\0E\0\0\0D\0\0\0""5\0\0\0n\0\0\0\211\0\0\0\213\0\0\0\200\0\0\0\5\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0@\0\0\0E" - "\0\0\0D\0\0\0""5\0\0\0n\0\0\0\211\0\0\0\213\0\0\0\200\0\0\0\5\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0@\0\0\0E\0\0\0" - "D\0\0\0""5\0\0\0I\0\0\0\\\0\0\0]\0\0\0V\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0" - "\0I\0\0\0\\\0\0\0]\0\0\0V\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0\0I\0\0\0\\\0\0" - "\0]\0\0\0V\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0\0I\0\0\0\\\0\0\0]\0\0\0V\0\0" - "\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0V\0" - "\0\0]\0\0\0[\0\0\0G\0\0\0""7\0\0\0D\0\0\0E\0\0\0@\0\0\0\3\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\200\0\0\0\214\0\0" - "\0\210\0\0\0j\0\0\0\0\0\0\0\10\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0" - "\0\0\0\0\0\0\0\0\0\0\20\0\0\0\27\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0" - "\0\0\0\0\0\0\0\20\0\0\0\27\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0\0\0\0" - "\0\0\0\0\13\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0\0\0\0\0\0\0" - "\0\13\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\13" - "\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0" - "\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\1\0\0\0\20\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\13\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\1\0\0\0\27\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11" - "\0\0\0,\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0" - "\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\0\0\0" - ";\0\0\0\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\0\0\0;\0\0\0" - "\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\16\0\0\0+\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17" - "\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0" - "\0\0C\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0[\0\0\0" - "f\0\0\0:\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0C\0\0\0\17" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0[\0\0\0f\0\0\0:\0\0\0" - "\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0C\0\0\0\17\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\4\0" - "\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0C\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\17\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0" - "\0\0\0\0,\0\0\0L\0\0\0C\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\17\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0" - "\0L\0\0\0C\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0D\0" - "\0\0L\0\0\0+\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0C\0\0" - "\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0D\0\0\0L\0\0\0+\0" - "\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0C\0\0\0\17\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0" - "@\0\0\0\77\0\0\0\0\0\0\0\11\0\0\0D\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0P\0\0\0f\0\0\0Z\0\0\0\13\0\0\0\1\0\0\0@\0\0\0\77\0" - "\0\0\0\0\0\0\11\0\0\0D\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0P\0\0\0f\0\0\0Z\0\0\0\13\0\0\0\1\0\0\0@\0\0\0\77\0\0\0\0\0\0\0" - "\11\0\0\0D\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0" - "L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0@\0\0\0\77\0\0\0\0\0\0\0\11\0\0\0D\0\0" - "\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0" - "\10\0\0\0\1\0\0\0@\0\0\0\77\0\0\0\0\0\0\0\11\0\0\0D\0\0\0L\0\0\0;\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1\0" - "\0\0@\0\0\0\77\0\0\0\0\0\0\0\11\0\0\0D\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0@\0\0\0\77" - "\0\0\0\0\0\0\0\11\0\0\0D\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0@\0\0\0\77\0\0\0\0\0\0" - "\0\11\0\0\0D\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0" - "\0;\0\0\0\17\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0\0\17" - "\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0P\0\0\0\24" - "\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0\0\17\0\0\0;\0\0" - "\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0P\0\0\0\24\0\0\0\0\0" - "\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\14\0\0" - "\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E" - "\0\0\0\13\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0" - "\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+" - "\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0" - "\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0" - "\0\17\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0\0\17\0\0\0" - ";\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0D\0" - "\0\0D\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0D\0\0\0D\0\0" - "\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0" - "5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0n\0\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0n\0\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "n\0\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0H\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0H\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0H\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\0\0\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0""7\0\0\0""6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\20\0\0\0\211\0\0\0\210\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\20\0\0\0\211\0\0\0\210\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\20\0\0\0\211\0\0\0\210\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13" - "\0\0\0\\\0\0\0[\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\\" - "\0\0\0[\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\\\0\0\0[" - "\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\\\0\0\0[\0\0\0\12" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\77\0\0\0" - "P\0\0\0\24\0\0\0\0\0\0\0\27\0\0\0\213\0\0\0\214\0\0\0\27\0\0\0\0\0\0" - "\0""1\0\0\0\307\0\0\0\235\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0" - "\0P\0\0\0\24\0\0\0\0\0\0\0\27\0\0\0\213\0\0\0\214\0\0\0\27\0\0\0\0\0" - "\0\0'\0\0\0\237\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\0\0\0P" - "\0\0\0\24\0\0\0\0\0\0\0\27\0\0\0\213\0\0\0\214\0\0\0\27\0\0\0\0\0\0\0" - "'\0\0\0\237\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0" - "\0\17\0\0\0\0\0\0\0\17\0\0\0]\0\0\0]\0\0\0\20\0\0\0\0\0\0\0\35\0\0\0" - "w\0\0\0^\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0" - "\0\0\0\0\17\0\0\0]\0\0\0]\0\0\0\20\0\0\0\0\0\0\0\35\0\0\0w\0\0\0^\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\17" - "\0\0\0]\0\0\0]\0\0\0\20\0\0\0\0\0\0\0\35\0\0\0w\0\0\0^\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\17\0\0\0]\0\0" - "\0]\0\0\0\20\0\0\0\0\0\0\0\35\0\0\0w\0\0\0^\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14" - "\0\0\0\0\0\0\0\24\0\0\0P\0\0\0\77\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0P\0\0\0f\0\0\0\\\0\0\0\14\0\0\0\1\0\0\0\200\0\0\0\202\0\0\0\1\0\0\0" - "\33\0\0\0\342\0\0\0\377\0\0\0\307\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0P\0\0\0f\0\0\0[\0\0\0\14\0\0\0\1\0\0\0\200\0\0\0\202\0\0\0\1\0\0\0" - "\26\0\0\0\265\0\0\0\314\0\0\0\237\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0P\0\0\0f\0\0\0[\0\0\0\14\0\0\0\1\0\0\0\200\0\0\0\202\0\0\0\1\0\0\0" - "\26\0\0\0\265\0\0\0\314\0\0\0\237\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0;\0\0\0L\0\0\0D\0\0\0\11\0\0\0\0\0\0\0V\0\0\0V\0\0\0\1\0\0\0\20\0\0" - "\0\210\0\0\0\231\0\0\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0" - "L\0\0\0D\0\0\0\11\0\0\0\0\0\0\0V\0\0\0V\0\0\0\1\0\0\0\20\0\0\0\210\0" - "\0\0\231\0\0\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D" - "\0\0\0\11\0\0\0\0\0\0\0V\0\0\0V\0\0\0\1\0\0\0\20\0\0\0\210\0\0\0\231" - "\0\0\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D\0\0\0\11" - "\0\0\0\0\0\0\0V\0\0\0V\0\0\0\1\0\0\0\20\0\0\0\210\0\0\0\231\0\0\0w\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D\0\0\0\11\0\0\0\0" - "\0\0\0@\0\0\0@\0\0\0\1\0\0\0\13\0\0\0Z\0\0\0f\0\0\0P\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0Z\0\0\0f\0\0\0;\0\0\0\0\0\0\0\5\0\0\0" - "\5\0\0\0\0\0\0\0\220\0\0\0\377\0\0\0\345\0\0\0""1\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\24\0\0\0Z\0\0\0f\0\0\0;\0\0\0\0\0\0\0\5\0\0\0\5\0" - "\0\0\0\0\0\0s\0\0\0\314\0\0\0\267\0\0\0'\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\24\0\0\0Z\0\0\0f\0\0\0;\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0\0" - "\0\0s\0\0\0\314\0\0\0\267\0\0\0'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\17\0\0\0C\0\0\0L\0\0\0,\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0V\0\0" - "\0\231\0\0\0\211\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0" - "\0\0C\0\0\0L\0\0\0,\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0V\0\0\0\231" - "\0\0\0\211\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0" - "\0\0L\0\0\0,\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0V\0\0\0\231\0\0\0\211" - "\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0" - "\0,\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0V\0\0\0\231\0\0\0\211\0\0\0" - "\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0\0,\0\0" - "\0\0\0\0\0\3\0\0\0\3\0\0\0\0\0\0\0:\0\0\0f\0\0\0\\\0\0\0\24\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0:\0\0\0\16\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\"\0\0\0\224\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0:\0\0\0\23\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\33\0\0\0v\0\0\0\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0:\0\0\0\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\33\0\0\0v\0\0\0\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\10\0\0\0+\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\24\0\0\0Y\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\10\0\0\0+\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0" - "\0\0Y\0\0\0\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\10\0\0\0+\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0Y\0" - "\0\0\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0" - "\0+\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0Y\0\0\0\21" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0+\0\0" - "\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0;\0\0\0\14\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\36\0\0\0" - "\25\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0&\0\0\0\33\0\0" - "\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0&\0\0\0\33\0\0\0\0\0\0" - "\0\0\0\0\0\7\0\0\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0&\0\0\0\33\0\0\0\0\0\0\0\0\0\0" - "\0\7\0\0\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0&\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\7\0\0" - "\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\1\0\0\0\36\0\0\0\26\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0" - "\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\1\0\0\0\36\0\0\0\26\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0\0\0\1" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\1\0\0\0\27\0\0\0\20\0\0\0\0\0\0\0""6\0\0\0D\0\0\0E\0\0\0@\0\0\0\3" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\252\0" - "\0\0\272\0\0\0\267\0\0\0\216\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\326\0\0" - "\0\350\0\0\0\345\0\0\0\267\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\326\0\0\0" - "\350\0\0\0\345\0\0\0\267\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\326\0\0\0\350" - "\0\0\0\345\0\0\0\267\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\326\0\0\0\350\0" - "\0\0\345\0\0\0\267\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\253\0\0\0\272\0\0" - "\0\267\0\0\0\222\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\253\0\0\0\272\0\0\0" - "\267\0\0\0\222\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\200\0\0\0\213\0\0\0\211" - "\0\0\0n\0\0\0""7\0\0\0D\0\0\0E\0\0\0@\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\0\0\0\253\0\0\0\272\0\0\0\266\0\0\0" - "\216\0\0\0""5\0\0\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\330\0\0\0\351\0\0\0\343\0\0\0" - "\265\0\0\0""5\0\0\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\330\0\0\0\351\0\0\0\343\0\0\0" - "\265\0\0\0""5\0\0\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\330\0\0\0\351\0\0\0\343\0\0\0" - "\265\0\0\0""5\0\0\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\330\0\0\0\351\0\0\0\343\0\0\0" - "\265\0\0\0""5\0\0\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\255\0\0\0\272\0\0\0\266\0\0\0" - "\221\0\0\0""5\0\0\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\255\0\0\0\272\0\0\0\266\0\0\0" - "\221\0\0\0""5\0\0\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\202\0\0\0\214\0\0\0\210\0\0\0" - "m\0\0\0\0\0\0\0\10\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\37\0\0\0\23\0\0\0\0\0\0" - "\0\0\0\0\0\10\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0'\0\0\0\30\0\0\0\0\0\0\0\0\0" - "\0\0\10\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0'\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\10" - "\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\2\0\0\0'\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\13" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\2\0\0\0'\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\13\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\2\0\0\0\37\0\0\0\23\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\13\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\2\0\0\0\37\0\0\0\23\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\13\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0" - "\0\0\27\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0" - "\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\0\0\0+\0\0\0\10\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0:\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\24\0\0\0V\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\33\0\0\0s\0\0\0\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\"\0\0\0\220\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"" - "\0\0\0\220\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\11\0\0\0,\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"\0\0\0" - "\220\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0" - "D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0C" - "\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0D\0\0\0L\0\0" - "\0+\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0C\0\0\0\17\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0" - "\0\0\4\0\0\0\4\0\0\0\0\0\0\0;\0\0\0f\0\0\0Z\0\0\0\24\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\4\0\0\0" - "\4\0\0\0\0\0\0\0Y\0\0\0\231\0\0\0\210\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\17\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\4\0\0\0\4\0\0" - "\0\0\0\0\0v\0\0\0\314\0\0\0\265\0\0\0'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\17\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0" - "\0\224\0\0\0\377\0\0\0\342\0\0\0""1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\17\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\6\0\0\0\6\0\0\0\0\0\0\0\224" - "\0\0\0\377\0\0\0\342\0\0\0""1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17" - "\0\0\0D\0\0\0L\0\0\0+\0\0\0\0\0\0\0\11\0\0\0\10\0\0\0\0\0\0\0\224\0\0" - "\0\377\0\0\0\342\0\0\0""1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0" - "\0L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0@\0\0\0\77\0\0\0\0\0\0\0\11\0\0\0D\0" - "\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0" - "\0\10\0\0\0\1\0\0\0@\0\0\0\77\0\0\0\0\0\0\0\11\0\0\0D\0\0\0L\0\0\0;\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1" - "\0\0\0@\0\0\0\77\0\0\0\0\0\0\0\14\0\0\0\\\0\0\0f\0\0\0P\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0@\0\0\0" - "\77\0\0\0\0\0\0\0\21\0\0\0\211\0\0\0\231\0\0\0w\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0@\0\0\0\77\0\0" - "\0\0\0\0\0\27\0\0\0\267\0\0\0\314\0\0\0\237\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0@\0\0\0\77\0\0\0\0" - "\0\0\0\35\0\0\0\345\0\0\0\377\0\0\0\307\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0V\0\0\0U\0\0\0\0\0\0\0" - "\35\0\0\0\345\0\0\0\377\0\0\0\307\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0\1\0\0\0\200\0\0\0\200\0\0\0\1\0\0\0" - "\35\0\0\0\345\0\0\0\377\0\0\0\307\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0" - "\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0" - "\0\0\17\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0\0\17\0\0" - "\0;\0\0\0/\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0" - "\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0\0\24\0\0\0P\0\0\0\77" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0" - "\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0\0\35\0\0\0w\0\0\0^\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\14\0\0\0E\0" - "\0\0E\0\0\0\13\0\0\0\0\0\0\0'\0\0\0\237\0\0\0~\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0" - "\0\13\0\0\0\0\0\0\0""1\0\0\0\307\0\0\0\235\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\20\0\0\0]\0\0\0]\0\0\0\17" - "\0\0\0\0\0\0\0""1\0\0\0\307\0\0\0\235\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\27\0\0\0\214\0\0\0\213\0\0\0\27" - "\0\0\0\0\0\0\0""1\0\0\0\307\0\0\0\235\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7" - "\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0D\0\0" - "\0D\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\0\0\0[\0\0\0\\\0\0" - "\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0\210\0\0\0\211\0\0\0\20" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0G\0\0\0G\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\0\0" - "\0j\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""7\0\0\0""6\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0" - "\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0D\0\0" - "\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0D\0\0\0D\0\0\0\7" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0" - "\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E" - "\0\0\0\14\0\0\0\0\0\0\0\24\0\0\0P\0\0\0\77\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14" - "\0\0\0\0\0\0\0\24\0\0\0P\0\0\0:\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14\0\0\0\0\0\0" - "\0\24\0\0\0P\0\0\0:\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0" - "\0\17\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14\0\0\0\0\0\0\0\17\0\0\0" - ";\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0" - "\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\13" - "\0\0\0E\0\0\0E\0\0\0\14\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\13\0\0\0E\0\0" - "\0E\0\0\0\14\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14" - "\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - ";\0\0\0L\0\0\0D\0\0\0\11\0\0\0\0\0\0\0@\0\0\0@\0\0\0\1\0\0\0\13\0\0\0" - "Z\0\0\0f\0\0\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D" - "\0\0\0\11\0\0\0\0\0\0\0\77\0\0\0@\0\0\0\1\0\0\0\13\0\0\0Z\0\0\0f\0\0" - "\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D\0\0\0\11\0\0" - "\0\0\0\0\0\77\0\0\0@\0\0\0\1\0\0\0\13\0\0\0Z\0\0\0f\0\0\0P\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D\0\0\0\11\0\0\0\0\0\0\0\77" - "\0\0\0@\0\0\0\1\0\0\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0;\0\0\0L\0\0\0D\0\0\0\11\0\0\0\0\0\0\0\77\0\0\0@\0\0\0" - "\1\0\0\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0;\0\0\0L\0\0\0D\0\0\0\11\0\0\0\0\0\0\0\77\0\0\0@\0\0\0\1\0\0\0\10\0" - "\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0" - "\0D\0\0\0\11\0\0\0\0\0\0\0\77\0\0\0@\0\0\0\1\0\0\0\10\0\0\0C\0\0\0L\0" - "\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D\0\0\0\11\0" - "\0\0\0\0\0\0\77\0\0\0@\0\0\0\1\0\0\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0\0,\0\0\0\0\0\0\0" - "\3\0\0\0\3\0\0\0\0\0\0\0:\0\0\0f\0\0\0\\\0\0\0\24\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0\0,\0\0\0\0\0\0\0\4\0\0\0\4\0" - "\0\0\0\0\0\0:\0\0\0f\0\0\0[\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\17\0\0\0C\0\0\0L\0\0\0,\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0" - ":\0\0\0f\0\0\0[\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0" - "\0C\0\0\0L\0\0\0,\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0+\0\0\0L\0\0\0" - "D\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0" - "\0,\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0\0,\0\0\0\0\0" - "\0\0\4\0\0\0\4\0\0\0\0\0\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0\0,\0\0\0\0\0\0\0\4\0\0\0" - "\4\0\0\0\0\0\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0\0,\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0" - "\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\10\0\0\0+\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0" - "\0\0;\0\0\0\14\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\10\0\0\0+\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\0\0\0;\0" - "\0\0\14\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0" - "\0+\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\0\0\0;\0\0\0\14" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0+\0\0" - "\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0+\0\0\0\16\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0+\0\0\0\16\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0+\0\0\0\16\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0+\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\7\0\0\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\1\0\0\0\27\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\7\0\0" - "\0\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\1\0\0\0\27\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0" - "\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\1\0\0\0\27\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0\0\0\1" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\17\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0\0\0\1\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\17\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\14\0\0\0\1\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17" - "\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\12\0\0\0\20\0\0\0\1\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0" - "\13\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0\27\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0" - "\0\0\0\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\200\0\0\0\213\0\0\0\211\0\0\0" - "n\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\200\0\0\0\213\0\0\0\211\0\0\0n\0\0\0" - "5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\5\0\0\0\200\0\0\0\213\0\0\0\211\0\0\0n\0\0\0""5\0\0" - "\0D\0\0\0E\0\0\0@\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\4\0\0\0V\0\0\0]\0\0\0\\\0\0\0I\0\0\0""5\0\0\0D\0\0\0E\0\0" - "\0@\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0" - "\0\0V\0\0\0]\0\0\0\\\0\0\0I\0\0\0""5\0\0\0D\0\0\0E\0\0\0@\0\0\0\4\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0V\0\0\0]\0" - "\0\0\\\0\0\0I\0\0\0G\0\0\0[\0\0\0]\0\0\0V\0\0\0\6\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0V\0\0\0]\0\0\0\\\0\0\0I\0\0" - "\0j\0\0\0\210\0\0\0\214\0\0\0\200\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0@\0\0\0E\0\0\0D\0\0\0""7\0\0\0""5" - "\0\0\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\5\0\0\0\202\0\0\0\214\0\0\0\210\0\0\0m\0\0\0""5\0\0" - "\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\5\0\0\0\202\0\0\0\214\0\0\0\210\0\0\0m\0\0\0""5\0\0\0D\0" - "\0\0E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\5\0\0\0\202\0\0\0\214\0\0\0\210\0\0\0m\0\0\0""5\0\0\0D\0\0\0" - "E\0\0\0\77\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\4\0\0\0V\0\0\0]\0\0\0[\0\0\0H\0\0\0""5\0\0\0D\0\0\0E\0\0\0\77\0" - "\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0" - "V\0\0\0]\0\0\0[\0\0\0H\0\0\0""5\0\0\0D\0\0\0E\0\0\0\77\0\0\0\4\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0V\0\0\0]\0\0" - "\0[\0\0\0H\0\0\0G\0\0\0\\\0\0\0]\0\0\0U\0\0\0\6\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0V\0\0\0]\0\0\0[\0\0\0H\0\0\0" - "j\0\0\0\211\0\0\0\213\0\0\0\200\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0@\0\0\0E\0\0\0D\0\0\0""6\0\0\0\0\0" - "\0\0\10\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\27\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0" - "\10\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\27\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\10\0" - "\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\1\0\0\0\27\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\13" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\1\0\0\0\20\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\13\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\1\0\0\0\20\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\13\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\1\0\0\0\20\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\12\0\0\0\17\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" - "\0\0\0\20\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\27\0\0\0\1\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" - "\0\14\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\16" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"\0\0\0\220\0\0\0\33\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0,\0\0\0\12\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\33\0\0\0s\0\0\0\26\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\0\0\0;\0\0\0\16\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\33\0\0\0s\0\0\0\26\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\21\0\0\0Y\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\24\0\0\0V\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\27\0\0\0v\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\24\0\0\0V\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\35\0\0\0\224\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\24\0\0\0V\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\35\0\0\0\224\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24" - "\0\0\0V\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\35\0\0\0\224\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0" - "\0:\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0D" - "\0\0\0L\0\0\0+\0\0\0\0\0\0\0\14\0\0\0\13\0\0\0\0\0\0\0\224\0\0\0\377" - "\0\0\0\342\0\0\0""1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0D\0" - "\0\0L\0\0\0+\0\0\0\0\0\0\0\11\0\0\0\11\0\0\0\0\0\0\0v\0\0\0\314\0\0\0" - "\265\0\0\0'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0\\\0\0\0f\0" - "\0\0:\0\0\0\0\0\0\0\11\0\0\0\11\0\0\0\0\0\0\0v\0\0\0\314\0\0\0\265\0" - "\0\0'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\211\0\0\0\231\0" - "\0\0V\0\0\0\0\0\0\0\11\0\0\0\11\0\0\0\0\0\0\0Y\0\0\0\231\0\0\0\210\0" - "\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'\0\0\0\267\0\0\0\314\0" - "\0\0s\0\0\0\0\0\0\0\11\0\0\0\11\0\0\0\0\0\0\0Y\0\0\0\231\0\0\0\210\0" - "\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""1\0\0\0\345\0\0\0\377" - "\0\0\0\220\0\0\0\0\0\0\0\7\0\0\0\7\0\0\0\0\0\0\0Y\0\0\0\231\0\0\0\210" - "\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""1\0\0\0\345\0\0\0\377" - "\0\0\0\220\0\0\0\0\0\0\0\7\0\0\0\7\0\0\0\0\0\0\0Y\0\0\0\231\0\0\0\210" - "\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""1\0\0\0\345\0\0\0\377" - "\0\0\0\220\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0\0\0\0;\0\0\0f\0\0\0Z\0\0\0" - "\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0" - "\0\2\0\0\0\253\0\0\0\252\0\0\0\1\0\0\0\35\0\0\0\345\0\0\0\377\0\0\0\307" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0C\0\0\0\10\0\0\0" - "\2\0\0\0\330\0\0\0\326\0\0\0\1\0\0\0\27\0\0\0\267\0\0\0\314\0\0\0\237" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0P\0\0\0f\0\0\0Z\0\0\0\13\0\0\0" - "\2\0\0\0\330\0\0\0\326\0\0\0\1\0\0\0\27\0\0\0\267\0\0\0\314\0\0\0\237" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\231\0\0\0\210\0\0\0\20" - "\0\0\0\2\0\0\0\330\0\0\0\326\0\0\0\1\0\0\0\21\0\0\0\211\0\0\0\231\0\0" - "\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\237\0\0\0\314\0\0\0\265\0\0" - "\0\26\0\0\0\2\0\0\0\330\0\0\0\326\0\0\0\1\0\0\0\21\0\0\0\211\0\0\0\231" - "\0\0\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\307\0\0\0\377\0\0\0\342" - "\0\0\0\33\0\0\0\2\0\0\0\255\0\0\0\253\0\0\0\1\0\0\0\21\0\0\0\211\0\0" - "\0\231\0\0\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\307\0\0\0\377\0\0" - "\0\342\0\0\0\33\0\0\0\2\0\0\0\255\0\0\0\253\0\0\0\1\0\0\0\21\0\0\0\211" - "\0\0\0\231\0\0\0w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\307\0\0\0\377" - "\0\0\0\342\0\0\0\33\0\0\0\1\0\0\0\202\0\0\0\200\0\0\0\1\0\0\0\14\0\0" - "\0\\\0\0\0f\0\0\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0" - "\0\17\0\0\0\0\0\0\0\37\0\0\0\272\0\0\0\272\0\0\0\36\0\0\0\0\0\0\0""1" - "\0\0\0\307\0\0\0\235\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0/\0\0\0;\0" - "\0\0\17\0\0\0\0\0\0\0'\0\0\0\351\0\0\0\350\0\0\0&\0\0\0\0\0\0\0'\0\0" - "\0\237\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\77\0\0\0P\0\0\0\24" - "\0\0\0\0\0\0\0'\0\0\0\351\0\0\0\350\0\0\0&\0\0\0\0\0\0\0'\0\0\0\237\0" - "\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^\0\0\0w\0\0\0\35\0\0\0\0" - "\0\0\0'\0\0\0\351\0\0\0\350\0\0\0&\0\0\0\0\0\0\0\35\0\0\0w\0\0\0^\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\237\0\0\0'\0\0\0\0\0\0\0'\0" - "\0\0\351\0\0\0\350\0\0\0&\0\0\0\0\0\0\0\35\0\0\0w\0\0\0^\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\235\0\0\0\307\0\0\0""1\0\0\0\0\0\0\0\37\0" - "\0\0\272\0\0\0\272\0\0\0\36\0\0\0\0\0\0\0\35\0\0\0w\0\0\0^\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\0\0\0\307\0\0\0""1\0\0\0\0\0\0\0\37" - "\0\0\0\272\0\0\0\272\0\0\0\36\0\0\0\0\0\0\0\35\0\0\0w\0\0\0^\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\0\0\0\307\0\0\0""1\0\0\0\0\0\0\0\27" - "\0\0\0\214\0\0\0\213\0\0\0\27\0\0\0\0\0\0\0\24\0\0\0P\0\0\0\77\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\0" - "\0\0\266\0\0\0\267\0\0\0\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0" - "\343\0\0\0\345\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0\343" - "\0\0\0\345\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0\343\0\0" - "\0\345\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0\343\0\0\0\345" - "\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\0\0\0\266\0\0\0\267\0\0" - "\0\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\0\0\0\266\0\0\0\267\0\0\0\26" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0\210\0\0\0\211\0\0\0\20\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\216\0\0\0\216\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\265\0\0\0\267\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\265\0\0\0\267\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\265\0\0\0\267\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\265\0\0\0\267\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\221\0\0\0\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\221\0\0\0\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0m\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0" - "\0\0""5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""5\0\0\0""5\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\0\0\0G\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0j\0\0\0j\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0" - "\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0D\0\0\0" - "D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0D\0\0\0D\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\12\0\0\0\\\0\0\0[\0\0\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\20\0\0\0\211\0\0\0\210\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\0\0\0;\0\0\0\17\0\0\0\0\0\0\0" - "\13\0\0\0E\0\0\0E\0\0\0\14\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0/\0\0\0;\0\0\0\17\0\0\0\0\0\0\0\13\0\0\0E\0" - "\0\0E\0\0\0\14\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\77\0\0\0P\0\0\0\24\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0" - "\0\14\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0^\0\0\0w\0\0\0\35\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14\0\0\0" - "\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0" - "\0\237\0\0\0'\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14\0\0\0\0\0\0\0\17" - "\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\0\0\0\307\0" - "\0\0""1\0\0\0\0\0\0\0\13\0\0\0E\0\0\0E\0\0\0\14\0\0\0\0\0\0\0\17\0\0" - "\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\0\0\0\307\0\0\0" - "1\0\0\0\0\0\0\0\17\0\0\0]\0\0\0]\0\0\0\20\0\0\0\0\0\0\0\17\0\0\0;\0\0" - "\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\0\0\0\307\0\0\0""1\0\0" - "\0\0\0\0\0\27\0\0\0\213\0\0\0\214\0\0\0\27\0\0\0\0\0\0\0\17\0\0\0;\0" - "\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D\0\0\0\11\0" - "\0\0\0\0\0\0\77\0\0\0@\0\0\0\1\0\0\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0L\0\0\0D\0\0\0\11\0\0\0\0\0\0\0" - "\77\0\0\0@\0\0\0\1\0\0\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0P\0\0\0f\0\0\0\\\0\0\0\14\0\0\0\0\0\0\0\77\0\0\0@\0" - "\0\0\1\0\0\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0w\0\0\0\231\0\0\0\211\0\0\0\21\0\0\0\0\0\0\0\77\0\0\0@\0\0\0\1" - "\0\0\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\237\0\0\0\314\0\0\0\267\0\0\0\27\0\0\0\0\0\0\0\77\0\0\0@\0\0\0\1\0\0" - "\0\10\0\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\307" - "\0\0\0\377\0\0\0\345\0\0\0\35\0\0\0\0\0\0\0\77\0\0\0@\0\0\0\1\0\0\0\10" - "\0\0\0C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\307\0\0\0" - "\377\0\0\0\345\0\0\0\35\0\0\0\0\0\0\0U\0\0\0V\0\0\0\1\0\0\0\10\0\0\0" - "C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\307\0\0\0\377\0" - "\0\0\345\0\0\0\35\0\0\0\1\0\0\0\200\0\0\0\200\0\0\0\1\0\0\0\10\0\0\0" - "C\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0" - "L\0\0\0,\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0+\0\0\0L\0\0\0D\0\0\0\17" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0C\0\0\0L\0\0\0,\0\0\0" - "\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0Z\0\0\0f\0\0\0;\0\0\0\0\0\0\0\4\0" - "\0\0\4\0\0\0\0\0\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\35\0\0\0\210\0\0\0\231\0\0\0Y\0\0\0\0\0\0\0\4\0\0\0\4" - "\0\0\0\0\0\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0'\0\0\0\265\0\0\0\314\0\0\0v\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0" - "\0\0\0+\0\0\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "1\0\0\0\342\0\0\0\377\0\0\0\224\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0" - "+\0\0\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""1\0\0" - "\0\342\0\0\0\377\0\0\0\224\0\0\0\0\0\0\0\6\0\0\0\6\0\0\0\0\0\0\0+\0\0" - "\0L\0\0\0D\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""1\0\0\0\342" - "\0\0\0\377\0\0\0\224\0\0\0\0\0\0\0\10\0\0\0\11\0\0\0\0\0\0\0+\0\0\0L" - "\0\0\0D\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0" - "\0+\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0+\0\0" - "\0\12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0:\0\0\0\16\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0V\0\0\0\24\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26\0\0\0s\0\0\0\33\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\33\0\0\0\220\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\33\0\0\0\220\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\33\0\0\0\220\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\16\0\0\0,\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\0\0\0" - "\37\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0'\0\0" - "\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\13\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0'\0\0\0\2\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\13\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0'\0\0\0\2\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\13\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\30\0\0\0'\0\0\0\2\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0" - "\0\0\10\0\0\0\0\0\0\0\0\0\0\0\23\0\0\0\37\0\0\0\2\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10" - "\0\0\0\0\0\0\0\0\0\0\0\23\0\0\0\37\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0\0" - "\0\0\0\0\0\0\0\0\0\16\0\0\0\27\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0\10\0\0\0\0" - "\0\0\0\216\0\0\0\266\0\0\0\272\0\0\0\253\0\0\0\14\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0@\0\0\0E\0\0\0D\0\0\0""7\0" - "\0\0\265\0\0\0\343\0\0\0\351\0\0\0\330\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0" - "\0\0\265\0\0\0\343\0\0\0\351\0\0\0\330\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0" - "\0\0\265\0\0\0\343\0\0\0\351\0\0\0\330\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0" - "\0\0\265\0\0\0\343\0\0\0\351\0\0\0\330\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0" - "\0\0\221\0\0\0\266\0\0\0\272\0\0\0\255\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0" - "\0\0\221\0\0\0\266\0\0\0\272\0\0\0\255\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0" - "\0\0m\0\0\0\210\0\0\0\214\0\0\0\202\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\77\0\0\0E\0\0\0D\0\0\0""5\0\0\0" - "\216\0\0\0\267\0\0\0\272\0\0\0\252\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0@\0\0\0E\0\0\0D\0\0\0""6\0\0\0\267" - "\0\0\0\345\0\0\0\350\0\0\0\326\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0\0\267\0" - "\0\0\345\0\0\0\350\0\0\0\326\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0\0\267\0\0" - "\0\345\0\0\0\350\0\0\0\326\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0\0\267\0\0\0" - "\345\0\0\0\350\0\0\0\326\0\0\0\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0\0\222\0\0\0\267" - "\0\0\0\272\0\0\0\253\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0\0\222\0\0\0\267\0" - "\0\0\272\0\0\0\253\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0\0n\0\0\0\211\0\0\0\213" - "\0\0\0\200\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\4\0\0\0@\0\0\0E\0\0\0D\0\0\0""5\0\0\0\0\0\0\0\25\0\0\0\36\0\0\0" - "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\33\0\0\0&\0\0\0\1\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0" - "\0\0\14\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\33\0\0\0&\0\0\0\1\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0" - "\0\0\7\0\0\0\0\0\0\0\0\0\0\0\33\0\0\0&\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0" - "\0\0\0\0\0\0\0\0\0\0\33\0\0\0&\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0\0" - "\0\0\0\0\0\0\26\0\0\0\36\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0\0\0\0\0" - "\0\0\0\26\0\0\0\36\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0" - "\20\0\0\0\27\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\14\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\35\0\0\0\224\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\16\0\0\0:\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\27\0\0\0v\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\0\0" - "\0:\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\27" - "\0\0\0v\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\0\0\0:\0\0" - "\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\21\0\0\0" - "Y\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\21\0\0\0Y\0\0\0" - "\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\21\0\0\0Y\0\0\0\24\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\21\0\0\0Y\0\0\0\24\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\0\0\0;\0\0\0\16\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\16\0\0\0+\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0""1\0\0\0\345\0\0\0\377\0\0\0\220\0\0\0\0\0\0\0\5\0\0\0" - "\5\0\0\0\0\0\0\0;\0\0\0f\0\0\0Z\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0'\0\0\0\267\0\0\0\314\0\0\0s\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0" - "\0\0\0\0;\0\0\0f\0\0\0Z\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0'\0\0\0\267\0\0\0\314\0\0\0s\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0\0\0\0" - ";\0\0\0f\0\0\0Z\0\0\0\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0" - "\0\211\0\0\0\231\0\0\0V\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0" - "L\0\0\0C\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\211" - "\0\0\0\231\0\0\0V\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0" - "C\0\0\0\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\211\0\0\0\231" - "\0\0\0V\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0C\0\0\0\17" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\211\0\0\0\231\0\0\0V" - "\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0,\0\0\0L\0\0\0C\0\0\0\17\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0\\\0\0\0f\0\0\0:\0\0\0\0\0\0" - "\0\3\0\0\0\3\0\0\0\0\0\0\0,\0\0\0L\0\0\0C\0\0\0\17\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\307\0\0\0\377\0\0\0\342\0\0\0\33\0\0\0\1\0\0\0\202" - "\0\0\0\200\0\0\0\1\0\0\0\14\0\0\0\\\0\0\0f\0\0\0P\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\237\0\0\0\314\0\0\0\265\0\0\0\26\0\0\0\1\0\0\0\202" - "\0\0\0\200\0\0\0\1\0\0\0\14\0\0\0[\0\0\0f\0\0\0P\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\237\0\0\0\314\0\0\0\265\0\0\0\26\0\0\0\1\0\0\0\202" - "\0\0\0\200\0\0\0\1\0\0\0\14\0\0\0[\0\0\0f\0\0\0P\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0w\0\0\0\231\0\0\0\210\0\0\0\20\0\0\0\1\0\0\0V\0\0\0" - "V\0\0\0\0\0\0\0\11\0\0\0D\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0w\0\0\0\231\0\0\0\210\0\0\0\20\0\0\0\1\0\0\0V\0\0\0V\0\0\0\0" - "\0\0\0\11\0\0\0D\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "w\0\0\0\231\0\0\0\210\0\0\0\20\0\0\0\1\0\0\0V\0\0\0V\0\0\0\0\0\0\0\11" - "\0\0\0D\0\0\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0\231" - "\0\0\0\210\0\0\0\20\0\0\0\1\0\0\0V\0\0\0V\0\0\0\0\0\0\0\11\0\0\0D\0\0" - "\0L\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0P\0\0\0f\0\0\0Z\0\0\0" - "\13\0\0\0\1\0\0\0@\0\0\0@\0\0\0\0\0\0\0\11\0\0\0D\0\0\0L\0\0\0;\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\235\0\0\0\307\0\0\0""1\0\0\0\0\0\0\0" - "\27\0\0\0\214\0\0\0\213\0\0\0\27\0\0\0\0\0\0\0\24\0\0\0P\0\0\0\77\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\237\0\0\0'\0\0\0\0\0\0\0\27" - "\0\0\0\214\0\0\0\213\0\0\0\27\0\0\0\0\0\0\0\24\0\0\0P\0\0\0:\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\237\0\0\0'\0\0\0\0\0\0\0\27\0\0" - "\0\214\0\0\0\213\0\0\0\27\0\0\0\0\0\0\0\24\0\0\0P\0\0\0:\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0^\0\0\0w\0\0\0\35\0\0\0\0\0\0\0\20\0\0\0]\0" - "\0\0]\0\0\0\17\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0^\0\0\0w\0\0\0\35\0\0\0\0\0\0\0\20\0\0\0]\0\0\0]\0\0\0" - "\17\0\0\0\0\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0^\0\0\0w\0\0\0\35\0\0\0\0\0\0\0\20\0\0\0]\0\0\0]\0\0\0\17\0\0\0\0" - "\0\0\0\17\0\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0^\0\0\0" - "w\0\0\0\35\0\0\0\0\0\0\0\20\0\0\0]\0\0\0]\0\0\0\17\0\0\0\0\0\0\0\17\0" - "\0\0;\0\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\77\0\0\0P\0\0\0\24" - "\0\0\0\0\0\0\0\14\0\0\0E\0\0\0E\0\0\0\13\0\0\0\0\0\0\0\17\0\0\0;\0\0" - "\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\16\0\0\0\210\0\0\0\211\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\16\0\0\0\210\0\0\0\211\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\16\0\0\0\210\0\0\0\211\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12" - "\0\0\0[\0\0\0\\\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\0\0\0[" - "\0\0\0\\\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\0\0\0[\0\0\0\\" - "\0\0\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\0\0\0[\0\0\0\\\0\0\0\13" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0D\0\0\0D\0\0\0\10\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0m\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0m\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0m\0\0\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0H\0\0\0I\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0I" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0I\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0I\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""6\0\0\0""7\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; - - diff -Nru thunar-1.2.3/thunar/thunar-throbber-fallback.h thunar-1.6.10/thunar/thunar-throbber-fallback.h --- thunar-1.2.3/thunar/thunar-throbber-fallback.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-throbber-fallback.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* $Id$ */ -/*- - * Copyright (c) 2006 Benedikt Meurer - * - * 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 - */ - -#ifndef __THUNAR_THROBBER_FALLBACK_H__ -#define __THUNAR_THROBBER_FALLBACK_H__ - -#include - -G_BEGIN_DECLS; - -extern const guint8 thunar_throbber_fallback[]; - -G_END_DECLS; - -#endif /* !__THUNAR_THROBBER_FALLBACK_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-throbber.h thunar-1.6.10/thunar/thunar-throbber.h --- thunar-1.2.3/thunar/thunar-throbber.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-throbber.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/* $Id$ */ -/*- - * Copyright (c) 2005-2006 Benedikt Meurer - * - * 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 - */ - -#ifndef __THUNAR_THROBBER_H__ -#define __THUNAR_THROBBER_H__ - -#include - -G_BEGIN_DECLS; - -typedef struct _ThunarThrobberClass ThunarThrobberClass; -typedef struct _ThunarThrobber ThunarThrobber; - -#define THUNAR_TYPE_THROBBER (thunar_throbber_get_type ()) -#define THUNAR_THROBBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_TYPE_THROBBER, ThunarThrobber)) -#define THUNAR_THROBBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), THUNAR_TYPE_THROBBER, ThunarThrobberClass)) -#define THUNAR_IS_THROBBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_TYPE_THROBBER)) -#define THUNAR_IS_THROBBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_THROBBER)) -#define THUNAR_THROBBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_THROBBER, ThunarThrobberClass)) - -GType thunar_throbber_get_type (void) G_GNUC_CONST; - -GtkWidget *thunar_throbber_new (void) G_GNUC_MALLOC; - -gboolean thunar_throbber_get_animated (const ThunarThrobber *throbber); -void thunar_throbber_set_animated (ThunarThrobber *throbber, - gboolean animated); - -G_END_DECLS; - -#endif /* !__THUNAR_THROBBER_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-thumbnail-cache.c thunar-1.6.10/thunar/thunar-thumbnail-cache.c --- thunar-1.2.3/thunar/thunar-thumbnail-cache.c 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-thumbnail-cache.c 2015-05-22 13:25:36.000000000 +0000 @@ -0,0 +1,707 @@ +/* vi:set et ai sw=2 sts=2 ts=2: */ +/*- + * Copyright (c) 2011 Jannis Pohlmann + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#ifdef HAVE_DBUS +#include +#include + +#include +#endif + +#include +#include +#include + +#include +#include +#include + +#if GLIB_CHECK_VERSION (2, 32, 0) +#define _thumbnail_cache_lock(cache) g_mutex_lock (&((cache)->lock)) +#define _thumbnail_cache_unlock(cache) g_mutex_unlock (&((cache)->lock)) +#else +#define _thumbnail_cache_lock(cache) g_mutex_lock ((cache)->lock) +#define _thumbnail_cache_unlock(cache) g_mutex_unlock ((cache)->lock) +#endif + + + +static void thunar_thumbnail_cache_finalize (GObject *object); + + + +struct _ThunarThumbnailCacheClass +{ + GObjectClass __parent__; +}; + +struct _ThunarThumbnailCache +{ + GObject __parent__; + +#ifdef HAVE_DBUS + DBusGProxy *cache_proxy; + + GList *move_source_queue; + GList *move_target_queue; + guint move_queue_idle_id; + + GList *copy_source_queue; + GList *copy_target_queue; + guint copy_queue_idle_id; + + GList *delete_queue; + guint delete_queue_idle_id; + + GList *cleanup_queue; + guint cleanup_queue_idle_id; + +#if GLIB_CHECK_VERSION (2, 32, 0) + GMutex lock; +#else + GMutex *lock; +#endif +#endif +}; + + + +G_DEFINE_TYPE (ThunarThumbnailCache, thunar_thumbnail_cache, G_TYPE_OBJECT) + + + +static void +thunar_thumbnail_cache_class_init (ThunarThumbnailCacheClass *klass) +{ + GObjectClass *gobject_class; + + /* Determine the parent type class */ + thunar_thumbnail_cache_parent_class = g_type_class_peek_parent (klass); + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = thunar_thumbnail_cache_finalize; +} + + + +static void +thunar_thumbnail_cache_init (ThunarThumbnailCache *cache) +{ +#ifdef HAVE_DBUS + DBusGConnection *connection; + + /* try to connect to D-Bus */ + connection = dbus_g_bus_get (DBUS_BUS_SESSION, NULL); + if (connection != NULL) + { + /* create a proxy for the thumbnail cache service */ + cache->cache_proxy = + dbus_g_proxy_new_for_name (connection, + "org.freedesktop.thumbnails.Cache1", + "/org/freedesktop/thumbnails/Cache1", + "org.freedesktop.thumbnails.Cache1"); + + /* release the D-Bus connection */ + dbus_g_connection_unref (connection); + } + +/* create a new mutex for accessing the cache from different threads */ +#if GLIB_CHECK_VERSION (2, 32, 0) + g_mutex_init (&cache->lock); +#else + cache->lock = g_mutex_new (); +#endif +#endif +} + + + +static void +thunar_thumbnail_cache_finalize (GObject *object) +{ +#ifdef HAVE_DBUS + ThunarThumbnailCache *cache = THUNAR_THUMBNAIL_CACHE (object); + + /* acquire a cache lock */ + _thumbnail_cache_lock (cache); + + /* drop the move queue idle and all queued files */ + if (cache->move_queue_idle_id > 0) + g_source_remove (cache->move_queue_idle_id); + g_list_free_full (cache->move_source_queue, g_object_unref); + g_list_free_full (cache->move_target_queue, g_object_unref); + + /* drop the copy queue idle and all queued files */ + if (cache->copy_queue_idle_id > 0) + g_source_remove (cache->copy_queue_idle_id); + g_list_free_full (cache->copy_source_queue, g_object_unref); + g_list_free_full (cache->copy_target_queue, g_object_unref); + + /* drop the delete queue idle and all queued files */ + if (cache->delete_queue_idle_id > 0) + g_source_remove (cache->delete_queue_idle_id); + g_list_free_full (cache->delete_queue, g_object_unref); + + /* drop the cleanup queue idle and all queued files */ + if (cache->cleanup_queue_idle_id > 0) + g_source_remove (cache->cleanup_queue_idle_id); + g_list_free_full (cache->cleanup_queue, g_object_unref); + + /* check if we have a valid cache proxy */ + if (cache->cache_proxy != NULL) + g_object_unref (cache->cache_proxy); + + /* release the cache lock */ + _thumbnail_cache_unlock (cache); + + /* release the mutex itself */ +#if GLIB_CHECK_VERSION (2, 32, 0) + g_mutex_clear (&cache->lock); +#else + g_mutex_free (cache->lock); +#endif +#endif + + (*G_OBJECT_CLASS (thunar_thumbnail_cache_parent_class)->finalize) (object); +} + + + +#ifdef HAVE_DBUS +static void +thunar_thumbnail_cache_move_copy_async_reply (DBusGProxy *proxy, + GError *error, + gpointer user_data) +{ + GList *li; + ThunarFile *file; + + _thunar_return_if_fail (DBUS_IS_G_PROXY (proxy)); + + for (li = user_data; li != NULL; li = li->next) + { + file = thunar_file_cache_lookup (G_FILE (li->data)); + g_object_unref (G_OBJECT (li->data)); + + if (G_LIKELY (file != NULL)) + { + /* if visible, let the view know there might be a thumb */ + thunar_file_changed (file); + g_object_unref (file); + } + } + + g_list_free (user_data); +} + + + +static void +thunar_thumbnail_cache_move_async (ThunarThumbnailCache *cache, + const gchar **source_uris, + const gchar **target_uris, + gpointer user_data) +{ + _thunar_return_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache)); + _thunar_return_if_fail (source_uris != NULL); + _thunar_return_if_fail (target_uris != NULL); + + /* request a thumbnail cache update asynchronously */ + thunar_thumbnail_cache_proxy_move_async (cache->cache_proxy, + source_uris, target_uris, + thunar_thumbnail_cache_move_copy_async_reply, + user_data); +} + + + +static void +thunar_thumbnail_cache_copy_async (ThunarThumbnailCache *cache, + const gchar **source_uris, + const gchar **target_uris, + gpointer user_data) +{ + _thunar_return_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache)); + _thunar_return_if_fail (source_uris != NULL); + _thunar_return_if_fail (target_uris != NULL); + + /* request a thumbnail cache update asynchronously */ + thunar_thumbnail_cache_proxy_copy_async (cache->cache_proxy, + source_uris, target_uris, + thunar_thumbnail_cache_move_copy_async_reply, + user_data); +} + + + +static void +thunar_thumbnail_cache_delete_async_reply (DBusGProxy *proxy, + GError *error, + gpointer user_data) +{ + _thunar_return_if_fail (DBUS_IS_G_PROXY (proxy)); +} + + + +static void +thunar_thumbnail_cache_delete_async (ThunarThumbnailCache *cache, + const gchar **uris) +{ + _thunar_return_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache)); + _thunar_return_if_fail (uris != NULL); + + /* request a thumbnail cache update asynchronously */ + thunar_thumbnail_cache_proxy_delete_async (cache->cache_proxy, uris, + thunar_thumbnail_cache_delete_async_reply, + NULL); +} + + + +static void +thunar_thumbnail_cache_cleanup_async_reply (DBusGProxy *proxy, + GError *error, + gpointer user_data) +{ + _thunar_return_if_fail (DBUS_IS_G_PROXY (proxy)); +} + + + +static void +thunar_thumbnail_cache_cleanup_async (ThunarThumbnailCache *cache, + const gchar *const *base_uris) +{ + _thunar_return_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache)); + _thunar_return_if_fail (base_uris != NULL); + + /* request a thumbnail cache update asynchronously */ + thunar_thumbnail_cache_proxy_cleanup_async (cache->cache_proxy, + (const gchar **)base_uris, 0, + thunar_thumbnail_cache_cleanup_async_reply, + NULL); +} + + + +static gboolean +thunar_thumbnail_cache_process_queue (ThunarThumbnailCache *cache, + gboolean copy_async) +{ + GList *sp; + GList *tp; + gchar **source_uris; + gchar **target_uris; + guint n_uris; + guint n; + GList *source_queue; + GList *target_queue; + + _thunar_return_val_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache), FALSE); + + /* acquire a cache lock */ + _thumbnail_cache_lock (cache); + + /* steal the lists */ + if (copy_async) + { + source_queue = cache->copy_source_queue; + cache->copy_source_queue = NULL; + target_queue = cache->copy_target_queue; + cache->copy_target_queue = NULL; + } + else + { + source_queue = cache->move_source_queue; + cache->move_source_queue = NULL; + target_queue = cache->move_target_queue; + cache->move_target_queue = NULL; + } + + /* compute how many URIs there are */ + n_uris = g_list_length (source_queue); + + /* allocate a string array for the URIs */ + source_uris = g_new0 (gchar *, n_uris + 1); + target_uris = g_new0 (gchar *, n_uris + 1); + + /* fill URI array with file URIs from the move queue */ + for (n = 0, + sp = g_list_last (source_queue), + tp = g_list_last (target_queue); + sp != NULL && tp != NULL; + sp = sp->prev, tp = tp->prev, ++n) + { + source_uris[n] = g_file_get_uri (sp->data); + target_uris[n] = g_file_get_uri (tp->data); + + /* release the source object */ + g_object_unref (sp->data); + } + + /* NULL-terminate the URI arrays */ + source_uris[n] = NULL; + target_uris[n] = NULL; + + if (copy_async) + { + /* asynchronously copy the thumbnails */ + thunar_thumbnail_cache_copy_async (cache, + (const gchar **)source_uris, + (const gchar **)target_uris, + target_queue); + } + else + { + /* asynchronously move the thumbnails */ + thunar_thumbnail_cache_move_async (cache, + (const gchar **)source_uris, + (const gchar **)target_uris, + target_queue); + } + + /* free the URI arrays */ + g_strfreev (source_uris); + g_strfreev (target_uris); + + /* release the move queue lists */ + g_list_free (source_queue); + + /* release the cache lock */ + _thumbnail_cache_unlock (cache); + + return FALSE; +} + + + +static gboolean +thunar_thumbnail_cache_process_move_queue (gpointer user_data) +{ + return thunar_thumbnail_cache_process_queue (user_data, FALSE); +} + + + +static void +thunar_thumbnail_cache_process_move_queue_destroy (gpointer user_data) +{ + THUNAR_THUMBNAIL_CACHE (user_data)->move_queue_idle_id = 0; +} + + + +static gboolean +thunar_thumbnail_cache_process_copy_queue (gpointer user_data) +{ + return thunar_thumbnail_cache_process_queue (user_data, TRUE); +} + + + +static void +thunar_thumbnail_cache_process_copy_queue_destroy (gpointer user_data) +{ + THUNAR_THUMBNAIL_CACHE (user_data)->copy_queue_idle_id = 0; +} + + + +static gboolean +thunar_thumbnail_cache_process_delete_queue (ThunarThumbnailCache *cache) +{ + GList *lp; + gchar **uris; + guint n_uris; + guint n; + + _thunar_return_val_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache), FALSE); + + /* acquire a cache lock */ + _thumbnail_cache_lock (cache); + + /* compute how many URIs there are */ + n_uris = g_list_length (cache->delete_queue); + + /* allocate a string array for the URIs */ + uris = g_new0 (gchar *, n_uris + 1); + + /* fill URI array with file URIs from the delete queue */ + for (lp = g_list_last (cache->delete_queue), n = 0; lp != NULL; lp = lp->prev, ++n) + { + uris[n] = g_file_get_uri (lp->data); + + /* release the file object */ + g_object_unref (lp->data); + } + + /* NULL-terminate the URI array */ + uris[n] = NULL; + + /* asynchronously delete the thumbnails */ + thunar_thumbnail_cache_delete_async (cache, (const gchar **)uris); + + /* free the URI array */ + g_strfreev (uris); + + /* release the delete queue list */ + g_list_free (cache->delete_queue); + cache->delete_queue = NULL; + + /* reset the delete queue idle ID */ + cache->delete_queue_idle_id = 0; + + /* release the cache lock */ + _thumbnail_cache_unlock (cache); + + return FALSE; +} + + + +static gboolean +thunar_thumbnail_cache_process_cleanup_queue (ThunarThumbnailCache *cache) +{ + GList *lp; + gchar **uris; + guint n_uris; + guint n; + + _thunar_return_val_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache), FALSE); + + /* acquire a cache lock */ + _thumbnail_cache_lock (cache); + + /* compute how many URIs there are */ + n_uris = g_list_length (cache->cleanup_queue); + + /* allocate a string array for the URIs */ + uris = g_new0 (gchar *, n_uris + 1); + +#ifndef NDEBUG + g_debug ("cleanup:"); +#endif + + /* fill URI array with file URIs from the cleanup queue */ + for (lp = g_list_last (cache->cleanup_queue), n = 0; lp != NULL; lp = lp->prev, ++n) + { + uris[n] = g_file_get_uri (lp->data); + +#ifndef NDEBUG + g_debug (" %s", uris[n]); +#endif + + /* release the file object */ + g_object_unref (lp->data); + } + + /* NULL-terminate the URI array */ + uris[n] = NULL; + + /* asynchronously cleanup the thumbnails */ + thunar_thumbnail_cache_cleanup_async (cache, (const gchar *const *)uris); + + /* free the URI array */ + g_strfreev (uris); + + /* release the cleanup queue list */ + g_list_free (cache->cleanup_queue); + cache->cleanup_queue = NULL; + + /* reset the cleanup queue idle ID */ + cache->cleanup_queue_idle_id = 0; + + /* release the cache lock */ + _thumbnail_cache_unlock (cache); + + return FALSE; +} +#endif /* HAVE_DBUS */ + + + +ThunarThumbnailCache * +thunar_thumbnail_cache_new (void) +{ + return g_object_new (THUNAR_TYPE_THUMBNAIL_CACHE, NULL); +} + + + +void +thunar_thumbnail_cache_move_file (ThunarThumbnailCache *cache, + GFile *source_file, + GFile *target_file) +{ + _thunar_return_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache)); + _thunar_return_if_fail (G_IS_FILE (source_file)); + _thunar_return_if_fail (G_IS_FILE (target_file)); + +#ifdef HAVE_DBUS + /* acquire a cache lock */ + _thumbnail_cache_lock (cache); + + /* check if we have a valid proxy for the cache service */ + if (cache->cache_proxy != NULL) + { + /* cancel any pending timeout to process the move queue */ + if (cache->move_queue_idle_id > 0) + { + g_source_remove (cache->move_queue_idle_id); + cache->move_queue_idle_id = 0; + } + + /* add the files to the move queue */ + cache->move_source_queue = g_list_prepend (cache->move_source_queue, + g_object_ref (source_file)); + cache->move_target_queue = g_list_prepend (cache->move_target_queue, + g_object_ref (target_file)); + + /* process the move queue in a 250ms timeout */ + cache->move_queue_idle_id = + g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, 250, thunar_thumbnail_cache_process_move_queue, + cache, thunar_thumbnail_cache_process_move_queue_destroy); + } + + /* release the cache lock */ + _thumbnail_cache_unlock (cache); +#endif +} + + + +void +thunar_thumbnail_cache_copy_file (ThunarThumbnailCache *cache, + GFile *source_file, + GFile *target_file) +{ + _thunar_return_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache)); + _thunar_return_if_fail (G_IS_FILE (source_file)); + _thunar_return_if_fail (G_IS_FILE (target_file)); + +#ifdef HAVE_DBUS + /* acquire a cache lock */ + _thumbnail_cache_lock (cache); + + /* check if we have a valid proxy for the cache service */ + if (cache->cache_proxy != NULL) + { + /* cancel any pending timeout to process the copy queue */ + if (cache->copy_queue_idle_id > 0) + { + g_source_remove (cache->copy_queue_idle_id); + cache->copy_queue_idle_id = 0; + } + + /* add the files to the copy queues */ + cache->copy_source_queue = g_list_prepend (cache->copy_source_queue, + g_object_ref (source_file)); + cache->copy_target_queue = g_list_prepend (cache->copy_target_queue, + g_object_ref (target_file)); + + /* process the copy queue in a 250ms timeout */ + cache->copy_queue_idle_id = + g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, 500, thunar_thumbnail_cache_process_copy_queue, + cache, thunar_thumbnail_cache_process_copy_queue_destroy); + } + + /* release the cache lock */ + _thumbnail_cache_unlock (cache); +#endif +} + + + +void +thunar_thumbnail_cache_delete_file (ThunarThumbnailCache *cache, + GFile *file) +{ + _thunar_return_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache)); + _thunar_return_if_fail (G_IS_FILE (file)); + +#ifdef HAVE_DBUS + /* acquire a cache lock */ + _thumbnail_cache_lock (cache); + + /* check if we have a valid proxy for the cache service */ + if (cache->cache_proxy) + { + /* cancel any pending timeout to process the delete queue */ + if (cache->delete_queue_idle_id > 0) + { + g_source_remove (cache->delete_queue_idle_id); + cache->delete_queue_idle_id = 0; + } + + /* add the file to the delete queue */ + cache->delete_queue = g_list_prepend (cache->delete_queue, g_object_ref (file)); + + /* process the delete queue in a 250ms timeout */ + cache->delete_queue_idle_id = + g_timeout_add (500, (GSourceFunc) thunar_thumbnail_cache_process_delete_queue, + cache); + } + + /* release the cache lock */ + _thumbnail_cache_unlock (cache); +#endif +} + + + +void +thunar_thumbnail_cache_cleanup_file (ThunarThumbnailCache *cache, + GFile *file) +{ + _thunar_return_if_fail (THUNAR_IS_THUMBNAIL_CACHE (cache)); + _thunar_return_if_fail (G_IS_FILE (file)); + +#ifdef HAVE_DBUS + /* acquire a cache lock */ + _thumbnail_cache_lock (cache); + + /* check if we have a valid proxy for the cache service */ + if (cache->cache_proxy) + { + /* cancel any pending timeout to process the cleanup queue */ + if (cache->cleanup_queue_idle_id > 0) + { + g_source_remove (cache->cleanup_queue_idle_id); + cache->cleanup_queue_idle_id = 0; + } + + /* add the file to the cleanup queue */ + cache->cleanup_queue = g_list_prepend (cache->cleanup_queue, g_object_ref (file)); + + /* process the cleanup queue in a 250ms timeout */ + cache->cleanup_queue_idle_id = + g_timeout_add (1000, (GSourceFunc) thunar_thumbnail_cache_process_cleanup_queue, + cache); + } + + /* release the cache lock */ + _thumbnail_cache_unlock (cache); +#endif +} diff -Nru thunar-1.2.3/thunar/thunar-thumbnail-cache.h thunar-1.6.10/thunar/thunar-thumbnail-cache.h --- thunar-1.2.3/thunar/thunar-thumbnail-cache.h 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-thumbnail-cache.h 2015-05-22 13:25:36.000000000 +0000 @@ -0,0 +1,56 @@ +/* vi:set et ai sw=2 sts=2 ts=2: */ +/*- + * Copyright (c) 2011 Jannis Pohlmann + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __THUNAR_THUMBNAIL_CACHE_H__ +#define __THUNAR_THUMBNAIL_CACHE_H__ + +#include + +G_BEGIN_DECLS + +#define THUNAR_TYPE_THUMBNAIL_CACHE (thunar_thumbnail_cache_get_type ()) +#define THUNAR_THUMBNAIL_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_TYPE_THUMBNAIL_CACHE, ThunarThumbnailCache)) +#define THUNAR_THUMBNAIL_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), THUNAR_TYPE_THUMBNAIL_CACHE, ThunarThumbnailCacheClass)) +#define THUNAR_IS_THUMBNAIL_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_TYPE_THUMBNAIL_CACHE)) +#define THUNAR_IS_THUMBNAIL_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_THUMBNAIL_CACHE) +#define THUNAR_THUMBNAIL_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_THUMBNAIL_CACHE, ThunarThumbnailCacheClass)) + +typedef struct _ThunarThumbnailCachePrivate ThunarThumbnailCachePrivate; +typedef struct _ThunarThumbnailCacheClass ThunarThumbnailCacheClass; +typedef struct _ThunarThumbnailCache ThunarThumbnailCache; + +GType thunar_thumbnail_cache_get_type (void) G_GNUC_CONST; + +ThunarThumbnailCache *thunar_thumbnail_cache_new (void) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; + +void thunar_thumbnail_cache_move_file (ThunarThumbnailCache *cache, + GFile *source_file, + GFile *target_file); +void thunar_thumbnail_cache_copy_file (ThunarThumbnailCache *cache, + GFile *source_file, + GFile *target_file); +void thunar_thumbnail_cache_delete_file (ThunarThumbnailCache *cache, + GFile *file); +void thunar_thumbnail_cache_cleanup_file (ThunarThumbnailCache *cache, + GFile *file); + +G_END_DECLS + +#endif /* !__THUNAR_THUMBNAIL_CACHE_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-thumbnail-cache-proxy.h thunar-1.6.10/thunar/thunar-thumbnail-cache-proxy.h --- thunar-1.2.3/thunar/thunar-thumbnail-cache-proxy.h 1970-01-01 00:00:00.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-thumbnail-cache-proxy.h 2015-05-22 20:47:38.000000000 +0000 @@ -0,0 +1,174 @@ +/* Generated by dbus-binding-tool; do not edit! */ + +#include +#include + +G_BEGIN_DECLS + +#ifndef _DBUS_GLIB_ASYNC_DATA_FREE +#define _DBUS_GLIB_ASYNC_DATA_FREE +static +#ifdef G_HAVE_INLINE +inline +#endif +void +_dbus_glib_async_data_free (gpointer stuff) +{ + g_slice_free (DBusGAsyncData, stuff); +} +#endif + +#ifndef DBUS_GLIB_CLIENT_WRAPPERS_thunar_thumbnail_cache_proxy +#define DBUS_GLIB_CLIENT_WRAPPERS_thunar_thumbnail_cache_proxy + +static +#ifdef G_HAVE_INLINE +inline +#endif +gboolean +thunar_thumbnail_cache_proxy_move (DBusGProxy *proxy, const char ** IN_from_uris, const char ** IN_to_uris, GError **error) + +{ + return dbus_g_proxy_call (proxy, "Move", error, G_TYPE_STRV, IN_from_uris, G_TYPE_STRV, IN_to_uris, G_TYPE_INVALID, G_TYPE_INVALID); +} + +typedef void (*thunar_thumbnail_cache_proxy_move_reply) (DBusGProxy *proxy, GError *error, gpointer userdata); + +static void +thunar_thumbnail_cache_proxy_move_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) +{ + DBusGAsyncData *data = (DBusGAsyncData*) user_data; + GError *error = NULL; + dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID); + (*(thunar_thumbnail_cache_proxy_move_reply)data->cb) (proxy, error, data->userdata); + return; +} + +static +#ifdef G_HAVE_INLINE +inline +#endif +DBusGProxyCall* +thunar_thumbnail_cache_proxy_move_async (DBusGProxy *proxy, const char ** IN_from_uris, const char ** IN_to_uris, thunar_thumbnail_cache_proxy_move_reply callback, gpointer userdata) + +{ + DBusGAsyncData *stuff; + stuff = g_slice_new (DBusGAsyncData); + stuff->cb = G_CALLBACK (callback); + stuff->userdata = userdata; + return dbus_g_proxy_begin_call (proxy, "Move", thunar_thumbnail_cache_proxy_move_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_STRV, IN_from_uris, G_TYPE_STRV, IN_to_uris, G_TYPE_INVALID); +} +static +#ifdef G_HAVE_INLINE +inline +#endif +gboolean +thunar_thumbnail_cache_proxy_copy (DBusGProxy *proxy, const char ** IN_from_uris, const char ** IN_to_uris, GError **error) + +{ + return dbus_g_proxy_call (proxy, "Copy", error, G_TYPE_STRV, IN_from_uris, G_TYPE_STRV, IN_to_uris, G_TYPE_INVALID, G_TYPE_INVALID); +} + +typedef void (*thunar_thumbnail_cache_proxy_copy_reply) (DBusGProxy *proxy, GError *error, gpointer userdata); + +static void +thunar_thumbnail_cache_proxy_copy_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) +{ + DBusGAsyncData *data = (DBusGAsyncData*) user_data; + GError *error = NULL; + dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID); + (*(thunar_thumbnail_cache_proxy_copy_reply)data->cb) (proxy, error, data->userdata); + return; +} + +static +#ifdef G_HAVE_INLINE +inline +#endif +DBusGProxyCall* +thunar_thumbnail_cache_proxy_copy_async (DBusGProxy *proxy, const char ** IN_from_uris, const char ** IN_to_uris, thunar_thumbnail_cache_proxy_copy_reply callback, gpointer userdata) + +{ + DBusGAsyncData *stuff; + stuff = g_slice_new (DBusGAsyncData); + stuff->cb = G_CALLBACK (callback); + stuff->userdata = userdata; + return dbus_g_proxy_begin_call (proxy, "Copy", thunar_thumbnail_cache_proxy_copy_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_STRV, IN_from_uris, G_TYPE_STRV, IN_to_uris, G_TYPE_INVALID); +} +static +#ifdef G_HAVE_INLINE +inline +#endif +gboolean +thunar_thumbnail_cache_proxy_delete (DBusGProxy *proxy, const char ** IN_uris, GError **error) + +{ + return dbus_g_proxy_call (proxy, "Delete", error, G_TYPE_STRV, IN_uris, G_TYPE_INVALID, G_TYPE_INVALID); +} + +typedef void (*thunar_thumbnail_cache_proxy_delete_reply) (DBusGProxy *proxy, GError *error, gpointer userdata); + +static void +thunar_thumbnail_cache_proxy_delete_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) +{ + DBusGAsyncData *data = (DBusGAsyncData*) user_data; + GError *error = NULL; + dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID); + (*(thunar_thumbnail_cache_proxy_delete_reply)data->cb) (proxy, error, data->userdata); + return; +} + +static +#ifdef G_HAVE_INLINE +inline +#endif +DBusGProxyCall* +thunar_thumbnail_cache_proxy_delete_async (DBusGProxy *proxy, const char ** IN_uris, thunar_thumbnail_cache_proxy_delete_reply callback, gpointer userdata) + +{ + DBusGAsyncData *stuff; + stuff = g_slice_new (DBusGAsyncData); + stuff->cb = G_CALLBACK (callback); + stuff->userdata = userdata; + return dbus_g_proxy_begin_call (proxy, "Delete", thunar_thumbnail_cache_proxy_delete_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_STRV, IN_uris, G_TYPE_INVALID); +} +static +#ifdef G_HAVE_INLINE +inline +#endif +gboolean +thunar_thumbnail_cache_proxy_cleanup (DBusGProxy *proxy, const char ** IN_base_uris, const guint IN_since, GError **error) + +{ + return dbus_g_proxy_call (proxy, "Cleanup", error, G_TYPE_STRV, IN_base_uris, G_TYPE_UINT, IN_since, G_TYPE_INVALID, G_TYPE_INVALID); +} + +typedef void (*thunar_thumbnail_cache_proxy_cleanup_reply) (DBusGProxy *proxy, GError *error, gpointer userdata); + +static void +thunar_thumbnail_cache_proxy_cleanup_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) +{ + DBusGAsyncData *data = (DBusGAsyncData*) user_data; + GError *error = NULL; + dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID); + (*(thunar_thumbnail_cache_proxy_cleanup_reply)data->cb) (proxy, error, data->userdata); + return; +} + +static +#ifdef G_HAVE_INLINE +inline +#endif +DBusGProxyCall* +thunar_thumbnail_cache_proxy_cleanup_async (DBusGProxy *proxy, const char ** IN_base_uris, const guint IN_since, thunar_thumbnail_cache_proxy_cleanup_reply callback, gpointer userdata) + +{ + DBusGAsyncData *stuff; + stuff = g_slice_new (DBusGAsyncData); + stuff->cb = G_CALLBACK (callback); + stuff->userdata = userdata; + return dbus_g_proxy_begin_call (proxy, "Cleanup", thunar_thumbnail_cache_proxy_cleanup_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_STRV, IN_base_uris, G_TYPE_UINT, IN_since, G_TYPE_INVALID); +} +#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_thunar_thumbnail_cache_proxy */ + +G_END_DECLS diff -Nru thunar-1.2.3/thunar/thunar-thumbnailer.c thunar-1.6.10/thunar/thunar-thumbnailer.c --- thunar-1.2.3/thunar/thunar-thumbnailer.c 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-thumbnailer.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,19 +1,20 @@ /* vi:set et ai sw=2 sts=2 ts=2: */ /*- - * Copyright (c) 2009 Jannis Pohlmann + * Copyright (c) 2009-2011 Jannis Pohlmann + * Copyright (c) 2012 Nick Schermer * - * This program is free software; you can redistribute it and/or + * 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 + * 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 + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ @@ -44,66 +45,24 @@ * D-Bus services. This header contains an in-depth description of its design to make * it easier to understand why things are the way they are. * - * Please note that all D-Bus calls are performed asynchronously. + * Please note that all D-Bus calls are performed asynchronously. * * - * Queue - * ===== - * - * ThunarThumbnailer maintains a wait queue to group individual thumbnail requests. - * The wait queue is processed at most every 100ms. This is done to reduce the - * overall D-Bus noise when dealing with a lot of requests. The more thumbnails are - * requested in a 100ms time slot, the less D-Bus methods are sent. - * - * Let N be the number of requests made for individual files in a 100ms slot. - * Compared to sending out one requests per file (which generates 4*N D-Bus messages, - * 1 Queue, 1 Started, 1 Ready/Error and 1 Finished for each of the N files), the wait - * queue technique only causes 3+N D-Bus messages to be sent (1 Queue, 1 Started, - * N Ready/Error and 1 Finished). This can be further improved on the service side - * if the D-Bus thumbnailer groups Ready/Error messages (which of course has drawbacks - * with regards to the overall thumbnailing responsiveness). - * - * Before a URI is added to the wait queue, it is checked whether it isn't already - * 1) in the wait queue, 2) part of a pending or active request or 3) part of a - * finished request which has an idle function pending. - * - * When a request call is finally sent out, an internal request ID is created and - * associated with the corresponding DBusGProxyCall via the request_call_mapping hash - * table. It also remembers the URIs for the internal request ID in the - * request_uris_mapping hash table. + * When a request call is sent out, an internal request ID is created and + * associated with the corresponding DBusGProxyCall. * * The D-Bus reply handler then checks if there was an delivery error or * not. If the request method was sent successfully, the handle returned by the - * D-Bus thumbnailer is associated bidirectionally with the internal request ID via - * the request_handle_mapping and handle_request_mappings. If the request could - * not be sent at all, the URIs array is dropped from request_uris_mapping. In - * both cases, the association of the internal request ID with the DBusGProxyCall - * is removed from request_call_mapping. - * - * These hash tables play a major role in the Started, Finished, Error and Ready - * signal handlers. - * - * - * Started - * ======= - * - * When a Started signal is emitted by the D-Bus thumbnailer, ThunarThumbnailer - * receives the handle and looks up the corresponding internal request ID. If - * it exists (which it should), it schedules an idle function to handle the - * signal in the application's main loop. - * - * The idle function then looks up the URIs array for the request ID from the - * request_uris_mapping. For each of these URIs the corresponding ThunarFile - * is looked up from the file cache (which represents files currently being - * used somewhere in the UI), and if the ThunarFile exists in the cache it's - * thumb state is set to _LOADING (unless it's already marked as _READY). + * D-Bus thumbnailer is associated bidirectionally with the internal request ID via + * the request and handle values in the job structure. In both cases, the + * association of the internal request ID with the DBusGProxyCall is set to NULL. * * * Ready / Error * ============= * * The Ready and Error signal handlers work exactly like Started except that - * the Ready idle function sets the thumb state of the corresponding + * the Ready idle function sets the thumb state of the corresponding * ThunarFile objects to _READY and the Error signal sets the state to _NONE. * * @@ -112,61 +71,71 @@ * * The Finished signal handler looks up the internal request ID based on * the D-Bus thumbnailer handle. It then drops all corresponding information - * from handle_request_mapping, request_handle_mapping and request_uris_mapping. + * from handle_request_mapping and request_handle_mapping. */ -#if HAVE_DBUS +#ifdef HAVE_DBUS typedef enum { THUNAR_THUMBNAILER_IDLE_ERROR, THUNAR_THUMBNAILER_IDLE_READY, - THUNAR_THUMBNAILER_IDLE_STARTED, } ThunarThumbnailerIdleType; -typedef struct _ThunarThumbnailerCall ThunarThumbnailerCall; +typedef struct _ThunarThumbnailerJob ThunarThumbnailerJob; typedef struct _ThunarThumbnailerIdle ThunarThumbnailerIdle; -typedef struct _ThunarThumbnailerItem ThunarThumbnailerItem; #endif +/* Signal identifiers */ +enum +{ + REQUEST_FINISHED, + LAST_SIGNAL, +}; -static void thunar_thumbnailer_finalize (GObject *object); -#ifdef HAVE_DBUS -static void thunar_thumbnailer_init_thumbnailer_proxy (ThunarThumbnailer *thumbnailer, - DBusGConnection *connection); -static gboolean thunar_thumbnailer_file_is_supported (ThunarThumbnailer *thumbnailer, - ThunarFile *file); -static void thunar_thumbnailer_thumbnailer_finished (DBusGProxy *proxy, - guint handle, - ThunarThumbnailer *thumbnailer); -static void thunar_thumbnailer_thumbnailer_error (DBusGProxy *proxy, - guint handle, - const gchar **uris, - gint code, - const gchar *message, - ThunarThumbnailer *thumbnailer); -static void thunar_thumbnailer_thumbnailer_ready (DBusGProxy *proxy, - guint32 handle, - const gchar **uris, - ThunarThumbnailer *thumbnailer); -static void thunar_thumbnailer_thumbnailer_started (DBusGProxy *proxy, - guint handle, - ThunarThumbnailer *thumbnailer); -static gpointer thunar_thumbnailer_queue_async (ThunarThumbnailer *thumbnailer, - gchar **uris, - const gchar **mime_hints); -static gboolean thunar_thumbnailer_error_idle (gpointer user_data); -static gboolean thunar_thumbnailer_ready_idle (gpointer user_data); -static gboolean thunar_thumbnailer_started_idle (gpointer user_data); -static void thunar_thumbnailer_call_free (ThunarThumbnailerCall *call); -static void thunar_thumbnailer_idle_free (gpointer data); -static ThunarThumbnailerItem *thunar_thumbnailer_item_new (GFile *file, - const gchar *mime_hint); -static void thunar_thumbnailer_item_free (gpointer data); + +static void thunar_thumbnailer_finalize (GObject *object); +#ifdef HAVE_DBUS +static void thunar_thumbnailer_init_thumbnailer_proxy (ThunarThumbnailer *thumbnailer, + DBusGConnection *connection); +static gboolean thunar_thumbnailer_file_is_supported (ThunarThumbnailer *thumbnailer, + ThunarFile *file); +static void thunar_thumbnailer_thumbnailer_finished (DBusGProxy *proxy, + guint handle, + ThunarThumbnailer *thumbnailer); +static void thunar_thumbnailer_thumbnailer_error (DBusGProxy *proxy, + guint handle, + const gchar **uris, + gint code, + const gchar *message, + ThunarThumbnailer *thumbnailer); +static void thunar_thumbnailer_thumbnailer_ready (DBusGProxy *proxy, + guint32 handle, + const gchar **uris, + ThunarThumbnailer *thumbnailer); +static guint thunar_thumbnailer_queue_async (ThunarThumbnailer *thumbnailer, + gchar **uris, + const gchar **mime_hints); +static void thunar_thumbnailer_idle (ThunarThumbnailer *thumbnailer, + guint handle, + ThunarThumbnailerIdleType type, + const gchar **uris); +static gboolean thunar_thumbnailer_idle_func (gpointer user_data); +static void thunar_thumbnailer_idle_free (gpointer data); +#endif + +#if GLIB_CHECK_VERSION (2, 32, 0) +#define _thumbnailer_lock(thumbnailer) g_mutex_lock (&((thumbnailer)->lock)) +#define _thumbnailer_unlock(thumbnailer) g_mutex_unlock (&((thumbnailer)->lock)) +#define _thumbnailer_trylock(thumbnailer) g_mutex_trylock (&((thumbnailer)->lock)) +#else +#define _thumbnailer_lock(thumbnailer) g_mutex_lock ((thumbnailer)->lock) +#define _thumbnailer_unlock(thumbnailer) g_mutex_unlock ((thumbnailer)->lock) +#define _thumbnailer_trylock(thumbnailer) g_mutex_trylock ((thumbnailer)->lock) #endif @@ -184,69 +153,56 @@ /* proxies to communicate with D-Bus services */ DBusGProxy *thumbnailer_proxy; - /* wait queue used to delay (and thereby group) thumbnail requests */ - GList *wait_queue; - guint wait_queue_idle_id; - - /* hash table to map D-Bus service handles to ThunarThumbnailer requests */ - GHashTable *handle_request_mapping; - - /* hash table to map ThunarThumbnailer requests to D-Bus service handles */ - GHashTable *request_handle_mapping; - - /* hash table to map ThunarThumbnailer requests to DBusGProxyCalls */ - GHashTable *request_call_mapping; - - /* hash table to map ThunarThumbnailer requests to URI arrays */ - GHashTable *request_uris_mapping; + /* running jobs */ + GSList *jobs; +#if GLIB_CHECK_VERSION (2, 32, 0) + GMutex lock; +#else GMutex *lock; +#endif - /* cached arrays of URI schemes and MIME types for which thumbnails - * can be generated */ - gchar **supported_schemes; - gchar **supported_types; + /* cached MIME types -> URI schemes for which thumbs can be generated */ + GHashTable *supported; /* last ThunarThumbnailer request ID */ - gpointer last_request; + guint last_request; /* IDs of idle functions */ - GList *idles; + GSList *idles; #endif }; #ifdef HAVE_DBUS -struct _ThunarThumbnailerCall +struct _ThunarThumbnailerJob { ThunarThumbnailer *thumbnailer; - gpointer request; -}; -struct _ThunarThumbnailerIdle -{ - ThunarThumbnailerIdleType type; - ThunarThumbnailer *thumbnailer; - guint id; - - union - { - char **uris; - gpointer request; - } data; + /* if this job is cancelled */ + guint cancelled : 1; + + /* request number returned by ThunarThumbnailer */ + guint request; + + /* handle returned by the tumbler dbus service */ + guint handle; + + /* dbus call to get the handle */ + DBusGProxyCall *handle_call; }; -struct _ThunarThumbnailerItem +struct _ThunarThumbnailerIdle { - GFile *file; - gchar *mime_hint; + ThunarThumbnailerIdleType type; + ThunarThumbnailer *thumbnailer; + guint id; + gchar **uris; }; #endif -#ifdef HAVE_DBUS -static DBusGProxy *thunar_thumbnailer_proxy; -#endif +static guint thumbnailer_signals[LAST_SIGNAL]; @@ -261,6 +217,22 @@ gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_thumbnailer_finalize; + + /** + * ThunarThumbnailer:request-finished: + * @thumbnailer : a #ThunarThumbnailer. + * @request : id of the request that is finished. + * + * Emitted by @thumbnailer, when a request is finished + * by the thumbnail generator + **/ + thumbnailer_signals[REQUEST_FINISHED] = + g_signal_new (I_("request-finished"), + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__UINT, + G_TYPE_NONE, 1, G_TYPE_UINT); } @@ -271,12 +243,11 @@ #ifdef HAVE_DBUS DBusGConnection *connection; +#if GLIB_CHECK_VERSION (2, 32, 0) + g_mutex_init (&thumbnailer->lock); +#else thumbnailer->lock = g_mutex_new (); - thumbnailer->supported_schemes = NULL; - thumbnailer->supported_types = NULL; - thumbnailer->last_request = GUINT_TO_POINTER (0); - thumbnailer->idles = NULL; - thumbnailer->wait_queue_idle_id = 0; +#endif /* try to connect to D-Bus */ connection = dbus_g_bus_get (DBUS_BUS_SESSION, NULL); @@ -284,21 +255,6 @@ /* initialize the proxies */ thunar_thumbnailer_init_thumbnailer_proxy (thumbnailer, connection); - /* check if we have a thumbnailer proxy */ - if (thumbnailer->thumbnailer_proxy != NULL) - { - /* we do, set up the hash tables */ - thumbnailer->request_handle_mapping = - g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, NULL); - thumbnailer->handle_request_mapping = - g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, NULL); - thumbnailer->request_call_mapping = - g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, NULL); - thumbnailer->request_uris_mapping = - g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, - (GDestroyNotify) g_strfreev); - } - /* release the D-Bus connection if we have one */ if (connection != NULL) dbus_g_connection_unref (connection); @@ -311,21 +267,21 @@ thunar_thumbnailer_finalize (GObject *object) { #ifdef HAVE_DBUS - ThunarThumbnailerIdle *idle; ThunarThumbnailer *thumbnailer = THUNAR_THUMBNAILER (object); - GList *list; - GList *lp; + ThunarThumbnailerIdle *idle; + ThunarThumbnailerJob *job; + GSList *lp; /* acquire the thumbnailer lock */ - g_mutex_lock (thumbnailer->lock); + _thumbnailer_lock (thumbnailer); - /* clear the request queue */ - g_list_foreach (thumbnailer->wait_queue, (GFunc) thunar_thumbnailer_item_free, NULL); - g_list_free (thumbnailer->wait_queue); - - /* remove the request queue processing idle handler */ - if (thumbnailer->wait_queue_idle_id > 0) - g_source_remove (thumbnailer->wait_queue_idle_id); + if (thumbnailer->thumbnailer_proxy != NULL) + { + /* disconnect from the thumbnailer proxy */ + g_signal_handlers_disconnect_matched (thumbnailer->thumbnailer_proxy, + G_SIGNAL_MATCH_DATA, 0, 0, + NULL, NULL, thumbnailer); + } /* abort all pending idle functions */ for (lp = thumbnailer->idles; lp != NULL; lp = lp->next) @@ -333,51 +289,44 @@ idle = lp->data; g_source_remove (idle->id); } + g_slist_free (thumbnailer->idles); - /* free the idle list */ - g_list_free (thumbnailer->idles); - - if (thumbnailer->thumbnailer_proxy != NULL) + /* remove all jobs */ + for (lp = thumbnailer->jobs; lp != NULL; lp = lp->next) { - /* cancel all pending D-Bus calls */ - list = g_hash_table_get_values (thumbnailer->request_call_mapping); - for (lp = list; lp != NULL; lp = lp->next) - dbus_g_proxy_cancel_call (thumbnailer->thumbnailer_proxy, lp->data); - g_list_free (list); - - g_hash_table_unref (thumbnailer->request_call_mapping); - -#if 0 - /* unqueue all pending requests */ - list = g_hash_table_get_keys (thumbnailer->handle_request_mapping); - for (lp = list; lp != NULL; lp = lp->next) - thunar_thumbnailer_unqueue_internal (thumbnailer, GPOINTER_TO_UINT (lp->data)); - g_list_free (list); -#endif + job = lp->data; - g_hash_table_unref (thumbnailer->handle_request_mapping); - g_hash_table_unref (thumbnailer->request_handle_mapping); - g_hash_table_unref (thumbnailer->request_uris_mapping); + if (thumbnailer->thumbnailer_proxy != NULL) + { + if (job->handle_call != NULL) + dbus_g_proxy_cancel_call (thumbnailer->thumbnailer_proxy, job->handle_call); - /* disconnect from the thumbnailer proxy */ - g_signal_handlers_disconnect_matched (thumbnailer->thumbnailer_proxy, - G_SIGNAL_MATCH_DATA, 0, 0, - NULL, NULL, thumbnailer); + if (job->handle != 0) + thunar_thumbnailer_proxy_dequeue (thumbnailer->thumbnailer_proxy, job->handle, NULL); + } - /* release the thumbnailer proxy */ - g_object_unref (thumbnailer->thumbnailer_proxy); + g_slice_free (ThunarThumbnailerJob, job); } + g_slist_free (thumbnailer->jobs); - /* free the cached URI schemes and MIME types array */ - g_strfreev (thumbnailer->supported_schemes); - g_strfreev (thumbnailer->supported_types); + /* release the thumbnailer proxy */ + if (thumbnailer->thumbnailer_proxy != NULL) + g_object_unref (thumbnailer->thumbnailer_proxy); + + /* free the cached URI schemes and MIME types table */ + if (thumbnailer->supported != NULL) + g_hash_table_unref (thumbnailer->supported); /* release the thumbnailer lock */ - g_mutex_unlock (thumbnailer->lock); + _thumbnailer_unlock (thumbnailer); - /* release the mutex */ +/* release the mutex */ +#if GLIB_CHECK_VERSION (2, 32, 0) + g_mutex_clear (&thumbnailer->lock); +#else g_mutex_free (thumbnailer->lock); #endif +#endif (*G_OBJECT_CLASS (thunar_thumbnailer_parent_class)->finalize) (object); } @@ -396,68 +345,147 @@ return; } - /* create the thumbnailer proxy shared by all ThunarThumbnailers on demand */ - if (thunar_thumbnailer_proxy == NULL) - { - /* create the shared thumbnailer proxy */ - thunar_thumbnailer_proxy = - dbus_g_proxy_new_for_name (connection, - "org.freedesktop.thumbnails.Thumbnailer1", - "/org/freedesktop/thumbnails/Thumbnailer1", - "org.freedesktop.thumbnails.Thumbnailer1"); - - /* make sure to set it to NULL when the last reference is dropped */ - g_object_add_weak_pointer (G_OBJECT (thunar_thumbnailer_proxy), - (gpointer) &thunar_thumbnailer_proxy); - - thumbnailer->thumbnailer_proxy = thunar_thumbnailer_proxy; - - /* TODO this should actually be VOID:UINT,BOXED,INT,STRING */ - dbus_g_object_register_marshaller (_thunar_marshal_VOID__UINT_BOXED_UINT_STRING, - G_TYPE_NONE, - G_TYPE_UINT, - G_TYPE_STRV, - G_TYPE_UINT, - G_TYPE_STRING, - G_TYPE_INVALID); - - dbus_g_object_register_marshaller ((GClosureMarshal) _thunar_marshal_VOID__UINT_BOXED, - G_TYPE_NONE, - G_TYPE_UINT, - G_TYPE_STRV, - G_TYPE_INVALID); - - dbus_g_proxy_add_signal (thumbnailer->thumbnailer_proxy, "Error", - G_TYPE_UINT, G_TYPE_STRV, G_TYPE_UINT, G_TYPE_STRING, - G_TYPE_INVALID); - dbus_g_proxy_add_signal (thumbnailer->thumbnailer_proxy, "Finished", - G_TYPE_UINT, G_TYPE_INVALID); - dbus_g_proxy_add_signal (thumbnailer->thumbnailer_proxy, "Ready", - G_TYPE_UINT, G_TYPE_STRV, G_TYPE_INVALID); - dbus_g_proxy_add_signal (thumbnailer->thumbnailer_proxy, "Started", - G_TYPE_UINT, G_TYPE_INVALID); - } - else - { - thumbnailer->thumbnailer_proxy = g_object_ref (thunar_thumbnailer_proxy); - } + /* create the thumbnailer proxy */ + thumbnailer->thumbnailer_proxy = + dbus_g_proxy_new_for_name (connection, + "org.freedesktop.thumbnails.Thumbnailer1", + "/org/freedesktop/thumbnails/Thumbnailer1", + "org.freedesktop.thumbnails.Thumbnailer1"); + + /* TODO this should actually be VOID:UINT,BOXED,INT,STRING */ + dbus_g_object_register_marshaller (_thunar_marshal_VOID__UINT_BOXED_UINT_STRING, + G_TYPE_NONE, + G_TYPE_UINT, + G_TYPE_STRV, + G_TYPE_UINT, + G_TYPE_STRING, + G_TYPE_INVALID); + + dbus_g_object_register_marshaller ((GClosureMarshal) _thunar_marshal_VOID__UINT_BOXED, + G_TYPE_NONE, + G_TYPE_UINT, + G_TYPE_STRV, + G_TYPE_INVALID); + + dbus_g_proxy_add_signal (thumbnailer->thumbnailer_proxy, "Error", + G_TYPE_UINT, G_TYPE_STRV, G_TYPE_UINT, G_TYPE_STRING, + G_TYPE_INVALID); + dbus_g_proxy_add_signal (thumbnailer->thumbnailer_proxy, "Finished", + G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_add_signal (thumbnailer->thumbnailer_proxy, "Ready", + G_TYPE_UINT, G_TYPE_STRV, G_TYPE_INVALID); + dbus_g_proxy_add_signal (thumbnailer->thumbnailer_proxy, "Started", + G_TYPE_UINT, G_TYPE_INVALID); dbus_g_proxy_connect_signal (thumbnailer->thumbnailer_proxy, "Error", - G_CALLBACK (thunar_thumbnailer_thumbnailer_error), + G_CALLBACK (thunar_thumbnailer_thumbnailer_error), thumbnailer, NULL); dbus_g_proxy_connect_signal (thumbnailer->thumbnailer_proxy, "Finished", - G_CALLBACK (thunar_thumbnailer_thumbnailer_finished), + G_CALLBACK (thunar_thumbnailer_thumbnailer_finished), thumbnailer, NULL); dbus_g_proxy_connect_signal (thumbnailer->thumbnailer_proxy, "Ready", - G_CALLBACK (thunar_thumbnailer_thumbnailer_ready), - thumbnailer, NULL); - dbus_g_proxy_connect_signal (thumbnailer->thumbnailer_proxy, "Started", - G_CALLBACK (thunar_thumbnailer_thumbnailer_started), + G_CALLBACK (thunar_thumbnailer_thumbnailer_ready), thumbnailer, NULL); } +static gint +thunar_thumbnailer_file_schemes_compare (gconstpointer a, + gconstpointer b) +{ + const gchar *scheme_a = *(gconstpointer *) a; + const gchar *scheme_b = *(gconstpointer *) b; + + /* sort file before other schemes */ + if (strcmp (scheme_a, "file") == 0) + return -1; + if (strcmp (scheme_b, "file") == 0) + return 1; + + /* sort trash before other schemes */ + if (strcmp (scheme_a, "trash") == 0) + return -1; + if (strcmp (scheme_b, "trash") == 0) + return 1; + + /* other order is just fine */ + return 0; +} + + + +static void +thunar_thumbnailer_file_sort_schemes (gpointer mime_type, + gpointer schemes, + gpointer user_data) +{ + g_ptr_array_sort (schemes, thunar_thumbnailer_file_schemes_compare); +} + + + +static void +thunar_thumbnailer_get_supported_types (ThunarThumbnailer *thumbnailer) +{ + guint n; + gchar **schemes = NULL; + gchar **types = NULL; + GPtrArray *schemes_array; + + _thunar_return_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer)); + _thunar_return_if_fail (DBUS_IS_G_PROXY (thumbnailer->thumbnailer_proxy)); + _thunar_return_if_fail (!_thumbnailer_trylock (thumbnailer)); + + /* leave if there already is a hash table */ + if (thumbnailer->supported != NULL) + return; + + /* prepare table */ + thumbnailer->supported = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, + (GDestroyNotify) g_ptr_array_unref); + + /* request the supported types from the thumbnailer D-Bus service. We only do + * this once, so using a non-async call should be ok */ + thunar_thumbnailer_proxy_get_supported (thumbnailer->thumbnailer_proxy, + &schemes, &types, + NULL); + + if (G_LIKELY (schemes != NULL && types != NULL)) + { + /* combine content types and uri schemes */ + for (n = 0; types[n] != NULL; ++n) + { + schemes_array = g_hash_table_lookup (thumbnailer->supported, types[n]); + if (G_UNLIKELY (schemes_array == NULL)) + { + /* create an array for the uri schemes this content type supports */ + schemes_array = g_ptr_array_new_with_free_func (g_free); + g_ptr_array_add (schemes_array, schemes[n]); + g_hash_table_insert (thumbnailer->supported, types[n], schemes_array); + } + else + { + /* add the uri scheme to the array of the content type */ + g_ptr_array_add (schemes_array, schemes[n]); + + /* cleanup */ + g_free (types[n]); + } + } + + /* remove arrays, we stole the values */ + g_free (types); + g_free (schemes); + + /* sort array to optimize for local files */ + g_hash_table_foreach (thumbnailer->supported, thunar_thumbnailer_file_sort_schemes, NULL); + } +} + + + static gboolean thunar_thumbnailer_file_is_supported (ThunarThumbnailer *thumbnailer, ThunarFile *file) @@ -465,64 +493,36 @@ const gchar *content_type; gboolean supported = FALSE; guint n; + GPtrArray *schemes_array; + const gchar *scheme; _thunar_return_val_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer), FALSE); _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); - - /* acquire the thumbnailer lock */ - g_mutex_lock (thumbnailer->lock); - - /* no types are supported if we don't have a thumbnailer */ - if (thumbnailer->thumbnailer_proxy == NULL) - { - /* release the thumbnailer lock */ - g_mutex_unlock (thumbnailer->lock); - return FALSE; - } + _thunar_return_val_if_fail (DBUS_IS_G_PROXY (thumbnailer->thumbnailer_proxy), FALSE); + _thunar_return_val_if_fail (thumbnailer->supported != NULL, FALSE); + _thunar_return_val_if_fail (!_thumbnailer_trylock (thumbnailer), FALSE); /* determine the content type of the passed file */ content_type = thunar_file_get_content_type (file); /* abort if the content type is unknown */ if (content_type == NULL) - { - /* release the thumbnailer lock */ - g_mutex_unlock (thumbnailer->lock); - return FALSE; - } - - /* request the supported types on demand */ - if (thumbnailer->supported_schemes == NULL - || thumbnailer->supported_types == NULL) - { - /* request the supported types from the thumbnailer D-Bus service. We only do - * this once, so using a non-async call should be ok */ - thunar_thumbnailer_proxy_get_supported (thumbnailer->thumbnailer_proxy, - &thumbnailer->supported_schemes, - &thumbnailer->supported_types, - NULL); - } + return FALSE; - /* check if we have supported URI schemes and MIME types now */ - if (thumbnailer->supported_schemes != NULL - && thumbnailer->supported_types != NULL) + /* lazy lookup the content type, no difficult parent type matching here */ + schemes_array = g_hash_table_lookup (thumbnailer->supported, content_type); + if (schemes_array != NULL) { - /* go through all the URI schemes we support */ - for (n = 0; !supported && thumbnailer->supported_schemes[n] != NULL; ++n) + /* go through all the URI schemes this type supports */ + for (n = 0; !supported && n < schemes_array->len; ++n) { /* check if the file has the current URI scheme */ - if (thunar_file_has_uri_scheme (file, thumbnailer->supported_schemes[n])) - { - /* check if the type of the file is a subtype of the supported type */ - if (g_content_type_is_a (content_type, thumbnailer->supported_types[n])) - supported = TRUE; - } + scheme = g_ptr_array_index (schemes_array, n); + if (thunar_file_has_uri_scheme (file, scheme)) + supported = TRUE; } } - /* release the thumbnailer lock */ - g_mutex_unlock (thumbnailer->lock); - return supported; } @@ -536,61 +536,14 @@ const gchar *message, ThunarThumbnailer *thumbnailer) { - ThunarThumbnailerIdle *idle; - gpointer request; - - _thunar_return_if_fail (DBUS_IS_G_PROXY (proxy)); - _thunar_return_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer)); - - /* look up the request ID for this D-Bus service handle */ - request = g_hash_table_lookup (thumbnailer->handle_request_mapping, - GUINT_TO_POINTER (handle)); - - /* check if we have a request for this handle */ - if (request != NULL) - { - /* allocate a new idle struct */ - idle = g_slice_new0 (ThunarThumbnailerIdle); - idle->type = THUNAR_THUMBNAILER_IDLE_ERROR; - idle->thumbnailer = g_object_ref (thumbnailer); - - /* copy the URIs because we need them in the idle function */ - idle->data.uris = g_strdupv ((gchar **)uris); - - /* remember the idle struct because we might have to remove it in finalize() */ - thumbnailer->idles = g_list_prepend (thumbnailer->idles, idle); - - /* call the error idle function when we have the time */ - idle->id = g_idle_add_full (G_PRIORITY_LOW, - thunar_thumbnailer_error_idle, idle, - thunar_thumbnailer_idle_free); - } -} - - - -static void -thunar_thumbnailer_thumbnailer_finished (DBusGProxy *proxy, - guint handle, - ThunarThumbnailer *thumbnailer) -{ - gpointer request; - _thunar_return_if_fail (DBUS_IS_G_PROXY (proxy)); _thunar_return_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer)); - /* look up the request ID for this D-Bus service handle */ - request = g_hash_table_lookup (thumbnailer->handle_request_mapping, - GUINT_TO_POINTER (handle)); - - /* check if we have a request for this handle */ - if (request != NULL) - { - /* the request is finished, drop all the information about it */ - g_hash_table_remove (thumbnailer->handle_request_mapping, request); - g_hash_table_remove (thumbnailer->request_handle_mapping, request); - g_hash_table_remove (thumbnailer->request_uris_mapping, request); - } + /* check if we have any ready URIs */ + thunar_thumbnailer_idle (thumbnailer, + handle, + THUNAR_THUMBNAILER_IDLE_ERROR, + uris); } @@ -601,67 +554,48 @@ const gchar **uris, ThunarThumbnailer *thumbnailer) { - ThunarThumbnailerIdle *idle; - _thunar_return_if_fail (DBUS_IS_G_PROXY (proxy)); _thunar_return_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer)); - /* check if we have any ready URIs */ - if (uris != NULL) - { - /* allocate a new idle struct */ - idle = g_slice_new0 (ThunarThumbnailerIdle); - idle->type = THUNAR_THUMBNAILER_IDLE_READY; - idle->thumbnailer = g_object_ref (thumbnailer); - - /* copy the URI array because we need it in the idle function */ - idle->data.uris = g_strdupv ((gchar **)uris); - - /* remember the idle struct because we might have to remove it in finalize() */ - thumbnailer->idles = g_list_prepend (thumbnailer->idles, idle); - - /* call the ready idle function when we have the time */ - idle->id = g_idle_add_full (G_PRIORITY_LOW, - thunar_thumbnailer_ready_idle, idle, - thunar_thumbnailer_idle_free); - } + thunar_thumbnailer_idle (thumbnailer, + handle, + THUNAR_THUMBNAILER_IDLE_READY, + uris); } static void -thunar_thumbnailer_thumbnailer_started (DBusGProxy *proxy, - guint handle, - ThunarThumbnailer *thumbnailer) +thunar_thumbnailer_thumbnailer_finished (DBusGProxy *proxy, + guint handle, + ThunarThumbnailer *thumbnailer) { - ThunarThumbnailerIdle *idle; - gpointer request; + ThunarThumbnailerJob *job; + GSList *lp; _thunar_return_if_fail (DBUS_IS_G_PROXY (proxy)); _thunar_return_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer)); - /* look up the request for this D-Bus service handle */ - request = g_hash_table_lookup (thumbnailer->handle_request_mapping, - GUINT_TO_POINTER (handle)); - - /* check if we have a request for this handle */ - if (request != NULL) + for (lp = thumbnailer->jobs; lp != NULL; lp = lp->next) { - /* allocate a new idle struct */ - idle = g_slice_new0 (ThunarThumbnailerIdle); - idle->type = THUNAR_THUMBNAILER_IDLE_STARTED; - idle->thumbnailer = g_object_ref (thumbnailer); - - /* remember the request because we need it in the idle function */ - idle->data.request = request; - - /* remember the idle struct because we might have to remove it in finalize() */ - thumbnailer->idles = g_list_prepend (thumbnailer->idles, idle); - - /* call the started idle function when we have the time */ - idle->id = g_idle_add_full (G_PRIORITY_LOW, - thunar_thumbnailer_started_idle, idle, - thunar_thumbnailer_idle_free); + job = lp->data; + + if (job->handle == handle) + { + /* this job is finished, forget about the handle */ + job->handle = 0; + + /* tell everybody we're done here */ + g_signal_emit (G_OBJECT (thumbnailer), thumbnailer_signals[REQUEST_FINISHED], 0, job->request); + + /* remove job from the list */ + _thumbnailer_lock (thumbnailer); + thumbnailer->jobs = g_slist_delete_link (thumbnailer->jobs, lp); + _thumbnailer_unlock (thumbnailer); + + g_slice_free (ThunarThumbnailerJob, job); + break; + } } } @@ -673,141 +607,132 @@ GError *error, gpointer user_data) { - ThunarThumbnailerCall *call = user_data; - ThunarThumbnailer *thumbnailer = THUNAR_THUMBNAILER (call->thumbnailer); -#ifndef NDEBUG - gchar **uris; -#endif + ThunarThumbnailerJob *job = user_data; + ThunarThumbnailer *thumbnailer = THUNAR_THUMBNAILER (job->thumbnailer); _thunar_return_if_fail (DBUS_IS_G_PROXY (proxy)); - _thunar_return_if_fail (call != NULL); + _thunar_return_if_fail (job != NULL); _thunar_return_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer)); - g_mutex_lock (thumbnailer->lock); + _thumbnailer_lock (thumbnailer); - if (error != NULL) - { -#ifndef NDEBUG - /* get the URIs array for this request */ - uris = g_hash_table_lookup (thumbnailer->request_uris_mapping, call->request); + /* the queue call is finished, we can forget about its proxy call */ + job->handle_call = NULL; - /* the array should always exist, otherwise there's a bug in the program */ - _thunar_assert (uris != NULL); -#endif + if (job->cancelled) + { + /* job is cancelled while there was no handle jet, so dequeue it now */ + thunar_thumbnailer_proxy_dequeue (proxy, handle, NULL); - /* the request is "finished", forget about its URIs */ - g_hash_table_remove (thumbnailer->request_uris_mapping, call->request); + /* cleanup */ + thumbnailer->jobs = g_slist_remove (thumbnailer->jobs, job); + g_slice_free (ThunarThumbnailerJob, job); } - else + else if (error == NULL) { - /* remember that this request and D-Bus handle belong together */ - g_hash_table_insert (thumbnailer->request_handle_mapping, - call->request, GUINT_TO_POINTER (handle)); - g_hash_table_insert (thumbnailer->handle_request_mapping, - GUINT_TO_POINTER (handle), call->request); + /* store the handle returned by tumbler */ + job->handle = handle; } - /* the queue call is finished, we can forget about its proxy call */ - g_hash_table_remove (thumbnailer->request_call_mapping, call->request); - - thunar_thumbnailer_call_free (call); - - g_mutex_unlock (thumbnailer->lock); + _thumbnailer_unlock (thumbnailer); } -static gpointer +static guint thunar_thumbnailer_queue_async (ThunarThumbnailer *thumbnailer, gchar **uris, const gchar **mime_hints) { - ThunarThumbnailerCall *thumbnailer_call; - DBusGProxyCall *call; - gpointer request; - guint request_no; + ThunarThumbnailerJob *job; + guint request_no; _thunar_return_val_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer), 0); _thunar_return_val_if_fail (uris != NULL, 0); _thunar_return_val_if_fail (mime_hints != NULL, 0); _thunar_return_val_if_fail (DBUS_IS_G_PROXY (thumbnailer->thumbnailer_proxy), 0); + _thunar_return_val_if_fail (!_thumbnailer_trylock (thumbnailer), 0); /* compute the next request ID, making sure it's never 0 */ - request_no = GPOINTER_TO_UINT (thumbnailer->last_request) + 1; + request_no = thumbnailer->last_request + 1; request_no = MAX (request_no, 1); - - /* remember the ID for the next request */ - thumbnailer->last_request = GUINT_TO_POINTER (request_no); - /* use the new request ID for this request */ - request = thumbnailer->last_request; + /* remember the ID for the next request */ + thumbnailer->last_request = request_no; - /* allocate a new call struct for the async D-Bus call */ - thumbnailer_call = g_slice_new0 (ThunarThumbnailerCall); - thumbnailer_call->request = request; - thumbnailer_call->thumbnailer = g_object_ref (thumbnailer); + /* allocate a new struct to follow this job until finished */ + job = g_slice_new0 (ThunarThumbnailerJob); + job->thumbnailer = thumbnailer; + job->request = request_no; - /* remember the URIs for this request */ - g_hash_table_insert (thumbnailer->request_uris_mapping, request, uris); + /* store the job */ + thumbnailer->jobs = g_slist_prepend (thumbnailer->jobs, job); /* queue thumbnails for the given URIs asynchronously */ - call = thunar_thumbnailer_proxy_queue_async (thumbnailer->thumbnailer_proxy, - (const gchar **)uris, mime_hints, - "normal", "foreground", 0, - thunar_thumbnailer_queue_async_reply, - thumbnailer_call); - - /* remember to which request the call struct belongs */ - g_hash_table_insert (thumbnailer->request_call_mapping, request, call); + job->handle_call = thunar_thumbnailer_proxy_queue_async (thumbnailer->thumbnailer_proxy, + (const gchar **)uris, mime_hints, + "normal", "foreground", 0, + thunar_thumbnailer_queue_async_reply, + job); /* return the request ID used for this request */ - return request; + return request_no; } -static gboolean -thunar_thumbnailer_error_idle (gpointer user_data) +static void +thunar_thumbnailer_idle (ThunarThumbnailer *thumbnailer, + guint handle, + ThunarThumbnailerIdleType type, + const gchar **uris) { - ThunarThumbnailerIdle *idle = user_data; - ThunarFile *file; - GFile *gfile; - guint n; - - _thunar_return_val_if_fail (idle != NULL, FALSE); - _thunar_return_val_if_fail (idle->type == THUNAR_THUMBNAILER_IDLE_ERROR, FALSE); + GSList *lp; + ThunarThumbnailerIdle *idle; + ThunarThumbnailerJob *job; - /* iterate over all failed URIs */ - for (n = 0; idle->data.uris != NULL && idle->data.uris[n] != NULL; ++n) + /* leave if there are no uris */ + if (G_UNLIKELY (uris == NULL)) + return; + + /* look for the job so we don't emit unknown handles, the reason + * we do this is when you have multiple windows opened, you don't + * want each window (because they all have a connection to the + * same proxy) emit the file change, only the window that requested + * the data */ + for (lp = thumbnailer->jobs; lp != NULL; lp = lp->next) { - /* look up the corresponding ThunarFile from the cache */ - gfile = g_file_new_for_uri (idle->data.uris[n]); - file = thunar_file_cache_lookup (gfile); - g_object_unref (gfile); + job = lp->data; - /* check if we have a file for this URI in the cache */ - if (file != NULL) + if (job->handle == handle) { - /* set thumbnail state to none unless the thumbnail has already been created. - * This is to prevent race conditions with the other idle functions */ - if (thunar_file_get_thumb_state (file) != THUNAR_FILE_THUMB_STATE_READY) - thunar_file_set_thumb_state (file, THUNAR_FILE_THUMB_STATE_NONE); + /* allocate a new idle struct */ + idle = g_slice_new0 (ThunarThumbnailerIdle); + idle->type = type; + idle->thumbnailer = thumbnailer; + + /* copy the URI array because we need it in the idle function */ + idle->uris = g_strdupv ((gchar **)uris); + + /* remember the idle struct because we might have to remove it in finalize() */ + _thumbnailer_lock (thumbnailer); + thumbnailer->idles = g_slist_prepend (thumbnailer->idles, idle); + _thumbnailer_unlock (thumbnailer); + + /* call the idle function when we have the time */ + idle->id = g_idle_add_full (G_PRIORITY_LOW, + thunar_thumbnailer_idle_func, idle, + thunar_thumbnailer_idle_free); + + break; } } - - /* remove the idle struct */ - g_mutex_lock (idle->thumbnailer->lock); - idle->thumbnailer->idles = g_list_remove (idle->thumbnailer->idles, idle); - g_mutex_unlock (idle->thumbnailer->lock); - - /* remove the idle source, which also destroys the idle struct */ - return FALSE; } static gboolean -thunar_thumbnailer_ready_idle (gpointer user_data) +thunar_thumbnailer_idle_func (gpointer user_data) { ThunarThumbnailerIdle *idle = user_data; ThunarFile *file; @@ -815,76 +740,44 @@ guint n; _thunar_return_val_if_fail (idle != NULL, FALSE); - _thunar_return_val_if_fail (idle->type == THUNAR_THUMBNAILER_IDLE_READY, FALSE); + _thunar_return_val_if_fail (THUNAR_IS_THUMBNAILER (idle->thumbnailer), FALSE); /* iterate over all failed URIs */ - for (n = 0; idle->data.uris != NULL && idle->data.uris[n] != NULL; ++n) + for (n = 0; idle->uris != NULL && idle->uris[n] != NULL; ++n) { /* look up the corresponding ThunarFile from the cache */ - gfile = g_file_new_for_uri (idle->data.uris[n]); + gfile = g_file_new_for_uri (idle->uris[n]); file = thunar_file_cache_lookup (gfile); g_object_unref (gfile); /* check if we have a file for this URI in the cache */ if (file != NULL) { - /* set thumbnail state to ready - we now have a thumbnail */ - thunar_file_set_thumb_state (file, THUNAR_FILE_THUMB_STATE_READY); + if (idle->type == THUNAR_THUMBNAILER_IDLE_ERROR) + { + /* set thumbnail state to none unless the thumbnail has already been created. + * This is to prevent race conditions with the other idle functions */ + if (thunar_file_get_thumb_state (file) != THUNAR_FILE_THUMB_STATE_READY) + thunar_file_set_thumb_state (file, THUNAR_FILE_THUMB_STATE_NONE); + } + else if (idle->type == THUNAR_THUMBNAILER_IDLE_READY) + { + /* set thumbnail state to ready - we now have a thumbnail */ + thunar_file_set_thumb_state (file, THUNAR_FILE_THUMB_STATE_READY); + } + else + { + _thunar_assert_not_reached (); + } } - } - - /* remove the idle struct */ - g_mutex_lock (idle->thumbnailer->lock); - idle->thumbnailer->idles = g_list_remove (idle->thumbnailer->idles, idle); - g_mutex_unlock (idle->thumbnailer->lock); - /* remove the idle source, which also destroys the idle struct */ - return FALSE; -} - - - -static gboolean -thunar_thumbnailer_started_idle (gpointer user_data) -{ - ThunarThumbnailerIdle *idle = user_data; - const gchar **uris; - ThunarFile *file; - GFile *gfile; - guint n; - - _thunar_return_val_if_fail (idle != NULL, FALSE); - _thunar_return_val_if_fail (idle->type == THUNAR_THUMBNAILER_IDLE_STARTED, FALSE); - - g_mutex_lock (idle->thumbnailer->lock); - - /* look up the URIs that belong to this request */ - uris = g_hash_table_lookup (idle->thumbnailer->request_uris_mapping, - idle->data.request); - - /* iterate over all URIs if there are any */ - for (n = 0; uris != NULL && uris[n] != NULL; ++n) - { - /* look up the corresponding ThunarFile from the cache */ - gfile = g_file_new_for_uri (uris[n]); - file = thunar_file_cache_lookup (gfile); - g_object_unref (gfile); - - /* check if we have a file in the cache */ - if (file != NULL) - { - /* set the thumbnail state to loading unless we already have a thumbnail. - * This is to prevent race conditions with the other idle functions */ - if (thunar_file_get_thumb_state (file) != THUNAR_FILE_THUMB_STATE_READY) - thunar_file_set_thumb_state (file, THUNAR_FILE_THUMB_STATE_LOADING); - } + g_object_unref (file); } - /* remove the idle struct */ - idle->thumbnailer->idles = g_list_remove (idle->thumbnailer->idles, idle); - - g_mutex_unlock (idle->thumbnailer->lock); + _thumbnailer_lock (idle->thumbnailer); + idle->thumbnailer->idles = g_slist_remove (idle->thumbnailer->idles, idle); + _thumbnailer_unlock (idle->thumbnailer); /* remove the idle source, which also destroys the idle struct */ return FALSE; @@ -892,188 +785,6 @@ -static gboolean -thunar_thumbnailer_file_is_in_wait_queue (ThunarThumbnailer *thumbnailer, - ThunarFile *file) -{ - ThunarThumbnailerItem *item; - gboolean in_wait_queue = FALSE; - GList *lp; - - g_mutex_lock (thumbnailer->lock); - - for (lp = thumbnailer->wait_queue; !in_wait_queue && lp != NULL; lp = lp->next) - { - item = lp->data; - - if (g_file_equal (item->file, thunar_file_get_file (file))) - in_wait_queue = TRUE; - } - - g_mutex_unlock (thumbnailer->lock); - - return in_wait_queue; -} - - - -static gboolean -thunar_thumbnailer_process_wait_queue (ThunarThumbnailer *thumbnailer) -{ - ThunarThumbnailerItem *item; - GList *lp; - gchar **mime_hints; - gchar **uris; - guint n_items; - guint n; - - _thunar_return_val_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer), FALSE); - - g_mutex_lock (thumbnailer->lock); - - /* determine how many URIs are in the wait queue */ - n_items = g_list_length (thumbnailer->wait_queue); - - /* allocate arrays for URIs and mime hints */ - uris = g_new0 (gchar *, n_items + 1); - mime_hints = g_new0 (gchar *, n_items + 1); - - /* fill URI and MIME hint arrays with items from the wait queue */ - for (lp = g_list_last (thumbnailer->wait_queue), n = 0; lp != NULL; lp = lp->prev, ++n) - { - /* fetch the next item from the queue */ - item = lp->data; - - /* save URI and MIME hint in the arrays */ - uris[n] = g_file_get_uri (item->file); - mime_hints[n] = item->mime_hint; - - /* destroy the GFile and the queue item. The MIME hints are free'd later */ - g_object_unref (item->file); - g_slice_free (ThunarThumbnailerItem, item); - } - - /* NULL-terminate both arrays */ - uris[n] = NULL; - mime_hints[n] = NULL; - - /* queue a thumbnail request for the URIs from the wait queue */ - thunar_thumbnailer_queue_async (thumbnailer, uris, (const gchar **)mime_hints); - - /* free mime hints array */ - g_strfreev (mime_hints); - - /* clear the wait queue */ - g_list_free (thumbnailer->wait_queue); - thumbnailer->wait_queue = NULL; - - /* reset the wait queue idle ID */ - thumbnailer->wait_queue_idle_id = 0; - - g_mutex_unlock (thumbnailer->lock); - - return FALSE; -} - - - -static gboolean -thunar_thumbnailer_file_is_queued (ThunarThumbnailer *thumbnailer, - ThunarFile *file) -{ - gboolean is_queued = FALSE; - GList *values; - GList *lp; - gchar **uris; - gchar *uri; - guint n; - - /* get a list with all URI arrays of already queued requests */ - values = g_hash_table_get_values (thumbnailer->request_uris_mapping); - - /* if we have none, the file cannot be queued ... or can it? ;) */ - if (values == NULL) - return FALSE; - - /* determine the URI for this file */ - uri = thunar_file_dup_uri (file); - - /* iterate over all URI arrays */ - for (lp = values; !is_queued && lp != NULL; lp = lp->next) - { - uris = lp->data; - - /* check if the file is included in the URI array of the current request */ - for (n = 0; !is_queued && uris != NULL && uris[n] != NULL; ++n) - if (g_utf8_collate (uri, uris[n]) == 0) - is_queued = TRUE; - } - - /* free the file URI */ - g_free (uri); - - /* free the URI array list */ - g_list_free (values); - - return is_queued; -} - - - -static gboolean -thunar_thumbnailer_file_is_ready (ThunarThumbnailer *thumbnailer, - ThunarFile *file) -{ - ThunarThumbnailerIdle *idle; - gboolean is_ready = FALSE; - GList *lp; - gchar *uri; - guint n; - - /* determine the URI or this file */ - uri = thunar_file_dup_uri (file); - - /* iterate over all idle structs */ - for (lp = thumbnailer->idles; !is_ready && lp != NULL; lp = lp->next) - { - /* skip invalid idles */ - if (lp->data != NULL) - continue; - - idle = lp->data; - - /* skip non-ready idles and idles without any URIs */ - if (idle->type != THUNAR_THUMBNAILER_IDLE_READY || idle->data.uris == NULL) - continue; - - /* check if the file is included in this ready idle */ - for (n = 0; !is_ready && idle->data.uris[n] != NULL; ++n) - if (g_utf8_collate (uri, idle->data.uris[n]) == 0) - is_ready = TRUE; - } - - /* free the file URI */ - g_free (uri); - - return is_ready; -} - - - -static void -thunar_thumbnailer_call_free (ThunarThumbnailerCall *call) -{ - _thunar_return_if_fail (call != NULL); - - /* drop the thumbnailer reference */ - g_object_unref (call->thumbnailer); - - /* free the struct */ - g_slice_free (ThunarThumbnailerCall, call); -} - - - static void thunar_thumbnailer_idle_free (gpointer data) { @@ -1082,73 +793,54 @@ _thunar_return_if_fail (idle != NULL); /* free the URI array if necessary */ - if (idle->type == THUNAR_THUMBNAILER_IDLE_READY + if (idle->type == THUNAR_THUMBNAILER_IDLE_READY || idle->type == THUNAR_THUMBNAILER_IDLE_ERROR) { - g_strfreev (idle->data.uris); + g_strfreev (idle->uris); } - /* drop the thumbnailer reference */ - g_object_unref (idle->thumbnailer); - /* free the struct */ g_slice_free (ThunarThumbnailerIdle, idle); } - - - -static ThunarThumbnailerItem * -thunar_thumbnailer_item_new (GFile *file, - const gchar *mime_hint) -{ - ThunarThumbnailerItem *item; - - _thunar_return_val_if_fail (G_IS_FILE (file), NULL); - _thunar_return_val_if_fail (mime_hint != NULL && mime_hint != '\0', NULL); - - item = g_slice_new0 (ThunarThumbnailerItem); - item->file = g_object_ref (file); - item->mime_hint = g_strdup (mime_hint); - - return item; -} - - -static void -thunar_thumbnailer_item_free (gpointer data) -{ - ThunarThumbnailerItem *item = data; - - g_object_unref (item->file); - g_free (item->mime_hint); - g_slice_free (ThunarThumbnailerItem, item); -} #endif /* HAVE_DBUS */ /** - * thunar_thumbnailer_new: + * thunar_thumbnailer_get: * - * Allocates a new #ThunarThumbnailer object, which can be used to + * Return a shared new #ThunarThumbnailer object, which can be used to * generate and store thumbnails for files. * * The caller is responsible to free the returned * object using g_object_unref() when no longer needed. * - * Return value: a newly allocated #ThunarThumbnailer. + * Return value: a #ThunarThumbnailer. **/ ThunarThumbnailer* -thunar_thumbnailer_new (void) +thunar_thumbnailer_get (void) { - return g_object_new (THUNAR_TYPE_THUMBNAILER, NULL); + static ThunarThumbnailer *thumbnailer = NULL; + + if (G_UNLIKELY (thumbnailer == NULL)) + { + thumbnailer = g_object_new (THUNAR_TYPE_THUMBNAILER, NULL); + g_object_add_weak_pointer (G_OBJECT (thumbnailer), (gpointer) &thumbnailer); + } + else + { + g_object_ref (G_OBJECT (thumbnailer)); + } + + return thumbnailer; } gboolean thunar_thumbnailer_queue_file (ThunarThumbnailer *thumbnailer, - ThunarFile *file) + ThunarFile *file, + guint *request) { GList files; @@ -1161,22 +853,27 @@ files.prev = NULL; /* queue a thumbnail request for the file */ - return thunar_thumbnailer_queue_files (thumbnailer, &files); + return thunar_thumbnailer_queue_files (thumbnailer, FALSE, &files, request); } gboolean thunar_thumbnailer_queue_files (ThunarThumbnailer *thumbnailer, - GList *files) + gboolean lazy_checks, + GList *files, + guint *request) { -#ifdef HAVE_DBUS - ThunarThumbnailerItem *item; -#endif gboolean success = FALSE; #ifdef HAVE_DBUS + const gchar **mime_hints; + gchar **uris; GList *lp; GList *supported_files = NULL; + guint n; + guint n_items = 0; + ThunarFileThumbState thumb_state; + const gchar *thumbnail_path; #endif _thunar_return_val_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer), FALSE); @@ -1184,60 +881,102 @@ #ifdef HAVE_DBUS /* acquire the thumbnailer lock */ - g_mutex_lock (thumbnailer->lock); + _thumbnailer_lock (thumbnailer); if (thumbnailer->thumbnailer_proxy == NULL) { /* release the lock and abort */ - g_mutex_unlock (thumbnailer->lock); + _thumbnailer_unlock (thumbnailer); return FALSE; } - /* release the thumbnailer lock */ - g_mutex_unlock (thumbnailer->lock); + /* make sure there is a hash table with supported files */ + thunar_thumbnailer_get_supported_types (thumbnailer); /* collect all supported files from the list that are neither in the - * about to be queued (wait queue), nor already queued, nor already + * about to be queued (wait queue), nor already queued, nor already * processed (and awaiting to be refreshed) */ - for (lp = g_list_last (files); lp != NULL; lp = lp->prev) - if (thunar_thumbnailer_file_is_supported (thumbnailer, lp->data)) - { - if (!thunar_thumbnailer_file_is_in_wait_queue (thumbnailer, lp->data) - && !thunar_thumbnailer_file_is_queued (thumbnailer, lp->data) - && !thunar_thumbnailer_file_is_ready (thumbnailer, lp->data)) - { - supported_files = g_list_prepend (supported_files, lp->data); - } - } - - /* check if we have any supported files */ - if (supported_files != NULL) + for (lp = files; lp != NULL; lp = lp->next) { - for (lp = supported_files; lp != NULL; lp = lp->next) + /* the icon factory only loads icons for regular files */ + if (!thunar_file_is_regular (lp->data)) { - g_mutex_lock (thumbnailer->lock); + thunar_file_set_thumb_state (lp->data, THUNAR_FILE_THUMB_STATE_NONE); + continue; + } - /* allocate a thumbnailer item for the wait queue */ - item = thunar_thumbnailer_item_new (thunar_file_get_file (lp->data), - thunar_file_get_content_type (lp->data)); + /* get the current thumb state */ + thumb_state = thunar_file_get_thumb_state (lp->data); - /* add the item to the wait queue */ - thumbnailer->wait_queue = g_list_prepend (thumbnailer->wait_queue, item); + if (lazy_checks) + { + /* in lazy mode, don't both for files that have already + * been loaded or are not supported */ + if (thumb_state == THUNAR_FILE_THUMB_STATE_NONE + || thumb_state == THUNAR_FILE_THUMB_STATE_READY) + continue; + } - g_mutex_unlock (thumbnailer->lock); + /* check if the file is supported, assume it is when the state was ready previously */ + if (thumb_state == THUNAR_FILE_THUMB_STATE_READY + || thunar_thumbnailer_file_is_supported (thumbnailer, lp->data)) + { + supported_files = g_list_prepend (supported_files, lp->data); + n_items++; + } + else + { + /* still a regular file, but the type is now known to tumbler but + * maybe the application created a thumbnail */ + thumbnail_path = thunar_file_get_thumbnail_path (lp->data); + + /* test if a thumbnail can be found */ + if (g_file_test (thumbnail_path, G_FILE_TEST_EXISTS)) + thunar_file_set_thumb_state (lp->data, THUNAR_FILE_THUMB_STATE_READY); + else + thunar_file_set_thumb_state (lp->data, THUNAR_FILE_THUMB_STATE_NONE); } + } + + /* release the thumbnailer lock */ + _thumbnailer_unlock (thumbnailer); - g_mutex_lock (thumbnailer->lock); + /* check if we have any supported files */ + if (n_items > 0) + { + /* allocate arrays for URIs and mime hints */ + uris = g_new0 (gchar *, n_items + 1); + mime_hints = g_new0 (const gchar *, n_items + 1); - if (thumbnailer->wait_queue_idle_id == 0) + /* fill URI and MIME hint arrays with items from the wait queue */ + for (lp = supported_files, n = 0; lp != NULL; lp = lp->next, ++n) { - thumbnailer->wait_queue_idle_id = - g_timeout_add (100, (GSourceFunc) thunar_thumbnailer_process_wait_queue, - thumbnailer); + /* set the thumbnail state to loading */ + thunar_file_set_thumb_state (lp->data, THUNAR_FILE_THUMB_STATE_LOADING); + + /* save URI and MIME hint in the arrays */ + uris[n] = thunar_file_dup_uri (lp->data); + mime_hints[n] = thunar_file_get_content_type (lp->data); } - g_mutex_unlock (thumbnailer->lock); - + /* NULL-terminate both arrays */ + uris[n] = NULL; + mime_hints[n] = NULL; + + _thumbnailer_lock (thumbnailer); + + /* queue a thumbnail request for the URIs from the wait queue */ + if (request != NULL) + *request = thunar_thumbnailer_queue_async (thumbnailer, uris, mime_hints); + else + thunar_thumbnailer_queue_async (thumbnailer, uris, mime_hints); + + _thumbnailer_unlock (thumbnailer); + + /* free mime hints array */ + g_free (mime_hints); + g_strfreev (uris); + /* free the list of supported files */ g_list_free (supported_files); @@ -1250,35 +989,48 @@ } -#if 0 -static void -thunar_thumbnailer_unqueue (ThunarThumbnailer *thumbnailer, - gpointer request) + +void +thunar_thumbnailer_dequeue (ThunarThumbnailer *thumbnailer, + guint request) { #ifdef HAVE_DBUS - gpointer handle; + ThunarThumbnailerJob *job; + GSList *lp; #endif _thunar_return_if_fail (THUNAR_IS_THUMBNAILER (thumbnailer)); #ifdef HAVE_DBUS /* acquire the thumbnailer lock */ - g_mutex_lock (thumbnailer->lock); + _thumbnailer_lock (thumbnailer); - if (thumbnailer->thumbnailer_proxy != NULL) + for (lp = thumbnailer->jobs; lp != NULL; lp = lp->next) { - handle = g_hash_table_lookup (thumbnailer->request_handle_mapping, request); + job = lp->data; - thunar_thumbnailer_proxy_unqueue (thumbnailer->thumbnailer_proxy, - GPOINTER_TO_UINT (handle), NULL); + /* find the request in the list */ + if (job->request == request) + { + /* this job is cancelled */ + job->cancelled = TRUE; - g_hash_table_remove (thumbnailer->handle_request_mapping, handle); - g_hash_table_remove (thumbnailer->request_handle_mapping, request); - g_hash_table_remove (thumbnailer->request_uris_mapping, request); + if (job->handle != 0) + { + /* dequeue the tumbler request */ + if (thumbnailer->thumbnailer_proxy != NULL) + thunar_thumbnailer_proxy_dequeue (thumbnailer->thumbnailer_proxy, job->handle, NULL); + + /* remove job */ + thumbnailer->jobs = g_slist_delete_link (thumbnailer->jobs, lp); + g_slice_free (ThunarThumbnailerJob, job); + } + + break; + } } /* release the thumbnailer lock */ - g_mutex_unlock (thumbnailer->lock); + _thumbnailer_unlock (thumbnailer); #endif } -#endif diff -Nru thunar-1.2.3/thunar/thunar-thumbnailer.h thunar-1.6.10/thunar/thunar-thumbnailer.h --- thunar-1.2.3/thunar/thunar-thumbnailer.h 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-thumbnailer.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,20 +1,21 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- - * Copyright (c) 2009 Jannis Pohlmann + * Copyright (c) 2009-2011 Jannis Pohlmann * - * 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 free software; you can 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. + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __THUNAR_THUMBNAILER_H__ @@ -22,7 +23,7 @@ #include -G_BEGIN_DECLS; +G_BEGIN_DECLS typedef struct _ThunarThumbnailerClass ThunarThumbnailerClass; typedef struct _ThunarThumbnailer ThunarThumbnailer; @@ -34,15 +35,20 @@ #define THUNAR_IS_THUMBNAILER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_THUMBNAILER)) #define THUNAR_THUMBNAILER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_THUMBNAILER, ThunarThumbnailerClass)) -GType thunar_thumbnailer_get_type (void) G_GNUC_CONST; +GType thunar_thumbnailer_get_type (void) G_GNUC_CONST; -ThunarThumbnailer *thunar_thumbnailer_new (void) G_GNUC_MALLOC; +ThunarThumbnailer *thunar_thumbnailer_get (void) G_GNUC_MALLOC; -gboolean thunar_thumbnailer_queue_file (ThunarThumbnailer *generator, - ThunarFile *file); -gboolean thunar_thumbnailer_queue_files (ThunarThumbnailer *generator, - GList *files); +gboolean thunar_thumbnailer_queue_file (ThunarThumbnailer *thumbnailer, + ThunarFile *file, + guint *request); +gboolean thunar_thumbnailer_queue_files (ThunarThumbnailer *thumbnailer, + gboolean lazy_checks, + GList *files, + guint *request); +void thunar_thumbnailer_dequeue (ThunarThumbnailer *thumbnailer, + guint request); -G_END_DECLS; +G_END_DECLS #endif /* !__THUNAR_THUMBNAILER_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-thumbnailer-proxy.h thunar-1.6.10/thunar/thunar-thumbnailer-proxy.h --- thunar-1.2.3/thunar/thunar-thumbnailer-proxy.h 2011-09-20 20:28:44.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-thumbnailer-proxy.h 2015-05-22 20:47:38.000000000 +0000 @@ -64,21 +64,21 @@ inline #endif gboolean -thunar_thumbnailer_proxy_unqueue (DBusGProxy *proxy, const guint IN_handle, GError **error) +thunar_thumbnailer_proxy_dequeue (DBusGProxy *proxy, const guint IN_handle, GError **error) { - return dbus_g_proxy_call (proxy, "Unqueue", error, G_TYPE_UINT, IN_handle, G_TYPE_INVALID, G_TYPE_INVALID); + return dbus_g_proxy_call (proxy, "Dequeue", error, G_TYPE_UINT, IN_handle, G_TYPE_INVALID, G_TYPE_INVALID); } -typedef void (*thunar_thumbnailer_proxy_unqueue_reply) (DBusGProxy *proxy, GError *error, gpointer userdata); +typedef void (*thunar_thumbnailer_proxy_dequeue_reply) (DBusGProxy *proxy, GError *error, gpointer userdata); static void -thunar_thumbnailer_proxy_unqueue_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) +thunar_thumbnailer_proxy_dequeue_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data) { DBusGAsyncData *data = (DBusGAsyncData*) user_data; GError *error = NULL; dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID); - (*(thunar_thumbnailer_proxy_unqueue_reply)data->cb) (proxy, error, data->userdata); + (*(thunar_thumbnailer_proxy_dequeue_reply)data->cb) (proxy, error, data->userdata); return; } @@ -87,14 +87,14 @@ inline #endif DBusGProxyCall* -thunar_thumbnailer_proxy_unqueue_async (DBusGProxy *proxy, const guint IN_handle, thunar_thumbnailer_proxy_unqueue_reply callback, gpointer userdata) +thunar_thumbnailer_proxy_dequeue_async (DBusGProxy *proxy, const guint IN_handle, thunar_thumbnailer_proxy_dequeue_reply callback, gpointer userdata) { DBusGAsyncData *stuff; stuff = g_slice_new (DBusGAsyncData); stuff->cb = G_CALLBACK (callback); stuff->userdata = userdata; - return dbus_g_proxy_begin_call (proxy, "Unqueue", thunar_thumbnailer_proxy_unqueue_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_UINT, IN_handle, G_TYPE_INVALID); + return dbus_g_proxy_begin_call (proxy, "Dequeue", thunar_thumbnailer_proxy_dequeue_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_UINT, IN_handle, G_TYPE_INVALID); } static #ifdef G_HAVE_INLINE diff -Nru thunar-1.2.3/thunar/thunar-thumbnail-frame.c thunar-1.6.10/thunar/thunar-thumbnail-frame.c --- thunar-1.2.3/thunar/thunar-thumbnail-frame.c 2011-09-20 20:28:45.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-thumbnail-frame.c 2015-05-22 20:47:38.000000000 +0000 @@ -23,773 +23,507 @@ /* height (64) */ "\0\0\0@" /* pixel_data: */ - "\0\0\0\2\0\0\0\3\0\0\0\10\0\0\0\14\0\0\0\15\0\0\0\15\0\0\0\15\0\0\0\14" - "\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\14\0\0\0\14\0\0\0\15\0\0\0" - "\14\0\0\0\15\0\0\0\15\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\14\0\0\0\14\0" - "\0\0\15\0\0\0\15\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\15\0\0\0\14\0\0\0\14" - "\0\0\0\14\0\0\0\15\0\0\0\14\0\0\0\14\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0" - "\14\0\0\0\15\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\14\0\0\0\15\0\0\0\14\0" - "\0\0\15\0\0\0\14\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\15" - "\0\0\0\15\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\14\0\0\0\10\0\0\0" - "\3\0\0\0\1\377\377\377\0\0\0\0\4\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0" - "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" - "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" - "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0#\0\0\0\17\0\0\0\4\377\377\377\0\0\0\0\10\0\0\0\377\273\273\273" - "\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377" - "\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273" - "\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273" - "\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273" - "\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377" - "\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273" - "\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273" - "\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273" - "\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377" - "\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273" - "\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273" - "\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273" - "\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377" - "\273\273\273\377\0\0\0\377\0\0\0P\0\0\0#\0\0\0\10\377\377\377\0\0\0\0" - "\14\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0n\0\0\0" - "0\0\0\0\14\0\0\0\2\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377" - "\0\0\0\377\0\0\0x\0\0\0""3\0\0\0\14\0\0\0\2\0\0\0\15\0\0\0\377\273\273" - "\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0\0\0\2" - "\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0" - "\0\0""4\0\0\0\14\0\0\0\1\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273" - "\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0\0\0\2\0\0\0\14\0\0\0\377\273" - "\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\14\0" - "\0\0\1\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377" - "\0\0\0x\0\0\0""3\0\0\0\14\0\0\0\2\0\0\0\14\0\0\0\377\273\273\273\377" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\15\0\0\0\2\0\0\0\15" - "\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0" - "4\0\0\0\15\0\0\0\1\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377" - "\0\0\0\377\0\0\0y\0\0\0""3\0\0\0\15\0\0\0\1\0\0\0\14\0\0\0\377\273\273" - "\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\14\0\0\0\2" - "\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0" - "\0\0""3\0\0\0\14\0\0\0\2\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273" - "\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0\0\0\2\0\0\0\14\0\0\0\377\273" - "\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0" - "\0\0\1\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377" - "\0\0\0x\0\0\0""4\0\0\0\14\0\0\0\2\0\0\0\14\0\0\0\377\273\273\273\377" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0\0\0\1\0\0\0\14" - "\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0" - "4\0\0\0\15\0\0\0\2\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377" - "\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\14\0\0\0\2\0\0\0\15\0\0\0\377\273\273" - "\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\15\0\0\0\2" - "\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0" - "\0\0""4\0\0\0\15\0\0\0\1\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273" - "\377\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\15\0\0\0\1\0\0\0\15\0\0\0\377\273" - "\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\15\0" - "\0\0\1\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377" - "\0\0\0x\0\0\0""3\0\0\0\14\0\0\0\2\0\0\0\15\0\0\0\377\273\273\273\377" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""3\0\0\0\15\0\0\0\2\0\0\0\14" - "\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0" - "4\0\0\0\15\0\0\0\1\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377" - "\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\15\0\0\0\2\0\0\0\14\0\0\0\377\273\273" - "\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\14\0\0\0\2" - "\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0" - "\0\0""4\0\0\0\14\0\0\0\2\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273" - "\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0\0\0\1\0\0\0\15\0\0\0\377\273" - "\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0" - "\0\0\2\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377" - "\0\0\0y\0\0\0""3\0\0\0\15\0\0\0\2\0\0\0\15\0\0\0\377\273\273\273\377" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\15\0\0\0\2\0\0\0\14" - "\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0" - "3\0\0\0\14\0\0\0\2\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377" - "\0\0\0\377\0\0\0x\0\0\0""3\0\0\0\15\0\0\0\2\0\0\0\15\0\0\0\377\273\273" - "\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0""3\0\0\0\15\0\0\0\1" - "\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0" - "\0\0""3\0\0\0\15\0\0\0\1\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273" - "\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\15\0\0\0\2\0\0\0\15\0\0\0\377\273" - "\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\15\0" - "\0\0\2\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377" - "\0\0\0x\0\0\0""3\0\0\0\15\0\0\0\1\0\0\0\14\0\0\0\377\273\273\273\377" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\15\0\0\0\1\0\0\0\15" - "\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0" - "3\0\0\0\14\0\0\0\2\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377" - "\0\0\0\377\0\0\0y\0\0\0""3\0\0\0\14\0\0\0\2\0\0\0\14\0\0\0\377\273\273" - "\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\15\0\0\0\1" - "\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0" - "\0\0""4\0\0\0\14\0\0\0\1\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273" - "\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\15\0\0\0\2\0\0\0\15\0\0\0\377\273" - "\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\14\0" - "\0\0\1\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377" - "\0\0\0y\0\0\0""3\0\0\0\14\0\0\0\1\0\0\0\14\0\0\0\377\273\273\273\377" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\15\0\0\0\2\0\0\0\15" - "\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0" - "3\0\0\0\15\0\0\0\2\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377" - "\0\0\0\377\0\0\0y\0\0\0""4\0\0\0\14\0\0\0\1\0\0\0\15\0\0\0\377\273\273" - "\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377" - "\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0\0\0\2" - "\0\0\0\15\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377" - "\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0" - "\0\0""3\0\0\0\15\0\0\0\2\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273" - "\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0\0\0\2\0\0\0\15\0\0\0\377\273" - "\273\273\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\273\273\273\377\0\0\0\377\0\0\0x\0\0\0""4\0\0\0\14\0" - "\0\0\2\0\0\0\14\0\0\0\377\273\273\273\377\377\377\377\0\377\377\377\0" - "\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" - "\0\377\377\377\0\377\377\377\0\377\377\377\0\273\273\273\377\0\0\0\377" - "\0\0\0y\0\0\0""3\0\0\0\14\0\0\0\1\0\0\0\15\0\0\0\377\273\273\273\377" - "\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273" - "\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273" - "\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273" - "\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377" - "\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273" - "\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273" - "\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273" - "\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377" - "\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273" - "\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273" - "\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273" - "\377\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377" - "\273\273\273\377\273\273\273\377\273\273\273\377\273\273\273\377\273" - "\273\273\377\0\0\0\377\0\0\0w\0\0\0""3\0\0\0\14\0\0\0\1\0\0\0\14\0\0" - "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" - "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" - "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0m\0\0\0""0\0\0\0\14\0\0\0\2\0\0\0" - "\11\0\0\0#\0\0\0P\0\0\0n\0\0\0w\0\0\0y\0\0\0x\0\0\0y\0\0\0x\0\0\0x\0" - "\0\0x\0\0\0x\0\0\0y\0\0\0x\0\0\0x\0\0\0x\0\0\0x\0\0\0x\0\0\0x\0\0\0x" - "\0\0\0y\0\0\0x\0\0\0x\0\0\0x\0\0\0x\0\0\0x\0\0\0y\0\0\0x\0\0\0x\0\0\0" - "x\0\0\0x\0\0\0x\0\0\0y\0\0\0x\0\0\0x\0\0\0y\0\0\0x\0\0\0x\0\0\0x\0\0" - "\0x\0\0\0x\0\0\0y\0\0\0y\0\0\0x\0\0\0y\0\0\0y\0\0\0x\0\0\0y\0\0\0y\0" - "\0\0x\0\0\0x\0\0\0x\0\0\0x\0\0\0y\0\0\0x\0\0\0x\0\0\0x\0\0\0y\0\0\0x" - "\0\0\0n\0\0\0P\0\0\0#\0\0\0\11\0\0\0\1\0\0\0\4\0\0\0\20\0\0\0#\0\0\0" - "0\0\0\0""3\0\0\0""4\0\0\0""3\0\0\0""4\0\0\0""4\0\0\0""3\0\0\0""3\0\0" - "\0""4\0\0\0""3\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""3\0\0\0""4\0\0\0""4" - "\0\0\0""4\0\0\0""4\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""3\0\0\0""4\0\0\0" - "4\0\0\0""4\0\0\0""4\0\0\0""3\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0" - "\0""4\0\0\0""4\0\0\0""3\0\0\0""3\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4" - "\0\0\0""3\0\0\0""4\0\0\0""3\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0""4\0\0\0" - "4\0\0\0""4\0\0\0""3\0\0\0""4\0\0\0""4\0\0\0""3\0\0\0""4\0\0\0""3\0\0" - "\0""4\0\0\0""3\0\0\0/\0\0\0#\0\0\0\20\0\0\0\4\377\377\377\0\0\0\0\1\0" - "\0\0\4\0\0\0\10\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\15\0\0\0\15" - "\0\0\0\15\0\0\0\14\0\0\0\14\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\15\0\0\0" - "\14\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\14\0" - "\0\0\15\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\15\0\0\0\15\0\0\0\15" - "\0\0\0\15\0\0\0\14\0\0\0\14\0\0\0\15\0\0\0\14\0\0\0\14\0\0\0\15\0\0\0" - "\15\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\14\0" - "\0\0\14\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\14\0\0\0\15\0\0\0\15" - "\0\0\0\14\0\0\0\15\0\0\0\15\0\0\0\14\0\0\0\14\0\0\0\10\0\0\0\4\0\0\0" - "\2\377\377\377\0\377\377\377\0\0\0\0\1\377\377\377\0\0\0\0\2\0\0\0\1" - "\0\0\0\2\0\0\0\1\0\0\0\1\0\0\0\2\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0" - "\0\1\0\0\0\2\0\0\0\1\0\0\0\2\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2" - "\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0" - "\0\2\0\0\0\2\0\0\0\1\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2" - "\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0" - "\0\1\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\2" - "\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\377\377\377\0\377\377" - "\377\0"}; + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377WXO\377WX" + "O\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\340\341\324\377\340\341\324" + "\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377" + "\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340" + "\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341" + "\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324" + "\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377" + "\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340" + "\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341" + "\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324" + "\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377" + "\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340" + "\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341" + "\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324" + "\377\340\341\324\377\340\341\324\377\340\341\324\377WXO\377\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340" + "\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340" + "\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0W" + "XO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377" + "WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341" + "\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341" + "\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377" + "\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377" + "WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341" + "\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341" + "\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377" + "\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377" + "WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341" + "\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341" + "\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377" + "\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377" + "WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341" + "\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341" + "\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377" + "\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377" + "WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341" + "\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341" + "\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377" + "\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0WXO\377\340\341\324\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\340\341\324\377WXO\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\0\0\0" + "\33WXO\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324" + "\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377" + "\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340" + "\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341" + "\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324" + "\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377" + "\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340" + "\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341" + "\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324" + "\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377" + "\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340" + "\341\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341" + "\324\377\340\341\324\377\340\341\324\377\340\341\324\377\340\341\324" + "\377\340\341\324\377\340\341\324\377WXO\377\0\0\0\33\0\0\0\13\0\0\0\4" + "\0\0\0\16\0\0\0\"WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WX" + "O\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377WXO\377" + "WXO\377WXO\377\0\0\0\"\0\0\0\16\0\0\0\4\0\0\0\13\0\0\0\33\0\0\0.\0\0" + "\0=\0\0\0E\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0" + "\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H" + "\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0" + "H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0" + "\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0" + "\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0H\0\0\0E\0\0\0=\0\0\0.\0\0\0\33" + "\0\0\0\13\0\0\0\3\0\0\0\6\0\0\0\17\0\0\0\33\0\0\0$\0\0\0(\0\0\0)\0\0" + "\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0" + "\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*" + "\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0" + "*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0" + "\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0" + "\0\0*\0\0\0*\0\0\0)\0\0\0(\0\0\0$\0\0\0\33\0\0\0\17\0\0\0\6\0\0\0\2\0" + "\0\0\3\0\0\0\6\0\0\0\13\0\0\0\17\0\0\0\21\0\0\0\22\0\0\0\22\0\0\0\22" + "\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0" + "\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0" + "\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22" + "\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0" + "\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0" + "\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22" + "\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\22\0\0\0\21\0\0\0\17\0\0\0\13\0\0\0" + "\6\0\0\0\3\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; diff -Nru thunar-1.2.3/thunar/thunar-thumbnail-frame.h thunar-1.6.10/thunar/thunar-thumbnail-frame.h --- thunar-1.2.3/thunar/thunar-thumbnail-frame.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-thumbnail-frame.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * Binary files /tmp/VFaXHq0iMc/thunar-1.2.3/thunar/thunar-thumbnail-frame.png and /tmp/6ogtt7rGai/thunar-1.6.10/thunar/thunar-thumbnail-frame.png differ diff -Nru thunar-1.2.3/thunar/thunar-transfer-job.c thunar-1.6.10/thunar/thunar-transfer-job.c --- thunar-1.2.3/thunar/thunar-transfer-job.c 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-transfer-job.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,22 +1,22 @@ -/* vi:set sw=2 sts=2 ts=2 et ai: */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2007 Benedikt Meurer * Copyright (c) 2009-2011 Jannis Pohlmann * - * 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 free software; you can 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. + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H @@ -25,23 +25,50 @@ #include +#include #include #include #include #include +#include #include +#include #include +/* seconds before we show the transfer rate + remaining time */ +#define MINIMUM_TRANSFER_TIME (10 * G_USEC_PER_SEC) /* 10 seconds */ + + + +/* Property identifiers */ +enum +{ + PROP_0, + PROP_FILE_SIZE_BINARY, +}; + + + typedef struct _ThunarTransferNode ThunarTransferNode; +static void thunar_transfer_job_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); + +static void thunar_transfer_job_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); + static void thunar_transfer_job_finalize (GObject *object); static gboolean thunar_transfer_job_execute (ExoJob *job, GError **error); -static void thunar_transfer_node_free (ThunarTransferNode *node); +static void thunar_transfer_node_free (gpointer data); @@ -58,11 +85,17 @@ GList *source_node_list; GList *target_file_list; + gint64 start_time; + gint64 last_update_time; + guint64 last_total_progress; + guint64 total_size; guint64 total_progress; guint64 file_progress; + guint64 transfer_rate; - gdouble previous_percentage; + ThunarPreferences *preferences; + gboolean file_size_binary; }; struct _ThunarTransferNode @@ -85,10 +118,25 @@ ExoJobClass *exojob_class; gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = thunar_transfer_job_finalize; + gobject_class->finalize = thunar_transfer_job_finalize; + gobject_class->get_property = thunar_transfer_job_get_property; + gobject_class->set_property = thunar_transfer_job_set_property; exojob_class = EXO_JOB_CLASS (klass); exojob_class->execute = thunar_transfer_job_execute; + + /** + * ThunarPropertiesDialog:file_size_binary: + * + * Whether the file size should be shown in binary or decimal. + **/ + g_object_class_install_property (gobject_class, + PROP_FILE_SIZE_BINARY, + g_param_spec_boolean ("file-size-binary", + "FileSizeBinary", + NULL, + FALSE, + EXO_PARAM_READWRITE)); } @@ -96,13 +144,20 @@ static void thunar_transfer_job_init (ThunarTransferJob *job) { + job->preferences = thunar_preferences_get (); + exo_binding_new (G_OBJECT (job->preferences), "misc-file-size-binary", + G_OBJECT (job), "file-size-binary"); + job->type = 0; job->source_node_list = NULL; job->target_file_list = NULL; job->total_size = 0; job->total_progress = 0; job->file_progress = 0; - job->previous_percentage = 0.0; + job->last_update_time = 0; + job->last_total_progress = 0; + job->transfer_rate = 0; + job->start_time = 0; } @@ -112,27 +167,74 @@ { ThunarTransferJob *job = THUNAR_TRANSFER_JOB (object); - g_list_foreach (job->source_node_list, (GFunc) thunar_transfer_node_free, NULL); - g_list_free (job->source_node_list); + g_list_free_full (job->source_node_list, thunar_transfer_node_free); thunar_g_file_list_free (job->target_file_list); + g_object_unref (job->preferences); + (*G_OBJECT_CLASS (thunar_transfer_job_parent_class)->finalize) (object); } static void +thunar_transfer_job_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + ThunarTransferJob *job = THUNAR_TRANSFER_JOB (object); + + switch (prop_id) + { + case PROP_FILE_SIZE_BINARY: + g_value_set_boolean (value, job->file_size_binary); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + + +static void +thunar_transfer_job_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + ThunarTransferJob *job = THUNAR_TRANSFER_JOB (object); + + switch (prop_id) + { + case PROP_FILE_SIZE_BINARY: + job->file_size_binary = g_value_get_boolean (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + + +static void thunar_transfer_job_progress (goffset current_num_bytes, goffset total_num_bytes, gpointer user_data) { - guint64 new_percentage; - ThunarTransferJob *job = user_data; + guint64 new_percentage; + gint64 current_time; + gint64 expired_time; + guint64 transfer_rate; _thunar_return_if_fail (THUNAR_IS_TRANSFER_JOB (job)); - + if (G_LIKELY (job->total_size > 0)) { /* update total progress */ @@ -144,15 +246,28 @@ /* compute the new percentage after the progress we've made */ new_percentage = (job->total_progress * 100.0) / job->total_size; - /* notify callers about the progress only if we have advanced by - * at least 0.01 percent since the last signal emission */ - if (new_percentage >= (job->previous_percentage + 0.01)) + /* get current time */ + current_time = g_get_real_time (); + expired_time = current_time - job->last_update_time; + + /* notify callers not more then every 500ms */ + if (expired_time > (500 * 1000)) { + /* calculate the transfer rate in the last expired time */ + transfer_rate = (job->total_progress - job->last_total_progress) / ((gfloat) expired_time / G_USEC_PER_SEC); + + /* take the average of the last 10 rates (5 sec), so the output is less jumpy */ + if (job->transfer_rate > 0) + job->transfer_rate = ((job->transfer_rate * 10) + transfer_rate) / 11; + else + job->transfer_rate = transfer_rate; + /* emit the percent signal */ exo_job_percent (EXO_JOB (job), new_percentage); - /* remember the percentage */ - job->previous_percentage = new_percentage; + /* update internals */ + job->last_update_time = current_time; + job->last_total_progress = job->total_progress; } } } @@ -177,7 +292,7 @@ if (exo_job_set_error_if_cancelled (EXO_JOB (job), error)) return FALSE; - info = g_file_query_info (node->source_file, + info = g_file_query_info (node->source_file, G_FILE_ATTRIBUTE_STANDARD_SIZE "," G_FILE_ATTRIBUTE_STANDARD_TYPE, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, @@ -195,7 +310,7 @@ /* scan the directory for immediate children */ file_list = thunar_io_scan_directory (THUNAR_JOB (job), node->source_file, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, - FALSE, FALSE, &err); + FALSE, FALSE, FALSE, &err); /* add children to the transfer node */ for (lp = file_list; err == NULL && lp != NULL; lp = lp->next) @@ -211,7 +326,7 @@ /* collect the child node */ thunar_transfer_job_collect_node (job, child_node, &err); } - + /* release the child files */ thunar_g_file_list_free (file_list); } @@ -285,12 +400,12 @@ /* check if there were errors */ if (G_UNLIKELY (err != NULL && err->domain == G_IO_ERROR)) { - if (err->code == G_IO_ERROR_WOULD_MERGE - || (err->code == G_IO_ERROR_EXISTS + if (err->code == G_IO_ERROR_WOULD_MERGE + || (err->code == G_IO_ERROR_EXISTS && source_type == G_FILE_TYPE_DIRECTORY && target_type == G_FILE_TYPE_DIRECTORY)) { - /* we tried to overwrite a directory with a directory. this normally results + /* we tried to overwrite a directory with a directory. this normally results * in a merge. ignore the error if we actually *want* to merge */ if (merge_directories) g_clear_error (&err); @@ -299,14 +414,14 @@ { g_clear_error (&err); - /* we tried to copy a directory and either + /* we tried to copy a directory and either * - * - the target did not exist which means we simple have to + * - the target did not exist which means we simple have to * create the target directory * * or * - * - the target is not a directory and we tried to overwrite it in + * - the target is not a directory and we tried to overwrite it in * which case we have to delete it first and then create the target * directory */ @@ -321,8 +436,8 @@ if (target_exists) { /* the target still exists and thus is not a directory. try to remove it */ - g_file_delete (target_file, - exo_job_get_cancellable (EXO_JOB (job)), + g_file_delete (target_file, + exo_job_get_cancellable (EXO_JOB (job)), &err); } @@ -330,8 +445,8 @@ if (err == NULL) { /* now try to create the directory */ - g_file_make_directory (target_file, - exo_job_get_cancellable (EXO_JOB (job)), + g_file_make_directory (target_file, + exo_job_get_cancellable (EXO_JOB (job)), &err); } } @@ -361,16 +476,16 @@ * Tries to copy @source_file to @target_file. The real destination is the * return value and may differ from @target_file (e.g. if you try to copy * the file "/foo/bar" into the same directory you'll end up with something - * like "/foo/copy of bar" instead of "/foo/bar". + * like "/foo/copy of bar" instead of "/foo/bar". * * The return value is guaranteed to be %NULL on errors and @error will * always be set in those cases. If the file is skipped, the return value * will be @source_file. * - * Return value: the destination #GFile to which @source_file was copied - * or linked. The caller is reposible to release it with - * g_object_unref() if no longer needed. It points to - * @source_file if the file was skipped and will be %NULL + * Return value: the destination #GFile to which @source_file was copied + * or linked. The caller is reposible to release it with + * g_object_unref() if no longer needed. It points to + * @source_file if the file was skipped and will be %NULL * on error or cancellation. **/ static GFile * @@ -410,8 +525,8 @@ for (n = 1; err == NULL; ++n) { GFile *duplicate_file = thunar_io_jobs_util_next_duplicate_file (THUNAR_JOB (job), - source_file, - TRUE, n, + source_file, + TRUE, n, &err); if (err == NULL) @@ -422,7 +537,7 @@ /* return the real target file */ return duplicate_file; } - + g_object_unref (duplicate_file); } @@ -441,7 +556,7 @@ g_clear_error (&err); /* ask the user whether to replace the target file */ - response = thunar_job_ask_replace (THUNAR_JOB (job), source_file, + response = thunar_job_ask_replace (THUNAR_JOB (job), source_file, target_file, &err); if (err != NULL) @@ -458,7 +573,7 @@ continue; } - /* tell the caller we skipped the file if the user + /* tell the caller we skipped the file if the user * doesn't want to retry/overwrite */ if (response == THUNAR_JOB_RESPONSE_NO) return g_object_ref (source_file); @@ -481,11 +596,13 @@ GList **target_file_list_return, GError **error) { - ThunarJobResponse response; - GFileInfo *info; - GError *err = NULL; - GFile *real_target_file = NULL; - gchar *base_name; + ThunarThumbnailCache *thumbnail_cache; + ThunarApplication *application; + ThunarJobResponse response; + GFileInfo *info; + GError *err = NULL; + GFile *real_target_file = NULL; + gchar *base_name; _thunar_return_if_fail (THUNAR_IS_TRANSFER_JOB (job)); _thunar_return_if_fail (node != NULL && G_IS_FILE (node->source_file)); @@ -498,6 +615,11 @@ * wrt restoring files from the trash. Other transfer_nodes will be called with target_parent_file. */ + /* take a reference on the thumbnail cache */ + application = thunar_application_get (); + thumbnail_cache = thunar_application_get_thumbnail_cache (application); + g_object_unref (application); + for (; err == NULL && node != NULL; node = node->next) { /* guess the target file for this node (unless already provided) */ @@ -529,13 +651,18 @@ retry_copy: /* copy the item specified by this node (not recursively) */ - real_target_file = thunar_transfer_job_copy_file (job, node->source_file, + real_target_file = thunar_transfer_job_copy_file (job, node->source_file, target_file, &err); if (G_LIKELY (real_target_file != NULL)) { /* node->source_file == real_target_file means to skip the file */ if (G_LIKELY (node->source_file != real_target_file)) { + /* notify the thumbnail cache of the copy operation */ + thunar_thumbnail_cache_copy_file (thumbnail_cache, + node->source_file, + real_target_file); + /* check if we have children to copy */ if (node->children != NULL) { @@ -558,31 +685,46 @@ /* add the real target file to the return list */ if (G_LIKELY (target_file_list_return != NULL)) - *target_file_list_return = thunar_g_file_list_prepend (*target_file_list_return, real_target_file); + { + *target_file_list_return = + thunar_g_file_list_prepend (*target_file_list_return, + real_target_file); + } retry_remove: /* try to remove the source directory if we are on copy+remove fallback for move */ - if (job->type == THUNAR_TRANSFER_JOB_MOVE && - !g_file_delete (node->source_file, exo_job_get_cancellable (EXO_JOB (job)), &err)) + if (job->type == THUNAR_TRANSFER_JOB_MOVE) { - /* ask the user to retry */ - response = thunar_job_ask_skip (THUNAR_JOB (job), "%s", err->message); + if (g_file_delete (node->source_file, + exo_job_get_cancellable (EXO_JOB (job)), + &err)) + { + /* notify the thumbnail cache of the delete operation */ + thunar_thumbnail_cache_delete_file (thumbnail_cache, + node->source_file); + } + else + { + /* ask the user to retry */ + response = thunar_job_ask_skip (THUNAR_JOB (job), "%s", + err->message); - /* reset the error */ - g_clear_error (&err); + /* reset the error */ + g_clear_error (&err); - /* check whether to retry */ - if (G_UNLIKELY (response == THUNAR_JOB_RESPONSE_RETRY)) - goto retry_remove; + /* check whether to retry */ + if (G_UNLIKELY (response == THUNAR_JOB_RESPONSE_RETRY)) + goto retry_remove; + } } } g_object_unref (real_target_file); } else if (err != NULL) - { + { /* we can only skip if there is space left on the device */ - if (err->domain != G_IO_ERROR || err->code != G_IO_ERROR_NO_SPACE) + if (err->domain != G_IO_ERROR || err->code != G_IO_ERROR_NO_SPACE) { /* ask the user to skip this node and all subnodes */ response = thunar_job_ask_skip (THUNAR_JOB (job), "%s", err->message); @@ -604,30 +746,126 @@ g_object_unref (info); } + /* release the thumbnail cache */ + g_object_unref (thumbnail_cache); + /* propagate error if we failed or the job was cancelled */ if (G_UNLIKELY (err != NULL)) g_propagate_error (error, err); } + +static gboolean +thunar_transfer_job_verify_destination (ThunarTransferJob *transfer_job, + GError **error) +{ + GFileInfo *filesystem_info; + guint64 free_space; + GFile *dest; + GFileInfo *dest_info; + gchar *dest_name = NULL; + gchar *base_name; + gboolean succeed = TRUE; + gchar *size_string; + + _thunar_return_val_if_fail (THUNAR_IS_TRANSFER_JOB (transfer_job), FALSE); + + /* no target file list */ + if (transfer_job->target_file_list == NULL) + return TRUE; + + /* total size is nul, should be fine */ + if (transfer_job->total_size == 0) + return TRUE; + + /* for all actions in thunar use the same target directory so + * although not all files are checked, this should work nicely */ + dest = g_file_get_parent (G_FILE (transfer_job->target_file_list->data)); + + /* query information about the filesystem */ + filesystem_info = g_file_query_filesystem_info (dest, THUNARX_FILESYSTEM_INFO_NAMESPACE, + exo_job_get_cancellable (EXO_JOB (transfer_job)), + NULL); + + /* unable to query the info, this could happen on some backends */ + if (filesystem_info == NULL) + { + g_object_unref (G_OBJECT (dest)); + return TRUE; + } + + /* some info about the file */ + dest_info = g_file_query_info (dest, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, 0, + exo_job_get_cancellable (EXO_JOB (transfer_job)), + NULL); + if (dest_info != NULL) + { + dest_name = g_strdup (g_file_info_get_display_name (dest_info)); + g_object_unref (G_OBJECT (dest_info)); + } + + if (dest_name == NULL) + { + base_name = g_file_get_basename (dest); + dest_name = g_filename_display_name (base_name); + g_free (base_name); + } + + if (g_file_info_has_attribute (filesystem_info, G_FILE_ATTRIBUTE_FILESYSTEM_FREE)) + { + free_space = g_file_info_get_attribute_uint64 (filesystem_info, G_FILE_ATTRIBUTE_FILESYSTEM_FREE); + if (transfer_job->total_size > free_space) + { + size_string = g_format_size_full (transfer_job->total_size - free_space, + transfer_job->file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + succeed = thunar_job_ask_no_size (THUNAR_JOB (transfer_job), + _("Error while copying to \"%s\": %s more space is " + "required to copy to the destination"), + dest_name, size_string); + g_free (size_string); + } + } + + if (succeed && g_file_info_get_attribute_boolean (filesystem_info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY)) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_READ_ONLY, + _("Error while copying to \"%s\": The destination is read-only"), + dest_name); + + /* meh */ + succeed = FALSE; + } + + g_object_unref (filesystem_info); + g_object_unref (G_OBJECT (dest)); + g_free (dest_name); + + return succeed; +} + + + static gboolean thunar_transfer_job_execute (ExoJob *job, GError **error) { - ThunarTransferNode *node; - ThunarJobResponse response; - ThunarTransferJob *transfer_job = THUNAR_TRANSFER_JOB (job); - GFileInfo *info; - gboolean parent_exists; - GError *err = NULL; - GList *new_files_list = NULL; - GList *snext; - GList *sp; - GList *tnext; - GList *tp; - GFile *target_parent; - gchar *base_name; - gchar *parent_display_name; + ThunarThumbnailCache *thumbnail_cache; + ThunarTransferNode *node; + ThunarApplication *application; + ThunarJobResponse response; + ThunarTransferJob *transfer_job = THUNAR_TRANSFER_JOB (job); + GFileInfo *info; + gboolean parent_exists; + GError *err = NULL; + GList *new_files_list = NULL; + GList *snext; + GList *sp; + GList *tnext; + GList *tp; + GFile *target_parent; + gchar *base_name; + gchar *parent_display_name; _thunar_return_val_if_fail (THUNAR_IS_TRANSFER_JOB (job), FALSE); _thunar_return_val_if_fail (error == NULL || *error == NULL, FALSE); @@ -637,6 +875,11 @@ exo_job_info_message (job, _("Collecting files...")); + /* take a reference on the thumbnail cache */ + application = thunar_application_get (); + thumbnail_cache = thunar_application_get_thumbnail_cache (application); + g_object_unref (application); + for (sp = transfer_job->source_node_list, tp = transfer_job->target_file_list; sp != NULL && tp != NULL && err == NULL; sp = snext, tp = tnext) @@ -658,7 +901,7 @@ break; /* check if we are moving a file out of the trash */ - if (transfer_job->type == THUNAR_TRANSFER_JOB_MOVE + if (transfer_job->type == THUNAR_TRANSFER_JOB_MOVE && thunar_g_file_is_trashed (node->source_file)) { /* update progress information */ @@ -693,7 +936,7 @@ _("The folder \"%s\" does not exist anymore but is " "required to restore the file \"%s\" from the " "trash"), - parent_display_name, + parent_display_name, g_file_info_get_display_name (info)); /* abort if cancelled */ @@ -705,7 +948,7 @@ } /* try to create the parent directory */ - if (!g_file_make_directory_with_parents (target_parent, + if (!g_file_make_directory_with_parents (target_parent, exo_job_get_cancellable (job), &err)) { @@ -715,7 +958,7 @@ /* overwrite the internal GIO error with something more user-friendly */ g_set_error (&err, G_IO_ERROR, G_IO_ERROR_FAILED, - _("Failed to restore the folder \"%s\""), + _("Failed to restore the folder \"%s\""), parent_display_name); } @@ -731,19 +974,24 @@ if (target_parent != NULL) g_object_unref (target_parent); } - + if (transfer_job->type == THUNAR_TRANSFER_JOB_MOVE) { /* update progress information */ - exo_job_info_message (job, _("Trying to move \"%s\""), + exo_job_info_message (job, _("Trying to move \"%s\""), g_file_info_get_display_name (info)); - if (g_file_move (node->source_file, tp->data, - G_FILE_COPY_NOFOLLOW_SYMLINKS + if (g_file_move (node->source_file, tp->data, + G_FILE_COPY_NOFOLLOW_SYMLINKS | G_FILE_COPY_NO_FALLBACK_FOR_MOVE, exo_job_get_cancellable (job), NULL, NULL, &err)) { + /* notify the thumbnail cache of the move operation */ + thunar_thumbnail_cache_move_file (thumbnail_cache, + node->source_file, + tp->data); + /* add the target file to the new files list */ new_files_list = thunar_g_file_list_prepend (new_files_list, tp->data); @@ -781,15 +1029,36 @@ g_object_unref (info); } + /* release the thumbnail cache */ + g_object_unref (thumbnail_cache); + /* continue if there were no errors yet */ if (G_LIKELY (err == NULL)) { + /* check destination */ + if (!thunar_transfer_job_verify_destination (transfer_job, &err)) + { + if (err != NULL) + { + g_propagate_error (error, err); + return FALSE; + } + else + { + /* pretend nothing happened */ + return TRUE; + } + } + + /* transfer starts now */ + transfer_job->start_time = g_get_real_time (); + /* perform the copy recursively for all source transfer nodes */ for (sp = transfer_job->source_node_list, tp = transfer_job->target_file_list; sp != NULL && tp != NULL && err == NULL; sp = sp->next, tp = tp->next) { - thunar_transfer_job_copy_node (transfer_job, sp->data, tp->data, NULL, + thunar_transfer_job_copy_node (transfer_job, sp->data, tp->data, NULL, &new_files_list, &err); } } @@ -811,8 +1080,9 @@ static void -thunar_transfer_node_free (ThunarTransferNode *node) +thunar_transfer_node_free (gpointer data) { + ThunarTransferNode *node = data; ThunarTransferNode *next; /* free all nodes in a row */ @@ -855,8 +1125,8 @@ job->type = type; /* add a transfer node for each source path and a matching target parent path */ - for (sp = source_node_list, tp = target_file_list; - sp != NULL; + for (sp = source_node_list, tp = target_file_list; + sp != NULL; sp = sp->next, tp = tp->next) { /* make sure we don't transfer root directories. this should be prevented in the GUI */ @@ -881,3 +1151,70 @@ return THUNAR_JOB (job); } + + + +gchar * +thunar_transfer_job_get_status (ThunarTransferJob *job) +{ + gchar *total_size_str; + gchar *total_progress_str; + gchar *transfer_rate_str; + GString *status; + gulong remaining_time; + + _thunar_return_val_if_fail (THUNAR_IS_TRANSFER_JOB (job), NULL); + + status = g_string_sized_new (100); + + /* transfer status like "22.6MB of 134.1MB" */ + total_size_str = g_format_size_full (job->total_size, job->file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + total_progress_str = g_format_size_full (job->total_progress, job->file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + g_string_append_printf (status, _("%s of %s"), total_progress_str, total_size_str); + g_free (total_size_str); + g_free (total_progress_str); + + /* show time and transfer rate after 10 seconds */ + if (job->transfer_rate > 0 + && (job->last_update_time - job->start_time) > MINIMUM_TRANSFER_TIME) + { + /* remaining time based on the transfer speed */ + transfer_rate_str = g_format_size_full (job->transfer_rate, job->file_size_binary ? G_FORMAT_SIZE_IEC_UNITS : G_FORMAT_SIZE_DEFAULT); + remaining_time = (job->total_size - job->total_progress) / job->transfer_rate; + + if (remaining_time > 0) + { + /* insert long dash */ + g_string_append (status, " \xE2\x80\x94 "); + + if (remaining_time > 60 * 60) + { + remaining_time = (gulong) (remaining_time / (60 * 60)); + g_string_append_printf (status, ngettext ("%lu hour remaining (%s/sec)", + "%lu hours remaining (%s/sec)", + remaining_time), + remaining_time, transfer_rate_str); + } + else if (remaining_time > 60) + { + remaining_time = (gulong) (remaining_time / 60); + g_string_append_printf (status, ngettext ("%lu minute remaining (%s/sec)", + "%lu minutes remaining (%s/sec)", + remaining_time), + remaining_time, transfer_rate_str); + } + else + { + g_string_append_printf (status, ngettext ("%lu second remaining (%s/sec)", + "%lu seconds remaining (%s/sec)", + remaining_time), + remaining_time, transfer_rate_str); + } + } + + g_free (transfer_rate_str); + } + + return g_string_free (status, FALSE); +} + diff -Nru thunar-1.2.3/thunar/thunar-transfer-job.h thunar-1.6.10/thunar/thunar-transfer-job.h --- thunar-1.2.3/thunar/thunar-transfer-job.h 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-transfer-job.h 2015-05-22 13:25:36.000000000 +0000 @@ -51,9 +51,11 @@ GType thunar_transfer_job_get_type (void) G_GNUC_CONST; -ThunarJob *thunar_transfer_job_new (GList *source_file_list, - GList *target_file_list, - ThunarTransferJobType type) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; +ThunarJob *thunar_transfer_job_new (GList *source_file_list, + GList *target_file_list, + ThunarTransferJobType type) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT; + +gchar *thunar_transfer_job_get_status (ThunarTransferJob *job); G_END_DECLS diff -Nru thunar-1.2.3/thunar/thunar-trash-action.c thunar-1.6.10/thunar/thunar-trash-action.c --- thunar-1.2.3/thunar/thunar-trash-action.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-trash-action.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -26,6 +26,7 @@ #include #include #include +#include @@ -87,6 +88,9 @@ /* initially update the stock icon */ thunar_trash_action_changed (trash_action, trash_action->trash_bin); + + /* schedule a reload in idle (fix for bug #9513) */ + thunar_file_reload_idle (trash_action->trash_bin); } } @@ -137,6 +141,9 @@ _thunar_return_if_fail (trash_action->trash_bin == trash_bin); _thunar_return_if_fail (THUNAR_IS_FILE (trash_bin)); + /* unset the pixmap cache on the file */ + thunar_icon_factory_clear_pixmap_cache (trash_bin); + /* adjust the stock icon appropriately */ if (thunar_file_get_item_count (trash_bin) > 0) g_object_set (G_OBJECT (trash_action), "stock-id", THUNAR_STOCK_TRASH_FULL, NULL); diff -Nru thunar-1.2.3/thunar/thunar-trash-action.h thunar-1.6.10/thunar/thunar-trash-action.h --- thunar-1.2.3/thunar/thunar-trash-action.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-trash-action.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunar/thunar-tree-model.c thunar-1.6.10/thunar/thunar-tree-model.c --- thunar-1.2.3/thunar/thunar-tree-model.c 2010-11-19 15:21:48.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-tree-model.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer . * Copyright (c) 2009 Jannis Pohlmann . @@ -36,6 +36,7 @@ #include #include #include +#include @@ -114,22 +115,23 @@ static void thunar_tree_model_file_changed (ThunarFileMonitor *file_monitor, ThunarFile *file, ThunarTreeModel *model); -static void thunar_tree_model_mount_pre_unmount (GVolumeMonitor *volume_monitor, - GMount *mount, +static void thunar_tree_model_device_added (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, ThunarTreeModel *model); -static void thunar_tree_model_volume_added (GVolumeMonitor *volume_monitor, - GVolume *volume, +static void thunar_tree_model_device_pre_unmount (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + GFile *root_file, ThunarTreeModel *model); -static void thunar_tree_model_volume_removed (GVolumeMonitor *volume_monitor, - GVolume *volume, +static void thunar_tree_model_device_removed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, ThunarTreeModel *model); -static void thunar_tree_model_volume_changed (GVolumeMonitor *volume_monitor, - GVolume *volume, +static void thunar_tree_model_device_changed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, ThunarTreeModel *model); static ThunarTreeModelItem *thunar_tree_model_item_new_with_file (ThunarTreeModel *model, ThunarFile *file) G_GNUC_MALLOC; -static ThunarTreeModelItem *thunar_tree_model_item_new_with_volume (ThunarTreeModel *model, - GVolume *volume) G_GNUC_MALLOC; +static ThunarTreeModelItem *thunar_tree_model_item_new_with_device (ThunarTreeModel *model, + ThunarDevice *device) G_GNUC_MALLOC; static void thunar_tree_model_item_free (ThunarTreeModelItem *item); static void thunar_tree_model_item_reset (ThunarTreeModelItem *item); static void thunar_tree_model_item_load_folder (ThunarTreeModelItem *item); @@ -160,6 +162,9 @@ gpointer user_data); static gboolean thunar_tree_model_node_traverse_visible (GNode *node, gpointer user_data); +static gboolean thunar_tree_model_get_case_sensitive (ThunarTreeModel *model); +static void thunar_tree_model_set_case_sensitive (ThunarTreeModel *model, + gboolean case_sensitive); @@ -180,9 +185,8 @@ gint stamp; #endif - /* removable volumes */ - GVolumeMonitor *volume_monitor; - GList *hidden_volumes; + /* removable devices */ + ThunarDeviceMonitor *device_monitor; ThunarFileMonitor *file_monitor; @@ -202,7 +206,7 @@ guint load_idle_id; ThunarFile *file; ThunarFolder *folder; - GVolume *volume; + ThunarDevice *device; ThunarTreeModel *model; /* list of children of this node that are @@ -279,7 +283,7 @@ GFile *desktop; GFile *home; GList *system_paths = NULL; - GList *volumes; + GList *devices; GList *lp; GNode *node; @@ -302,11 +306,11 @@ model->root = g_node_new (NULL); /* connect to the volume monitor */ - model->volume_monitor = g_volume_monitor_get (); - g_signal_connect (model->volume_monitor, "mount-pre-unmount", G_CALLBACK (thunar_tree_model_mount_pre_unmount), model); - g_signal_connect (model->volume_monitor, "volume-added", G_CALLBACK (thunar_tree_model_volume_added), model); - g_signal_connect (model->volume_monitor, "volume-removed", G_CALLBACK (thunar_tree_model_volume_removed), model); - g_signal_connect (model->volume_monitor, "volume-changed", G_CALLBACK (thunar_tree_model_volume_changed), model); + model->device_monitor = thunar_device_monitor_get (); + g_signal_connect (model->device_monitor, "device-added", G_CALLBACK (thunar_tree_model_device_added), model); + g_signal_connect (model->device_monitor, "device-pre-unmount", G_CALLBACK (thunar_tree_model_device_pre_unmount), model); + g_signal_connect (model->device_monitor, "device-removed", G_CALLBACK (thunar_tree_model_device_removed), model); + g_signal_connect (model->device_monitor, "device-changed", G_CALLBACK (thunar_tree_model_device_changed), model); /* add the home folder to the system paths */ home = thunar_g_file_new_for_home (); @@ -323,13 +327,13 @@ if (thunar_g_vfs_is_uri_scheme_supported ("trash")) system_paths = g_list_append (system_paths, thunar_g_file_new_for_trash ()); - /* append the root file system */ - system_paths = g_list_append (system_paths, thunar_g_file_new_for_root ()); - /* append the network icon if browsing the network is supported */ if (thunar_g_vfs_is_uri_scheme_supported ("network")) system_paths = g_list_append (system_paths, g_file_new_for_uri ("network://")); + /* append the root file system */ + system_paths = g_list_append (system_paths, thunar_g_file_new_for_root ()); + /* append the system defined nodes ('Home', 'Trash', 'File System') */ for (lp = system_paths; lp != NULL; lp = lp->next) { @@ -357,14 +361,14 @@ g_list_free (system_paths); g_object_unref (home); - /* setup the initial volumes */ - volumes = g_volume_monitor_get_volumes (model->volume_monitor); - for (lp = volumes; lp != NULL; lp = lp->next) + /* setup the initial devices */ + devices = thunar_device_monitor_get_devices (model->device_monitor); + for (lp = devices; lp != NULL; lp = lp->next) { - thunar_tree_model_volume_added (model->volume_monitor, lp->data, model); + thunar_tree_model_device_added (model->device_monitor, lp->data, model); g_object_unref (lp->data); } - g_list_free (volumes); + g_list_free (devices); } @@ -382,17 +386,13 @@ g_signal_handlers_disconnect_by_func (model->file_monitor, thunar_tree_model_file_changed, model); g_object_unref (model->file_monitor); - /* release all hidden volumes */ - g_list_foreach (model->hidden_volumes, (GFunc) g_object_unref, NULL); - g_list_free (model->hidden_volumes); - /* release all resources allocated to the model */ g_node_traverse (model->root, G_POST_ORDER, G_TRAVERSE_ALL, -1, thunar_tree_model_node_traverse_free, NULL); g_node_destroy (model->root); /* disconnect from the volume monitor */ - g_signal_handlers_disconnect_matched (model->volume_monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, model); - g_object_unref (model->volume_monitor); + g_signal_handlers_disconnect_matched (model->device_monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, model); + g_object_unref (model->device_monitor); (*G_OBJECT_CLASS (thunar_tree_model_parent_class)->finalize) (object); } @@ -474,8 +474,8 @@ case THUNAR_TREE_MODEL_COLUMN_ATTR: return PANGO_TYPE_ATTR_LIST; - case THUNAR_TREE_MODEL_COLUMN_VOLUME: - return G_TYPE_VOLUME; + case THUNAR_TREE_MODEL_COLUMN_DEVICE: + return THUNAR_TYPE_DEVICE; default: _thunar_assert_not_reached (); @@ -611,8 +611,8 @@ case THUNAR_TREE_MODEL_COLUMN_NAME: g_value_init (value, G_TYPE_STRING); - if (G_LIKELY (item != NULL && item->volume != NULL)) - g_value_take_string (value, g_volume_get_name (item->volume)); + if (G_LIKELY (item != NULL && item->device != NULL)) + g_value_take_string (value, thunar_device_get_name (item->device)); else if (G_LIKELY (item != NULL && item->file != NULL)) g_value_set_static_string (value, thunar_file_get_display_name (item->file)); else @@ -627,9 +627,9 @@ g_value_set_boxed (value, thunar_pango_attr_list_italic ()); break; - case THUNAR_TREE_MODEL_COLUMN_VOLUME: - g_value_init (value, G_TYPE_VOLUME); - g_value_set_object (value, (item != NULL) ? item->volume : NULL); + case THUNAR_TREE_MODEL_COLUMN_DEVICE: + g_value_init (value, THUNAR_TYPE_DEVICE); + g_value_set_object (value, (item != NULL) ? item->device : NULL); break; default: @@ -854,7 +854,7 @@ guint n_children; gint *new_order; guint n; - + _thunar_return_if_fail (THUNAR_IS_TREE_MODEL (model)); /* determine the number of children of the node */ @@ -957,154 +957,91 @@ static void -thunar_tree_model_volume_changed (GVolumeMonitor *volume_monitor, - GVolume *volume, - ThunarTreeModel *model) +thunar_tree_model_device_changed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + ThunarTreeModel *model) { ThunarTreeModelItem *item = NULL; GtkTreePath *path; GtkTreeIter iter; - GMount *mount; GFile *mount_point; GNode *node; - GList *lp; - _thunar_return_if_fail (G_IS_VOLUME_MONITOR (volume_monitor)); - _thunar_return_if_fail (model->volume_monitor == volume_monitor); - _thunar_return_if_fail (G_IS_VOLUME (volume)); + _thunar_return_if_fail (THUNAR_IS_DEVICE_MONITOR (device_monitor)); + _thunar_return_if_fail (model->device_monitor == device_monitor); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (THUNAR_IS_TREE_MODEL (model)); - /* check if the volume is on the hidden list */ - lp = g_list_find (model->hidden_volumes, volume); - if (G_LIKELY (lp != NULL)) + /* lookup the volume in the item list */ + for (node = model->root->children; node != NULL; node = node->next) { - /* check if we need to display the volume now */ - if (thunar_g_volume_is_removable (volume) && thunar_g_volume_is_present (volume)) - { - /* remove the volume from the list of hidden volumes */ - model->hidden_volumes = g_list_delete_link (model->hidden_volumes, lp); - - /* allocate a new item for the volume */ - item = thunar_tree_model_item_new_with_volume (model, volume); - - /* insert before the last child of the root (the "File System" node) */ - node = g_node_last_child (model->root); - node = g_node_insert_data_before (model->root, node, item); - - /* determine the iterator for the new node */ - GTK_TREE_ITER_INIT (iter, model->stamp, node); - - /* tell the view about the new node */ - path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter); - gtk_tree_model_row_inserted (GTK_TREE_MODEL (model), path, &iter); - gtk_tree_path_free (path); - - /* add the dummy node */ - thunar_tree_model_node_insert_dummy (node, model); - - /* drop our reference on the volume */ - g_object_unref (volume); - } + item = THUNAR_TREE_MODEL_ITEM (node->data); + if (item->device == device) + break; } - else - { - /* lookup the volume in the item list */ - for (node = model->root->children; node != NULL; node = node->next) - { - item = THUNAR_TREE_MODEL_ITEM (node->data); - if (item->volume == volume) - break; - } - /* verify that we actually found the item */ - _thunar_assert (item != NULL); - _thunar_assert (item->volume == volume); + /* verify that we actually found the item */ + _thunar_assert (item != NULL); + _thunar_assert (item->device == device); - /* check if we need to hide the volume now */ - if (!thunar_g_volume_is_removable (volume) || !thunar_g_volume_is_present (volume)) + /* check if the volume is mounted and we don't have a file yet */ + if (thunar_device_is_mounted (device) && item->file == NULL) + { + mount_point = thunar_device_get_root (device); + if (mount_point != NULL) { - /* need to ref here, because the volumes_removed() handler will drop the reference */ - g_object_ref (volume); + /* try to determine the file for the mount point */ + item->file = thunar_file_get (mount_point, NULL); - /* use "volume-removed" handler to hide the volume */ - thunar_tree_model_volume_removed (model->volume_monitor, volume, model); + /* because the volume node is already reffed, we need to load the folder manually here */ + thunar_tree_model_item_load_folder (item); - /* move the volume to the hidden list */ - model->hidden_volumes = g_list_prepend (model->hidden_volumes, volume); + g_object_unref (mount_point); } - else - { - /* check if the volume is mounted and we don't have a file yet */ - if (thunar_g_volume_is_mounted (volume) && item->file == NULL) - { - mount = g_volume_get_mount (volume); - - if (G_LIKELY (mount != NULL)) - { - mount_point = g_mount_get_root (mount); - - /* try to determine the file for the mount point */ - item->file = thunar_file_get (mount_point, NULL); - - /* because the volume node is already reffed, we need to load the folder manually here */ - thunar_tree_model_item_load_folder (item); - - g_object_unref (mount_point); - g_object_unref (mount); - } - } - else if (!thunar_g_volume_is_mounted (volume) && item->file != NULL) - { - /* reset the item for the node */ - thunar_tree_model_item_reset (item); + } + else if (!thunar_device_is_mounted (device) && item->file != NULL) + { + /* reset the item for the node */ + thunar_tree_model_item_reset (item); - /* release all child nodes */ - while (node->children != NULL) - g_node_traverse (node->children, G_POST_ORDER, G_TRAVERSE_ALL, -1, thunar_tree_model_node_traverse_remove, model); + /* release all child nodes */ + while (node->children != NULL) + g_node_traverse (node->children, G_POST_ORDER, G_TRAVERSE_ALL, -1, thunar_tree_model_node_traverse_remove, model); - /* append the dummy node */ - thunar_tree_model_node_insert_dummy (node, model); - } + /* append the dummy node */ + thunar_tree_model_node_insert_dummy (node, model); + } - /* generate an iterator for the item */ - GTK_TREE_ITER_INIT (iter, model->stamp, node); + /* generate an iterator for the item */ + GTK_TREE_ITER_INIT (iter, model->stamp, node); - /* tell the view that the volume has changed in some way */ - path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter); - gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); - gtk_tree_path_free (path); - } - } + /* tell the view that the volume has changed in some way */ + path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter); + gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); + gtk_tree_path_free (path); } static void -thunar_tree_model_mount_pre_unmount (GVolumeMonitor *volume_monitor, - GMount *mount, - ThunarTreeModel *model) -{ - GVolume *volume; - GNode *node; - - _thunar_return_if_fail (G_IS_VOLUME_MONITOR (volume_monitor)); - _thunar_return_if_fail (model->volume_monitor == volume_monitor); - _thunar_return_if_fail (G_IS_MOUNT (mount)); - _thunar_return_if_fail (THUNAR_IS_TREE_MODEL (model)); - - /* determine the mount to which this mount belongs */ - volume = g_mount_get_volume (mount); +thunar_tree_model_device_pre_unmount (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + GFile *root_file, + ThunarTreeModel *model) +{ + GNode *node; - if (volume == NULL) - return; + _thunar_return_if_fail (THUNAR_IS_DEVICE_MONITOR (device_monitor)); + _thunar_return_if_fail (model->device_monitor == device_monitor); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); + _thunar_return_if_fail (G_IS_FILE (root_file)); + _thunar_return_if_fail (THUNAR_IS_TREE_MODEL (model)); /* lookup the node for the volume (if visible) */ for (node = model->root->children; node != NULL; node = node->next) - if (THUNAR_TREE_MODEL_ITEM (node->data)->volume == volume) + if (THUNAR_TREE_MODEL_ITEM (node->data)->device == device) break; - g_object_unref (volume); - /* check if we have a node */ if (G_UNLIKELY (node == NULL)) return; @@ -1123,59 +1060,64 @@ static void -thunar_tree_model_volume_added (GVolumeMonitor *volume_monitor, - GVolume *volume, - ThunarTreeModel *model) -{ - _thunar_return_if_fail (G_IS_VOLUME_MONITOR (volume_monitor)); - _thunar_return_if_fail (model->volume_monitor == volume_monitor); - _thunar_return_if_fail (G_IS_VOLUME (volume)); +thunar_tree_model_device_added (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + ThunarTreeModel *model) +{ + ThunarTreeModelItem *item; + GtkTreePath *path; + GtkTreeIter iter; + GNode *node; + + _thunar_return_if_fail (THUNAR_IS_DEVICE_MONITOR (device_monitor)); + _thunar_return_if_fail (model->device_monitor == device_monitor); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (THUNAR_IS_TREE_MODEL (model)); - /* place the volume on the hidden list */ - model->hidden_volumes = g_list_prepend (model->hidden_volumes, g_object_ref (volume)); + /* allocate a new item for the volume */ + item = thunar_tree_model_item_new_with_device (model, device); + + /* insert before the last child of the root (the "File System" node) */ + node = g_node_last_child (model->root); + node = g_node_insert_data_before (model->root, node, item); - /* and let the "volume-changed" handler place the volume where appropriate */ - thunar_tree_model_volume_changed (volume_monitor, volume, model); + /* determine the iterator for the new node */ + GTK_TREE_ITER_INIT (iter, model->stamp, node); + + /* tell the view about the new node */ + path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter); + gtk_tree_model_row_inserted (GTK_TREE_MODEL (model), path, &iter); + gtk_tree_path_free (path); + + /* add the dummy node */ + thunar_tree_model_node_insert_dummy (node, model); } static void -thunar_tree_model_volume_removed (GVolumeMonitor *volume_monitor, - GVolume *volume, - ThunarTreeModel *model) +thunar_tree_model_device_removed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + ThunarTreeModel *model) { GNode *node; - GList *lp; - _thunar_return_if_fail (G_IS_VOLUME_MONITOR (volume_monitor)); - _thunar_return_if_fail (model->volume_monitor == volume_monitor); - _thunar_return_if_fail (G_IS_VOLUME (volume)); + _thunar_return_if_fail (THUNAR_IS_DEVICE_MONITOR (device_monitor)); + _thunar_return_if_fail (model->device_monitor == device_monitor); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (THUNAR_IS_TREE_MODEL (model)); - /* check if the volume is on the hidden list */ - lp = g_list_find (model->hidden_volumes, volume); - if (G_LIKELY (lp != NULL)) - { - /* remove the volume from the hidden list and drop our reference */ - model->hidden_volumes = g_list_delete_link (model->hidden_volumes, lp); - g_object_unref (volume); - } - else - { - /* must be a visible volume then... */ - for (node = model->root->children; node != NULL; node = node->next) - if (THUNAR_TREE_MODEL_ITEM (node->data)->volume == volume) - break; + /* find the device */ + for (node = model->root->children; node != NULL; node = node->next) + if (THUNAR_TREE_MODEL_ITEM (node->data)->device == device) + break; - /* something is broken if we don't have an item here */ - _thunar_assert (node != NULL); - _thunar_assert (THUNAR_TREE_MODEL_ITEM (node->data)->volume == volume); + /* something is broken if we don't have an item here */ + _thunar_assert (node != NULL); + _thunar_assert (THUNAR_TREE_MODEL_ITEM (node->data)->device == device); - /* drop the node from the model */ - g_node_traverse (node, G_POST_ORDER, G_TRAVERSE_ALL, -1, thunar_tree_model_node_traverse_remove, model); - } + /* drop the node from the model */ + g_node_traverse (node, G_POST_ORDER, G_TRAVERSE_ALL, -1, thunar_tree_model_node_traverse_remove, model); } @@ -1196,31 +1138,25 @@ static ThunarTreeModelItem* -thunar_tree_model_item_new_with_volume (ThunarTreeModel *model, - GVolume *volume) +thunar_tree_model_item_new_with_device (ThunarTreeModel *model, + ThunarDevice *device) { ThunarTreeModelItem *item; - GMount *mount; GFile *mount_point; item = g_slice_new0 (ThunarTreeModelItem); - item->volume = g_object_ref (G_OBJECT (volume)); + item->device = g_object_ref (G_OBJECT (device)); item->model = model; /* check if the volume is mounted */ - if (thunar_g_volume_is_mounted (volume)) + if (thunar_device_is_mounted (device)) { - mount = g_volume_get_mount (volume); - - if (G_LIKELY (mount != NULL)) + mount_point = thunar_device_get_root (device); + if (G_LIKELY (mount_point != NULL)) { - mount_point = g_mount_get_root (mount); - /* try to determine the file for the mount point */ item->file = thunar_file_get (mount_point, NULL); - g_object_unref (mount_point); - g_object_unref (mount); } } @@ -1233,8 +1169,8 @@ thunar_tree_model_item_free (ThunarTreeModelItem *item) { /* disconnect from the volume */ - if (G_UNLIKELY (item->volume != NULL)) - g_object_unref (item->volume); + if (G_UNLIKELY (item->device != NULL)) + g_object_unref (item->device); /* reset the remaining resources */ thunar_tree_model_item_reset (item); @@ -1263,8 +1199,7 @@ /* free all the invisible children */ if (item->invisible_children != NULL) { - g_slist_foreach (item->invisible_children, (GFunc) g_object_unref, NULL); - g_slist_free (item->invisible_children); + g_slist_free_full (item->invisible_children, g_object_unref); item->invisible_children = NULL; } @@ -1286,7 +1221,7 @@ static void thunar_tree_model_item_load_folder (ThunarTreeModelItem *item) { - _thunar_return_if_fail (item->file != NULL || item->volume != NULL); + _thunar_return_if_fail (THUNAR_IS_FILE (item->file) || THUNAR_IS_DEVICE (item->device)); /* schedule the "load" idle source (if not already done) */ if (G_LIKELY (item->load_idle_id == 0 && item->folder == NULL)) @@ -1481,7 +1416,6 @@ thunar_tree_model_item_load_idle (gpointer user_data) { ThunarTreeModelItem *item = user_data; - GMount *mount; GFile *mount_point; GList *files; #ifndef NDEBUG @@ -1503,19 +1437,14 @@ GDK_THREADS_ENTER (); /* check if we don't have a file yet and this is a mounted volume */ - if (item->file == NULL && item->volume != NULL && thunar_g_volume_is_mounted (item->volume)) + if (item->file == NULL && item->device != NULL && thunar_device_is_mounted (item->device)) { - mount = g_volume_get_mount (item->volume); - - if (G_LIKELY (mount != NULL)) + mount_point = thunar_device_get_root (item->device); + if (G_LIKELY (mount_point != NULL)) { - mount_point = g_mount_get_root (mount); - /* try to determine the file for the mount point */ item->file = thunar_file_get (mount_point, NULL); - g_object_unref (mount_point); - g_object_unref (mount); } } @@ -1895,7 +1824,7 @@ * * Return value: %TRUE if @model is sorted case-sensitive. **/ -gboolean +static gboolean thunar_tree_model_get_case_sensitive (ThunarTreeModel *model) { _thunar_return_val_if_fail (THUNAR_IS_TREE_MODEL (model), FALSE); @@ -1912,7 +1841,7 @@ * If @case_sensitive is %TRUE the @model will be sorted * in a case-sensitive manner. **/ -void +static void thunar_tree_model_set_case_sensitive (ThunarTreeModel *model, gboolean case_sensitive) { diff -Nru thunar-1.2.3/thunar/thunar-tree-model.h thunar-1.6.10/thunar/thunar-tree-model.h --- thunar-1.2.3/thunar/thunar-tree-model.h 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-tree-model.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer . * @@ -43,7 +43,7 @@ * @THUNAR_TREE_MODEL_COLUMN_FILE : the index of the file column. * @THUNAR_TREE_MODEL_COLUMN_NAME : the index of the name column. * @THUNAR_TREE_MODEL_COLUMN_ATTR : the index of the #PangoAttrList column. - * @THUNAR_TREE_MODEL_COLUMN_VOLUME : the index of the #GVolume column. + * @THUNAR_TREE_MODEL_COLUMN_DEVICE : the index of the #ThunarDevice column. * * Columns exported by the #ThunarTreeModel using the * #GtkTreeModel interface. @@ -53,7 +53,7 @@ THUNAR_TREE_MODEL_COLUMN_FILE, THUNAR_TREE_MODEL_COLUMN_NAME, THUNAR_TREE_MODEL_COLUMN_ATTR, - THUNAR_TREE_MODEL_COLUMN_VOLUME, + THUNAR_TREE_MODEL_COLUMN_DEVICE, THUNAR_TREE_MODEL_N_COLUMNS, } ThunarTreeModelColumn; @@ -61,10 +61,6 @@ ThunarTreeModel *thunar_tree_model_get_default (void); -gboolean thunar_tree_model_get_case_sensitive (ThunarTreeModel *model); -void thunar_tree_model_set_case_sensitive (ThunarTreeModel *model, - gboolean case_sensitive); - void thunar_tree_model_set_visible_func (ThunarTreeModel *model, ThunarTreeModelVisibleFunc func, gpointer data); diff -Nru thunar-1.2.3/thunar/thunar-tree-pane.c thunar-1.6.10/thunar/thunar-tree-pane.c --- thunar-1.2.3/thunar/thunar-tree-pane.c 2011-05-25 23:07:38.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-tree-pane.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -148,6 +148,7 @@ exo_binding_new (G_OBJECT (tree_pane), "show-hidden", G_OBJECT (tree_pane->view), "show-hidden"); exo_binding_new (G_OBJECT (tree_pane), "current-directory", G_OBJECT (tree_pane->view), "current-directory"); g_signal_connect_swapped (G_OBJECT (tree_pane->view), "change-directory", G_CALLBACK (thunar_navigator_change_directory), tree_pane); + g_signal_connect_swapped (G_OBJECT (tree_pane->view), "open-new-tab", G_CALLBACK (thunar_navigator_open_new_tab), tree_pane); gtk_container_add (GTK_CONTAINER (tree_pane), tree_pane->view); gtk_widget_show (tree_pane->view); } @@ -291,18 +292,3 @@ } - -/** - * thunar_tree_pane_new: - * - * Allocates a new #ThunarTreePane instance. - * - * Return value: the newly allocated #ThunarTreePane instance. - **/ -GtkWidget* -thunar_tree_pane_new (void) -{ - return g_object_new (THUNAR_TYPE_TREE_PANE, NULL); -} - - diff -Nru thunar-1.2.3/thunar/thunar-tree-pane.h thunar-1.6.10/thunar/thunar-tree-pane.h --- thunar-1.2.3/thunar/thunar-tree-pane.h 2011-05-25 23:07:38.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-tree-pane.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -36,8 +36,6 @@ GType thunar_tree_pane_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_tree_pane_new (void) G_GNUC_MALLOC; - G_END_DECLS; #endif /* !__THUNAR_TREE_PANE_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-tree-view.c thunar-1.6.10/thunar/thunar-tree-view.c --- thunar-1.2.3/thunar/thunar-tree-view.c 2011-05-25 23:07:38.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-tree-view.c 2015-05-22 13:25:36.000000000 +0000 @@ -3,18 +3,18 @@ * Copyright (c) 2006 Benedikt Meurer * Copyright (c) 2009-2011 Jannis Pohlmann * - * This program is free software; you can redistribute it and/or + * 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 + * 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 + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ @@ -25,9 +25,6 @@ #include -#ifdef HAVE_LIBNOTIFY -#include -#endif #include #include #include @@ -39,11 +36,13 @@ #include #include #include +#include #include #include #include #include #include +#include @@ -98,6 +97,8 @@ GdkEventButton *event); static gboolean thunar_tree_view_button_release_event (GtkWidget *widget, GdkEventButton *event); +static gboolean thunar_tree_view_key_press_event (GtkWidget *widget, + GdkEventKey *event); static void thunar_tree_view_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, @@ -144,25 +145,29 @@ GtkTreePath **ancestor_return, gboolean *exact_return); static ThunarFile *thunar_tree_view_get_selected_file (ThunarTreeView *view); -static GVolume *thunar_tree_view_get_selected_volume (ThunarTreeView *view); +static ThunarDevice *thunar_tree_view_get_selected_device (ThunarTreeView *view); static void thunar_tree_view_action_copy (ThunarTreeView *view); static void thunar_tree_view_action_create_folder (ThunarTreeView *view); static void thunar_tree_view_action_cut (ThunarTreeView *view); +static void thunar_tree_view_action_move_to_trash (ThunarTreeView *view); static void thunar_tree_view_action_delete (ThunarTreeView *view); static void thunar_tree_view_action_rename (ThunarTreeView *view); static void thunar_tree_view_action_eject (ThunarTreeView *view); +static void thunar_tree_view_action_unmount (ThunarTreeView *view); static void thunar_tree_view_action_empty_trash (ThunarTreeView *view); static void thunar_tree_view_action_mount (ThunarTreeView *view); -static void thunar_tree_view_mount_finish (GObject *object, - GAsyncResult *result, +static void thunar_tree_view_mount_finish (ThunarDevice *device, + const GError *error, gpointer user_data); static void thunar_tree_view_mount (ThunarTreeView *view, gboolean open_after_mounting, - gboolean open_in_new_window); + guint open_in); static void thunar_tree_view_action_open (ThunarTreeView *view); static void thunar_tree_view_open_selection (ThunarTreeView *view); static void thunar_tree_view_action_open_in_new_window (ThunarTreeView *view); +static void thunar_tree_view_action_open_in_new_tab (ThunarTreeView *view); static void thunar_tree_view_open_selection_in_new_window (ThunarTreeView *view); +static void thunar_tree_view_open_selection_in_new_tab (ThunarTreeView *view); static void thunar_tree_view_action_paste_into_folder (ThunarTreeView *view); static void thunar_tree_view_action_properties (ThunarTreeView *view); static GClosure *thunar_tree_view_new_files_closure (ThunarTreeView *view); @@ -186,8 +191,13 @@ static ThunarTreeViewMountData *thunar_tree_view_mount_data_new (ThunarTreeView *view, GtkTreePath *path, gboolean open_after_mounting, - gboolean open_in_new_window); + guint open_in); static void thunar_tree_view_mount_data_free (ThunarTreeViewMountData *data); +static gboolean thunar_tree_view_get_show_hidden (ThunarTreeView *view); +static void thunar_tree_view_set_show_hidden (ThunarTreeView *view, + gboolean show_hidden); +static GtkTreePath *thunar_tree_view_get_preferred_toplevel_path (ThunarTreeView *view, + ThunarFile *file); @@ -207,7 +217,7 @@ GtkCellRenderer *icon_renderer; ThunarFile *current_directory; ThunarTreeModel *model; - + ThunarxProviderFactory *provider_factory; /* whether to display hidden/backup files */ @@ -223,6 +233,11 @@ */ GClosure *new_files_closure; + /* sometimes we want to keep the cursor on a certain item to allow + * more intuitive navigation, even though the main view shows another path + */ + GtkTreePath *select_path; + /* the currently pressed mouse button, set in the * button-press-event handler if the associated * button-release-event should activate. @@ -232,16 +247,23 @@ /* id of the signal used to queue a resize on the * column whenever the shortcuts icon size is changed. */ - gint queue_resize_signal_id; + gulong queue_resize_signal_id; /* set cursor to current directory idle source */ - gint cursor_idle_id; + guint cursor_idle_id; /* autoscroll during drag timer source */ - gint drag_scroll_timer_id; + guint drag_scroll_timer_id; /* expand drag dest row timer source */ - gint expand_timer_id; + guint expand_timer_id; +}; + +enum +{ + OPEN_IN_VIEW, + OPEN_IN_WINDOW, + OPEN_IN_TAB }; struct _ThunarTreeViewMountData @@ -249,7 +271,7 @@ ThunarTreeView *view; GtkTreePath *path; gboolean open_after_mounting; - gboolean open_in_new_window; + guint open_in; }; @@ -361,11 +383,6 @@ GtkTreeSelection *selection; GtkCellRenderer *renderer; - /* initialize the view internals */ - view->cursor_idle_id = -1; - view->drag_scroll_timer_id = -1; - view->expand_timer_id = -1; - /* grab a reference on the provider factory */ view->provider_factory = thunarx_provider_factory_get_default (); @@ -402,7 +419,7 @@ gtk_tree_view_column_pack_start (column, view->icon_renderer, FALSE); gtk_tree_view_column_set_attributes (column, view->icon_renderer, "file", THUNAR_TREE_MODEL_COLUMN_FILE, - "volume", THUNAR_TREE_MODEL_COLUMN_VOLUME, + "device", THUNAR_TREE_MODEL_COLUMN_DEVICE, NULL); /* sync the "emblems" property of the icon renderer with the "tree-icon-emblems" preference @@ -424,6 +441,9 @@ gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); gtk_tree_selection_set_select_function (selection, thunar_tree_view_selection_func, view, NULL); + /* custom keyboard handler for better navigation */ + g_signal_connect (GTK_WIDGET (view), "key_press_event", G_CALLBACK (thunar_tree_view_key_press_event), NULL); + /* enable drop support for the tree view */ gtk_drag_dest_set (GTK_WIDGET (view), 0, drop_targets, G_N_ELEMENTS (drop_targets), GDK_ACTION_COPY | GDK_ACTION_LINK | GDK_ACTION_MOVE); @@ -446,17 +466,21 @@ g_signal_handler_disconnect (G_OBJECT (view->preferences), view->queue_resize_signal_id); /* be sure to cancel the cursor idle source */ - if (G_UNLIKELY (view->cursor_idle_id >= 0)) + if (G_UNLIKELY (view->cursor_idle_id != 0)) g_source_remove (view->cursor_idle_id); /* cancel any running autoscroll timer */ - if (G_LIKELY (view->drag_scroll_timer_id >= 0)) + if (G_LIKELY (view->drag_scroll_timer_id != 0)) g_source_remove (view->drag_scroll_timer_id); /* be sure to cancel the expand timer source */ - if (G_UNLIKELY (view->expand_timer_id >= 0)) + if (G_UNLIKELY (view->expand_timer_id != 0)) g_source_remove (view->expand_timer_id); + /* free path remembered for selection */ + if (view->select_path != NULL) + gtk_tree_path_free (view->select_path); + /* reset the current-directory property */ thunar_navigator_set_current_directory (THUNAR_NAVIGATOR (view), NULL); @@ -567,7 +591,7 @@ break; } - + /* get the file parent */ file_parent = thunar_file_get_parent (file, NULL); @@ -589,8 +613,8 @@ /* take a reference on the directory */ g_object_ref (G_OBJECT (current_directory)); - /* update the filter if the new current directory, or one of it's parents, is - * hidden. we don't have to check this if refiltering needs to be done + /* update the filter if the new current directory, or one of it's parents, is + * hidden. we don't have to check this if refiltering needs to be done * anyway */ if (!needs_refiltering && !view->show_hidden) { @@ -618,7 +642,7 @@ } /* schedule an idle source to set the cursor to the current directory */ - if (G_LIKELY (view->cursor_idle_id < 0)) + if (G_LIKELY (view->cursor_idle_id == 0)) view->cursor_idle_id = g_idle_add_full (G_PRIORITY_LOW, thunar_tree_view_cursor_idle, view, thunar_tree_view_cursor_idle_destroy); /* drop any existing "new-files" closure */ @@ -675,26 +699,40 @@ thunar_tree_view_button_press_event (GtkWidget *widget, GdkEventButton *event) { - ThunarTreeView *view = THUNAR_TREE_VIEW (widget); - GtkTreePath *path; - GtkTreeIter iter; - gboolean result; + ThunarTreeView *view = THUNAR_TREE_VIEW (widget); + ThunarDevice *device; + ThunarFile *file; + GtkTreeViewColumn *column; + GtkTreePath *path; + GtkTreeIter iter; + gboolean result; /* reset the pressed button state */ view->pressed_button = -1; - /* completely ignore double middle clicks */ - if (event->type == GDK_2BUTTON_PRESS && event->button == 2) - return TRUE; + if (event->button == 2) + { + /* completely ignore double middle clicks */ + if (event->type == GDK_2BUTTON_PRESS) + return TRUE; + + /* remember the current selection as we want to restore it later */ + gtk_tree_path_free (view->select_path); + gtk_tree_view_get_cursor(GTK_TREE_VIEW (view), &(view->select_path), NULL); + } /* let the widget process the event first (handles focussing and scrolling) */ result = (*GTK_WIDGET_CLASS (thunar_tree_view_parent_class)->button_press_event) (widget, event); + /* for the following part, we'll only handle single button presses */ + if (event->type != GDK_BUTTON_PRESS) + return result; + /* resolve the path at the cursor position */ - if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget), event->x, event->y, &path, NULL, NULL, NULL)) + if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget), event->x, event->y, &path, &column, NULL, NULL)) { /* check if we should popup the context menu */ - if (G_UNLIKELY (event->button == 3 && event->type == GDK_BUTTON_PRESS)) + if (G_UNLIKELY (event->button == 3)) { /* determine the iterator for the path */ if (gtk_tree_model_get_iter (GTK_TREE_MODEL (view->model), &iter, path)) @@ -706,12 +744,43 @@ result = TRUE; } } - else if ((event->button == 1 || event->button == 2) && event->type == GDK_BUTTON_PRESS - && (event->state & gtk_accelerator_get_default_mod_mask ()) == 0) + else if (event->button == 1) { - /* remember the button as pressed and handled it in the release handler */ + GdkRectangle rect; + gtk_tree_view_get_cell_area (GTK_TREE_VIEW (widget), path, column, &rect); + + /* set cursor only when the user did not click the expander */ + if (rect.x <= event->x && event->x <= (rect.x + rect.width)) + gtk_tree_view_set_cursor (GTK_TREE_VIEW (widget), path, NULL, FALSE); + + /* remember the button as pressed and handle it in the release handler */ view->pressed_button = event->button; } + else if (event->button == 2) + { + /* only open the item if it is mounted (otherwise opening and selecting it won't work correctly) */ + gtk_tree_path_free (path); + gtk_tree_view_get_cursor (GTK_TREE_VIEW (view), &path, NULL); + if (path != NULL && gtk_tree_model_get_iter (GTK_TREE_MODEL (view->model), &iter, path)) + gtk_tree_model_get (GTK_TREE_MODEL (view->model), &iter, + THUNAR_TREE_MODEL_COLUMN_FILE, &file, + THUNAR_TREE_MODEL_COLUMN_DEVICE, &device, -1); + + if ((device != NULL && thunar_device_is_mounted (device)) || + (file != NULL && thunar_file_is_mounted (file))) + { + view->pressed_button = event->button; + } + else + { + gtk_tree_path_free (view->select_path); + view->select_path = NULL; + } + if (device) + g_object_unref (device); + if (file) + g_object_unref (file); + } /* release the path */ gtk_tree_path_free (path); @@ -727,15 +796,38 @@ GdkEventButton *event) { ThunarTreeView *view = THUNAR_TREE_VIEW (widget); + gboolean in_tab; /* check if we have an event matching the pressed button state */ if (G_LIKELY (view->pressed_button == (gint) event->button)) { /* check if we should simply open or open in new window */ if (G_LIKELY (event->button == 1)) - thunar_tree_view_action_open (view); + { + thunar_tree_view_action_open (view); + } else if (G_UNLIKELY (event->button == 2)) - thunar_tree_view_action_open_in_new_window (view); + { + g_object_get (view->preferences, "misc-middle-click-in-tab", &in_tab, NULL); + + /* holding ctrl inverts the action */ + if ((event->state & GDK_CONTROL_MASK) != 0) + in_tab = !in_tab; + + if (in_tab) + thunar_tree_view_action_open_in_new_tab (view); + else + thunar_tree_view_action_open_in_new_window (view); + + /* set the cursor back to the previously selected item */ + if (view->select_path != NULL) + { + gtk_tree_view_set_cursor (GTK_TREE_VIEW (view), view->select_path, NULL, FALSE); + gtk_tree_path_free (view->select_path); + view->select_path = NULL; + } + } + gtk_widget_grab_focus (widget); } /* reset the pressed button state */ @@ -747,6 +839,101 @@ +static gboolean +thunar_tree_view_key_press_event(GtkWidget *widget, + GdkEventKey *event) +{ + ThunarTreeView *view = THUNAR_TREE_VIEW (widget); + ThunarDevice *device = NULL; + GtkTreePath *path; + GtkTreeIter iter; + gboolean stopPropagation = FALSE; + + /* Get path of currently highlighted item */ + gtk_tree_view_get_cursor(GTK_TREE_VIEW (view), &path, NULL); + + switch (event->keyval) + { + case GDK_KEY_Up: + case GDK_KP_Up: + case GDK_KEY_Down: + case GDK_KP_Down: + /* the default actions works good, but we want to update the right pane */ + GTK_WIDGET_CLASS (thunar_tree_view_parent_class)->key_press_event (widget, event); + + /* sync with new tree view selection */ + gtk_tree_path_free (path); + gtk_tree_view_get_cursor (GTK_TREE_VIEW (view), &path, NULL); + thunar_tree_view_open_selection (view); + + stopPropagation = TRUE; + break; + + case GDK_KEY_Left: + case GDK_KP_Left: + /* if branch is expanded then collapse it */ + if (gtk_tree_view_row_expanded (GTK_TREE_VIEW (view), path)) + gtk_tree_view_collapse_row (GTK_TREE_VIEW (view), path); + + else /* if the branch is already collapsed */ + if (gtk_tree_path_get_depth (path) > 1 && gtk_tree_path_up (path)) + { + /* if this is not a toplevel item then move to parent */ + gtk_tree_view_set_cursor (GTK_TREE_VIEW (view), path, NULL, FALSE); + } + else if (gtk_tree_path_get_depth (path) == 1) + { + /* if this is a toplevel item and a mountable device, unmount it */ + if (gtk_tree_model_get_iter (GTK_TREE_MODEL (view->model), &iter, path)) + gtk_tree_model_get (GTK_TREE_MODEL (view->model), &iter, + THUNAR_TREE_MODEL_COLUMN_DEVICE, &device, -1); + + if (device != NULL) + if (thunar_device_is_mounted (device) && thunar_device_can_unmount (device)) + { + /* mark this path for selection after unmounting */ + view->select_path = gtk_tree_path_copy(path); + thunar_tree_view_action_unmount (view); + g_object_unref (G_OBJECT (device)); + } + } + thunar_tree_view_open_selection (view); + + stopPropagation = TRUE; + break; + + case GDK_KEY_Right: + case GDK_KP_Right: + /* if branch is not expanded then expand it */ + if (!gtk_tree_view_row_expanded (GTK_TREE_VIEW (view), path)) + gtk_tree_view_expand_row (GTK_TREE_VIEW (view), path, FALSE); + else /* if branch is already expanded then move to first child */ + { + gtk_tree_path_down (path); + gtk_tree_view_set_cursor (GTK_TREE_VIEW (view), path, NULL, FALSE); + thunar_tree_view_action_open (view); + } + + stopPropagation = TRUE; + break; + + case GDK_space: + case GDK_Return: + case GDK_KP_Enter: + thunar_tree_view_open_selection (view); + stopPropagation = TRUE; + break; + } + + gtk_tree_path_free (path); + if (stopPropagation) + gtk_widget_grab_focus (widget); + + return stopPropagation; +} + + + static void thunar_tree_view_drag_data_received (GtkWidget *widget, GdkDragContext *context, @@ -880,7 +1067,7 @@ } /* start the drag autoscroll timer if not already running */ - if (G_UNLIKELY (view->drag_scroll_timer_id < 0)) + if (G_UNLIKELY (view->drag_scroll_timer_id == 0)) { /* schedule the drag autoscroll timer */ view->drag_scroll_timer_id = g_timeout_add_full (G_PRIORITY_LOW, 50, thunar_tree_view_drag_scroll_timer, @@ -900,7 +1087,7 @@ ThunarTreeView *view = THUNAR_TREE_VIEW (widget); /* cancel any running autoscroll timer */ - if (G_LIKELY (view->drag_scroll_timer_id >= 0)) + if (G_LIKELY (view->drag_scroll_timer_id != 0)) g_source_remove (view->drag_scroll_timer_id); /* reset the "drop-file" of the icon renderer */ @@ -952,20 +1139,24 @@ GtkTreePath *path, GtkTreeViewColumn *column) { - ThunarTreeView *view = THUNAR_TREE_VIEW (tree_view); - /* call the parent's "row-activated" handler */ if (GTK_TREE_VIEW_CLASS (thunar_tree_view_parent_class)->row_activated != NULL) (*GTK_TREE_VIEW_CLASS (thunar_tree_view_parent_class)->row_activated) (tree_view, path, column); /* toggle the expanded state of the activated row... */ if (gtk_tree_view_row_expanded (tree_view, path)) - gtk_tree_view_collapse_row (tree_view, path); + { + gtk_tree_view_collapse_row (tree_view, path); + } else - gtk_tree_view_expand_row (tree_view, path, FALSE); - - /* ...open the selected folder */ - thunar_tree_view_action_open (view); + { + /* expand the row, but open it if mounted */ + if (gtk_tree_view_expand_row (tree_view, path, FALSE)) + { + /* ...open the selected folder */ + thunar_tree_view_action_open (THUNAR_TREE_VIEW (tree_view)); + } + } } @@ -978,44 +1169,45 @@ ThunarTreeViewMountData *data; GMountOperation *mount_operation; ThunarTreeView *view = THUNAR_TREE_VIEW (tree_view); - GtkWidget *window; gboolean expandable = TRUE; - GVolume *volume; + ThunarDevice *device; - /* determine the volume for the iterator */ - gtk_tree_model_get (GTK_TREE_MODEL (view->model), iter, THUNAR_TREE_MODEL_COLUMN_VOLUME, &volume, -1); + /* determine the device for the iterator */ + gtk_tree_model_get (GTK_TREE_MODEL (view->model), iter, THUNAR_TREE_MODEL_COLUMN_DEVICE, &device, -1); - /* check if we have a volume */ - if (G_UNLIKELY (volume != NULL)) + /* check if we have a device */ + if (G_UNLIKELY (device != NULL)) { - /* check if we need to mount the volume first */ - if (!thunar_g_volume_is_mounted (volume)) + /* check if we need to mount the device first */ + if (!thunar_device_is_mounted (device)) { - /* we need to mount the volume before we can expand the row */ + /* we need to mount the device before we can expand the row */ expandable = FALSE; /* allocate a mount data struct */ - data = thunar_tree_view_mount_data_new (view, path, FALSE, FALSE); + data = thunar_tree_view_mount_data_new (view, path, FALSE, OPEN_IN_VIEW); /* allocate a GTK+ mount operation */ - window = gtk_widget_get_toplevel (GTK_WIDGET (view)); - mount_operation = gtk_mount_operation_new (GTK_WINDOW (window)); + mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view)); - /* try to mount the volume and expand the row on success. the + /* try to mount the device and expand the row on success. the * data is destroyed in the finish callback */ - g_volume_mount (volume, G_MOUNT_MOUNT_NONE, mount_operation, NULL, - thunar_tree_view_mount_finish, data); + thunar_device_mount (device, + mount_operation, + NULL, + thunar_tree_view_mount_finish, + data); /* release the mount operation */ g_object_unref (mount_operation); } - /* release the volume */ - g_object_unref (G_OBJECT (volume)); + /* release the device */ + g_object_unref (G_OBJECT (device)); } /* cancel the cursor idle source if not expandable */ - if (!expandable && view->cursor_idle_id >= 0) + if (!expandable && view->cursor_idle_id != 0) g_source_remove (view->cursor_idle_id); return !expandable; @@ -1037,24 +1229,19 @@ static gboolean thunar_tree_view_delete_selected_files (ThunarTreeView *view) { - GtkAccelKey key; - GdkModifierType state; - gboolean permanently; + GtkAccelKey key; _thunar_return_val_if_fail (THUNAR_IS_TREE_VIEW (view), FALSE); - /* if this looks like a permanently delete */ - permanently = (gtk_get_current_event_state (&state) && (state & GDK_SHIFT_MASK) != 0); - - /* check if the user defined a custom accelerator and is not holding the - * shift button. if he or she has, we don't response to the predefined key - * bindings (bug #4173) */ - if (gtk_accel_map_lookup_entry ("/ThunarStandardView/delete", &key) - && key.accel_key != 0 && key.accel_mods != 0 && permanently == FALSE) + /* Check if there is a user defined accelerator for the delete action, + * if there is, skip events from the hard-coded keys which are set in + * the class of the standard view. See bug #4173. */ + if (gtk_accel_map_lookup_entry ("/ThunarStandardView/move-to-trash", &key) + && (key.accel_key != 0 || key.accel_mods != 0)) return FALSE; /* ask the user whether to delete the folder... */ - thunar_tree_view_action_delete (view); + thunar_tree_view_action_move_to_trash (view); /* ...and we're done */ return TRUE; @@ -1068,24 +1255,25 @@ GtkTreeModel *model, GtkTreeIter *iter) { - GVolume *volume; - ThunarFile *parent_file; - ThunarFile *file; - GtkWidget *image; - GtkWidget *menu; - GtkWidget *item; - GtkWidget *window; - GList *providers, *lp; - GList *actions = NULL, *tmp; + ThunarDevice *device; + ThunarFile *parent_file; + ThunarFile *file; + GtkWidget *image; + GtkWidget *menu; + GtkWidget *item; + GtkWidget *window; + GIcon *icon; + GList *providers, *lp; + GList *actions = NULL, *tmp; /* verify that we're connected to the clipboard manager */ if (G_UNLIKELY (view->clipboard == NULL)) return; - /* determine the file and volume for the given iter */ + /* determine the file and device for the given iter */ gtk_tree_model_get (model, iter, THUNAR_TREE_MODEL_COLUMN_FILE, &file, - THUNAR_TREE_MODEL_COLUMN_VOLUME, &volume, + THUNAR_TREE_MODEL_COLUMN_DEVICE, &device, -1); /* prepare the popup menu */ @@ -1095,19 +1283,25 @@ item = gtk_image_menu_item_new_with_mnemonic (_("_Open")); g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_open), view); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_set_sensitive (item, (file != NULL || volume != NULL)); + gtk_widget_set_sensitive (item, (file != NULL || device != NULL)); gtk_widget_show (item); /* set the stock icon */ image = gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); + + /* append the "Open in New Tab" menu action */ + item = gtk_image_menu_item_new_with_mnemonic (_("Open in New _Tab")); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_open_in_new_tab), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_set_sensitive (item, (file != NULL || device != NULL)); + gtk_widget_show (item); /* append the "Open in New Window" menu action */ - item = gtk_image_menu_item_new_with_mnemonic (_("Open in New Window")); + item = gtk_image_menu_item_new_with_mnemonic (_("Open in New _Window")); g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_open_in_new_window), view); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_set_sensitive (item, (file != NULL || volume != NULL)); + gtk_widget_set_sensitive (item, (file != NULL || device != NULL)); gtk_widget_show (item); /* append a separator item */ @@ -1115,20 +1309,34 @@ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); - if (G_UNLIKELY (volume != NULL)) + if (G_UNLIKELY (device != NULL)) { - /* append the "Mount Volume" menu action */ - item = gtk_image_menu_item_new_with_mnemonic (_("_Mount Volume")); - gtk_widget_set_sensitive (item, !thunar_g_volume_is_mounted (volume)); - g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_mount), view); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_widget_show (item); + if (thunar_device_get_kind (device) == THUNAR_DEVICE_KIND_VOLUME) + { + /* append the "Mount" menu action */ + item = gtk_image_menu_item_new_with_mnemonic (_("_Mount")); + gtk_widget_set_visible (item, thunar_device_can_mount (device)); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_mount), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + + /* append the "Unmount" menu action */ + item = gtk_image_menu_item_new_with_mnemonic (_("_Unmount")); + gtk_widget_set_visible (item, thunar_device_can_unmount (device)); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_unmount), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - /* check if the volume is present and can be ejected */ - if (thunar_g_volume_is_present (volume) && thunar_g_volume_is_removable (volume)) + /* append the "Eject" menu action */ + item = gtk_image_menu_item_new_with_mnemonic (_("_Eject")); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_eject), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_set_sensitive (item, thunar_device_can_eject (device)); + gtk_widget_show (item); + } + else { - /* append the "Eject Volume" menu action */ - item = gtk_image_menu_item_new_with_mnemonic (_("E_ject Volume")); + /* append the "Mount Volume" menu action */ + item = gtk_image_menu_item_new_with_mnemonic (_("Disconn_ect")); + gtk_widget_set_sensitive (item, thunar_device_can_eject (device)); g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_eject), view); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); @@ -1163,6 +1371,12 @@ g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_create_folder), view); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); + + /* set the stock icon */ + icon = g_themed_icon_new ("folder-new"); + image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + g_object_unref (icon); /* append a separator item */ item = gtk_separator_menu_item_new (); @@ -1172,8 +1386,8 @@ if (G_LIKELY (file != NULL)) { - /* "Cut" and "Copy" don't make much sense for volumes */ - if (G_LIKELY (volume == NULL)) + /* "Cut" and "Copy" don't make much sense for devices */ + if (G_LIKELY (device == NULL)) { /* determine the parent file (required to determine "Cut" sensitivity) */ parent_file = thunar_file_get_parent (file, NULL); @@ -1188,7 +1402,6 @@ /* set the stock icon */ image = gtk_image_new_from_stock (GTK_STOCK_CUT, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); /* append the "Copy" menu action */ item = gtk_image_menu_item_new_with_mnemonic (_("_Copy")); @@ -1200,7 +1413,6 @@ /* set the stock icon */ image = gtk_image_new_from_stock (GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); /* cleanup */ if (G_LIKELY (parent_file != NULL)) @@ -1217,14 +1429,33 @@ /* set the stock icon */ image = gtk_image_new_from_stock (GTK_STOCK_PASTE, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); - /* "Delete" and "Rename" don't make much sense for volumes */ - if (G_LIKELY (volume == NULL)) + /* "Delete" and "Rename" don't make much sense for devices */ + if (G_LIKELY (device == NULL)) { /* determine the parent file (required to determine "Delete" sensitivity) */ parent_file = thunar_file_get_parent (file, NULL); + /* append a separator item */ + item = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + if (thunar_g_vfs_is_uri_scheme_supported ("trash") + && thunar_file_can_be_trashed (file)) + { + /* append the "Move to Tash" menu action */ + item = gtk_image_menu_item_new_with_mnemonic (_("Mo_ve to Trash")); + g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_move_to_trash), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_set_sensitive (item, (parent_file != NULL && thunar_file_is_writable (parent_file))); + gtk_widget_show (item); + + /* set the stock icon */ + image = gtk_image_new_from_stock (THUNAR_STOCK_TRASH_FULL, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + } + /* append the "Delete" menu action */ item = gtk_image_menu_item_new_with_mnemonic (_("_Delete")); g_signal_connect_swapped (G_OBJECT (item), "activate", G_CALLBACK (thunar_tree_view_action_delete), view); @@ -1235,7 +1466,6 @@ /* set the stock icon */ image = gtk_image_new_from_stock (GTK_STOCK_DELETE, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); /* cleanup */ if (G_LIKELY (parent_file != NULL)) @@ -1262,7 +1492,7 @@ item = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show (item); - + /* add the providers menu for non-trashed items */ if (G_LIKELY (!thunar_file_is_trashed (file))) { @@ -1272,7 +1502,7 @@ { /* determine the toplevel window we belong to */ window = gtk_widget_get_toplevel (GTK_WIDGET (view)); - + /* load the actions offered by the menu providers */ for (lp = providers; lp != NULL; lp = lp->next) { @@ -1318,15 +1548,14 @@ /* set the stock icon */ image = gtk_image_new_from_stock (GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); /* run the menu on the view's screen (taking over the floating reference on the menu) */ thunar_gtk_menu_run (GTK_MENU (menu), GTK_WIDGET (view), NULL, NULL, (event != NULL) ? event->button : 0, (event != NULL) ? event->time : gtk_get_current_event_time ()); /* cleanup */ - if (G_UNLIKELY (volume != NULL)) - g_object_unref (G_OBJECT (volume)); + if (G_UNLIKELY (device != NULL)) + g_object_unref (G_OBJECT (device)); if (G_LIKELY (file != NULL)) g_object_unref (G_OBJECT (file)); } @@ -1348,7 +1577,7 @@ ThunarFile *file = NULL; /* cancel any previously active expand timer */ - if (G_LIKELY (view->expand_timer_id >= 0)) + if (G_LIKELY (view->expand_timer_id != 0)) g_source_remove (view->expand_timer_id); /* determine the path for x/y */ @@ -1485,7 +1714,7 @@ /* determine file for the selected row */ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); - + /* avoid dealing with invalid selections (may occur when the mount_finish() * handler is called and the tree view has been hidden already) */ if (!GTK_IS_TREE_SELECTION (selection)) @@ -1499,20 +1728,20 @@ -static GVolume* -thunar_tree_view_get_selected_volume (ThunarTreeView *view) +static ThunarDevice* +thunar_tree_view_get_selected_device (ThunarTreeView *view) { GtkTreeSelection *selection; - GVolume *volume = NULL; + ThunarDevice *device = NULL; GtkTreeModel *model; GtkTreeIter iter; /* determine file for the selected row */ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); if (gtk_tree_selection_get_selected (selection, &model, &iter)) - gtk_tree_model_get (model, &iter, THUNAR_TREE_MODEL_COLUMN_VOLUME, &volume, -1); + gtk_tree_model_get (model, &iter, THUNAR_TREE_MODEL_COLUMN_DEVICE, &device, -1); - return volume; + return device; } @@ -1564,9 +1793,9 @@ return; /* ask the user to enter a name for the new folder */ - name = thunar_show_create_dialog (GTK_WIDGET (view), - "inode/directory", - _("New Folder"), + name = thunar_show_create_dialog (GTK_WIDGET (view), + "inode/directory", + _("New Folder"), _("Create New Folder")); if (G_LIKELY (name != NULL)) { @@ -1624,6 +1853,41 @@ static void +thunar_tree_view_action_move_to_trash (ThunarTreeView *view) +{ + ThunarApplication *application; + ThunarFile *file; + GList file_list; + gboolean permanently; + GdkModifierType state; + + _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); + + /* determine the selected file */ + file = thunar_tree_view_get_selected_file (view); + if (G_LIKELY (file != NULL)) + { + /* fake a file list */ + file_list.data = file; + file_list.next = NULL; + file_list.prev = NULL; + + /* check if we should permanently delete the files (user holds shift) */ + permanently = (gtk_get_current_event_state (&state) && (state & GDK_SHIFT_MASK) != 0); + + /* delete the file */ + application = thunar_application_get (); + thunar_application_unlink_files (application, GTK_WIDGET (view), &file_list, permanently); + g_object_unref (G_OBJECT (application)); + + /* release the file */ + g_object_unref (G_OBJECT (file)); + } +} + + + +static void thunar_tree_view_action_delete (ThunarTreeView *view) { ThunarApplication *application; @@ -1643,7 +1907,7 @@ /* delete the file */ application = thunar_application_get (); - thunar_application_unlink_files (application, GTK_WIDGET (view), &file_list, FALSE); + thunar_application_unlink_files (application, GTK_WIDGET (view), &file_list, TRUE); g_object_unref (G_OBJECT (application)); /* release the file */ @@ -1658,15 +1922,15 @@ GError *error, ThunarTreeView *view) { - GValueArray *param_values; - ThunarFile *file; + GArray *param_values; + ThunarFile *file; _thunar_return_if_fail (EXO_IS_JOB (job)); _thunar_return_if_fail (error != NULL); _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); param_values = thunar_simple_job_get_param_values (THUNAR_SIMPLE_JOB (job)); - file = g_value_get_object (g_value_array_get_nth (param_values, 0)); + file = g_value_get_object (&g_array_index (param_values, GValue, 0)); /* display an error message */ thunar_dialogs_show_error (GTK_WIDGET (view), error, _("Failed to rename \"%s\""), @@ -1697,14 +1961,14 @@ ThunarJob *job; _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); - + /* determine the selected file */ file = thunar_tree_view_get_selected_file (view); if (G_LIKELY (file != NULL)) - { + { /* get the toplevel window */ window = gtk_widget_get_toplevel (GTK_WIDGET (view)); - + /* run the rename dialog */ job = thunar_dialogs_show_rename_file (GTK_WINDOW (window), file); if (G_LIKELY (job != NULL)) @@ -1712,7 +1976,7 @@ g_signal_connect (job, "error", G_CALLBACK (thunar_tree_view_rename_error), view); g_signal_connect (job, "finished", G_CALLBACK (thunar_tree_view_rename_finished), view); } - + /* release the file */ g_object_unref (file); } @@ -1721,133 +1985,110 @@ static void -thunar_tree_view_action_eject_finish (GObject *object, - GAsyncResult *result, +thunar_tree_view_action_eject_finish (ThunarDevice *device, + const GError *error, gpointer user_data) { ThunarTreeView *view = THUNAR_TREE_VIEW (user_data); - GtkWidget *window; - GVolume *volume = G_VOLUME (object); - GError *error = NULL; - gchar *volume_name; + gchar *device_name; - _thunar_return_if_fail (G_IS_VOLUME (object)); - _thunar_return_if_fail (G_IS_ASYNC_RESULT (result)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); /* check if there was an error */ - if (!g_volume_eject_finish (volume, result, &error)) + if (error != NULL) { - /* ignore GIO errors already handled */ - if (error->domain != G_IO_ERROR || error->code != G_IO_ERROR_FAILED_HANDLED) - { - window = gtk_widget_get_toplevel (GTK_WIDGET (view)); - - /* display an error dialog to inform the user */ - volume_name = g_volume_get_name (volume); - thunar_dialogs_show_error (window, error, _("Failed to eject \"%s\""), volume_name); - g_free (volume_name); - - g_error_free (error); - } + /* display an error dialog to inform the user */ + device_name = thunar_device_get_name (device); + thunar_dialogs_show_error (GTK_WIDGET (view), error, _("Failed to eject \"%s\""), device_name); + g_free (device_name); } -#ifdef HAVE_LIBNOTIFY - thunar_notify_eject_finish (volume); -#endif - g_object_unref (view); } static void -thunar_tree_view_action_unmount_finish (GObject *object, - GAsyncResult *result, - gpointer user_data) +thunar_tree_view_action_eject (ThunarTreeView *view) { - ThunarTreeView *view = THUNAR_TREE_VIEW (user_data); - GtkWidget *window; - GMount *mount = G_MOUNT (object); - GError *error = NULL; - gchar *mount_name; + ThunarDevice *device; + GMountOperation *mount_operation; - _thunar_return_if_fail (G_IS_MOUNT (object)); - _thunar_return_if_fail (G_IS_ASYNC_RESULT (result)); _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); - /* check if there was an error */ - if (!g_mount_unmount_finish (mount, result, &error)) + /* determine the selected device */ + device = thunar_tree_view_get_selected_device (view); + if (G_LIKELY (device != NULL)) { - /* ignore GIO errors already handled */ - if (error->domain != G_IO_ERROR || error->code != G_IO_ERROR_FAILED_HANDLED) - { - window = gtk_widget_get_toplevel (GTK_WIDGET (view)); + /* prepare a mount operation */ + mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view)); - /* display an error dialog to inform the user */ - mount_name = g_mount_get_name (mount); - thunar_dialogs_show_error (window, error, _("Failed to eject \"%s\""), mount_name); - g_free (mount_name); + /* eject */ + thunar_device_eject (device, + mount_operation, + NULL, + thunar_tree_view_action_eject_finish, + g_object_ref (view)); - g_error_free (error); - } + /* release the device */ + g_object_unref (device); + g_object_unref (mount_operation); } - -#ifdef HAVE_LIBNOTIFY - thunar_notify_unmount_finish (mount); -#endif - - g_object_unref (view); } static void -thunar_tree_view_action_eject (ThunarTreeView *view) +thunar_tree_view_action_unmount_finish (ThunarDevice *device, + const GError *error, + gpointer user_data) { - GVolume *volume; - GMount *mount; + ThunarTreeView *view = THUNAR_TREE_VIEW (user_data); + gchar *device_name; + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); - /* determine the selected volume */ - volume = thunar_tree_view_get_selected_volume (view); - if (G_LIKELY (volume != NULL)) + /* check if there was an error */ + if (error != NULL) { - /* determine what the appropriate method is: eject or unmount */ - if (g_volume_can_eject (volume)) - { -#ifdef HAVE_LIBNOTIFY - thunar_notify_eject (volume); -#endif + /* display an error dialog to inform the user */ + device_name = thunar_device_get_name (device); + thunar_dialogs_show_error (GTK_WIDGET (view), error, _("Failed to unmount \"%s\""), device_name); + g_free (device_name); + } - /* try to to eject the volume asynchronously */ - g_volume_eject (volume, G_MOUNT_UNMOUNT_NONE, NULL, - thunar_tree_view_action_eject_finish, - g_object_ref (view)); - } - else - { - /* determine the mount of the volume */ - mount = g_volume_get_mount (volume); - if (G_LIKELY (mount != NULL)) - { -#ifdef HAVE_LIBNOTIFY - thunar_notify_unmount (mount); -#endif + g_object_unref (view); +} - /* the volume is mounted, try to unmount the mount */ - g_mount_unmount (mount, G_MOUNT_UNMOUNT_NONE, NULL, - thunar_tree_view_action_unmount_finish, - g_object_ref (view)); - /* release the mount */ - g_object_unref (mount); - } - } - /* release the volume */ - g_object_unref (volume); +static void +thunar_tree_view_action_unmount (ThunarTreeView *view) +{ + ThunarDevice *device; + GMountOperation *mount_operation; + + _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); + + /* determine the selected device */ + device = thunar_tree_view_get_selected_device (view); + if (G_LIKELY (device != NULL)) + { + /* prepare a mount operation */ + mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view)); + + /* eject */ + thunar_device_unmount (device, + mount_operation, + NULL, + thunar_tree_view_action_unmount_finish, + g_object_ref (view)); + + /* release the device */ + g_object_unref (device); + g_object_unref (mount_operation); } } @@ -1872,54 +2113,46 @@ thunar_tree_view_action_mount (ThunarTreeView *view) { _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); - thunar_tree_view_mount (view, FALSE, FALSE); + thunar_tree_view_mount (view, FALSE, OPEN_IN_VIEW); } static void -thunar_tree_view_mount_finish (GObject *object, - GAsyncResult *result, +thunar_tree_view_mount_finish (ThunarDevice *device, + const GError *error, gpointer user_data) { ThunarTreeViewMountData *data = user_data; - GtkWidget *window; - GVolume *volume = G_VOLUME (object); - GError *error = NULL; - gchar *volume_name; + gchar *device_name; - _thunar_return_if_fail (G_IS_VOLUME (object)); - _thunar_return_if_fail (G_IS_ASYNC_RESULT (result)); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); _thunar_return_if_fail (data != NULL && THUNAR_IS_TREE_VIEW (data->view)); - /* check if there was an error */ - if (!g_volume_mount_finish (volume, result, &error)) + if (error != NULL) { - /* ignore GIO already handled errors or errors due to pending mount actions */ - if (error->domain != G_IO_ERROR - || (error->code != G_IO_ERROR_FAILED_HANDLED - && error->code != G_IO_ERROR_ALREADY_MOUNTED - && error->code != G_IO_ERROR_PENDING)) - { - window = gtk_widget_get_toplevel (GTK_WIDGET (data->view)); - - /* display an error dialog to inform the user */ - volume_name = g_volume_get_name (volume); - thunar_dialogs_show_error (window, error, _("Failed to mount \"%s\""), volume_name); - g_free (volume_name); - - /* free the error */ - g_error_free (error); - } + device_name = thunar_device_get_name (device); + thunar_dialogs_show_error (GTK_WIDGET (data->view), error, _("Failed to mount \"%s\""), device_name); + g_free (device_name); } else { if (G_LIKELY (data->open_after_mounting)) { - if (data->open_in_new_window) - thunar_tree_view_open_selection_in_new_window (data->view); - else - thunar_tree_view_open_selection (data->view); + switch (data->open_in) + { + case OPEN_IN_WINDOW: + thunar_tree_view_open_selection_in_new_window (data->view); + break; + + case OPEN_IN_TAB: + thunar_tree_view_open_selection_in_new_tab (data->view); + break; + + default: + thunar_tree_view_open_selection (data->view); + break; + } } else if (data->path != NULL) { @@ -1935,41 +2168,41 @@ static void thunar_tree_view_mount (ThunarTreeView *view, gboolean open_after_mounting, - gboolean open_in_new_window) + guint open_in) { ThunarTreeViewMountData *data; GMountOperation *mount_operation; - GtkWidget *window; - GVolume *volume; + ThunarDevice *device; _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); - /* determine the selected volume */ - volume = thunar_tree_view_get_selected_volume (view); - if (volume != NULL) + /* determine the selected device */ + device = thunar_tree_view_get_selected_device (view); + if (device != NULL) { - /* check if we need to mount the volume at all */ - if (!thunar_g_volume_is_mounted (volume)) + /* check if we need to mount the device at all */ + if (!thunar_device_is_mounted (device)) { /* allocate mount data */ - data = thunar_tree_view_mount_data_new (view, NULL, open_after_mounting, - open_in_new_window); + data = thunar_tree_view_mount_data_new (view, NULL, open_after_mounting, open_in); /* allocate a GTK+ mount operation */ - window = gtk_widget_get_toplevel (GTK_WIDGET (view)); - mount_operation = gtk_mount_operation_new (GTK_WINDOW (window)); + mount_operation = thunar_gtk_mount_operation_new (GTK_WIDGET (view)); - /* try to mount the volume and expand the row on success. the + /* try to mount the device and expand the row on success. the * data is destroyed in the finish callback */ - g_volume_mount (volume, G_MOUNT_MOUNT_NONE, mount_operation, NULL, - thunar_tree_view_mount_finish, data); + thunar_device_mount (device, + mount_operation, + NULL, + thunar_tree_view_mount_finish, + data); /* release the mount operation */ g_object_unref (mount_operation); } - /* release the volume */ - g_object_unref (volume); + /* release the device */ + g_object_unref (device); } } @@ -1978,23 +2211,23 @@ static void thunar_tree_view_action_open (ThunarTreeView *view) { - ThunarFile *file; - GVolume *volume; + ThunarFile *file; + ThunarDevice *device; _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); - /* determine the selected volume and file */ - volume = thunar_tree_view_get_selected_volume (view); + /* determine the selected device and file */ + device = thunar_tree_view_get_selected_device (view); file = thunar_tree_view_get_selected_file (view); - if (volume != NULL) + if (device != NULL) { - if (thunar_g_volume_is_mounted (volume)) + if (thunar_device_is_mounted (device)) thunar_tree_view_open_selection (view); else - thunar_tree_view_mount (view, TRUE, FALSE); - - g_object_unref (volume); + thunar_tree_view_mount (view, TRUE, OPEN_IN_VIEW); + + g_object_unref (device); } else if (file != NULL) { @@ -2027,23 +2260,23 @@ static void thunar_tree_view_action_open_in_new_window (ThunarTreeView *view) { - ThunarFile *file; - GVolume *volume; + ThunarFile *file; + ThunarDevice *device; _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); - /* determine the selected volume and file */ - volume = thunar_tree_view_get_selected_volume (view); + /* determine the selected device and file */ + device = thunar_tree_view_get_selected_device (view); file = thunar_tree_view_get_selected_file (view); - if (volume != NULL) + if (device != NULL) { - if (thunar_g_volume_is_mounted (volume)) + if (thunar_device_is_mounted (device)) thunar_tree_view_open_selection_in_new_window (view); else - thunar_tree_view_mount (view, TRUE, FALSE); - - g_object_unref (volume); + thunar_tree_view_mount (view, TRUE, OPEN_IN_WINDOW); + + g_object_unref (device); } else if (file != NULL) { @@ -2055,6 +2288,36 @@ static void +thunar_tree_view_action_open_in_new_tab (ThunarTreeView *view) +{ + ThunarFile *file; + ThunarDevice *device; + + _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); + + /* determine the selected device and file */ + device = thunar_tree_view_get_selected_device (view); + file = thunar_tree_view_get_selected_file (view); + + if (device != NULL) + { + if (thunar_device_is_mounted (device)) + thunar_tree_view_open_selection_in_new_tab (view); + else + thunar_tree_view_mount (view, TRUE, OPEN_IN_TAB); + + g_object_unref (device); + } + else if (file != NULL) + { + thunar_tree_view_open_selection_in_new_tab (view); + g_object_unref (file); + } +} + + + +static void thunar_tree_view_open_selection_in_new_window (ThunarTreeView *view) { ThunarApplication *application; @@ -2068,7 +2331,7 @@ { /* open a new window for the selected folder */ application = thunar_application_get (); - thunar_application_open_window (application, file, + thunar_application_open_window (application, file, gtk_widget_get_screen (GTK_WIDGET (view)), NULL); g_object_unref (application); g_object_unref (file); @@ -2078,6 +2341,25 @@ static void +thunar_tree_view_open_selection_in_new_tab (ThunarTreeView *view) +{ + ThunarFile *file; + + _thunar_return_if_fail (THUNAR_IS_TREE_VIEW (view)); + + /* determine the selected file */ + file = thunar_tree_view_get_selected_file (view); + if (G_LIKELY (file != NULL)) + { + /* open a new tab for the selected folder */ + thunar_navigator_open_new_tab (THUNAR_NAVIGATOR (view), file); + g_object_unref (file); + } +} + + + +static void thunar_tree_view_action_paste_into_folder (ThunarTreeView *view) { ThunarFile *file; @@ -2117,13 +2399,11 @@ { /* determine the toplevel window */ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (view)); - if (G_LIKELY (toplevel != NULL && GTK_WIDGET_TOPLEVEL (toplevel))) + if (G_LIKELY (toplevel != NULL && gtk_widget_is_toplevel (toplevel))) { /* popup the properties dialog */ - dialog = thunar_properties_dialog_new (); - gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); + dialog = thunar_properties_dialog_new (GTK_WINDOW (toplevel)); thunar_properties_dialog_set_file (THUNAR_PROPERTIES_DIALOG (dialog), file); - gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (toplevel)); gtk_widget_show (dialog); } @@ -2172,6 +2452,7 @@ { /* change to the newly created folder */ thunar_navigator_change_directory (THUNAR_NAVIGATOR (view), file); + g_object_unref (file); } } @@ -2182,13 +2463,15 @@ ThunarFile *file, gpointer user_data) { - ThunarTreeView *view = THUNAR_TREE_VIEW (user_data); + ThunarTreeView *view; gboolean visible = TRUE; _thunar_return_val_if_fail (THUNAR_IS_FILE (file), FALSE); _thunar_return_val_if_fail (THUNAR_IS_TREE_MODEL (model), FALSE); + _thunar_return_val_if_fail (THUNAR_IS_TREE_VIEW (user_data), FALSE); /* if show_hidden is TRUE, nothing is filtered */ + view = THUNAR_TREE_VIEW (user_data); if (G_LIKELY (!view->show_hidden)) { /* we display all non-hidden file and hidden files that are ancestors of the current directory */ @@ -2208,10 +2491,10 @@ gboolean path_currently_selected, gpointer user_data) { - GtkTreeIter iter; - ThunarFile *file; - gboolean result = FALSE; - GVolume *volume; + GtkTreeIter iter; + ThunarFile *file; + gboolean result = FALSE; + ThunarDevice *device; /* every row may be unselected at any time */ if (path_currently_selected) @@ -2232,15 +2515,15 @@ } else { - /* but maybe the row has a volume */ - gtk_tree_model_get (model, &iter, THUNAR_TREE_MODEL_COLUMN_VOLUME, &volume, -1); - if (G_LIKELY (volume != NULL)) + /* but maybe the row has a device */ + gtk_tree_model_get (model, &iter, THUNAR_TREE_MODEL_COLUMN_DEVICE, &device, -1); + if (G_LIKELY (device != NULL)) { - /* rows with volumes can also be selected */ + /* rows with devices can also be selected */ result = TRUE; - /* release volume */ - g_object_unref (volume); + /* release device */ + g_object_unref (device); } } } @@ -2257,25 +2540,52 @@ GtkTreePath *ancestor = NULL; GtkTreePath *parent; GtkTreePath *path; + GtkTreeIter iter; + ThunarFile *file; gboolean done = TRUE; GDK_THREADS_ENTER (); + /* for easier navigation, we sometimes want to force/keep selection of a certain path */ + if (view->select_path != NULL) + { + gtk_tree_view_set_cursor (GTK_TREE_VIEW (view), view->select_path, NULL, FALSE); + gtk_tree_path_free (view->select_path); + view->select_path = NULL; + } + /* verify that we still have a current directory */ - if (G_LIKELY (view->current_directory != NULL)) + else if (G_LIKELY (view->current_directory != NULL)) { - /* determine the current cursor (fallback to root node) */ + /* use the current cursor to limit the search to only the top-level of the selected node */ gtk_tree_view_get_cursor (GTK_TREE_VIEW (view), &path, NULL); - if (G_UNLIKELY (path == NULL)) + + /* if we have a path from the cursor but the current directory does not match it, + * unset it so that the correct toplevel item will be selected later */ + if (path) + { + gtk_tree_model_get_iter (GTK_TREE_MODEL (view->model), &iter, path); + gtk_tree_model_get (GTK_TREE_MODEL (view->model), &iter, THUNAR_TREE_MODEL_COLUMN_FILE, &file, -1); + if (file != view->current_directory) + { + gtk_tree_path_free (path); + path = NULL; + } + if (file) + g_object_unref (file); + } + + /* no cursor set, get the preferred toplevel path for the current directory */ + if (path == NULL) + path = thunar_tree_view_get_preferred_toplevel_path (view, view->current_directory); + + /* fallback to a newly created root node */ + if (path == NULL) path = gtk_tree_path_new_first (); /* look for the closest ancestor in the whole tree, starting from the current path */ for (; gtk_tree_path_get_depth (path) > 0; gtk_tree_path_up (path)) { - /* be sure to start from the first path at that level */ - while (gtk_tree_path_prev (path)) - ; - /* try to find the closest ancestor relative to the current path */ if (thunar_tree_view_find_closest_ancestor (view, path, &ancestor, &done)) { @@ -2319,7 +2629,7 @@ static void thunar_tree_view_cursor_idle_destroy (gpointer user_data) { - THUNAR_TREE_VIEW (user_data)->cursor_idle_id = -1; + THUNAR_TREE_VIEW (user_data)->cursor_idle_id = 0; } @@ -2339,7 +2649,7 @@ GDK_THREADS_ENTER (); /* verify that we are realized */ - if (GTK_WIDGET_REALIZED (view)) + if (gtk_widget_get_realized (GTK_WIDGET (view))) { /* determine pointer location and window geometry */ gdk_window_get_pointer (GTK_WIDGET (view)->window, NULL, &y, NULL); @@ -2369,7 +2679,7 @@ * if a path is expanded while scrolling through the view. * reschedule it if the drag dest path is still visible. */ - if (G_UNLIKELY (view->expand_timer_id >= 0)) + if (G_UNLIKELY (view->expand_timer_id != 0)) { /* drop the current expand timer source */ g_source_remove (view->expand_timer_id); @@ -2413,7 +2723,7 @@ static void thunar_tree_view_drag_scroll_timer_destroy (gpointer user_data) { - THUNAR_TREE_VIEW (user_data)->drag_scroll_timer_id = -1; + THUNAR_TREE_VIEW (user_data)->drag_scroll_timer_id = 0; } @@ -2427,7 +2737,7 @@ GDK_THREADS_ENTER (); /* cancel the drag autoscroll timer when expanding a row */ - if (G_UNLIKELY (view->drag_scroll_timer_id >= 0)) + if (G_UNLIKELY (view->drag_scroll_timer_id != 0)) g_source_remove (view->drag_scroll_timer_id); /* determine the drag dest row */ @@ -2449,7 +2759,7 @@ static void thunar_tree_view_expand_timer_destroy (gpointer user_data) { - THUNAR_TREE_VIEW (user_data)->expand_timer_id = -1; + THUNAR_TREE_VIEW (user_data)->expand_timer_id = 0; } @@ -2458,7 +2768,7 @@ thunar_tree_view_mount_data_new (ThunarTreeView *view, GtkTreePath *path, gboolean open_after_mounting, - gboolean open_in_new_window) + guint open_in) { ThunarTreeViewMountData *data; @@ -2466,7 +2776,7 @@ data->path = path == NULL ? NULL : gtk_tree_path_copy (path); data->view = g_object_ref (view); data->open_after_mounting = open_after_mounting; - data->open_in_new_window = open_in_new_window; + data->open_in = open_in; return data; } @@ -2487,21 +2797,6 @@ /** - * thunar_tree_view_new: - * - * Allocates a new #ThunarTreeView instance. - * - * Return value: the newly allocated #ThunarTreeView instance. - **/ -GtkWidget* -thunar_tree_view_new (void) -{ - return g_object_new (THUNAR_TYPE_TREE_VIEW, NULL); -} - - - -/** * thunar_tree_view_get_show_hidden: * @view : a #ThunarTreeView. * @@ -2510,7 +2805,7 @@ * * Return value: %TRUE if hidden folders are shown. **/ -gboolean +static gboolean thunar_tree_view_get_show_hidden (ThunarTreeView *view) { _thunar_return_val_if_fail (THUNAR_IS_TREE_VIEW (view), FALSE); @@ -2527,7 +2822,7 @@ * If @show_hidden is %TRUE, @view will shown hidden and * backup folders. Else, these folders will be hidden. **/ -void +static void thunar_tree_view_set_show_hidden (ThunarTreeView *view, gboolean show_hidden) { @@ -2550,3 +2845,130 @@ g_object_notify (G_OBJECT (view), "show-hidden"); } } + + + +/** + * thunar_tree_view_get_preferred_toplevel_path: + * @view : a #ThunarTreeView. + * @file : the #ThunarFile we want the toplevel path for + * + * Searches for the best-matching toplevel path in the + * following order: + * 1) any mounted device or network resource + * 2) the user's desktop directory + * 3) the user's home directory + * 4) the root filesystem + * + * Returns the #GtkTreePath for the matching toplevel item, + * or %NULL if not found. + **/ +static GtkTreePath * +thunar_tree_view_get_preferred_toplevel_path (ThunarTreeView *view, + ThunarFile *file) +{ + GtkTreeModel *model = GTK_TREE_MODEL (view->model); + GtkTreePath *path = NULL; + GtkTreeIter iter; + ThunarFile *toplevel_file; + GFile *desktop; + GFile *home; + GFile *root; + GFile *best_match; + + _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL); + + /* check whether the root node is available */ + if (!gtk_tree_model_get_iter_first (model, &iter)) + return NULL; + + /* get GFiles for special toplevel items */ + desktop = thunar_g_file_new_for_desktop (); + home = thunar_g_file_new_for_home (); + root = thunar_g_file_new_for_root (); + + /* we prefer certain toplevel items to others */ + if (thunar_file_is_gfile_ancestor (file, desktop)) + best_match = desktop; + else if (thunar_file_is_gfile_ancestor (file, home)) + best_match = home; + else if (thunar_file_is_gfile_ancestor (file, root)) + best_match = root; + else + best_match = NULL; + + /* loop over all top-level nodes to find the best-matching top-level item */ + do + { + gtk_tree_model_get (model, &iter, THUNAR_TREE_MODEL_COLUMN_FILE, &toplevel_file, -1); + /* this toplevel item has no file, so continue with the next */ + if (toplevel_file == NULL) + continue; + + /* if the file matches the toplevel item exactly, we are done */ + if (g_file_equal (thunar_file_get_file (file), + thunar_file_get_file (toplevel_file))) + { + gtk_tree_path_free (path); + path = gtk_tree_model_get_path (model, &iter); + g_object_unref (toplevel_file); + break; + } + + if (thunar_file_is_ancestor (file, toplevel_file)) + { + /* the toplevel item could be a mounted device or network + * and we prefer this to everything else */ + if (!g_file_equal (thunar_file_get_file (toplevel_file), desktop) && + !g_file_equal (thunar_file_get_file (toplevel_file), home) && + !g_file_equal (thunar_file_get_file (toplevel_file), root)) + { + gtk_tree_path_free (path); + g_object_unref (toplevel_file); + path = gtk_tree_model_get_path (model, &iter); + break; + } + + /* continue if the toplevel item is already the best match */ + if (best_match != NULL && + g_file_equal (thunar_file_get_file (toplevel_file), best_match)) + { + gtk_tree_path_free (path); + g_object_unref (toplevel_file); + path = gtk_tree_model_get_path (model, &iter); + continue; + } + + /* remember this ancestor if we do not already have one */ + if (path == NULL) + { + gtk_tree_path_free (path); + path = gtk_tree_model_get_path (model, &iter); + } + } + g_object_unref (toplevel_file); + } + while (gtk_tree_model_iter_next (model, &iter)); + + /* cleanup */ + g_object_unref (root); + g_object_unref (home); + g_object_unref (desktop); + + return path; +} + + + +/** + * thunar_tree_view_new: + * + * Allocates a new #ThunarTreeView instance. + * + * Return value: the newly allocated #ThunarTreeView instance. + **/ +GtkWidget* +thunar_tree_view_new (void) +{ + return g_object_new (THUNAR_TYPE_TREE_VIEW, NULL); +} diff -Nru thunar-1.2.3/thunar/thunar-tree-view.h thunar-1.6.10/thunar/thunar-tree-view.h --- thunar-1.2.3/thunar/thunar-tree-view.h 2011-05-25 23:07:38.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-tree-view.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2006 Benedikt Meurer * @@ -38,10 +38,6 @@ GtkWidget *thunar_tree_view_new (void) G_GNUC_MALLOC; -gboolean thunar_tree_view_get_show_hidden (ThunarTreeView *view); -void thunar_tree_view_set_show_hidden (ThunarTreeView *view, - gboolean show_hidden); - G_END_DECLS; #endif /* !__THUNAR_TREE_VIEW_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-user.c thunar-1.6.10/thunar/thunar-user.c --- thunar-1.2.3/thunar/thunar-user.c 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-user.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -54,8 +54,8 @@ -/* the interval in which the user/group cache is flushed (in ms) */ -#define THUNAR_USER_MANAGER_FLUSH_INTERVAL (10 * 60 * 1000) +/* the interval in which the user/group cache is flushed (in seconds) */ +#define THUNAR_USER_MANAGER_FLUSH_INTERVAL (10 * 60) @@ -177,10 +177,10 @@ -static void thunar_user_finalize (GObject *object); -static void thunar_user_load (ThunarUser *user); -static ThunarUser *thunar_user_new (guint32 id); - +static void thunar_user_finalize (GObject *object); +static void thunar_user_load (ThunarUser *user); +static ThunarUser *thunar_user_new (guint32 id); +static ThunarGroup*thunar_user_get_primary_group (ThunarUser *user); struct _ThunarUserClass @@ -239,8 +239,7 @@ ThunarUser *user = THUNAR_USER (object); /* unref the associated groups */ - g_list_foreach (user->groups, (GFunc) g_object_unref, NULL); - g_list_free (user->groups); + g_list_free_full (user->groups, g_object_unref); /* drop the reference on the primary group */ if (G_LIKELY (user->primary_group != NULL)) @@ -320,6 +319,19 @@ } +static ThunarGroup* +thunar_user_get_primary_group (ThunarUser *user) +{ + g_return_val_if_fail (THUNAR_IS_USER (user), NULL); + + /* load the user data on-demand */ + if (G_UNLIKELY (user->name == NULL)) + thunar_user_load (user); + + return user->primary_group; +} + + /** * thunar_user_get_groups: @@ -387,49 +399,6 @@ /** - * thunar_user_get_primary_group: - * @user : a #ThunarUser. - * - * Returns the primary group of @user or %NULL if @user - * has no primary group. - * - * No reference is taken for the caller, so you must - * not call g_object_unref() on the returned object. - * - * Return value: the primary group of @user or %NULL. - **/ -ThunarGroup* -thunar_user_get_primary_group (ThunarUser *user) -{ - g_return_val_if_fail (THUNAR_IS_USER (user), NULL); - - /* load the user data on-demand */ - if (G_UNLIKELY (user->name == NULL)) - thunar_user_load (user); - - return user->primary_group; -} - - - -/** - * thunar_user_get_id: - * @user : a #ThunarUser. - * - * Returns the unique id of @user. - * - * Return value: the unique id of @user. - **/ -guint32 -thunar_user_get_id (ThunarUser *user) -{ - g_return_val_if_fail (THUNAR_IS_USER (user), 0); - return user->id; -} - - - -/** * thunar_user_get_name: * @user : a #ThunarUser. * @@ -515,7 +484,7 @@ GHashTable *groups; GHashTable *users; - gint flush_timer_id; + guint flush_timer_id; }; @@ -552,9 +521,9 @@ #endif /* start the flush timer */ - manager->flush_timer_id = g_timeout_add_full (G_PRIORITY_LOW, THUNAR_USER_MANAGER_FLUSH_INTERVAL, - thunar_user_manager_flush_timer, manager, - thunar_user_manager_flush_timer_destroy); + manager->flush_timer_id = g_timeout_add_seconds_full (G_PRIORITY_LOW, THUNAR_USER_MANAGER_FLUSH_INTERVAL, + thunar_user_manager_flush_timer, manager, + thunar_user_manager_flush_timer_destroy); } @@ -565,7 +534,7 @@ ThunarUserManager *manager = THUNAR_USER_MANAGER (object); /* stop the flush timer */ - if (G_LIKELY (manager->flush_timer_id >= 0)) + if (G_LIKELY (manager->flush_timer_id != 0)) g_source_remove (manager->flush_timer_id); /* destroy the hash tables */ @@ -622,7 +591,7 @@ static void thunar_user_manager_flush_timer_destroy (gpointer user_data) { - THUNAR_USER_MANAGER (user_data)->flush_timer_id = -1; + THUNAR_USER_MANAGER (user_data)->flush_timer_id = 0; } @@ -737,8 +706,7 @@ * * The caller is responsible to free the returned list using: * - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * Return value: the list of all groups known to the @manager. diff -Nru thunar-1.2.3/thunar/thunar-user.h thunar-1.6.10/thunar/thunar-user.h --- thunar-1.2.3/thunar/thunar-user.h 2009-08-21 15:17:24.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-user.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -55,8 +55,6 @@ GType thunar_user_get_type (void) G_GNUC_CONST; GList *thunar_user_get_groups (ThunarUser *user); -ThunarGroup *thunar_user_get_primary_group (ThunarUser *user); -guint32 thunar_user_get_id (ThunarUser *user); const gchar *thunar_user_get_name (ThunarUser *user); const gchar *thunar_user_get_real_name (ThunarUser *user); gboolean thunar_user_is_me (ThunarUser *user); diff -Nru thunar-1.2.3/thunar/thunar-util.c thunar-1.6.10/thunar/thunar-util.c --- thunar-1.2.3/thunar/thunar-util.c 2011-07-15 18:56:23.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-util.c 2015-05-22 13:25:36.000000000 +0000 @@ -61,6 +61,189 @@ #include + +/** + * thunar_util_strrchr_offset: + * @str: haystack + * @offset: pointer offset in @str + * @c: search needle + * + * Return the last occurrence of the character @c in + * the string @str starting at @offset. + * + * There are also Glib functions for this like g_strrstr_len + * and g_utf8_strrchr, but these work internally the same + * as this function (tho, less efficient). + * + * Return value: pointer in @str or NULL. + **/ +static inline gchar * +thunar_util_strrchr_offset (const gchar *str, + const gchar *offset, + gchar c) +{ + const gchar *p; + + for (p = offset; p > str; p--) + if (*p == c) + return (gchar *) p; + + return NULL; +} + + + +/** + * thunar_util_str_get_extension + * @filename : an UTF-8 filename + * + * Returns a pointer to the extension in @filename. + * + * This is an improved version of g_utf8_strrchr with + * improvements to recognize compound extensions like + * ".tar.gz" and ".desktop.in.in". + * + * Return value: pointer to the extension in @filename + * or NULL. +**/ +gchar * +thunar_util_str_get_extension (const gchar *filename) +{ + static const gchar *compressed[] = { "gz", "bz2", "lzma", "lrz", "rpm", "lzo", "xz", "z" }; + gchar *dot; + gchar *ext; + guint i; + gchar *dot2; + gsize len; + gboolean is_in; + + /* check if there is an possible extension part in the name */ + dot = strrchr (filename, '.'); + if (dot == NULL + || dot == filename + || dot[1] == '\0') + return NULL; + + /* skip the . */ + ext = dot + 1; + + /* check if this looks like a compression mime-type */ + for (i = 0; i < G_N_ELEMENTS (compressed); i++) + { + if (strcasecmp (ext, compressed[i]) == 0) + { + /* look for a possible container part (tar, psd, epsf) */ + dot2 = thunar_util_strrchr_offset (filename, dot - 1, '.'); + if (dot2 != NULL + && dot2 != filename) + { + /* check the 2nd part range, keep it between 2 and 5 chars */ + len = dot - dot2 - 1; + if (len >= 2 && len <= 5) + dot = dot2; + } + + /* that's it for compression types */ + return dot; + } + } + + /* for coders, .in are quite common, so check for those too + * with a max of 3 rounds (2x .in and the possibly final extension) */ + if (strcasecmp (ext, "in") == 0) + { + for (i = 0, is_in = TRUE; is_in && i < 3; i++) + { + dot2 = thunar_util_strrchr_offset (filename, dot - 1, '.'); + /* the extension before .in could be long. check that it's at least 2 chars */ + len = dot - dot2 - 1; + if (dot2 == NULL + || dot2 == filename + || len < 2) + break; + + /* continue if another .in was found */ + is_in = dot - dot2 == 3 && strncasecmp (dot2, ".in", 3) == 0; + + dot = dot2; + } + } + + return dot; +} + + + +void +thunar_util_load_bookmarks (GFile *bookmarks_file, + ThunarBookmarksFunc foreach_func, + gpointer user_data) +{ + gchar *bookmarks_path; + gchar line[1024]; + const gchar *name; + gchar *space; + FILE *fp; + gint row_num = 1; + GFile *file; + + _thunar_return_if_fail (G_IS_FILE (bookmarks_file)); + _thunar_return_if_fail (g_file_is_native (bookmarks_file)); + _thunar_return_if_fail (foreach_func != NULL); + + /* determine the path to the GTK+ bookmarks file */ + bookmarks_path = g_file_get_path (bookmarks_file); + + /* append the GTK+ bookmarks (if any) */ + fp = fopen (bookmarks_path, "r"); + g_free (bookmarks_path); + + if (G_UNLIKELY (fp == NULL)) + { + bookmarks_path = g_build_filename (g_get_home_dir (), ".gtk-bookmarks", NULL); + fp = fopen(bookmarks_path, "r"); + g_free(bookmarks_path); + } + + if (G_LIKELY (fp != NULL)) + { + while (fgets (line, sizeof (line), fp) != NULL) + { + /* remove trailing spaces */ + g_strchomp (line); + + /* skip over empty lines */ + if (*line == '\0' || *line == ' ') + continue; + + /* check if there is a custom name in the line */ + name = NULL; + space = strchr (line, ' '); + if (space != NULL) + { + /* break line */ + *space++ = '\0'; + + /* get the custom name */ + if (G_LIKELY (*space != '\0')) + name = space; + } + + file = g_file_new_for_uri (line); + + /* callback */ + foreach_func (file, name, row_num++, user_data); + + g_object_unref (G_OBJECT (file)); + } + + fclose (fp); + } + +} + + + /** * thunar_util_expand_filename: * @filename : a local filename. @@ -309,7 +492,8 @@ { /* parent is a widget, so let's determine the toplevel window */ window = gtk_widget_get_toplevel (GTK_WIDGET (parent)); - if (GTK_WIDGET_TOPLEVEL (window)) + if (window != NULL + && gtk_widget_is_toplevel (window)) { /* make sure the toplevel window is shown */ gtk_widget_show_now (window); diff -Nru thunar-1.2.3/thunar/thunar-util.h thunar-1.6.10/thunar/thunar-util.h --- thunar-1.2.3/thunar/thunar-util.h 2010-11-13 15:38:20.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-util.h 2015-05-22 13:25:36.000000000 +0000 @@ -26,7 +26,18 @@ G_BEGIN_DECLS; -gboolean thunar_util_looks_like_an_uri (const gchar *string) G_GNUC_WARN_UNUSED_RESULT; +typedef void (*ThunarBookmarksFunc) (GFile *file, + const gchar *name, + gint row_num, + gpointer user_data); + +gchar *thunar_util_str_get_extension (const gchar *name) G_GNUC_WARN_UNUSED_RESULT; + +void thunar_util_load_bookmarks (GFile *bookmarks_file, + ThunarBookmarksFunc foreach_func, + gpointer user_data); + +gboolean thunar_util_looks_like_an_uri (const gchar *string) G_GNUC_WARN_UNUSED_RESULT; gchar *thunar_util_expand_filename (const gchar *filename, GFile *working_directory, diff -Nru thunar-1.2.3/thunar/thunar-view.c thunar-1.6.10/thunar/thunar-view.c --- thunar-1.2.3/thunar/thunar-view.c 2011-05-25 23:07:38.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-view.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -253,15 +253,18 @@ /** * thunar_view_reload: * @view : a #ThunarView instance. + * @reload_info : whether to reload file info for all files too * * Tells @view to reread the currently displayed folder - * contents from the underlying media. + * contents from the underlying media. If reload_info is + * TRUE, it will reload information for all files too. **/ void -thunar_view_reload (ThunarView *view) +thunar_view_reload (ThunarView *view, + gboolean reload_info) { _thunar_return_if_fail (THUNAR_IS_VIEW (view)); - (*THUNAR_VIEW_GET_IFACE (view)->reload) (view); + (*THUNAR_VIEW_GET_IFACE (view)->reload) (view, reload_info); } diff -Nru thunar-1.2.3/thunar/thunar-view.h thunar-1.6.10/thunar/thunar-view.h --- thunar-1.2.3/thunar/thunar-view.h 2011-05-25 23:07:38.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-view.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -51,7 +51,8 @@ ThunarZoomLevel zoom_level); void (*reset_zoom_level) (ThunarView *view); - void (*reload) (ThunarView *view); + void (*reload) (ThunarView *view, + gboolean reload_info); gboolean (*get_visible_range) (ThunarView *view, ThunarFile **start_file, @@ -79,7 +80,8 @@ ThunarZoomLevel zoom_level); void thunar_view_reset_zoom_level (ThunarView *view); -void thunar_view_reload (ThunarView *view); +void thunar_view_reload (ThunarView *view, + gboolean reload_info); gboolean thunar_view_get_visible_range (ThunarView *view, ThunarFile **start_file, diff -Nru thunar-1.2.3/thunar/thunar-window.c thunar-1.6.10/thunar/thunar-window.c --- thunar-1.2.3/thunar/thunar-window.c 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-window.c 2015-05-22 13:25:36.000000000 +0000 @@ -1,20 +1,20 @@ /* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2007 Benedikt Meurer - * Copyright (c) 2009-2010 Jannis Pohlmann + * Copyright (c) 2009-2011 Jannis Pohlmann * - * This program is free software; you can redistribute it and/or + * 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 + * 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 + * 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 + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ @@ -31,6 +31,7 @@ #endif #include +#include #include #include @@ -53,13 +54,14 @@ #include #include #include +#include #include #include -#include #include #include #include #include +#include #include @@ -81,9 +83,11 @@ BACK, RELOAD, TOGGLE_SIDEPANE, + TOGGLE_MENUBAR, ZOOM_IN, ZOOM_OUT, ZOOM_RESET, + TAB_CHANGE, LAST_SIGNAL, }; @@ -100,16 +104,47 @@ const GValue *value, GParamSpec *pspec); static gboolean thunar_window_back (ThunarWindow *window); -static gboolean thunar_window_reload (ThunarWindow *window); +static gboolean thunar_window_reload (ThunarWindow *window, + gboolean reload_info); static gboolean thunar_window_toggle_sidepane (ThunarWindow *window); +static gboolean thunar_window_toggle_menubar (ThunarWindow *window); +static void thunar_window_toggle_menubar_deactivate (GtkWidget *menubar, + ThunarWindow *window); static gboolean thunar_window_zoom_in (ThunarWindow *window); static gboolean thunar_window_zoom_out (ThunarWindow *window); static gboolean thunar_window_zoom_reset (ThunarWindow *window); +static gboolean thunar_window_tab_change (ThunarWindow *window, + gint nth); static void thunar_window_realize (GtkWidget *widget); static void thunar_window_unrealize (GtkWidget *widget); static gboolean thunar_window_configure_event (GtkWidget *widget, GdkEventConfigure *event); +static void thunar_window_notebook_switch_page (GtkWidget *notebook, + GtkWidget *page, + guint page_num, + ThunarWindow *window); +static void thunar_window_notebook_page_added (GtkWidget *notebook, + GtkWidget *page, + guint page_num, + ThunarWindow *window); +static void thunar_window_notebook_page_removed (GtkWidget *notebook, + GtkWidget *page, + guint page_num, + ThunarWindow *window); +static gboolean thunar_window_notebook_button_press_event (GtkWidget *notebook, + GdkEventButton *event, + ThunarWindow *window); +static gboolean thunar_window_notebook_popup_menu (GtkWidget *notebook, + ThunarWindow *window); +static gpointer thunar_window_notebook_create_window (GtkWidget *notebook, + GtkWidget *page, + gint x, + gint y, + ThunarWindow *window); +static void thunar_window_notebook_insert (ThunarWindow *window, + ThunarFile *directory); static void thunar_window_merge_custom_preferences (ThunarWindow *window); +static gboolean thunar_window_bookmark_merge (gpointer user_data); static void thunar_window_merge_go_actions (ThunarWindow *window); static void thunar_window_install_location_bar (ThunarWindow *window, GType type); @@ -117,13 +152,19 @@ GType type); static void thunar_window_start_open_location (ThunarWindow *window, const gchar *initial_text); +static void thunar_window_action_open_new_tab (GtkAction *action, + ThunarWindow *window); static void thunar_window_action_open_new_window (GtkAction *action, ThunarWindow *window); static void thunar_window_action_empty_trash (GtkAction *action, ThunarWindow *window); +static void thunar_window_action_detach_tab (GtkAction *action, + ThunarWindow *window); static void thunar_window_action_close_all_windows (GtkAction *action, ThunarWindow *window); -static void thunar_window_action_close (GtkAction *action, +static void thunar_window_action_close_tab (GtkAction *action, + ThunarWindow *window); +static void thunar_window_action_close_window (GtkAction *action, ThunarWindow *window); static void thunar_window_action_preferences (GtkAction *action, ThunarWindow *window); @@ -139,6 +180,8 @@ ThunarWindow *window); static void thunar_window_action_statusbar_changed (GtkToggleAction *action, ThunarWindow *window); +static void thunar_window_action_menubar_changed (GtkToggleAction *action, + ThunarWindow *window); static void thunar_window_action_zoom_in (GtkAction *action, ThunarWindow *window); static void thunar_window_action_zoom_out (GtkAction *action, @@ -154,26 +197,16 @@ ThunarWindow *window); static void thunar_window_action_open_desktop (GtkAction *action, ThunarWindow *window); -static void thunar_window_action_open_documents (GtkAction *action, - ThunarWindow *window); -static void thunar_window_action_open_downloads (GtkAction *action, - ThunarWindow *window); -static void thunar_window_action_open_music (GtkAction *action, - ThunarWindow *window); -static void thunar_window_action_open_pictures (GtkAction *action, - ThunarWindow *window); -static void thunar_window_action_open_public (GtkAction *action, - ThunarWindow *window); static void thunar_window_action_open_templates (GtkAction *action, ThunarWindow *window); -static void thunar_window_action_open_videos (GtkAction *action, - ThunarWindow *window); static void thunar_window_action_open_file_system (GtkAction *action, ThunarWindow *window); static void thunar_window_action_open_trash (GtkAction *action, ThunarWindow *window); static void thunar_window_action_open_network (GtkAction *action, ThunarWindow *window); +static void thunar_window_action_open_bookmark (GtkAction *action, + ThunarWindow *window); static void thunar_window_action_open_location (GtkAction *action, ThunarWindow *window); static void thunar_window_action_contents (GtkAction *action, @@ -184,8 +217,6 @@ ThunarWindow *window); static void thunar_window_current_directory_changed (ThunarFile *current_directory, ThunarWindow *window); -static void thunar_window_current_directory_destroy (ThunarFile *current_directory, - ThunarWindow *window); static void thunar_window_connect_proxy (GtkUIManager *manager, GtkAction *action, GtkWidget *proxy, @@ -198,16 +229,26 @@ ThunarWindow *window); static void thunar_window_menu_item_deselected (GtkWidget *menu_item, ThunarWindow *window); +static void thunar_window_update_custom_actions (ThunarView *view, + GParamSpec *pspec, + ThunarWindow *window); static void thunar_window_notify_loading (ThunarView *view, GParamSpec *pspec, ThunarWindow *window); -static void thunar_window_mount_pre_unmount (GVolumeMonitor *volume_monitor, - GMount *mount, +static void thunar_window_device_pre_unmount (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + GFile *root_file, + ThunarWindow *window); +static void thunar_window_device_changed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, ThunarWindow *window); static gboolean thunar_window_merge_idle (gpointer user_data); static void thunar_window_merge_idle_destroy (gpointer user_data); +static gboolean thunar_window_save_paned (ThunarWindow *window); static gboolean thunar_window_save_geometry_timer (gpointer user_data); static void thunar_window_save_geometry_timer_destroy (gpointer user_data); +static void thunar_window_set_zoom_level (ThunarWindow *window, + ThunarZoomLevel zoom_level); @@ -217,11 +258,15 @@ /* internal action signals */ gboolean (*back) (ThunarWindow *window); - gboolean (*reload) (ThunarWindow *window); + gboolean (*reload) (ThunarWindow *window, + gboolean reload_info); gboolean (*toggle_sidepane) (ThunarWindow *window); + gboolean (*toggle_menubar) (ThunarWindow *window); gboolean (*zoom_in) (ThunarWindow *window); gboolean (*zoom_out) (ThunarWindow *window); gboolean (*zoom_reset) (ThunarWindow *window); + gboolean (*tab_change) (ThunarWindow *window, + gint idx); }; struct _ThunarWindow @@ -235,6 +280,13 @@ /* UI manager merge ID for go menu actions */ guint go_items_actions_merge_id; + /* UI manager merge ID for the bookmark actions */ + guint bookmark_items_actions_merge_id; + GtkActionGroup *bookmark_action_group; + GFile *bookmark_file; + GFileMonitor *bookmark_monitor; + guint bookmark_reload_idle_id; + ThunarClipboardManager *clipboard; ThunarPreferences *preferences; @@ -244,26 +296,34 @@ GtkActionGroup *action_group; GtkUIManager *ui_manager; - /* to be able to change folder on "mount-pre-unmount" if required */ - GVolumeMonitor *volume_monitor; + /* to be able to change folder on "device-pre-unmount" if required */ + ThunarDeviceMonitor *device_monitor; /* closures for the menu_item_selected()/menu_item_deselected() callbacks */ GClosure *menu_item_selected_closure; GClosure *menu_item_deselected_closure; + /* custom menu actions for the file menu */ + GtkActionGroup *custom_actions; + guint custom_merge_id; + GtkWidget *table; - GtkWidget *throbber; + GtkWidget *menubar; + GtkWidget *spinner; GtkWidget *paned; GtkWidget *sidepane; GtkWidget *view_box; + GtkWidget *notebook; GtkWidget *view; GtkWidget *statusbar; + GType view_type; + GSList *view_bindings; + /* support for two different styles of location bars */ GtkWidget *location_bar; GtkWidget *location_toolbar; - ThunarHistory *history; ThunarLauncher *launcher; ThunarFile *current_directory; @@ -272,13 +332,10 @@ ThunarZoomLevel zoom_level; /* menu merge idle source */ - gint merge_idle_id; + guint merge_idle_id; /* support to remember window geometry */ - gint save_geometry_timer_id; - - /* scroll_to_file support */ - GHashTable *scroll_to_files; + guint save_geometry_timer_id; /* support to toggle side pane using F9, * see the toggle_sidepane() function. @@ -291,36 +348,34 @@ static GtkActionEntry action_entries[] = { { "file-menu", NULL, N_ ("_File"), NULL, }, - { "open-new-window", NULL, N_ ("Open New _Window"), "N", N_ ("Open a new Thunar window for the displayed location"), G_CALLBACK (thunar_window_action_open_new_window), }, + { "new-tab", "tab-new", N_ ("New _Tab"), "T", N_ ("Open a new tab for the displayed location"), G_CALLBACK (thunar_window_action_open_new_tab), }, + { "new-window", "window-new", N_ ("New _Window"), "N", N_ ("Open a new Thunar window for the displayed location"), G_CALLBACK (thunar_window_action_open_new_window), }, { "sendto-menu", NULL, N_ ("_Send To"), NULL, }, { "empty-trash", NULL, N_ ("_Empty Trash"), NULL, N_ ("Delete all files and folders in the Trash"), G_CALLBACK (thunar_window_action_empty_trash), }, + { "detach-tab", NULL, N_ ("Detac_h Tab"), NULL, N_ ("Open current folder in a new window"), G_CALLBACK (thunar_window_action_detach_tab), }, { "close-all-windows", NULL, N_ ("Close _All Windows"), "W", N_ ("Close all Thunar windows"), G_CALLBACK (thunar_window_action_close_all_windows), }, - { "close", GTK_STOCK_CLOSE, N_ ("_Close"), "W", N_ ("Close this window"), G_CALLBACK (thunar_window_action_close), }, + { "close-tab", "window-close", N_ ("C_lose Tab"), "W", N_ ("Close this folder"), G_CALLBACK (thunar_window_action_close_tab), }, + { "close-window", "application-exit", N_ ("_Close Window"), "Q", N_ ("Close this window"), G_CALLBACK (thunar_window_action_close_window), }, { "edit-menu", NULL, N_ ("_Edit"), NULL, }, - { "preferences", GTK_STOCK_PREFERENCES, N_ ("Pr_eferences..."), NULL, N_ ("Edit Thunars Preferences"), G_CALLBACK (thunar_window_action_preferences), }, + { "preferences", "preferences-system", N_ ("Pr_eferences..."), NULL, N_ ("Edit Thunars Preferences"), G_CALLBACK (thunar_window_action_preferences), }, { "view-menu", NULL, N_ ("_View"), NULL, }, - { "reload", GTK_STOCK_REFRESH, N_ ("_Reload"), "R", N_ ("Reload the current folder"), G_CALLBACK (thunar_window_action_reload), }, + { "reload", "view-refresh", N_ ("_Reload"), "R", N_ ("Reload the current folder"), G_CALLBACK (thunar_window_action_reload), }, { "view-location-selector-menu", NULL, N_ ("_Location Selector"), NULL, }, { "view-side-pane-menu", NULL, N_ ("_Side Pane"), NULL, }, - { "zoom-in", GTK_STOCK_ZOOM_IN, N_ ("Zoom I_n"), "plus", N_ ("Show the contents in more detail"), G_CALLBACK (thunar_window_action_zoom_in), }, - { "zoom-out", GTK_STOCK_ZOOM_OUT, N_ ("Zoom _Out"), "minus", N_ ("Show the contents in less detail"), G_CALLBACK (thunar_window_action_zoom_out), }, - { "zoom-reset", GTK_STOCK_ZOOM_100, N_ ("Normal Si_ze"), "0", N_ ("Show the contents at the normal size"), G_CALLBACK (thunar_window_action_zoom_reset), }, + { "zoom-in", "zoom-in", N_ ("Zoom I_n"), "plus", N_ ("Show the contents in more detail"), G_CALLBACK (thunar_window_action_zoom_in), }, + { "zoom-out", "zoom-out", N_ ("Zoom _Out"), "minus", N_ ("Show the contents in less detail"), G_CALLBACK (thunar_window_action_zoom_out), }, + { "zoom-reset", "zoom-original", N_ ("Normal Si_ze"), "0", N_ ("Show the contents at the normal size"), G_CALLBACK (thunar_window_action_zoom_reset), }, { "go-menu", NULL, N_ ("_Go"), NULL, }, - { "open-parent", GTK_STOCK_GO_UP, N_ ("Open _Parent"), "Up", N_ ("Open the parent folder"), G_CALLBACK (thunar_window_action_go_up), }, - { "open-home", THUNAR_STOCK_HOME, N_ ("_Home"), "Home", N_ ("Go to the home folder"), G_CALLBACK (thunar_window_action_open_home), }, - { "open-desktop", THUNAR_STOCK_DESKTOP, "Desktop", NULL, N_ ("Go to the desktop folder"), G_CALLBACK (thunar_window_action_open_desktop), }, - { "open-file-system", GTK_STOCK_HARDDISK, N_ ("File System"), NULL, N_ ("Browse the file system"), G_CALLBACK (thunar_window_action_open_file_system), }, - { "open-documents", THUNAR_STOCK_DOCUMENTS, "Documents", NULL, N_ ("Go to the documents folder"), G_CALLBACK (thunar_window_action_open_documents), }, - { "open-downloads", THUNAR_STOCK_DOWNLOADS, "Download", NULL, N_ ("Go to the downloads folder"), G_CALLBACK (thunar_window_action_open_downloads), }, - { "open-music", THUNAR_STOCK_MUSIC, "Music", NULL, N_ ("Go to the music folder"), G_CALLBACK (thunar_window_action_open_music), }, - { "open-pictures", THUNAR_STOCK_PICTURES, "Pictures", NULL, N_ ("Go to the pictures folder"), G_CALLBACK (thunar_window_action_open_pictures), }, - { "open-videos", THUNAR_STOCK_VIDEOS, "Videos", NULL, N_ ("Go to the videos folder"), G_CALLBACK (thunar_window_action_open_videos), }, - { "open-public", THUNAR_STOCK_PUBLIC, "Public", NULL, N_ ("Go to the public folder"), G_CALLBACK (thunar_window_action_open_public), }, + { "open-parent", "go-up", N_ ("Open _Parent"), "Up", N_ ("Open the parent folder"), G_CALLBACK (thunar_window_action_go_up), }, + { "open-home", "go-home", N_ ("_Home"), "Home", N_ ("Go to the home folder"), G_CALLBACK (thunar_window_action_open_home), }, + { "open-desktop", THUNAR_STOCK_DESKTOP, N_ ("Desktop"), NULL, N_ ("Go to the desktop folder"), G_CALLBACK (thunar_window_action_open_desktop), }, + { "open-file-system", "drive-harddisk", N_ ("File System"), NULL, N_ ("Browse the file system"), G_CALLBACK (thunar_window_action_open_file_system), }, + { "open-network", "network-workgroup", N_("B_rowse Network"), NULL, N_ ("Browse local network connections"), G_CALLBACK (thunar_window_action_open_network), }, { "open-templates", THUNAR_STOCK_TEMPLATES, N_("T_emplates"), NULL, N_ ("Go to the templates folder"), G_CALLBACK (thunar_window_action_open_templates), }, { "open-location", NULL, N_ ("_Open Location..."), "L", N_ ("Specify a location to open"), G_CALLBACK (thunar_window_action_open_location), }, { "help-menu", NULL, N_ ("_Help"), NULL, }, - { "contents", GTK_STOCK_HELP, N_ ("_Contents"), "F1", N_ ("Display Thunar user manual"), G_CALLBACK (thunar_window_action_contents), }, - { "about", GTK_STOCK_ABOUT, N_ ("_About"), NULL, N_ ("Display information about Thunar"), G_CALLBACK (thunar_window_action_about), }, + { "contents", "help-browser", N_ ("_Contents"), "F1", N_ ("Display Thunar user manual"), G_CALLBACK (thunar_window_action_contents), }, + { "about", "help-about", N_ ("_About"), NULL, N_ ("Display information about Thunar"), G_CALLBACK (thunar_window_action_about), }, }; static const GtkToggleActionEntry toggle_action_entries[] = @@ -329,8 +384,9 @@ { "view-location-selector-pathbar", NULL, N_ ("_Pathbar Style"), NULL, N_ ("Modern approach with buttons that correspond to folders"), G_CALLBACK (thunar_window_action_pathbar_changed), FALSE, }, { "view-location-selector-toolbar", NULL, N_ ("_Toolbar Style"), NULL, N_ ("Traditional approach with location bar and navigation buttons"), G_CALLBACK (thunar_window_action_toolbar_changed), FALSE, }, { "view-side-pane-shortcuts", NULL, N_ ("_Shortcuts"), "B", N_ ("Toggles the visibility of the shortcuts pane"), G_CALLBACK (thunar_window_action_shortcuts_changed), FALSE, }, - { "view-side-pane-tree", NULL, N_ ("_Tree"), "T", N_ ("Toggles the visibility of the tree pane"), G_CALLBACK (thunar_window_action_tree_changed), FALSE, }, + { "view-side-pane-tree", NULL, N_ ("_Tree"), "E", N_ ("Toggles the visibility of the tree pane"), G_CALLBACK (thunar_window_action_tree_changed), FALSE, }, { "view-statusbar", NULL, N_ ("St_atusbar"), NULL, N_ ("Change the visibility of this window's statusbar"), G_CALLBACK (thunar_window_action_statusbar_changed), FALSE, }, + { "view-menubar", NULL, N_ ("_Menubar"), "M", N_ ("Change the visibility of this window's menubar"), G_CALLBACK (thunar_window_action_menubar_changed), TRUE, }, }; @@ -350,6 +406,7 @@ GtkWidgetClass *gtkwidget_class; GtkBindingSet *binding_set; GObjectClass *gobject_class; + guint i; gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = thunar_window_dispose; @@ -365,9 +422,11 @@ klass->back = thunar_window_back; klass->reload = thunar_window_reload; klass->toggle_sidepane = thunar_window_toggle_sidepane; + klass->toggle_menubar = thunar_window_toggle_menubar; klass->zoom_in = thunar_window_zoom_in; klass->zoom_out = thunar_window_zoom_out; klass->zoom_reset = thunar_window_zoom_reset; + klass->tab_change = thunar_window_tab_change; /** * ThunarWindow:current-directory: @@ -457,11 +516,12 @@ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (ThunarWindowClass, reload), g_signal_accumulator_true_handled, NULL, - _thunar_marshal_BOOLEAN__VOID, - G_TYPE_BOOLEAN, 0); + _thunar_marshal_BOOLEAN__BOOLEAN, + G_TYPE_BOOLEAN, 1, + G_TYPE_BOOLEAN); /** - * ThunarWindow::reload: + * ThunarWindow::toggle-sidepane: * @window : a #ThunarWindow instance. * * Emitted whenever the user toggles the visibility of the @@ -478,6 +538,23 @@ G_TYPE_BOOLEAN, 0); /** + * ThunarWindow::toggle-menubar: + * @window : a #ThunarWindow instance. + * + * Emitted whenever the user toggles the visibility of the + * menubar. This is an internal signal used to bind the + * action to keys. + **/ + window_signals[TOGGLE_MENUBAR] = + g_signal_new (I_("toggle-menubar"), + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (ThunarWindowClass, toggle_menubar), + g_signal_accumulator_true_handled, NULL, + _thunar_marshal_BOOLEAN__VOID, + G_TYPE_BOOLEAN, 0); + + /** * ThunarWindow::zoom-in: * @window : a #ThunarWindow instance. * @@ -525,15 +602,41 @@ _thunar_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); + /** + * ThunarWindow::tab-change: + * @window : a #ThunarWindow instance. + * @idx : tab index, + * + * Emitted whenever the user uses a Alt+N combination to + * switch tabs. + **/ + window_signals[TAB_CHANGE] = + g_signal_new (I_("tab-change"), + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (ThunarWindowClass, tab_change), + g_signal_accumulator_true_handled, NULL, + _thunar_marshal_BOOLEAN__INT, + G_TYPE_BOOLEAN, 1, + G_TYPE_INT); + /* setup the key bindings for the windows */ binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_BackSpace, 0, "back", 0); - gtk_binding_entry_add_signal (binding_set, GDK_F5, 0, "reload", 0); + gtk_binding_entry_add_signal (binding_set, GDK_F5, 0, "reload", 1, G_TYPE_BOOLEAN, TRUE); gtk_binding_entry_add_signal (binding_set, GDK_F9, 0, "toggle-sidepane", 0); + gtk_binding_entry_add_signal (binding_set, GDK_F10, 0, "toggle-menubar", 0); gtk_binding_entry_add_signal (binding_set, GDK_KP_Add, GDK_CONTROL_MASK, "zoom-in", 0); gtk_binding_entry_add_signal (binding_set, GDK_KP_Subtract, GDK_CONTROL_MASK, "zoom-out", 0); gtk_binding_entry_add_signal (binding_set, GDK_KP_0, GDK_CONTROL_MASK, "zoom-reset", 0); gtk_binding_entry_add_signal (binding_set, GDK_KP_Insert, GDK_CONTROL_MASK, "zoom-reset", 0); + + /* setup the key bindings for Alt+N */ + for (i = 0; i < 10; i++) + { + gtk_binding_entry_add_signal (binding_set, GDK_0 + i, GDK_MOD1_MASK, + "tab-change", 1, G_TYPE_UINT, i - 1); + } } @@ -586,78 +689,6 @@ } } -/* this function hides all the user directory menu entries in case of - * glib <= 2.12. Otherwise it hide the menu entries only for the directories - * that point to $HOME or to NULL. Then, it translates the labels. */ -static void -thunar_window_setup_user_dir_menu_entries (ThunarWindow *window) -{ - static const gchar *callback_names[] = { - "open-desktop", - "open-documents", - "open-downloads", - "open-music", - "open-pictures", - "open-public", - "open-templates", - "open-videos", - NULL - }; - GtkAction *action; - GFile *home_dir; - GFile *dir; - gchar *locale; - gchar *old_locale; - const gchar *path; - gchar *translation; - gint i; - - bindtextdomain (XDG_USER_DIRS_PACKAGE, PACKAGE_LOCALE_DIR); -#ifdef HAVE_BIND_TEXTDOMAIN_CODESET - bind_textdomain_codeset (XDG_USER_DIRS_PACKAGE, "UTF-8"); -#endif /* HAVE_BIND_TEXTDOMAIN_CODESET */ - - /* save the old locale */ - old_locale = g_strdup(setlocale (LC_MESSAGES, NULL)); - - /* set the new locale */ - locale = _thunar_get_xdg_user_dirs_locale (); - setlocale (LC_MESSAGES, locale); - g_free (locale); - - home_dir = thunar_g_file_new_for_home (); - - for (i = 0; i < G_USER_N_DIRECTORIES; i++) - { - action = gtk_action_group_get_action (window->action_group, callback_names[i]); - path = g_get_user_special_dir (i); - - /* special case: got NULL for the templates dir. Force it to ~/Templates */ - if (G_UNLIKELY (path == NULL && i == G_USER_DIRECTORY_TEMPLATES)) - dir = g_file_resolve_relative_path (home_dir, _thunar_user_directory_names[i]); - else if (path != NULL) - dir = g_file_new_for_path (path); - else - continue; - - /* xdg user dirs pointing to $HOME must be considered disabled */ - if (G_LIKELY (path != NULL && !g_file_equal (dir, home_dir))) - { - /* menu entry label translation */ - translation = dgettext (XDG_USER_DIRS_PACKAGE, (gchar *) _thunar_user_directory_names[i]); - g_object_set (action, "label", translation, NULL); - } - else - gtk_action_set_visible (GTK_ACTION (action), FALSE); - - g_object_unref (dir); - } - - g_object_unref (home_dir); - - setlocale (LC_MESSAGES, old_locale); - g_free (old_locale); -} static void @@ -665,21 +696,25 @@ { GtkRadioAction *radio_action; GtkAccelGroup *accel_group; - GtkWidget *separator; - GtkWidget *menubar; GtkWidget *label; - GtkWidget *ebox; + GtkWidget *infobar; GtkWidget *item; GtkAction *action; - gboolean show_hidden; - gboolean visible; + gboolean last_show_hidden; + gboolean last_menubar_visible; GSList *group; - gchar *type_name; + gchar *last_location_bar; + gchar *last_side_pane; GType type; - gint position; - gint width; - gint height; - gboolean maximized; + gint last_separator_position; + gint last_window_width; + gint last_window_height; + gboolean last_window_maximized; + gboolean last_statusbar_visible; + GtkRcStyle *style; + + /* unset the view type */ + window->view_type = G_TYPE_NONE; /* grab a reference on the provider factory */ window->provider_factory = thunarx_provider_factory_get_default (); @@ -687,12 +722,24 @@ /* grab a reference on the preferences */ window->preferences = thunar_preferences_get (); - /* allocate the scroll_to_files mapping */ - window->scroll_to_files = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, g_object_unref); + /* get all properties for init */ + g_object_get (G_OBJECT (window->preferences), + "last-show-hidden", &last_show_hidden, + "last-window-width", &last_window_width, + "last-window-height", &last_window_height, + "last-window-maximized", &last_window_maximized, + "last-menubar-visible", &last_menubar_visible, + "last-separator-position", &last_separator_position, + "last-location-bar", &last_location_bar, + "last-side-pane", &last_side_pane, + "last-statusbar-visible", &last_statusbar_visible, + NULL); /* connect to the volume monitor */ - window->volume_monitor = g_volume_monitor_get (); - g_signal_connect (window->volume_monitor, "mount-pre-unmount", G_CALLBACK (thunar_window_mount_pre_unmount), window); + window->device_monitor = thunar_device_monitor_get (); + g_signal_connect (window->device_monitor, "device-pre-unmount", G_CALLBACK (thunar_window_device_pre_unmount), window); + g_signal_connect (window->device_monitor, "device-removed", G_CALLBACK (thunar_window_device_changed), window); + g_signal_connect (window->device_monitor, "device-changed", G_CALLBACK (thunar_window_device_changed), window); /* allocate a closure for the menu_item_selected() callback */ window->menu_item_selected_closure = g_cclosure_new_object (G_CALLBACK (thunar_window_menu_item_selected), G_OBJECT (window)); @@ -703,7 +750,6 @@ window->menu_item_deselected_closure = g_cclosure_new_object (G_CALLBACK (thunar_window_menu_item_deselected), G_OBJECT (window)); g_closure_ref (window->menu_item_deselected_closure); g_closure_sink (window->menu_item_deselected_closure); - window->icon_factory = thunar_icon_factory_get_default (); /* setup the action group for this window */ @@ -714,19 +760,7 @@ /* initialize the "show-hidden" action using the last value from the preferences */ action = gtk_action_group_get_action (window->action_group, "show-hidden"); - g_object_get (G_OBJECT (window->preferences), "last-show-hidden", &show_hidden, NULL); - gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), show_hidden); - - /* synchronize the "show-hidden" state with the "last-show-hidden" preference */ - exo_binding_new (G_OBJECT (window), "show-hidden", G_OBJECT (window->preferences), "last-show-hidden"); - - /* setup the history support */ - window->history = g_object_new (THUNAR_TYPE_HISTORY, "action-group", window->action_group, NULL); - g_signal_connect_swapped (G_OBJECT (window->history), "change-directory", G_CALLBACK (thunar_window_set_current_directory), window); - exo_binding_new (G_OBJECT (window), "current-directory", G_OBJECT (window->history), "current-directory"); - - /* rename the user dir menu entries and hide the unexisting ones */ - thunar_window_setup_user_dir_menu_entries (window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), last_show_hidden); /* * add view options @@ -767,85 +801,99 @@ thunar_component_set_ui_manager (THUNAR_COMPONENT (window->launcher), window->ui_manager); exo_binding_new (G_OBJECT (window), "current-directory", G_OBJECT (window->launcher), "current-directory"); g_signal_connect_swapped (G_OBJECT (window->launcher), "change-directory", G_CALLBACK (thunar_window_set_current_directory), window); + g_signal_connect_swapped (G_OBJECT (window->launcher), "open-new-tab", G_CALLBACK (thunar_window_notebook_insert), window); /* determine the default window size from the preferences */ - g_object_get (G_OBJECT (window->preferences), "last-window-width", &width, "last-window-height", &height, "last-window-maximized", &maximized, NULL); - gtk_window_set_default_size (GTK_WINDOW (window), width, height); - + gtk_window_set_default_size (GTK_WINDOW (window), last_window_width, last_window_height); + /* restore the maxized state of the window */ - if (G_UNLIKELY (maximized)) + if (G_UNLIKELY (last_window_maximized)) gtk_window_maximize (GTK_WINDOW (window)); window->table = gtk_table_new (6, 1, FALSE); gtk_container_add (GTK_CONTAINER (window), window->table); gtk_widget_show (window->table); - menubar = gtk_ui_manager_get_widget (window->ui_manager, "/main-menu"); - gtk_table_attach (GTK_TABLE (window->table), menubar, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show (menubar); + window->menubar = gtk_ui_manager_get_widget (window->ui_manager, "/main-menu"); + gtk_table_attach (GTK_TABLE (window->table), window->menubar, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - /* append the menu item for the throbber */ + /* update menubar visibiliy */ + action = gtk_action_group_get_action (window->action_group, "view-menubar"); + g_signal_connect (G_OBJECT (window->menubar), "deactivate", G_CALLBACK (thunar_window_toggle_menubar_deactivate), window); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), last_menubar_visible); + + /* append the menu item for the spinner */ item = gtk_menu_item_new (); gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); gtk_menu_item_set_right_justified (GTK_MENU_ITEM (item), TRUE); - gtk_menu_shell_append (GTK_MENU_SHELL (menubar), item); + gtk_menu_shell_append (GTK_MENU_SHELL (window->menubar), item); gtk_widget_show (item); - /* place the throbber into the menu item */ - window->throbber = thunar_throbber_new (); - gtk_container_add (GTK_CONTAINER (item), window->throbber); - gtk_widget_show (window->throbber); + /* place the spinner into the menu item */ + window->spinner = gtk_spinner_new (); + gtk_container_add (GTK_CONTAINER (item), window->spinner); + exo_binding_new (G_OBJECT (window->spinner), "active", + G_OBJECT (window->spinner), "visible"); /* check if we need to add the root warning */ if (G_UNLIKELY (geteuid () == 0)) { - /* install default settings for the root warning text box */ - gtk_rc_parse_string ("style\"thunar-window-root-style\"{bg[NORMAL]=\"#b4254b\"\nfg[NORMAL]=\"#fefefe\"}\n" - "widget\"ThunarWindow.*.root-warning\"style\"thunar-window-root-style\"\n" - "widget\"ThunarWindow.*.root-warning.GtkLabel\"style\"thunar-window-root-style\"\n"); - - /* add the box for the root warning */ - ebox = gtk_event_box_new (); - gtk_widget_set_name (ebox, "root-warning"); - gtk_table_attach (GTK_TABLE (window->table), ebox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show (ebox); + /* add the bar for the root warning */ + infobar = gtk_info_bar_new (); + gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_WARNING); + gtk_table_attach (GTK_TABLE (window->table), infobar, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (infobar); /* add the label with the root warning */ label = gtk_label_new (_("Warning, you are using the root account, you may harm your system.")); - gtk_misc_set_padding (GTK_MISC (label), 6, 3); - gtk_container_add (GTK_CONTAINER (ebox), label); + gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (infobar))), label); gtk_widget_show (label); - - separator = gtk_hseparator_new (); - gtk_table_attach (GTK_TABLE (window->table), separator, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show (separator); } window->paned = gtk_hpaned_new (); - gtk_container_set_border_width (GTK_CONTAINER (window->paned), 6); + gtk_container_set_border_width (GTK_CONTAINER (window->paned), 0); gtk_table_attach (GTK_TABLE (window->table), window->paned, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_widget_show (window->paned); /* determine the last separator position and apply it to the paned view */ - g_object_get (G_OBJECT (window->preferences), "last-separator-position", &position, NULL); - gtk_paned_set_position (GTK_PANED (window->paned), position); + gtk_paned_set_position (GTK_PANED (window->paned), last_separator_position); + g_signal_connect_swapped (window->paned, "accept-position", G_CALLBACK (thunar_window_save_paned), window); + g_signal_connect_swapped (window->paned, "button-release-event", G_CALLBACK (thunar_window_save_paned), window); - /* always remember the last separator position for newly opened windows */ - exo_binding_new (G_OBJECT (window->paned), "position", G_OBJECT (window->preferences), "last-separator-position"); - - window->view_box = gtk_vbox_new (FALSE, 6); + window->view_box = gtk_table_new (3, 1, FALSE); gtk_paned_pack2 (GTK_PANED (window->paned), window->view_box, TRUE, FALSE); gtk_widget_show (window->view_box); - /* determine the selected locatin selector */ - g_object_get (G_OBJECT (window->preferences), "last-location-bar", &type_name, NULL); - if (exo_str_is_equal (type_name, g_type_name (THUNAR_TYPE_LOCATION_BUTTONS))) + /* tabs */ + window->notebook = gtk_notebook_new (); + gtk_table_attach (GTK_TABLE (window->view_box), window->notebook, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + g_signal_connect (G_OBJECT (window->notebook), "switch-page", G_CALLBACK (thunar_window_notebook_switch_page), window); + g_signal_connect (G_OBJECT (window->notebook), "page-added", G_CALLBACK (thunar_window_notebook_page_added), window); + g_signal_connect (G_OBJECT (window->notebook), "page-removed", G_CALLBACK (thunar_window_notebook_page_removed), window); + g_signal_connect_after (G_OBJECT (window->notebook), "button-press-event", G_CALLBACK (thunar_window_notebook_button_press_event), window); + g_signal_connect (G_OBJECT (window->notebook), "popup-menu", G_CALLBACK (thunar_window_notebook_popup_menu), window); + g_signal_connect (G_OBJECT (window->notebook), "create-window", G_CALLBACK (thunar_window_notebook_create_window), window); + gtk_notebook_set_show_border (GTK_NOTEBOOK (window->notebook), FALSE); + gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook), TRUE); + gtk_notebook_set_scrollable (GTK_NOTEBOOK (window->notebook), TRUE); + gtk_container_set_border_width (GTK_CONTAINER (window->notebook), 0); + gtk_notebook_set_group_name (GTK_NOTEBOOK (window->notebook), "thunar-tabs"); + gtk_widget_show (window->notebook); + + /* drop the notebook borders */ + style = gtk_rc_style_new (); + style->xthickness = style->ythickness = 0; + gtk_widget_modify_style (window->notebook, style); + g_object_unref (G_OBJECT (style)); + + /* determine the selected location selector */ + if (exo_str_is_equal (last_location_bar, g_type_name (THUNAR_TYPE_LOCATION_BUTTONS))) type = THUNAR_TYPE_LOCATION_BUTTONS; - else if (exo_str_is_equal (type_name, g_type_name (THUNAR_TYPE_LOCATION_ENTRY))) + else if (exo_str_is_equal (last_location_bar, g_type_name (THUNAR_TYPE_LOCATION_ENTRY))) type = THUNAR_TYPE_LOCATION_ENTRY; else type = G_TYPE_NONE; - g_free (type_name); + g_free (last_location_bar); /* activate the selected location selector */ action = gtk_action_group_get_action (window->action_group, "view-location-selector-pathbar"); @@ -854,14 +902,13 @@ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), (type == THUNAR_TYPE_LOCATION_ENTRY)); /* determine the selected side pane (FIXME: Should probably be last-shortcuts-visible and last-tree-visible preferences) */ - g_object_get (G_OBJECT (window->preferences), "last-side-pane", &type_name, NULL); - if (exo_str_is_equal (type_name, g_type_name (THUNAR_TYPE_SHORTCUTS_PANE))) + if (exo_str_is_equal (last_side_pane, g_type_name (THUNAR_TYPE_SHORTCUTS_PANE))) type = THUNAR_TYPE_SHORTCUTS_PANE; - else if (exo_str_is_equal (type_name, g_type_name (THUNAR_TYPE_TREE_PANE))) + else if (exo_str_is_equal (last_side_pane, g_type_name (THUNAR_TYPE_TREE_PANE))) type = THUNAR_TYPE_TREE_PANE; else type = G_TYPE_NONE; - g_free (type_name); + g_free (last_side_pane); /* activate the selected side pane */ action = gtk_action_group_get_action (window->action_group, "view-side-pane-shortcuts"); @@ -869,29 +916,13 @@ action = gtk_action_group_get_action (window->action_group, "view-side-pane-tree"); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), (type == THUNAR_TYPE_TREE_PANE)); - /* determine the default view */ - g_object_get (G_OBJECT (window->preferences), "default-view", &type_name, NULL); - type = g_type_from_name (type_name); - g_free (type_name); - /* check if we should display the statusbar by default */ - g_object_get (G_OBJECT (window->preferences), "last-statusbar-visible", &visible, NULL); action = gtk_action_group_get_action (window->action_group, "view-statusbar"); - gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible); - - /* determine the last selected view if we don't have a valid default */ - if (!g_type_is_a (type, THUNAR_TYPE_VIEW)) - { - g_object_get (G_OBJECT (window->preferences), "last-view", &type_name, NULL); - type = g_type_from_name (type_name); - g_free (type_name); - } + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), last_statusbar_visible); - /* activate the selected view */ + /* connect signal */ action = gtk_action_group_get_action (window->action_group, "view-as-icons"); - gtk_radio_action_set_current_value (GTK_RADIO_ACTION (action), view_type2index (g_type_is_a (type, THUNAR_TYPE_VIEW) ? type : THUNAR_TYPE_ICON_VIEW)); g_signal_connect (G_OBJECT (action), "changed", G_CALLBACK (thunar_window_action_view_changed), window); - thunar_window_action_view_changed (GTK_RADIO_ACTION (action), GTK_RADIO_ACTION (action), window); /* schedule asynchronous menu action merging */ window->merge_idle_id = g_idle_add_full (G_PRIORITY_LOW + 20, thunar_window_merge_idle, window, thunar_window_merge_idle_destroy); @@ -905,11 +936,11 @@ ThunarWindow *window = THUNAR_WINDOW (object); /* destroy the save geometry timer source */ - if (G_UNLIKELY (window->save_geometry_timer_id > 0)) + if (G_UNLIKELY (window->save_geometry_timer_id != 0)) g_source_remove (window->save_geometry_timer_id); /* destroy the merge idle source */ - if (G_UNLIKELY (window->merge_idle_id > 0)) + if (G_UNLIKELY (window->merge_idle_id != 0)) g_source_remove (window->merge_idle_id); /* un-merge the custom preferences */ @@ -926,6 +957,19 @@ window->go_items_actions_merge_id = 0; } + /* un-merge the bookmark actions */ + if (G_LIKELY (window->bookmark_items_actions_merge_id != 0)) + { + gtk_ui_manager_remove_ui (window->ui_manager, window->bookmark_items_actions_merge_id); + window->bookmark_items_actions_merge_id = 0; + } + + if (window->bookmark_reload_idle_id != 0) + { + g_source_remove (window->bookmark_reload_idle_id); + window->bookmark_reload_idle_id = 0; + } + /* disconnect from the current-directory */ thunar_window_set_current_directory (window, NULL); @@ -944,17 +988,32 @@ g_closure_unref (window->menu_item_selected_closure); /* disconnect from the volume monitor */ - g_signal_handlers_disconnect_matched (window->volume_monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, window); - g_object_unref (window->volume_monitor); + g_signal_handlers_disconnect_matched (window->device_monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, window); + g_object_unref (window->device_monitor); /* disconnect from the ui manager */ g_signal_handlers_disconnect_matched (window->ui_manager, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, window); g_object_unref (window->ui_manager); + /* release the custom actions */ + if (window->custom_actions != NULL) + g_object_unref (window->custom_actions); + g_object_unref (window->action_group); g_object_unref (window->icon_factory); g_object_unref (window->launcher); - g_object_unref (window->history); + + if (window->bookmark_action_group != NULL) + g_object_unref (window->bookmark_action_group); + + if (window->bookmark_file != NULL) + g_object_unref (window->bookmark_file); + + if (window->bookmark_monitor != NULL) + { + g_file_monitor_cancel (window->bookmark_monitor); + g_object_unref (window->bookmark_monitor); + } /* release our reference on the provider factory */ g_object_unref (window->provider_factory); @@ -962,9 +1021,6 @@ /* release the preferences reference */ g_object_unref (window->preferences); - /* release the scroll_to_files hash table */ - g_hash_table_destroy (window->scroll_to_files); - (*G_OBJECT_CLASS (thunar_window_parent_class)->finalize) (object); } @@ -1035,10 +1091,34 @@ static gboolean thunar_window_back (ThunarWindow *window) { - GtkAction *action; + GtkAction *action; + GdkEvent *event; + const gchar *accel_path; + GtkAccelKey key; _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); + /* check source event */ + event = gtk_get_current_event (); + if (event != NULL + && event->type == GDK_KEY_PRESS) + { + action = thunar_gtk_ui_manager_get_action_by_name (window->ui_manager, "open-parent"); + if (G_LIKELY (action != NULL)) + { + /* check if the current event (back) is different then the open-parent + * accelerator. this way a user can override the default backspace action + * of back in open-parent, without backspace resulting in a back action + * if open-parent is insensitive in the menu */ + accel_path = gtk_action_get_accel_path (action); + if (accel_path != NULL + && gtk_accel_map_lookup_entry (accel_path, &key) + && key.accel_key == ((GdkEventKey *) event)->keyval + && key.accel_mods == 0) + return FALSE; + } + } + /* activate the "back" action */ action = thunar_gtk_ui_manager_get_action_by_name (window->ui_manager, "back"); if (G_LIKELY (action != NULL)) @@ -1053,14 +1133,15 @@ static gboolean -thunar_window_reload (ThunarWindow *window) +thunar_window_reload (ThunarWindow *window, + gboolean reload_info) { _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); /* force the view to reload */ if (G_LIKELY (window->view != NULL)) { - thunar_view_reload (THUNAR_VIEW (window->view)); + thunar_view_reload (THUNAR_VIEW (window->view), reload_info); return TRUE; } @@ -1116,6 +1197,40 @@ static gboolean +thunar_window_toggle_menubar (ThunarWindow *window) +{ + _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); + + if (!gtk_widget_get_visible (window->menubar)) + { + /* temporarily show menu bar */ + gtk_widget_show (window->menubar); + return TRUE; + } + + return FALSE; +} + + + +static void +thunar_window_toggle_menubar_deactivate (GtkWidget *menubar, + ThunarWindow *window) +{ + GtkAction *action; + + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + _thunar_return_if_fail (window->menubar == menubar); + + /* this was a temporarily show, hide the bar */ + action = gtk_action_group_get_action (window->action_group, "view-menubar"); + if (!gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) + gtk_widget_hide (menubar); +} + + + +static gboolean thunar_window_zoom_in (ThunarWindow *window) { _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); @@ -1166,6 +1281,21 @@ +static gboolean +thunar_window_tab_change (ThunarWindow *window, + gint nth) +{ + _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); + + /* Alt+0 is 10th tab */ + gtk_notebook_set_current_page (GTK_NOTEBOOK (window->notebook), + nth == -1 ? 9 : nth); + + return TRUE; +} + + + static void thunar_window_realize (GtkWidget *widget) { @@ -1209,15 +1339,15 @@ if (widget->allocation.width != event->width || widget->allocation.height != event->height) { /* drop any previous timer source */ - if (window->save_geometry_timer_id > 0) + if (window->save_geometry_timer_id != 0) g_source_remove (window->save_geometry_timer_id); /* check if we should schedule another save timer */ - if (GTK_WIDGET_VISIBLE (widget)) + if (gtk_widget_get_visible (widget)) { /* save the geometry one second after the last configure event */ - window->save_geometry_timer_id = g_timeout_add_full (G_PRIORITY_LOW, 1000, thunar_window_save_geometry_timer, - window, thunar_window_save_geometry_timer_destroy); + window->save_geometry_timer_id = g_timeout_add_seconds_full (G_PRIORITY_LOW, 1, thunar_window_save_geometry_timer, + window, thunar_window_save_geometry_timer_destroy); } } @@ -1228,135 +1358,618 @@ static void -thunar_window_install_location_bar (ThunarWindow *window, - GType type) +thunar_window_binding_destroyed (gpointer data, + GObject *binding) { - GtkToolItem *item; + ThunarWindow *window = THUNAR_WINDOW (data); + + if (window->view_bindings != NULL) + window->view_bindings = g_slist_remove (window->view_bindings, binding); +} + + + +static void +thunar_window_binding_create (ThunarWindow *window, + gpointer src_object, + const gchar *src_prop, + gpointer dst_object, + const gchar *dst_prop, + GBindingFlags flags) +{ + GBinding *binding; + + _thunar_return_if_fail (G_IS_OBJECT (src_object)); + _thunar_return_if_fail (G_IS_OBJECT (dst_object)); + + binding = g_object_bind_property (G_OBJECT (src_object), src_prop, + G_OBJECT (dst_object), dst_prop, + flags); + + g_object_weak_ref (G_OBJECT (binding), thunar_window_binding_destroyed, window); + window->view_bindings = g_slist_prepend (window->view_bindings, binding); +} + + + +static void +thunar_window_notebook_switch_page (GtkWidget *notebook, + GtkWidget *page, + guint page_num, + ThunarWindow *window) +{ + GtkAction *action; + GSList *view_bindings; + ThunarFile *current_directory; - _thunar_return_if_fail (type == G_TYPE_NONE || g_type_is_a (type, THUNAR_TYPE_LOCATION_BAR)); _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + _thunar_return_if_fail (GTK_IS_NOTEBOOK (notebook)); + _thunar_return_if_fail (THUNAR_IS_VIEW (page)); + _thunar_return_if_fail (window->notebook == notebook); - /* drop the previous location bar (if any) */ - if (G_UNLIKELY (window->location_bar != NULL)) + /* leave if nothing changed */ + if (window->view == page) + return; + + if (G_LIKELY (window->view != NULL)) { - /* check if it was toolbar'ed (and thereby need to be disconnected from the toolbar) */ - if (!thunar_location_bar_is_standalone (THUNAR_LOCATION_BAR (window->location_bar))) - { - /* disconnect the toolbar from the window */ - gtk_container_remove (GTK_CONTAINER (window->table), window->location_toolbar); - window->location_toolbar = NULL; - } + /* unregisters the actions from the ui */ + thunar_component_set_ui_manager (THUNAR_COMPONENT (window->view), NULL); - /* destroy the location bar */ - gtk_widget_destroy (window->location_bar); - window->location_bar = NULL; + /* unset view during switch */ + window->view = NULL; } - /* check if we have a new location bar */ - if (G_LIKELY (type != G_TYPE_NONE)) - { - /* allocate the new location bar widget */ - window->location_bar = g_object_new (type, "ui-manager", window->ui_manager, NULL); - exo_binding_new (G_OBJECT (window), "current-directory", G_OBJECT (window->location_bar), "current-directory"); - g_signal_connect_swapped (G_OBJECT (window->location_bar), "change-directory", G_CALLBACK (thunar_window_set_current_directory), window); + /* disconnect existing bindings */ + view_bindings = window->view_bindings; + window->view_bindings = NULL; + g_slist_free_full (view_bindings, g_object_unref); + + /* update the directory of the current window */ + current_directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (page)); + thunar_window_set_current_directory (window, current_directory); - /* connect the location widget to the view (if any) */ - if (G_LIKELY (window->view != NULL)) - exo_binding_new (G_OBJECT (window->view), "selected-files", G_OBJECT (window->location_bar), "selected-files"); + /* activate the selected view */ + action = gtk_action_group_get_action (window->action_group, "view-as-icons"); + g_signal_handlers_block_by_func (action, thunar_window_action_view_changed, window); + gtk_radio_action_set_current_value (GTK_RADIO_ACTION (action), view_type2index (G_OBJECT_TYPE (page))); + g_signal_handlers_unblock_by_func (action, thunar_window_action_view_changed, window); + + /* add stock bindings */ + thunar_window_binding_create (window, window, "current-directory", page, "current-directory", G_BINDING_DEFAULT); + thunar_window_binding_create (window, window, "show-hidden", page, "show-hidden", G_BINDING_SYNC_CREATE); + thunar_window_binding_create (window, page, "loading", window->spinner, "active", G_BINDING_SYNC_CREATE); + thunar_window_binding_create (window, page, "selected-files", window->launcher, "selected-files", G_BINDING_SYNC_CREATE); + thunar_window_binding_create (window, page, "zoom-level", window, "zoom-level", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + + /* connect to the location bar (if any) */ + if (G_LIKELY (window->location_bar != NULL)) + { + thunar_window_binding_create (window, page, "selected-files", + window->location_bar, "selected-files", + G_BINDING_SYNC_CREATE); + } - /* check if the location bar should be placed into a toolbar */ - if (!thunar_location_bar_is_standalone (THUNAR_LOCATION_BAR (window->location_bar))) - { - /* setup the toolbar for the location bar */ - window->location_toolbar = gtk_ui_manager_get_widget (window->ui_manager, "/location-toolbar"); - gtk_table_attach (GTK_TABLE (window->table), window->location_toolbar, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show (window->location_toolbar); + /* connect to the sidepane (if any) */ + if (G_LIKELY (window->sidepane != NULL)) + { + thunar_window_binding_create (window, page, "selected-files", + window->sidepane, "selected-files", + G_BINDING_SYNC_CREATE); + } - /* add a separator before the location bar (destroyed with the location bar) */ - item = gtk_separator_tool_item_new (); - g_signal_connect_object (G_OBJECT (window->location_bar), "destroy", G_CALLBACK (gtk_widget_destroy), item, G_CONNECT_SWAPPED); - gtk_toolbar_insert (GTK_TOOLBAR (window->location_toolbar), item, -1); - gtk_widget_show (GTK_WIDGET (item)); + /* connect to the statusbar (if any) */ + if (G_LIKELY (window->statusbar != NULL)) + { + thunar_window_binding_create (window, page, "statusbar-text", + window->statusbar, "text", + G_BINDING_SYNC_CREATE); + } - /* add the location bar tool item (destroyed with the location bar) */ - item = gtk_tool_item_new (); - gtk_tool_item_set_expand (item, TRUE); - g_signal_connect_object (G_OBJECT (window->location_bar), "destroy", G_CALLBACK (gtk_widget_destroy), item, G_CONNECT_SWAPPED); - gtk_toolbar_insert (GTK_TOOLBAR (window->location_toolbar), item, -1); - gtk_widget_show (GTK_WIDGET (item)); + /* activate new view */ + window->view = page; - /* add the location bar itself */ - gtk_container_add (GTK_CONTAINER (item), window->location_bar); - } - else - { - /* it's a standalone location bar, just place it above the view */ - gtk_box_pack_start (GTK_BOX (window->view_box), window->location_bar, FALSE, FALSE, 0); - } + /* integrate the standard view action in the ui */ + thunar_component_set_ui_manager (THUNAR_COMPONENT (page), window->ui_manager); - /* display the new location bar widget */ - gtk_widget_show (window->location_bar); - } + /* update the actions */ + thunar_standard_view_selection_changed (THUNAR_STANDARD_VIEW (page)); - /* remember the setting */ - g_object_set (G_OBJECT (window->preferences), "last-location-bar", g_type_name (type), NULL); + gtk_widget_grab_focus (page); } static void -thunar_window_install_sidepane (ThunarWindow *window, - GType type) +thunar_window_notebook_show_tabs (ThunarWindow *window) { - _thunar_return_if_fail (type == G_TYPE_NONE || g_type_is_a (type, THUNAR_TYPE_SIDE_PANE)); - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + gint n_pages; + gboolean show_tabs = TRUE; + GtkAction *action; - /* drop the previous side pane (if any) */ - if (G_UNLIKELY (window->sidepane != NULL)) + /* check if tabs should be visible */ + n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (window->notebook)); + if (n_pages < 2) { - gtk_widget_destroy (window->sidepane); - window->sidepane = NULL; + g_object_get (G_OBJECT (window->preferences), + "misc-always-show-tabs", &show_tabs, NULL); } - /* check if we have a new sidepane widget */ - if (G_LIKELY (type != G_TYPE_NONE)) - { - /* allocate the new side pane widget */ - window->sidepane = g_object_new (type, NULL); - thunar_component_set_ui_manager (THUNAR_COMPONENT (window->sidepane), window->ui_manager); - exo_binding_new (G_OBJECT (window), "show-hidden", G_OBJECT (window->sidepane), "show-hidden"); - exo_binding_new (G_OBJECT (window), "current-directory", G_OBJECT (window->sidepane), "current-directory"); - g_signal_connect_swapped (G_OBJECT (window->sidepane), "change-directory", G_CALLBACK (thunar_window_set_current_directory), window); - gtk_paned_pack1 (GTK_PANED (window->paned), window->sidepane, FALSE, FALSE); - gtk_widget_show (window->sidepane); - - /* connect the side pane widget to the view (if any) */ - if (G_LIKELY (window->view != NULL)) - exo_binding_new (G_OBJECT (window->view), "selected-files", G_OBJECT (window->sidepane), "selected-files"); - } + /* update visibility */ + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (window->notebook), show_tabs); - /* remember the setting */ - g_object_set (G_OBJECT (window->preferences), "last-side-pane", g_type_name (type), NULL); + /* visibility of the detach action */ + action = gtk_action_group_get_action (window->action_group, "detach-tab"); + gtk_action_set_visible (action, n_pages > 1); } static void -thunar_window_merge_custom_preferences (ThunarWindow *window) +thunar_window_notebook_page_added (GtkWidget *notebook, + GtkWidget *page, + guint page_num, + ThunarWindow *window) { - GList *providers; - GList *actions; - GList *ap, *pp; - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - _thunar_return_if_fail (window->custom_preferences_merge_id == 0); + _thunar_return_if_fail (GTK_IS_NOTEBOOK (notebook)); + _thunar_return_if_fail (THUNAR_IS_VIEW (page)); + _thunar_return_if_fail (window->notebook == notebook); - /* determine the available preferences providers */ - providers = thunarx_provider_factory_list_providers (window->provider_factory, THUNARX_TYPE_PREFERENCES_PROVIDER); - if (G_LIKELY (providers != NULL)) - { - /* allocate a new merge id from the UI manager */ - window->custom_preferences_merge_id = gtk_ui_manager_new_merge_id (window->ui_manager); + /* connect signals */ + g_signal_connect (G_OBJECT (page), "notify::loading", G_CALLBACK (thunar_window_notify_loading), window); + g_signal_connect (G_OBJECT (page), "notify::selected-files", G_CALLBACK (thunar_window_update_custom_actions), window); + g_signal_connect_swapped (G_OBJECT (page), "start-open-location", G_CALLBACK (thunar_window_start_open_location), window); + g_signal_connect_swapped (G_OBJECT (page), "change-directory", G_CALLBACK (thunar_window_set_current_directory), window); + g_signal_connect_swapped (G_OBJECT (page), "open-new-tab", G_CALLBACK (thunar_window_notebook_insert), window); + + /* update tab visibility */ + thunar_window_notebook_show_tabs (window); + + /* set default type if not set yet */ + if (window->view_type == G_TYPE_NONE) + window->view_type = G_OBJECT_TYPE (page); +} + + + +static void +thunar_window_notebook_page_removed (GtkWidget *notebook, + GtkWidget *page, + guint page_num, + ThunarWindow *window) +{ + gint n_pages; + + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + _thunar_return_if_fail (GTK_IS_NOTEBOOK (notebook)); + _thunar_return_if_fail (THUNAR_IS_VIEW (page)); + _thunar_return_if_fail (window->notebook == notebook); + + /* drop connected signals */ + g_signal_handlers_disconnect_matched (page, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, window); + + /* remove from the ui */ + thunar_component_set_ui_manager (THUNAR_COMPONENT (page), NULL); + + n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)); + if (n_pages == 0) + { + /* destroy the window */ + gtk_widget_destroy (GTK_WIDGET (window)); + } + else + { + /* update tab visibility */ + thunar_window_notebook_show_tabs (window); + } +} + + + +static void +thunar_window_notebook_popup_menu_real (ThunarWindow *window, + guint32 timestamp, + gint button) +{ + GtkWidget *menu; + + /* run the menu on the view's screen (figuring out whether to use the file or the folder context menu) */ + menu = gtk_ui_manager_get_widget (window->ui_manager, "/tab-context-menu"); + thunar_gtk_menu_run (GTK_MENU (menu), GTK_WIDGET (window), + NULL, NULL, button, timestamp); +} + + + +static gboolean +thunar_window_notebook_button_press_event (GtkWidget *notebook, + GdkEventButton *event, + ThunarWindow *window) +{ + gint page_num = 0; + GtkWidget *page; + GtkWidget *label_box; + GtkAllocation alloc; + gint x, y; + gboolean close_tab; + + if ((event->button == 2 || event->button == 3) + && event->type == GDK_BUTTON_PRESS) + { + /* get real window coordinates */ + gdk_window_get_position (event->window, &x, &y); + x += event->x; + y += event->y; + + /* lookup the clicked tab */ + while ((page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), page_num)) != NULL) + { + label_box = gtk_notebook_get_tab_label (GTK_NOTEBOOK (notebook), page); + gtk_widget_get_allocation (label_box, &alloc); + + if (x >= alloc.x && x < alloc.x + alloc.width + && y >= alloc.y && y < alloc.y + alloc.height) + break; + + page_num++; + } + + /* leave if no tab could be found */ + if (page == NULL) + return FALSE; + + if (event->button == 2) + { + /* check if we should close the tab */ + g_object_get (window->preferences, "misc-tab-close-middle-click", &close_tab, NULL); + if (close_tab) + gtk_widget_destroy (page); + } + else if (event->button == 3) + { + /* update the current tab before we show the menu */ + gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), page_num); + + /* show the tab menu */ + thunar_window_notebook_popup_menu_real (window, event->time, event->button); + } + + return TRUE; + } + + return FALSE; +} + + + +static gboolean +thunar_window_notebook_popup_menu (GtkWidget *notebook, + ThunarWindow *window) +{ + thunar_window_notebook_popup_menu_real (window, gtk_get_current_event_time (), 0); + return TRUE; +} + + + +static gpointer +thunar_window_notebook_create_window (GtkWidget *notebook, + GtkWidget *page, + gint x, + gint y, + ThunarWindow *window) +{ + GtkWidget *new_window; + ThunarApplication *application; + gint width, height; + gint monitor_num; + GdkScreen *screen; + GdkRectangle geo; + + _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), NULL); + _thunar_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), NULL); + _thunar_return_val_if_fail (window->notebook == notebook, NULL); + _thunar_return_val_if_fail (THUNAR_IS_VIEW (page), NULL); + + /* do nothing if this window has only 1 tab */ + if (gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)) < 2) + return NULL; + + /* create new window */ + application = thunar_application_get (); + screen = gtk_window_get_screen (GTK_WINDOW (window)); + new_window = thunar_application_open_window (application, NULL, screen, NULL); + g_object_unref (application); + + /* make sure the new window has the same size */ + gtk_window_get_size (GTK_WINDOW (window), &width, &height); + gtk_window_resize (GTK_WINDOW (new_window), width, height); + + /* move the window to the drop position */ + if (x >= 0 && y >= 0) + { + /* get the monitor geometry */ + monitor_num = gdk_screen_get_monitor_at_point (screen, x, y); + gdk_screen_get_monitor_geometry (screen, monitor_num, &geo); + + /* calculate window position, but keep it on the current monitor */ + x = CLAMP (x - width / 2, geo.x, geo.x + geo.width - width); + y = CLAMP (y - height / 2, geo.y, geo.y + geo.height - height); + + /* move the window */ + gtk_window_move (GTK_WINDOW (new_window), MAX (0, x), MAX (0, y)); + } + + /* insert page in new notebook */ + return THUNAR_WINDOW (new_window)->notebook; +} + + + +static void +thunar_window_notebook_insert (ThunarWindow *window, + ThunarFile *directory) +{ + ThunarHistory *history = NULL; + GtkWidget *view; + gint page_num; + GtkWidget *label; + GtkWidget *label_box; + GtkWidget *button; + GtkWidget *icon; + GtkRcStyle *style; + + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + _thunar_return_if_fail (THUNAR_IS_FILE (directory)); + _thunar_return_if_fail (window->view_type != G_TYPE_NONE); + + /* leave if no directory is set */ + if (directory == NULL) + return; + + /* save the history of the origin view */ + if (THUNAR_IS_STANDARD_VIEW (window->view)) + history = thunar_standard_view_copy_history (THUNAR_STANDARD_VIEW (window->view)); + + /* allocate and setup a new view */ + view = g_object_new (window->view_type, "current-directory", directory, NULL); + gtk_widget_show (view); + + /* use the history of the origin view if available */ + if (history != NULL) + thunar_standard_view_set_history (THUNAR_STANDARD_VIEW (view), history); + + label_box = gtk_hbox_new (FALSE, 0); + + label = gtk_label_new (NULL); + exo_binding_new (G_OBJECT (view), "display-name", G_OBJECT (label), "label"); + exo_binding_new (G_OBJECT (view), "tooltip-text", G_OBJECT (label), "tooltip-text"); + gtk_widget_set_has_tooltip (label, TRUE); + gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.5f); + gtk_misc_set_padding (GTK_MISC (label), 3, 3); + gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); + gtk_label_set_single_line_mode (GTK_LABEL (label), TRUE); + gtk_box_pack_start (GTK_BOX (label_box), label, TRUE, TRUE, 0); + gtk_widget_show (label); + + button = gtk_button_new (); + gtk_box_pack_start (GTK_BOX (label_box), button, FALSE, FALSE, 0); + gtk_widget_set_can_default (button, FALSE); + gtk_button_set_focus_on_click (GTK_BUTTON (button), FALSE); + gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); + gtk_widget_set_tooltip_text (button, _("Close tab")); + g_signal_connect_swapped (G_OBJECT (button), "clicked", G_CALLBACK (gtk_widget_destroy), view); + gtk_widget_show (button); + + /* make button a bit smaller */ + style = gtk_rc_style_new (); + style->xthickness = style->ythickness = 0; + gtk_widget_modify_style (button, style); + g_object_unref (G_OBJECT (style)); + + icon = gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU); + gtk_container_add (GTK_CONTAINER (button), icon); + gtk_widget_show (icon); + + /* insert the new page */ + page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (window->notebook)); + page_num = gtk_notebook_insert_page (GTK_NOTEBOOK (window->notebook), view, label_box, page_num + 1); + + /* switch to the new tab*/ + gtk_notebook_set_current_page (GTK_NOTEBOOK (window->notebook), page_num); + + /* set tab child properties */ + gtk_container_child_set (GTK_CONTAINER (window->notebook), view, "tab-expand", TRUE, NULL); + gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (window->notebook), view, TRUE); + gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (window->notebook), view, TRUE); + + /* take focus on the view */ + gtk_widget_grab_focus (view); +} + + + +void +thunar_window_update_directories (ThunarWindow *window, + ThunarFile *old_directory, + ThunarFile *new_directory) +{ + GtkWidget *view; + ThunarFile *directory; + gint n; + gint n_pages; + gint active_page; + + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + _thunar_return_if_fail (THUNAR_IS_FILE (old_directory)); + _thunar_return_if_fail (THUNAR_IS_FILE (new_directory)); + + n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (window->notebook)); + if (G_UNLIKELY (n_pages == 0)) + return; + + active_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (window->notebook)); + + for (n = 0; n < n_pages; n++) + { + /* get the view */ + view = gtk_notebook_get_nth_page (GTK_NOTEBOOK (window->notebook), n); + if (! THUNAR_IS_NAVIGATOR (view)) + continue; + + /* get the directory of the view */ + directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (view)); + if (! THUNAR_IS_FILE (directory)) + continue; + + /* if it matches the old directory, change to the new one */ + if (directory == old_directory) + { + if (n == active_page) + thunar_navigator_change_directory (THUNAR_NAVIGATOR (view), new_directory); + else + thunar_navigator_set_current_directory (THUNAR_NAVIGATOR (view), new_directory); + } + } +} + + + +static void +thunar_window_install_location_bar (ThunarWindow *window, + GType type) +{ + GtkToolItem *item; + gboolean small_icons; + + _thunar_return_if_fail (type == G_TYPE_NONE || g_type_is_a (type, THUNAR_TYPE_LOCATION_BAR)); + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + + /* drop the previous location bar (if any) */ + if (G_UNLIKELY (window->location_bar != NULL)) + { + /* check if it was toolbar'ed (and thereby need to be disconnected from the toolbar) */ + if (!thunar_location_bar_is_standalone (THUNAR_LOCATION_BAR (window->location_bar))) + { + /* disconnect the toolbar from the window */ + gtk_container_remove (GTK_CONTAINER (window->table), window->location_toolbar); + window->location_toolbar = NULL; + } + + /* destroy the location bar */ + gtk_widget_destroy (window->location_bar); + window->location_bar = NULL; + } + + /* check if we have a new location bar */ + if (G_LIKELY (type != G_TYPE_NONE)) + { + /* allocate the new location bar widget */ + window->location_bar = g_object_new (type, "ui-manager", window->ui_manager, NULL); + exo_binding_new (G_OBJECT (window), "current-directory", G_OBJECT (window->location_bar), "current-directory"); + g_signal_connect_swapped (G_OBJECT (window->location_bar), "change-directory", G_CALLBACK (thunar_window_set_current_directory), window); + g_signal_connect_swapped (G_OBJECT (window->location_bar), "open-new-tab", G_CALLBACK (thunar_window_notebook_insert), window); + + /* connect the location widget to the view (if any) */ + if (G_LIKELY (window->view != NULL)) + thunar_window_binding_create (window, window->view, "selected-files", window->location_bar, "selected-files", G_BINDING_SYNC_CREATE); + + /* check if the location bar should be placed into a toolbar */ + if (!thunar_location_bar_is_standalone (THUNAR_LOCATION_BAR (window->location_bar))) + { + /* setup the toolbar for the location bar */ + window->location_toolbar = gtk_ui_manager_get_widget (window->ui_manager, "/location-toolbar"); + g_object_get (G_OBJECT (window->preferences), "misc-small-toolbar-icons", &small_icons, NULL); + gtk_toolbar_set_style (GTK_TOOLBAR (window->location_toolbar), GTK_TOOLBAR_ICONS); + gtk_toolbar_set_icon_size (GTK_TOOLBAR (window->location_toolbar), + small_icons ? GTK_ICON_SIZE_SMALL_TOOLBAR : GTK_ICON_SIZE_LARGE_TOOLBAR); + gtk_table_attach (GTK_TABLE (window->table), window->location_toolbar, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (window->location_toolbar); + + /* add the location bar tool item (destroyed with the location bar) */ + item = gtk_tool_item_new (); + gtk_tool_item_set_expand (item, TRUE); + g_signal_connect_object (G_OBJECT (window->location_bar), "destroy", G_CALLBACK (gtk_widget_destroy), item, G_CONNECT_SWAPPED); + gtk_toolbar_insert (GTK_TOOLBAR (window->location_toolbar), item, -1); + gtk_widget_show (GTK_WIDGET (item)); + + /* add the location bar itself */ + gtk_container_add (GTK_CONTAINER (item), window->location_bar); + } + else + { + /* it's a standalone location bar, just place it above the view */ + gtk_table_attach (GTK_TABLE (window->view_box), window->location_bar, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 6); + } + + /* display the new location bar widget */ + gtk_widget_show (window->location_bar); + } + + /* remember the setting */ + if (gtk_widget_get_visible (GTK_WIDGET (window))) + g_object_set (G_OBJECT (window->preferences), "last-location-bar", g_type_name (type), NULL); +} + + + +static void +thunar_window_install_sidepane (ThunarWindow *window, + GType type) +{ + _thunar_return_if_fail (type == G_TYPE_NONE || g_type_is_a (type, THUNAR_TYPE_SIDE_PANE)); + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + + /* drop the previous side pane (if any) */ + if (G_UNLIKELY (window->sidepane != NULL)) + { + gtk_widget_destroy (window->sidepane); + window->sidepane = NULL; + } + + /* check if we have a new sidepane widget */ + if (G_LIKELY (type != G_TYPE_NONE)) + { + /* allocate the new side pane widget */ + window->sidepane = g_object_new (type, NULL); + gtk_widget_set_size_request (window->sidepane, 0, -1); + thunar_component_set_ui_manager (THUNAR_COMPONENT (window->sidepane), window->ui_manager); + exo_binding_new (G_OBJECT (window), "show-hidden", G_OBJECT (window->sidepane), "show-hidden"); + exo_binding_new (G_OBJECT (window), "current-directory", G_OBJECT (window->sidepane), "current-directory"); + g_signal_connect_swapped (G_OBJECT (window->sidepane), "change-directory", G_CALLBACK (thunar_window_set_current_directory), window); + g_signal_connect_swapped (G_OBJECT (window->sidepane), "open-new-tab", G_CALLBACK (thunar_window_notebook_insert), window); + gtk_paned_pack1 (GTK_PANED (window->paned), window->sidepane, FALSE, FALSE); + gtk_widget_show (window->sidepane); + + /* connect the side pane widget to the view (if any) */ + if (G_LIKELY (window->view != NULL)) + thunar_window_binding_create (window, window->view, "selected-files", window->sidepane, "selected-files", G_BINDING_SYNC_CREATE); + } + + /* remember the setting */ + if (gtk_widget_get_visible (GTK_WIDGET (window))) + g_object_set (G_OBJECT (window->preferences), "last-side-pane", g_type_name (type), NULL); +} + + + +static void +thunar_window_merge_custom_preferences (ThunarWindow *window) +{ + GList *providers; + GList *actions; + GList *ap, *pp; + + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + _thunar_return_if_fail (window->custom_preferences_merge_id == 0); + + /* determine the available preferences providers */ + providers = thunarx_provider_factory_list_providers (window->provider_factory, THUNARX_TYPE_PREFERENCES_PROVIDER); + if (G_LIKELY (providers != NULL)) + { + /* allocate a new merge id from the UI manager */ + window->custom_preferences_merge_id = gtk_ui_manager_new_merge_id (window->ui_manager); /* add actions from all providers */ for (pp = providers; pp != NULL; pp = pp->next) @@ -1394,7 +2007,211 @@ -void +static void +thunar_window_bookmark_changed (ThunarWindow *window) +{ + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + + if (window->bookmark_reload_idle_id == 0) + window->bookmark_reload_idle_id = g_idle_add (thunar_window_bookmark_merge, window); +} + + + +static void +thunar_window_bookmark_release_file (gpointer data) +{ + ThunarFile *file = THUNAR_FILE (data); + + /* stop watching */ + thunar_file_unwatch (file); + + /* disconnect changed and destroy signals */ + g_signal_handlers_disconnect_matched (file, + G_SIGNAL_MATCH_FUNC, 0, + 0, NULL, + G_CALLBACK (thunar_window_bookmark_changed), + NULL); + + g_object_unref (file); +} + + + +static void +thunar_window_bookmark_merge_line (GFile *file_path, + const gchar *name, + gint line_num, + gpointer user_data) +{ + ThunarWindow *window = THUNAR_WINDOW (user_data); + GtkAction *action = NULL; + GChecksum *checksum; + gchar *uri; + ThunarFile *file; + gchar *parse_name; + gchar *tooltip; + gchar *remote_name = NULL; + const gchar *unique_name; + const gchar *path; + GtkIconTheme *icon_theme; + const gchar *icon_name; + + _thunar_return_if_fail (G_IS_FILE (file_path)); + _thunar_return_if_fail (name == NULL || g_utf8_validate (name, -1, NULL)); + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + + /* create unique id based on the uri */ + uri = g_file_get_uri (file_path); + checksum = g_checksum_new (G_CHECKSUM_MD5); + g_checksum_update (checksum, (const guchar *) uri, strlen (uri)); + unique_name = g_checksum_get_string (checksum); + g_free (uri); + + parse_name = g_file_get_parse_name (file_path); + tooltip = g_strdup_printf (_("Open the location \"%s\""), parse_name); + g_free (parse_name); + + icon_theme = gtk_icon_theme_get_for_screen (gtk_window_get_screen (GTK_WINDOW (window))); + + if (g_file_has_uri_scheme (file_path, "file")) + { + /* try to open the file corresponding to the uri */ + file = thunar_file_get (file_path, NULL); + if (G_UNLIKELY (file == NULL)) + return; + + /* make sure the file refers to a directory */ + if (G_UNLIKELY (thunar_file_is_directory (file))) + { + if (name == NULL) + name = thunar_file_get_display_name (file); + + action = gtk_action_new (unique_name, name, tooltip, NULL); + icon_name = thunar_file_get_icon_name (file, THUNAR_FILE_ICON_STATE_DEFAULT, icon_theme); + gtk_action_set_icon_name (action, icon_name); + g_object_set_data_full (G_OBJECT (action), I_("thunar-file"), file, + thunar_window_bookmark_release_file); + + /* watch the file */ + thunar_file_watch (file); + + g_signal_connect_swapped (G_OBJECT (file), "destroy", + G_CALLBACK (thunar_window_bookmark_changed), window); + g_signal_connect_swapped (G_OBJECT (file), "changed", + G_CALLBACK (thunar_window_bookmark_changed), window); + } + else + { + g_object_unref (file); + } + + /* add to the local bookmarks */ + path = "/main-menu/go-menu/placeholder-go-local-actions"; + } + else + { + if (name == NULL) + { + remote_name = thunar_g_file_get_display_name_remote (file_path); + name = remote_name; + } + + action = gtk_action_new (unique_name, name, tooltip, NULL); + gtk_action_set_icon_name (action, "folder-remote"); + g_object_set_data_full (G_OBJECT (action), I_("location-file"), + g_object_ref (file_path), g_object_unref); + + g_free (remote_name); + + /* add to the remote bookmarks */ + path = "/main-menu/go-menu/placeholder-go-remote-actions"; + } + + if (G_LIKELY (action != NULL)) + { + if (gtk_action_group_get_action (window->bookmark_action_group, unique_name) == NULL) + { + /* connect action */ + g_signal_connect (G_OBJECT (action), "activate", G_CALLBACK (thunar_window_action_open_bookmark), window); + + /* insert the bookmark in the group */ + gtk_action_group_add_action_with_accel (window->bookmark_action_group, action, NULL); + + /* add the action to the UI manager */ + gtk_ui_manager_add_ui (window->ui_manager, + window->bookmark_items_actions_merge_id, + path, + unique_name, unique_name, + GTK_UI_MANAGER_MENUITEM, FALSE); + } + + g_object_unref (action); + } + + g_checksum_free (checksum); + g_free (tooltip); +} + + + +static gboolean +thunar_window_bookmark_merge (gpointer user_data) +{ + ThunarWindow *window = THUNAR_WINDOW (user_data); + + _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); + + GDK_THREADS_ENTER (); + + /* remove old actions */ + if (window->bookmark_items_actions_merge_id != 0) + { + gtk_ui_manager_remove_ui (window->ui_manager, window->bookmark_items_actions_merge_id); + gtk_ui_manager_ensure_update (window->ui_manager); + } + + /* drop old bookmarks action group */ + if (window->bookmark_action_group != NULL) + { + gtk_ui_manager_remove_action_group (window->ui_manager, window->bookmark_action_group); + g_object_unref (window->bookmark_action_group); + } + + /* lazy initialize the bookmarks */ + if (window->bookmark_file == NULL) + { + window->bookmark_file = thunar_g_file_new_for_bookmarks (); + window->bookmark_monitor = g_file_monitor_file (window->bookmark_file, G_FILE_MONITOR_NONE, NULL, NULL); + if (G_LIKELY (window->bookmark_monitor != NULL)) + { + g_signal_connect_swapped (window->bookmark_monitor, "changed", + G_CALLBACK (thunar_window_bookmark_changed), window); + } + } + + /* generate a new merge id */ + window->bookmark_items_actions_merge_id = gtk_ui_manager_new_merge_id (window->ui_manager); + + /* create a new action group */ + window->bookmark_action_group = gtk_action_group_new ("ThunarBookmarks"); + gtk_ui_manager_insert_action_group (window->ui_manager, window->bookmark_action_group, -1); + + /* collect bookmarks */ + thunar_util_load_bookmarks (window->bookmark_file, + thunar_window_bookmark_merge_line, + window); + + window->bookmark_reload_idle_id = 0; + + GDK_THREADS_LEAVE (); + + return FALSE; +} + + + +static void thunar_window_merge_go_actions (ThunarWindow *window) { GtkAction *action; @@ -1402,16 +2219,16 @@ _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); _thunar_return_if_fail (window->go_items_actions_merge_id == 0); - /* allocate a new merge id from the UI manager */ - window->go_items_actions_merge_id = gtk_ui_manager_new_merge_id (window->ui_manager); - /* setup the "open-trash" action */ if (thunar_g_vfs_is_uri_scheme_supported ("trash")) { + /* allocate a new merge id from the UI manager */ + window->go_items_actions_merge_id = gtk_ui_manager_new_merge_id (window->ui_manager); + /* add the trash action to the action group */ action = thunar_trash_action_new (); g_signal_connect (G_OBJECT (action), "activate", G_CALLBACK (thunar_window_action_open_trash), window); - gtk_action_group_add_action (window->action_group, action); + gtk_action_group_add_action_with_accel (window->action_group, action, NULL); /* add the action to the UI manager */ gtk_ui_manager_add_ui (window->ui_manager, @@ -1424,38 +2241,9 @@ g_object_unref (action); } - /* add the file system action to the UI manager */ - { - action = gtk_action_group_get_action (window->action_group, "open-file-system"); - gtk_ui_manager_add_ui (window->ui_manager, - window->go_items_actions_merge_id, - "/main-menu/go-menu/placeholder-go-items-actions", - gtk_action_get_name (GTK_ACTION (action)), - gtk_action_get_name (GTK_ACTION (action)), - GTK_UI_MANAGER_MENUITEM, FALSE); - } - - /* setup the "open-network" action */ - if (thunar_g_vfs_is_uri_scheme_supported ("network")) - { - /* create the network action */ - action = gtk_action_new ("open-network", _("Network"), _("Browse the network"), - GTK_STOCK_NETWORK); - g_signal_connect (action, "activate", G_CALLBACK (thunar_window_action_open_network), window); - - /* add the network action to the action group */ - gtk_action_group_add_action (window->action_group, action); - - /* add the action to the UI manager */ - gtk_ui_manager_add_ui (window->ui_manager, - window->go_items_actions_merge_id, - "/main-menu/go-menu/placeholder-go-items-actions", - gtk_action_get_name (GTK_ACTION (action)), - gtk_action_get_name (GTK_ACTION (action)), - GTK_UI_MANAGER_MENUITEM, FALSE); - - g_object_unref (action); - } + /* setup visibility of the "open-network" action */ + action = gtk_action_group_get_action (window->action_group, "open-network"); + gtk_action_set_visible (action, thunar_g_vfs_is_uri_scheme_supported ("network")); } @@ -1504,7 +2292,7 @@ } else { - thunar_dialogs_show_error (GTK_WIDGET (browser), error, + thunar_dialogs_show_error (GTK_WIDGET (browser), error, _("Failed to open \"%s\""), thunar_file_get_display_name (file)); } @@ -1518,7 +2306,7 @@ { ThunarFile *selected_file; GtkWidget *dialog; - + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); /* bring up the "Open Location"-dialog if the window has no location bar or the location bar @@ -1531,9 +2319,9 @@ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (window)); - thunar_location_dialog_set_working_directory (THUNAR_LOCATION_DIALOG (dialog), + thunar_location_dialog_set_working_directory (THUNAR_LOCATION_DIALOG (dialog), thunar_window_get_current_directory (window)); - thunar_location_dialog_set_selected_file (THUNAR_LOCATION_DIALOG (dialog), + thunar_location_dialog_set_selected_file (THUNAR_LOCATION_DIALOG (dialog), thunar_window_get_current_directory (window)); /* setup the initial text (if any) */ @@ -1556,7 +2344,7 @@ selected_file = thunar_location_dialog_get_selected_file (THUNAR_LOCATION_DIALOG (dialog)); if (selected_file != NULL) { - thunar_browser_poke_file (THUNAR_BROWSER (window), selected_file, window, + thunar_browser_poke_file (THUNAR_BROWSER (window), selected_file, window, thunar_window_poke_file_finish, NULL); } } @@ -1569,24 +2357,44 @@ static void +thunar_window_action_open_new_tab (GtkAction *action, + ThunarWindow *window) +{ + /* insert new tab with current directory as default */ + thunar_window_notebook_insert (window, thunar_window_get_current_directory (window)); +} + + + +static void thunar_window_action_open_new_window (GtkAction *action, ThunarWindow *window) { ThunarApplication *application; + ThunarHistory *history; + ThunarWindow *new_window; ThunarFile *start_file; - GtkWidget *new_window; /* popup a new window */ application = thunar_application_get (); - new_window = thunar_application_open_window (application, window->current_directory, - gtk_widget_get_screen (GTK_WIDGET (window)), NULL); + new_window = THUNAR_WINDOW (thunar_application_open_window (application, window->current_directory, + gtk_widget_get_screen (GTK_WIDGET (window)), NULL)); g_object_unref (G_OBJECT (application)); + /* if we have no origin view we are done */ + if (window->view == NULL) + return; + + /* let the view of the new window inherit the history of the origin view */ + history = thunar_standard_view_copy_history (THUNAR_STANDARD_VIEW (window->view)); + if (history != NULL) + thunar_standard_view_set_history (THUNAR_STANDARD_VIEW (new_window->view), history); + /* determine the first visible file in the current window */ - if (window->view != NULL && thunar_view_get_visible_range (THUNAR_VIEW (window->view), &start_file, NULL)) + if (thunar_view_get_visible_range (THUNAR_VIEW (window->view), &start_file, NULL)) { /* scroll the new window to the same file */ - thunar_window_scroll_to_file (THUNAR_WINDOW (new_window), start_file, FALSE, TRUE, 0.0f, 0.0f); + thunar_window_scroll_to_file (new_window, start_file, FALSE, TRUE, 0.1f, 0.1f); /* release the file reference */ g_object_unref (G_OBJECT (start_file)); @@ -1610,6 +2418,48 @@ static void +thunar_window_action_detach_tab (GtkAction *action, + ThunarWindow *window) +{ + GtkWidget *notebook; + GtkWidget *label; + GtkWidget *view = window->view; + + _thunar_return_if_fail (THUNAR_IS_VIEW (view)); + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + + /* create a new window */ + notebook = thunar_window_notebook_create_window (window->notebook, view, -1, -1, window); + if (notebook == NULL) + return; + + /* get the current label */ + label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (window->notebook), view); + _thunar_return_if_fail (GTK_IS_WIDGET (label)); + + /* ref object so they don't destroy when removed from the container */ + g_object_ref (label); + g_object_ref (view); + + /* remove view from the current notebook */ + gtk_container_remove (GTK_CONTAINER (window->notebook), view); + + /* insert in the new notebook */ + gtk_notebook_insert_page (GTK_NOTEBOOK (notebook), view, label, 0); + + /* set tab child properties */ + gtk_container_child_set (GTK_CONTAINER (notebook), view, "tab-expand", TRUE, NULL); + gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (notebook), view, TRUE); + gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (notebook), view, TRUE); + + /* release */ + g_object_unref (label); + g_object_unref (view); +} + + + +static void thunar_window_action_close_all_windows (GtkAction *action, ThunarWindow *window) { @@ -1622,15 +2472,24 @@ g_object_unref (G_OBJECT (application)); /* destroy all open windows */ - g_list_foreach (windows, (GFunc) gtk_widget_destroy, NULL); - g_list_free (windows); + g_list_free_full (windows, (GDestroyNotify) gtk_widget_destroy); } static void -thunar_window_action_close (GtkAction *action, - ThunarWindow *window) +thunar_window_action_close_tab (GtkAction *action, + ThunarWindow *window) +{ + if (window->view != NULL) + gtk_widget_destroy (window->view); +} + + + +static void +thunar_window_action_close_window (GtkAction *action, + ThunarWindow *window) { gtk_widget_destroy (GTK_WIDGET (window)); } @@ -1649,7 +2508,7 @@ /* allocate and display a preferences dialog */; dialog = thunar_preferences_dialog_new (GTK_WINDOW (window)); - gtk_widget_show (dialog); + gtk_widget_show (dialog); /* ...and let the application take care of it */ application = thunar_application_get (); @@ -1669,7 +2528,11 @@ _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); /* force the view to reload */ - g_signal_emit (G_OBJECT (window), window_signals[RELOAD], 0, &result); + g_signal_emit (G_OBJECT (window), window_signals[RELOAD], 0, TRUE, &result); + + /* update the location bar to show the current directory */ + if (window->location_bar != NULL) + g_object_notify (G_OBJECT (window->location_bar), "current-directory"); } @@ -1795,7 +2658,7 @@ /* determine the new state of the action */ active = gtk_toggle_action_get_active (action); - + /* check if we should drop the statusbar */ if (!active && window->statusbar != NULL) { @@ -1807,16 +2670,39 @@ { /* setup a new statusbar */ window->statusbar = thunar_statusbar_new (); - gtk_table_attach (GTK_TABLE (window->table), window->statusbar, 0, 1, 6, 7, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach (GTK_TABLE (window->view_box), window->statusbar, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (window->statusbar); /* connect to the view (if any) */ if (G_LIKELY (window->view != NULL)) - exo_binding_new (G_OBJECT (window->view), "statusbar-text", G_OBJECT (window->statusbar), "text"); + thunar_window_binding_create (window, window->view, "statusbar-text", window->statusbar, "text", G_BINDING_SYNC_CREATE); } /* remember the setting */ - g_object_set (G_OBJECT (window->preferences), "last-statusbar-visible", active, NULL); + if (gtk_widget_get_visible (GTK_WIDGET (window))) + g_object_set (G_OBJECT (window->preferences), "last-statusbar-visible", active, NULL); +} + + + +static void +thunar_window_action_menubar_changed (GtkToggleAction *action, + ThunarWindow *window) +{ + gboolean active; + + _thunar_return_if_fail (GTK_IS_TOGGLE_ACTION (action)); + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + + /* determine the new state of the action */ + active = gtk_toggle_action_get_active (action); + + /* show or hide the bar */ + gtk_widget_set_visible (window->menubar, active); + + /* remember the setting */ + if (gtk_widget_get_visible (GTK_WIDGET (window))) + g_object_set (G_OBJECT (window->preferences), "last-menubar-visible", active, NULL); } @@ -1871,54 +2757,48 @@ GtkRadioAction *current, ThunarWindow *window) { - ThunarFile *file = NULL; - GType type; + ThunarFile *file = NULL; + ThunarFile *current_directory = NULL; + ThunarHistory *history = NULL; + GtkWidget *old_view; + GList *selected_files = NULL; /* drop the previous view (if any) */ + old_view = window->view; if (G_LIKELY (window->view != NULL)) { /* get first visible file in the previous view */ if (!thunar_view_get_visible_range (THUNAR_VIEW (window->view), &file, NULL)) file = NULL; - /* destroy and disconnect the previous view */ - gtk_widget_destroy (window->view); + /* store the active directory */ + current_directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (window->view)); + if (current_directory != NULL) + g_object_ref (current_directory); + + /* remember the file selection */ + selected_files = thunar_g_file_list_copy (thunar_component_get_selected_files (THUNAR_COMPONENT (old_view))); + + /* get a copy of the history */ + history = thunar_standard_view_copy_history (THUNAR_STANDARD_VIEW (old_view)); /* update the UI (else GtkUIManager will crash on merging) */ gtk_ui_manager_ensure_update (window->ui_manager); } /* determine the new type of view */ - type = view_index2type (gtk_radio_action_get_current_value (action)); + window->view_type = view_index2type (gtk_radio_action_get_current_value (action)); + + /* always open a new directory */ + if (current_directory == NULL && window->current_directory != NULL) + current_directory = g_object_ref (window->current_directory); /* allocate a new view of the requested type */ - if (G_LIKELY (type != G_TYPE_NONE)) + if (G_LIKELY (window->view_type != G_TYPE_NONE)) { - /* allocate and setup a new view */ - window->view = g_object_new (type, "ui-manager", window->ui_manager, NULL); - g_signal_connect (G_OBJECT (window->view), "notify::loading", G_CALLBACK (thunar_window_notify_loading), window); - g_signal_connect_swapped (G_OBJECT (window->view), "start-open-location", G_CALLBACK (thunar_window_start_open_location), window); - g_signal_connect_swapped (G_OBJECT (window->view), "change-directory", G_CALLBACK (thunar_window_set_current_directory), window); - exo_binding_new (G_OBJECT (window), "current-directory", G_OBJECT (window->view), "current-directory"); - exo_binding_new (G_OBJECT (window), "show-hidden", G_OBJECT (window->view), "show-hidden"); - exo_binding_new (G_OBJECT (window->view), "loading", G_OBJECT (window->throbber), "animated"); - exo_binding_new (G_OBJECT (window->view), "selected-files", G_OBJECT (window->launcher), "selected-files"); - exo_mutual_binding_new (G_OBJECT (window->view), "zoom-level", G_OBJECT (window), "zoom-level"); - gtk_box_pack_end (GTK_BOX (window->view_box), window->view, TRUE, TRUE, 0); - gtk_widget_grab_focus (window->view); - gtk_widget_show (window->view); - - /* connect to the location bar (if any) */ - if (G_LIKELY (window->location_bar != NULL)) - exo_binding_new (G_OBJECT (window->view), "selected-files", G_OBJECT (window->location_bar), "selected-files"); - - /* connect to the sidepane (if any) */ - if (G_LIKELY (window->sidepane != NULL)) - exo_binding_new (G_OBJECT (window->view), "selected-files", G_OBJECT (window->sidepane), "selected-files"); - - /* connect to the statusbar (if any) */ - if (G_LIKELY (window->statusbar != NULL)) - exo_binding_new (G_OBJECT (window->view), "statusbar-text", G_OBJECT (window->statusbar), "text"); + /* create new page */ + if (current_directory != NULL) + thunar_window_notebook_insert (window, current_directory); /* scroll to the previously visible file in the old view */ if (G_UNLIKELY (file != NULL)) @@ -1930,12 +2810,27 @@ window->view = NULL; } + /* destroy the old view */ + if (old_view != NULL) + gtk_widget_destroy (old_view); + + /* restore the file selection */ + thunar_component_set_selected_files (THUNAR_COMPONENT (window->view), selected_files); + thunar_g_file_list_free (selected_files); + /* remember the setting */ - g_object_set (G_OBJECT (window->preferences), "last-view", g_type_name (type), NULL); + if (gtk_widget_get_visible (GTK_WIDGET (window))) + g_object_set (G_OBJECT (window->preferences), "last-view", g_type_name (window->view_type), NULL); + + /* use the copy of the old history if available */ + if (history != NULL) + thunar_standard_view_set_history (THUNAR_STANDARD_VIEW (window->view), history); - /* release the file reference */ + /* release the file references */ if (G_UNLIKELY (file != NULL)) g_object_unref (G_OBJECT (file)); + if (G_UNLIKELY (current_directory != NULL)) + g_object_unref (G_OBJECT (current_directory)); } @@ -1997,34 +2892,44 @@ static gboolean -thunar_window_open_user_folder (GtkAction *action, - ThunarWindow *window, - ThunarUserDirectory thunar_user_dir, - const gchar *default_name) -{ - ThunarFile *user_file = NULL; - gboolean result = FALSE; - GError *error = NULL; - GFile *home_dir; - GFile *user_dir; - gchar *path = NULL; +thunar_window_open_user_folder (GtkAction *action, + ThunarWindow *window, + GUserDirectory thunar_user_dir, + const gchar *default_name) +{ + ThunarFile *user_file = NULL; + gboolean result = FALSE; + GError *error = NULL; + GFile *home_dir; + GFile *user_dir; + const gchar *path; + gint response; + GtkWidget *dialog; + gchar *parse_name; - path = g_strdup (g_get_user_special_dir (thunar_user_dir)); + path = g_get_user_special_dir (thunar_user_dir); + home_dir = thunar_g_file_new_for_home (); - if (G_UNLIKELY (path == NULL)) + /* check if there is an entry in user-dirs.dirs */ + path = g_get_user_special_dir (thunar_user_dir); + if (G_LIKELY (path != NULL)) + { + user_dir = g_file_new_for_path (path); + + /* if equal to home, leave */ + if (g_file_equal (user_dir, home_dir)) + goto is_homedir; + } + else { - home_dir = thunar_g_file_new_for_home (); + /* build a name */ user_dir = g_file_resolve_relative_path (home_dir, default_name); - path = g_file_get_path (user_dir); - g_object_unref (home_dir); } - else - user_dir = g_file_new_for_path (path); /* try to load the user dir */ user_file = thunar_file_get (user_dir, NULL); - /* handle the case where the file does not exists */ + /* check if the directory exists */ if (G_UNLIKELY (user_file == NULL || !thunar_file_exists (user_file))) { /* release the instance if it does not exist */ @@ -2034,9 +2939,25 @@ user_file = NULL; } - /* try to create the folder, then reload the file */ - if (G_LIKELY (xfce_mkdirhier (path, 0755, &error))) - user_file = thunar_file_get (user_dir, &error); + /* ask the user to create the directory */ + parse_name = g_file_get_parse_name (user_dir); + dialog = gtk_message_dialog_new (GTK_WINDOW (window), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + _("The directory \"%s\" does not exist. Do you want to create it?"), + parse_name); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES); + response = gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + g_free (parse_name); + + if (response == GTK_RESPONSE_YES + && g_file_make_directory_with_parents (user_dir, NULL, &error)) + { + /* try again */ + user_file = thunar_file_get (user_dir, &error); + } } if (G_LIKELY (user_file != NULL)) @@ -2046,18 +2967,18 @@ g_object_unref (G_OBJECT (user_file)); result = TRUE; } - else + else if (error != NULL) { - gchar *error_msg = g_strdup_printf (_("Failed to open folder \"%s\""), default_name); - - thunar_dialogs_show_error (GTK_WIDGET (window), error, "%s", error_msg); - g_free (error_msg); - if (error) - g_error_free (error); + parse_name = g_file_get_parse_name (user_dir); + thunar_dialogs_show_error (GTK_WIDGET (window), error, _("Failed to open directory \"%s\""), parse_name); + g_free (parse_name); + g_error_free (error); } + is_homedir: + g_object_unref (user_dir); - g_free (path); + g_object_unref (home_dir); return result; } @@ -2072,83 +2993,13 @@ _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); thunar_window_open_user_folder (action, window, - THUNAR_USER_DIRECTORY_DESKTOP, + G_USER_DIRECTORY_DESKTOP, "Desktop"); } static void -thunar_window_action_open_documents (GtkAction *action, - ThunarWindow *window) -{ - _thunar_return_if_fail (GTK_IS_ACTION (action)); - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - - thunar_window_open_user_folder (action, window, - THUNAR_USER_DIRECTORY_DOCUMENTS, - "Documents"); -} - - - -static void -thunar_window_action_open_downloads (GtkAction *action, - ThunarWindow *window) -{ - _thunar_return_if_fail (GTK_IS_ACTION (action)); - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - - thunar_window_open_user_folder (action, window, - THUNAR_USER_DIRECTORY_DOWNLOAD, - "Downloads"); -} - - - -static void -thunar_window_action_open_music (GtkAction *action, - ThunarWindow *window) -{ - _thunar_return_if_fail (GTK_IS_ACTION (action)); - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - - thunar_window_open_user_folder (action, window, - THUNAR_USER_DIRECTORY_MUSIC, - "Music"); -} - - - -static void -thunar_window_action_open_pictures (GtkAction *action, - ThunarWindow *window) -{ - _thunar_return_if_fail (GTK_IS_ACTION (action)); - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - - thunar_window_open_user_folder (action, window, - THUNAR_USER_DIRECTORY_PICTURES, - "Pictures"); -} - - - -static void -thunar_window_action_open_public (GtkAction *action, - ThunarWindow *window) -{ - _thunar_return_if_fail (GTK_IS_ACTION (action)); - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - - thunar_window_open_user_folder (action, window, - THUNAR_USER_DIRECTORY_PUBLIC_SHARE, - "Public"); -} - - - -static void thunar_window_action_open_templates (GtkAction *action, ThunarWindow *window) { @@ -2165,7 +3016,7 @@ _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); success = thunar_window_open_user_folder (action,window, - THUNAR_USER_DIRECTORY_TEMPLATES, + G_USER_DIRECTORY_TEMPLATES, "Templates"); /* check whether we should display the "About Templates" dialog */ @@ -2230,20 +3081,6 @@ static void -thunar_window_action_open_videos (GtkAction *action, - ThunarWindow *window) -{ - _thunar_return_if_fail (GTK_IS_ACTION (action)); - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - - thunar_window_open_user_folder (action, window, - THUNAR_USER_DIRECTORY_VIDEOS, - "Videos"); -} - - - -static void thunar_window_action_open_file_system (GtkAction *action, ThunarWindow *window) { @@ -2326,23 +3163,65 @@ /* determine the network root location */ network = g_file_new_for_uri ("network://"); - /* determine the file for this location */ - network_file = thunar_file_get (network, &error); - if (G_UNLIKELY (network_file == NULL)) + /* determine the file for this location */ + network_file = thunar_file_get (network, &error); + if (G_UNLIKELY (network_file == NULL)) + { + /* display an error to the user */ + thunar_dialogs_show_error (GTK_WIDGET (window), error, _("Failed to browse the network")); + g_error_free (error); + } + else + { + /* open the network root location */ + thunar_window_set_current_directory (window, network_file); + g_object_unref (G_OBJECT (network_file)); + } + + /* release our reference on the location itself */ + g_object_unref (network); +} + + + +static void +thunar_window_poke_location_finish (ThunarBrowser *browser, + GFile *location, + ThunarFile *file, + ThunarFile *target_file, + GError *error, + gpointer ignored) +{ + _thunar_return_if_fail (THUNAR_IS_WINDOW (browser)); + _thunar_return_if_fail (THUNAR_IS_FILE (file)); + + thunar_window_poke_file_finish (browser, file, target_file, error, ignored); +} + + + +static void +thunar_window_action_open_bookmark (GtkAction *action, + ThunarWindow *window) +{ + ThunarFile *local_file; + GFile *remote_file; + + /* try to open the local file */ + local_file = g_object_get_data (G_OBJECT (action), I_("thunar-file")); + if (local_file != NULL) { - /* display an error to the user */ - thunar_dialogs_show_error (GTK_WIDGET (window), error, _("Failed to browse the network")); - g_error_free (error); + thunar_window_set_current_directory (window, local_file); + return; } - else + + /* try to the remote file */ + remote_file = g_object_get_data (G_OBJECT (action), I_("location-file")); + if (remote_file != NULL) { - /* open the network root location */ - thunar_window_set_current_directory (window, network_file); - g_object_unref (G_OBJECT (network_file)); + thunar_browser_poke_location (THUNAR_BROWSER (window), remote_file, window, + thunar_window_poke_location_finish, NULL); } - - /* release our reference on the location itself */ - g_object_unref (network); } @@ -2362,7 +3241,7 @@ ThunarWindow *window) { /* display the documentation index */ - thunar_dialogs_show_help (window, NULL, NULL); + xfce_dialog_show_help (GTK_WINDOW (window), "thunar", NULL, NULL); } @@ -2390,6 +3269,10 @@ * signal and the view will automatically sync its state. */ g_object_notify (G_OBJECT (window), "show-hidden"); + + if (gtk_widget_get_visible (GTK_WIDGET (window))) + g_object_set (G_OBJECT (window->preferences), "last-show-hidden", + gtk_toggle_action_get_active (action), NULL); } @@ -2398,9 +3281,13 @@ thunar_window_current_directory_changed (ThunarFile *current_directory, ThunarWindow *window) { - GtkAction *action; - GdkPixbuf *icon; - gchar *title; + GtkIconTheme *icon_theme; + GtkAction *action; + const gchar *icon_name; + gchar *title; + gboolean show_full_path; + gchar *parse_name = NULL; + const gchar *name; _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); _thunar_return_if_fail (THUNAR_IS_FILE (current_directory)); @@ -2411,86 +3298,25 @@ gtk_action_set_sensitive (action, (thunar_file_get_item_count (current_directory) > 0)); gtk_action_set_visible (action, (thunar_file_is_root (current_directory) && thunar_file_is_trashed (current_directory))); + /* get name of directory or full path */ + g_object_get (G_OBJECT (window->preferences), "misc-full-path-in-title", &show_full_path, NULL); + if (G_UNLIKELY (show_full_path)) + name = parse_name = g_file_get_parse_name (thunar_file_get_file (current_directory)); + else + name = thunar_file_get_display_name (current_directory); + /* set window title */ - title = g_strdup_printf ("%s - %s", thunar_file_get_display_name (current_directory), _("File Manager")); + title = g_strdup_printf ("%s - %s", name, _("File Manager")); gtk_window_set_title (GTK_WINDOW (window), title); g_free (title); + g_free (parse_name); /* set window icon */ - icon = thunar_icon_factory_load_file_icon (window->icon_factory, current_directory, THUNAR_FILE_ICON_STATE_DEFAULT, 48); - if (G_LIKELY (icon != NULL)) - { - gtk_window_set_icon (GTK_WINDOW (window), icon); - g_object_unref (G_OBJECT (icon)); - } -} - - - -static void -thunar_window_current_directory_destroy (ThunarFile *current_directory, - ThunarWindow *window) -{ - ThunarFile *new_directory = NULL; - GFile *path; - GFile *tmp; - - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - _thunar_return_if_fail (THUNAR_IS_FILE (current_directory)); - _thunar_return_if_fail (window->current_directory == current_directory); - - /* determine the path of the current directory */ - path = g_object_ref (thunar_file_get_file (current_directory)); - - /* try to find a parent directory that still exists */ - while (new_directory == NULL) - { - /* check whether the current directory exists */ - if (g_file_query_exists (path, NULL)) - { - /* it does, try to load the file */ - new_directory = thunar_file_get (path, NULL); - - /* fall back to $HOME if loading the file failed */ - if (new_directory == NULL) - break; - } - else - { - /* determine the parent of the directory */ - tmp = g_file_get_parent (path); - - /* if there's no parent this means that we've found no parent - * that still exists at all. Fall back to $HOME then */ - if (tmp == NULL) - break; - - /* free the old directory */ - g_object_unref (path); - - /* check the parent next */ - path = tmp; - } - } - - /* make sure we don't leak */ - if (path != NULL) - g_object_unref (path); - - /* check if we have a new folder */ - if (G_LIKELY (new_directory != NULL)) - { - /* enter the new folder */ - thunar_window_set_current_directory (window, new_directory); - - /* release the file reference */ - g_object_unref (new_directory); - } - else - { - /* enter the home folder */ - thunar_window_action_open_home (NULL, window); - } + icon_theme = gtk_icon_theme_get_for_screen (gtk_window_get_screen (GTK_WINDOW (window))); + icon_name = thunar_file_get_icon_name (current_directory, + THUNAR_FILE_ICON_STATE_DEFAULT, + icon_theme); + gtk_window_set_icon_name (GTK_WINDOW (window), icon_name); } @@ -2531,25 +3357,36 @@ thunar_window_menu_item_selected (GtkWidget *menu_item, ThunarWindow *window) { - GtkAction *action; - gchar *tooltip; - gint id; + GtkAction *action; + const gchar *tooltip; + gint id; + gchar *short_tip = NULL; + gchar *p; /* we can only display tooltips if we have a statusbar */ if (G_LIKELY (window->statusbar != NULL)) { /* determine the action for the menu item */ - action = g_object_get_data (G_OBJECT (menu_item), I_("gtk-action")); + action = gtk_widget_get_action (menu_item); if (G_UNLIKELY (action == NULL)) return; /* determine the tooltip from the action */ - g_object_get (G_OBJECT (action), "tooltip", &tooltip, NULL); + tooltip = gtk_action_get_tooltip (action); if (G_LIKELY (tooltip != NULL)) { + /* check if there is a new line in the tooltip */ + p = strchr (tooltip, '\n'); + if (p != NULL) + { + short_tip = g_strndup (tooltip, p - tooltip); + tooltip = short_tip; + } + + /* push to the statusbar */ id = gtk_statusbar_get_context_id (GTK_STATUSBAR (window->statusbar), "Menu tooltip"); gtk_statusbar_push (GTK_STATUSBAR (window->statusbar), id, tooltip); - g_free (tooltip); + g_free (short_tip); } } } @@ -2574,6 +3411,117 @@ static void +thunar_window_update_custom_actions (ThunarView *view, + GParamSpec *pspec, + ThunarWindow *window) +{ + ThunarFile *folder; + GList *selected_files; + GList *actions = NULL; + GList *lp; + GList *providers; + GList *tmp; + + _thunar_return_if_fail (THUNAR_IS_VIEW (view)); + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + + /* leave if the signal is emitted from a non-active tab */ + if (!gtk_widget_get_realized (GTK_WIDGET (window)) + || window->view != GTK_WIDGET (view)) + return; + + /* load the menu provides from the provider factory */ + providers = thunarx_provider_factory_list_providers (window->provider_factory, + THUNARX_TYPE_MENU_PROVIDER); + if (G_LIKELY (providers != NULL)) + { + /* grab a reference to the current directory of the window */ + folder = thunar_window_get_current_directory (window); + + /* get a list of selected files */ + selected_files = thunar_component_get_selected_files (THUNAR_COMPONENT (view)); + + /* load the actions offered by the menu providers */ + for (lp = providers; lp != NULL; lp = lp->next) + { + if (G_LIKELY (selected_files != NULL)) + { + tmp = thunarx_menu_provider_get_file_actions (lp->data, + GTK_WIDGET (window), + selected_files); + } + else if (G_LIKELY (folder != NULL)) + { + tmp = thunarx_menu_provider_get_folder_actions (lp->data, + GTK_WIDGET (window), + THUNARX_FILE_INFO (folder)); + } + else + { + tmp = NULL; + } + + actions = g_list_concat (actions, tmp); + g_object_unref (G_OBJECT (lp->data)); + } + g_list_free (providers); + } + + /* remove previously inserted menu actions from the UI manager */ + if (window->custom_merge_id != 0) + { + gtk_ui_manager_remove_ui (window->ui_manager, window->custom_merge_id); + gtk_ui_manager_ensure_update (window->ui_manager); + window->custom_merge_id = 0; + } + + /* drop any previous custom action group */ + if (window->custom_actions != NULL) + { + gtk_ui_manager_remove_action_group (window->ui_manager, window->custom_actions); + g_object_unref (window->custom_actions); + window->custom_actions = NULL; + } + + /* add the actions specified by the menu providers */ + if (G_LIKELY (actions != NULL)) + { + /* allocate the action group and the merge id for the custom actions */ + window->custom_actions = gtk_action_group_new ("ThunarActions"); + window->custom_merge_id = gtk_ui_manager_new_merge_id (window->ui_manager); + + /* insert the new action group and make sure the UI manager gets updated */ + gtk_ui_manager_insert_action_group (window->ui_manager, window->custom_actions, 0); + gtk_ui_manager_ensure_update (window->ui_manager); + + /* add the actions to the UI manager */ + for (lp = actions; lp != NULL; lp = lp->next) + { + /* add the action to the action group */ + gtk_action_group_add_action_with_accel (window->custom_actions, + GTK_ACTION (lp->data), + NULL); + + /* add to the file context menu */ + gtk_ui_manager_add_ui (window->ui_manager, + window->custom_merge_id, + "/main-menu/file-menu/placeholder-custom-actions", + gtk_action_get_name (GTK_ACTION (lp->data)), + gtk_action_get_name (GTK_ACTION (lp->data)), + GTK_UI_MANAGER_MENUITEM, FALSE); + + /* release the reference on the action */ + g_object_unref (G_OBJECT (lp->data)); + } + + /* cleanup */ + g_list_free (actions); + } +} + + + +static void thunar_window_notify_loading (ThunarView *view, GParamSpec *pspec, ThunarWindow *window) @@ -2582,9 +3530,9 @@ _thunar_return_if_fail (THUNAR_IS_VIEW (view)); _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - _thunar_return_if_fail (THUNAR_VIEW (window->view) == view); - if (GTK_WIDGET_REALIZED (window)) + if (gtk_widget_get_realized (GTK_WIDGET (window)) + && window->view == GTK_WIDGET (view)) { /* setup the proper cursor */ if (thunar_view_get_loading (view)) @@ -2599,37 +3547,29 @@ } } } - + static void -thunar_window_mount_pre_unmount (GVolumeMonitor *volume_monitor, - GMount *mount, - ThunarWindow *window) +thunar_window_device_pre_unmount (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + GFile *root_file, + ThunarWindow *window) { - ThunarFile *file; - GtkAction *action; - GFile *mount_point; + GtkAction *action; - _thunar_return_if_fail (G_IS_VOLUME_MONITOR (volume_monitor)); - _thunar_return_if_fail (window->volume_monitor == volume_monitor); - _thunar_return_if_fail (G_IS_MOUNT (mount)); + _thunar_return_if_fail (THUNAR_IS_DEVICE_MONITOR (device_monitor)); + _thunar_return_if_fail (window->device_monitor == device_monitor); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); + _thunar_return_if_fail (G_IS_FILE (root_file)); _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); /* nothing to do if we don't have a current directory */ if (G_UNLIKELY (window->current_directory == NULL)) return; - /* try to get the ThunarFile for the mount point from the file cache */ - mount_point = g_mount_get_root (mount); - file = thunar_file_cache_lookup (mount_point); - g_object_unref (mount_point); - - if (G_UNLIKELY (file == NULL)) - return; - /* check if the file is the current directory or an ancestor of the current directory */ - if (window->current_directory == file || thunar_file_is_ancestor (window->current_directory, file)) + if (thunar_file_is_gfile_ancestor (window->current_directory, root_file)) { /* change to the home folder */ action = gtk_action_group_get_action (window->action_group, "open-home"); @@ -2640,6 +3580,31 @@ +static void +thunar_window_device_changed (ThunarDeviceMonitor *device_monitor, + ThunarDevice *device, + ThunarWindow *window) +{ + GFile *root_file; + + _thunar_return_if_fail (THUNAR_IS_DEVICE_MONITOR (device_monitor)); + _thunar_return_if_fail (window->device_monitor == device_monitor); + _thunar_return_if_fail (THUNAR_IS_DEVICE (device)); + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + + if (thunar_device_is_mounted (device)) + return; + + root_file = thunar_device_get_root (device); + if (root_file != NULL) + { + thunar_window_device_pre_unmount (device_monitor, device, root_file, window); + g_object_unref (root_file); + } +} + + + static gboolean thunar_window_merge_idle (gpointer user_data) { @@ -2651,6 +3616,8 @@ thunar_window_merge_go_actions (window); GDK_THREADS_LEAVE (); + thunar_window_bookmark_merge (window); + return FALSE; } @@ -2665,6 +3632,20 @@ static gboolean +thunar_window_save_paned (ThunarWindow *window) +{ + _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); + + g_object_set (G_OBJECT (window->preferences), "last-separator-position", + gtk_paned_get_position (GTK_PANED (window->paned)), NULL); + + /* for button release event */ + return FALSE; +} + + + +static gboolean thunar_window_save_geometry_timer (gpointer user_data) { GdkWindowState state; @@ -2680,7 +3661,7 @@ if (G_LIKELY (remember_geometry)) { /* check if the window is still visible */ - if (GTK_WIDGET_VISIBLE (window)) + if (gtk_widget_get_visible (GTK_WIDGET (window))) { /* determine the current state of the window */ state = gdk_window_get_state (GTK_WIDGET (window)->window); @@ -2719,17 +3700,32 @@ /** - * thunar_window_new: - * - * Allocates a new #ThunarWindow instance, which isn't - * associated with any directory. + * thunar_window_set_zoom_level: + * @window : a #ThunarWindow instance. + * @zoom_level : the new zoom level for @window. * - * Return value: the newly allocated #ThunarWindow instance. + * Sets the zoom level for @window to @zoom_level. **/ -GtkWidget* -thunar_window_new (void) +void +thunar_window_set_zoom_level (ThunarWindow *window, + ThunarZoomLevel zoom_level) { - return g_object_new (THUNAR_TYPE_WINDOW, NULL); + _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); + _thunar_return_if_fail (zoom_level < THUNAR_ZOOM_N_LEVELS); + + /* check if we have a new zoom level */ + if (G_LIKELY (window->zoom_level != zoom_level)) + { + /* remember the new zoom level */ + window->zoom_level = zoom_level; + + /* notify listeners */ + g_object_notify (G_OBJECT (window), "zoom-level"); + } + + /* update the "Zoom In" and "Zoom Out" actions */ + thunar_gtk_action_group_set_action_sensitive (window->action_group, "zoom-in", (zoom_level < THUNAR_ZOOM_N_LEVELS - 1)); + thunar_gtk_action_group_set_action_sensitive (window->action_group, "zoom-out", (zoom_level > 0)); } @@ -2737,7 +3733,7 @@ /** * thunar_window_get_current_directory: * @window : a #ThunarWindow instance. - * + * * Queries the #ThunarFile instance, which represents the directory * currently displayed within @window. %NULL is returned if @window * is not currently associated with any directory. @@ -2762,13 +3758,13 @@ thunar_window_set_current_directory (ThunarWindow *window, ThunarFile *current_directory) { - ThunarFile *file; - ThunarFile *selected_file; - GList selected_files; + GType type; + GtkAction *action; + gchar *type_name; _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); _thunar_return_if_fail (current_directory == NULL || THUNAR_IS_FILE (current_directory)); - + /* check if we already display the requested directory */ if (G_UNLIKELY (window->current_directory == current_directory)) return; @@ -2776,15 +3772,7 @@ /* disconnect from the previously active directory */ if (G_LIKELY (window->current_directory != NULL)) { - /* determine the fist visible file in the previous directory */ - if (window->view != NULL && thunar_view_get_visible_range (THUNAR_VIEW (window->view), &file, NULL)) - { - /* add the file to our internal mapping of directories to scroll files */ - g_hash_table_replace (window->scroll_to_files, g_object_ref (G_OBJECT (window->current_directory)), file); - } - /* disconnect signals and release reference */ - g_signal_handlers_disconnect_by_func (G_OBJECT (window->current_directory), thunar_window_current_directory_destroy, window); g_signal_handlers_disconnect_by_func (G_OBJECT (window->current_directory), thunar_window_current_directory_changed, window); g_object_unref (G_OBJECT (window->current_directory)); } @@ -2797,9 +3785,30 @@ { /* take a reference on the file and connect the "changed"/"destroy" signals */ g_signal_connect (G_OBJECT (current_directory), "changed", G_CALLBACK (thunar_window_current_directory_changed), window); - g_signal_connect (G_OBJECT (current_directory), "destroy", G_CALLBACK (thunar_window_current_directory_destroy), window); g_object_ref (G_OBJECT (current_directory)); - + + /* create a new view if the window is new */ + if (gtk_notebook_get_n_pages (GTK_NOTEBOOK (window->notebook)) == 0) + { + /* determine the default view */ + g_object_get (G_OBJECT (window->preferences), "default-view", &type_name, NULL); + type = g_type_from_name (type_name); + + /* determine the last selected view if the last selected view preference is not selected */ + if (g_type_is_a (type, G_TYPE_NONE)) + { + g_object_get (G_OBJECT (window->preferences), "last-view", &type_name, NULL); + type = g_type_from_name (type_name); + } + + /* activate the selected view */ + action = gtk_action_group_get_action (window->action_group, "view-as-icons"); + g_signal_handlers_block_by_func (action, thunar_window_action_view_changed, window); + gtk_radio_action_set_current_value (GTK_RADIO_ACTION (action), view_type2index (g_type_is_a (type, THUNAR_TYPE_VIEW) ? type : THUNAR_TYPE_ICON_VIEW)); + thunar_window_action_view_changed (GTK_RADIO_ACTION (action), GTK_RADIO_ACTION (action), window); + g_signal_handlers_unblock_by_func (action, thunar_window_action_view_changed, window); + } + /* update window icon and title */ thunar_window_current_directory_changed (current_directory, window); @@ -2809,7 +3818,8 @@ } /* enable the 'Open new window' action if we have a valid directory */ - thunar_gtk_action_group_set_action_sensitive (window->action_group, "open-new-window", (current_directory != NULL)); + thunar_gtk_action_group_set_action_sensitive (window->action_group, "new-window", (current_directory != NULL)); + thunar_gtk_action_group_set_action_sensitive (window->action_group, "new-tab", (current_directory != NULL)); /* enable the 'Up' action if possible for the new directory */ thunar_gtk_action_group_set_action_sensitive (window->action_group, "open-parent", (current_directory != NULL @@ -2820,96 +3830,6 @@ * state already while the folder view is loading. */ g_object_notify (G_OBJECT (window), "current-directory"); - - /* check if we have a valid current directory */ - if (G_LIKELY (window->current_directory != NULL)) - { - /* check if we have a scroll_to_file for the new directory and scroll to the file */ - file = g_hash_table_lookup (window->scroll_to_files, window->current_directory); - if (G_LIKELY (file != NULL)) - thunar_window_scroll_to_file (window, file, FALSE, TRUE, 0.0f, 0.0f); - - /* reset the selected files list */ - selected_files.data = NULL; - selected_files.prev = NULL; - selected_files.next = NULL; - - /* determine the next file in the history */ - selected_file = thunar_history_peek_forward (window->history); - if (selected_file != NULL) - { - /* mark the file from history for selection if it is inside the new - * directory */ - if (thunar_file_is_parent (window->current_directory, selected_file)) - selected_files.data = selected_file; - } - - /* do the same with the previous file in the history */ - if (selected_files.data == NULL) - { - selected_file = thunar_history_peek_back (window->history); - if (selected_file != NULL) - { - /* mark the file from history for selection if it is inside the - * new directory */ - if (thunar_file_is_parent (window->current_directory, selected_file)) - selected_files.data = selected_file; - } - } - - /* select the previous or next file from the history if it is inside the - * new current directory */ - if (selected_files.data != NULL) - thunar_component_set_selected_files (THUNAR_COMPONENT (window->view), &selected_files); - } -} - - - -/** - * thunar_window_get_zoom_level: - * @window : a #ThunarWindow instance. - * - * Returns the #ThunarZoomLevel for @window. - * - * Return value: the #ThunarZoomLevel for @indow. - **/ -ThunarZoomLevel -thunar_window_get_zoom_level (ThunarWindow *window) -{ - _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), THUNAR_ZOOM_LEVEL_NORMAL); - return window->zoom_level; -} - - - -/** - * thunar_window_set_zoom_level: - * @window : a #ThunarWindow instance. - * @zoom_level : the new zoom level for @window. - * - * Sets the zoom level for @window to @zoom_level. - **/ -void -thunar_window_set_zoom_level (ThunarWindow *window, - ThunarZoomLevel zoom_level) -{ - _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); - _thunar_return_if_fail (zoom_level < THUNAR_ZOOM_N_LEVELS); - - /* check if we have a new zoom level */ - if (G_LIKELY (window->zoom_level != zoom_level)) - { - /* remember the new zoom level */ - window->zoom_level = zoom_level; - - /* update the "Zoom In" and "Zoom Out" actions */ - thunar_gtk_action_group_set_action_sensitive (window->action_group, "zoom-in", (zoom_level < THUNAR_ZOOM_N_LEVELS - 1)); - thunar_gtk_action_group_set_action_sensitive (window->action_group, "zoom-out", (zoom_level > 0)); - - /* notify listeners */ - g_object_notify (G_OBJECT (window), "zoom-level"); - } } @@ -2943,3 +3863,85 @@ } + +gchar ** +thunar_window_get_directories (ThunarWindow *window, + gint *active_page) +{ + gint n; + gint n_pages; + gchar **uris; + GtkWidget *view; + ThunarFile *directory; + + _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), NULL); + + n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (window->notebook)); + if (G_UNLIKELY (n_pages == 0)) + return NULL; + + /* create array of uris */ + uris = g_new0 (gchar *, n_pages + 1); + for (n = 0; n < n_pages; n++) + { + /* get the view */ + view = gtk_notebook_get_nth_page (GTK_NOTEBOOK (window->notebook), n); + _thunar_return_val_if_fail (THUNAR_IS_NAVIGATOR (view), FALSE); + + /* get the directory of the view */ + directory = thunar_navigator_get_current_directory (THUNAR_NAVIGATOR (view)); + _thunar_return_val_if_fail (THUNAR_IS_FILE (directory), FALSE); + + /* add to array */ + uris[n] = thunar_file_dup_uri (directory); + } + + /* selected tab */ + if (active_page != NULL) + *active_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (window->notebook)); + + return uris; +} + + + +gboolean +thunar_window_set_directories (ThunarWindow *window, + gchar **uris, + gint active_page) +{ + ThunarFile *directory; + guint n; + + _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); + _thunar_return_val_if_fail (uris != NULL, FALSE); + + for (n = 0; uris[n] != NULL; n++) + { + /* check if the string looks like an uri */ + if (!exo_str_looks_like_an_uri (uris[n])) + continue; + + /* get the file for the uri */ + directory = thunar_file_get_for_uri (uris[n], NULL); + if (G_UNLIKELY (directory == NULL)) + continue; + + /* open the directory in a new notebook */ + if (thunar_file_is_directory (directory)) + { + if (gtk_notebook_get_n_pages (GTK_NOTEBOOK (window->notebook)) == 0) + thunar_window_set_current_directory (window, directory); + else + thunar_window_notebook_insert (window, directory); + } + + g_object_unref (G_OBJECT (directory)); + } + + /* select the page */ + gtk_notebook_set_current_page (GTK_NOTEBOOK (window->notebook), active_page); + + /* we succeeded if new pages have been opened */ + return gtk_notebook_get_n_pages (GTK_NOTEBOOK (window->notebook)) > 0; +} diff -Nru thunar-1.2.3/thunar/thunar-window.h thunar-1.6.10/thunar/thunar-window.h --- thunar-1.2.3/thunar/thunar-window.h 2009-08-21 03:24:32.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-window.h 2015-05-22 13:25:36.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -37,16 +37,10 @@ GType thunar_window_get_type (void) G_GNUC_CONST; -GtkWidget *thunar_window_new (void); - ThunarFile *thunar_window_get_current_directory (ThunarWindow *window); void thunar_window_set_current_directory (ThunarWindow *window, ThunarFile *current_directory); -ThunarZoomLevel thunar_window_get_zoom_level (ThunarWindow *window); -void thunar_window_set_zoom_level (ThunarWindow *window, - ThunarZoomLevel zoom_level); - void thunar_window_scroll_to_file (ThunarWindow *window, ThunarFile *file, gboolean select, @@ -54,6 +48,15 @@ gfloat row_align, gfloat col_align); +gchar **thunar_window_get_directories (ThunarWindow *window, + gint *active_page); +gboolean thunar_window_set_directories (ThunarWindow *window, + gchar **uris, + gint active_page); +void thunar_window_update_directories (ThunarWindow *window, + ThunarFile *old_directory, + ThunarFile *new_directory); + G_END_DECLS; #endif /* !__THUNAR_WINDOW_H__ */ diff -Nru thunar-1.2.3/thunar/thunar-window-ui.h thunar-1.6.10/thunar/thunar-window-ui.h --- thunar-1.2.3/thunar/thunar-window-ui.h 2011-09-20 20:28:45.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-window-ui.h 2015-05-22 20:47:38.000000000 +0000 @@ -9,50 +9,54 @@ #endif { "" - "" + "tion=\"new-tab\" /><" + "menuitem action=\"close-window\" /><" + "placeholder name=\"placeholder-edit-select-actions\" /><" + "menuitem action=\"view-as-compact-list\" /><" + "popup action=\"file-context-menu\"><" + "separator />" }; -static const unsigned thunar_window_ui_length = 2921u; +static const unsigned thunar_window_ui_length = 3244u; diff -Nru thunar-1.2.3/thunar/thunar-window-ui.xml thunar-1.6.10/thunar/thunar-window-ui.xml --- thunar-1.2.3/thunar/thunar-window-ui.xml 2011-05-20 00:56:12.000000000 +0000 +++ thunar-1.6.10/thunar/thunar-window-ui.xml 2015-05-22 20:31:54.000000000 +0000 @@ -1,8 +1,6 @@ + + + Thunar.desktop + CC0-1.0 + File Browser + + <_p> + Thunar is a file browser specifically designed for the Xfce Desktop, but also can + serve as an alternate file browser for other Desktop environments. It has a simple, + clean two-pane design for browsing all your files. + + + http://xfce.org/projects + https://bugzilla.xfce.org/describecomponents.cgi?product=Thunar + http://docs.xfce.org/xfce/thunar/start + + + http://docs.xfce.org/_media/xfce/thunar/file-manager-window.png + + + xfce4-dev@xfce.org + diff -Nru thunar-1.2.3/Thunar-bulk-rename.desktop.in.in thunar-1.6.10/Thunar-bulk-rename.desktop.in.in --- thunar-1.2.3/Thunar-bulk-rename.desktop.in.in 2011-09-20 20:04:55.000000000 +0000 +++ thunar-1.6.10/Thunar-bulk-rename.desktop.in.in 2015-05-22 13:25:36.000000000 +0000 @@ -2,7 +2,7 @@ _Name=Bulk Rename _Comment=Rename Multiple Files _GenericName=Bulk Rename -Exec=@libdir@/Thunar/ThunarBulkRename %F +Exec=@HELPERDIR@/Thunar/ThunarBulkRename %F Icon=Thunar Terminal=false StartupNotify=true diff -Nru thunar-1.2.3/ThunarBulkRename.in thunar-1.6.10/ThunarBulkRename.in --- thunar-1.2.3/ThunarBulkRename.in 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/ThunarBulkRename.in 2015-05-22 13:25:36.000000000 +0000 @@ -1,7 +1,5 @@ #!/bin/sh # -# $Id$ -# # Copyright (c) 2006 Benedikt Meurer # # This program is free software; you can redistribute it and/or modify @@ -22,6 +20,6 @@ # This is an ugly hack, required because xfdesktop simply # strips off all parameters from the Exec field, and so # we cannot just invoke Thunar --bulk-rename %F there -exec @bindir@/Thunar --bulk-rename $@ +exec @bindir@/Thunar --bulk-rename "$@" # vim:set ts=2 sw=2 et ai: diff -Nru thunar-1.2.3/Thunar.desktop.in.in thunar-1.6.10/Thunar.desktop.in.in --- thunar-1.2.3/Thunar.desktop.in.in 2010-11-04 14:06:23.000000000 +0000 +++ thunar-1.6.10/Thunar.desktop.in.in 2015-05-22 13:25:36.000000000 +0000 @@ -2,7 +2,7 @@ _Name=Thunar File Manager _Comment=Browse the filesystem with the file manager _GenericName=File Manager -Exec=Thunar %F +Exec=thunar %F Icon=Thunar Terminal=false StartupNotify=true diff -Nru thunar-1.2.3/Thunar-folder-handler.desktop.in.in thunar-1.6.10/Thunar-folder-handler.desktop.in.in --- thunar-1.2.3/Thunar-folder-handler.desktop.in.in 2010-11-04 14:06:23.000000000 +0000 +++ thunar-1.6.10/Thunar-folder-handler.desktop.in.in 2015-05-22 13:25:36.000000000 +0000 @@ -3,7 +3,7 @@ _Comment=Open the specified folders in Thunar _GenericName=Open Folder TryExec=Thunar -Exec=Thunar %F +Exec=thunar %F Icon=Thunar NoDisplay=true Terminal=false diff -Nru thunar-1.2.3/ThunarHelp.in thunar-1.6.10/ThunarHelp.in --- thunar-1.2.3/ThunarHelp.in 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/ThunarHelp.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -#!/bin/sh -# -# $Id$ -# -# Copyright (c) 2004-2006 Benedikt Meurer -# -# 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. -# - -HELPDIR="@docdir@/html/" - -if test -n "$LC_ALL"; then - LC=$LC_ALL -elif test -n "$LANG"; then - LC=$LANG -else - LC="C" -fi - -if test -n "$1"; then - HELPFILE="$1.html" -else - HELPFILE="index.html" -fi - -if test -r "$HELPDIR/$LC/$HELPFILE"; then - URL="$HELPDIR/$LC/$HELPFILE" -elif test -r "$HELPDIR/`echo $LC | sed 's/\(..\)_.*/\1/'`/$HELPFILE"; then - URL="$HELPDIR/`echo $LC | sed 's/\(..\)_.*/\1/'`/$HELPFILE" -else - URL="$HELPDIR/C/index.html" -fi - -[ -n "$2" ] && URL="$URL#$2" - -exec exo-open --launch WebBrowser "file://$URL" - -# vim:set ts=2 sw=2 et ai: diff -Nru thunar-1.2.3/Thunar.spec.in thunar-1.6.10/Thunar.spec.in --- thunar-1.2.3/Thunar.spec.in 2010-08-28 13:48:05.000000000 +0000 +++ thunar-1.6.10/Thunar.spec.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ -Summary: Thunar File Manager -Name: @PACKAGE_TARNAME@ -Version: @PACKAGE_VERSION@ -Release: 1 -License: GPL -URL: http://thunar.xfce.org/ -Source0: %{name}-%{version}.tar.gz -Group: Applications/X11 -BuildRoot: %{_tmppath}/%{name}-root -Requires: fam -Requires: libexif -Requires: shared-mime-info >= 0.15 -Requires: desktop-file-utils >= 0.7 -Requires: exo1 >= @EXO_REQUIRED_VERSION@ -Requires: libxfce4ui >= @LIBXFCE4UI_REQUIRED_VERSION@ -Requires: startup-notification >= @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -BuildRequires: fam-devel -BuildRequires: libjpeg-devel -BuildRequires: libexif-devel -BuildRequires: libpng-devel >= 2:1.2.2-16 -BuildRequires: desktop-file-utils >= 0.7 -BuildRequires: exo1-devel >= @EXO_REQUIRED_VERSION@ -BuildRequires: libxfce4ui-devel >= @LIBXFCE4UI_REQUIRED_VERSION@ -BuildRequires: startup-notification-devel >= @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ - -Provides: @PACKAGE_TARNAME@-devel - -%description -Thunar is a new modern file manager for the Xfce Desktop Environment. It has been designed from -the ground up to be fast and easy-to-use. Its user interface is clean and intuitive, and does not -include any confusing or useless options. Thunar is fast and responsive with a good start up time -and directory load time. - -%prep -%setup -q - -%build -%configure --enable-dbus --enable-final --enable-xsltproc -make - -%install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir} - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -update-desktop-database &> /dev/null ||: -touch --no-create %{_datadir}/icons/hicolor || : -if [ -x %{_bindir}/gtk-update-icon-cache ]; then - %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : -fi - -%postun -update-desktop-database &> /dev/null ||: -touch --no-create %{_datadir}/icons/hicolor || : -if [ -x %{_bindir}/gtk-update-icon-cache ]; then - %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : -fi - -%files -%defattr(-,root,root) -%doc README TODO ChangeLog NEWS INSTALL COPYING AUTHORS HACKING THANKS -%{_bindir}/ -%{_datadir}/ -%{_includedir}/ -%{_libdir}/ -%{_mandir}/ -%{_sysconfdir}/ diff -Nru thunar-1.2.3/thunarx/abicheck.sh thunar-1.6.10/thunarx/abicheck.sh --- thunar-1.2.3/thunarx/abicheck.sh 2011-09-20 20:04:56.000000000 +0000 +++ thunar-1.6.10/thunarx/abicheck.sh 2015-05-22 13:25:36.000000000 +0000 @@ -2,23 +2,23 @@ # # Copyright (c) 2004 The GLib Development Team. # Copyright (c) 2005 Benedikt Meurer . +# Copyright (c) 2011 Guido Berhoerster # -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library 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 free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License ONLY. # -# This library is distributed in the hope that it will be useful, +# 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 -# Library General Public License for more details. +# 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 Library General Public -# License along with this library; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # -cpp -P -DALL_FILES ${srcdir:-.}/thunarx.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE//' | sort > expected-abi -nm -D .libs/libthunarx-2.so | grep " T\|R " | cut -d ' ' -f 3 | grep -v '^_.*' | sort > actual-abi -diff -u expected-abi actual-abi && rm expected-abi actual-abi +trap 'rm expected-abi actual-abi' EXIT +${CPP:-cpp} -DINCLUDE_INTERNAL_SYMBOLS -DINCLUDE_VARIABLES -DALL_FILES ${srcdir:-.}/thunarx.symbols | sed 's/ G_GNUC.*$//;s/ PRIVATE//;/^ *$/d;/^#/d' | sort >expected-abi +${NM:-nm} -D -g -P .libs/libthunarx-2.so | awk '$2~/^[DRTG]$/&&$1~/^[^_]/{print $1}' | sort >actual-abi +diff -u expected-abi actual-abi diff -Nru thunar-1.2.3/thunarx/Makefile.am thunar-1.6.10/thunarx/Makefile.am --- thunar-1.2.3/thunarx/Makefile.am 2011-04-14 22:27:24.000000000 +0000 +++ thunar-1.6.10/thunarx/Makefile.am 2015-05-22 13:25:36.000000000 +0000 @@ -1,6 +1,4 @@ -# $Id$ - -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_srcdir) \ -DG_LOG_DOMAIN=\"thunarx\" \ -DTHUNARX_COMPILATION \ @@ -50,16 +48,19 @@ $(GLIB_CFLAGS) \ $(GIO_CFLAGS) \ $(GTK_CFLAGS) \ + $(GMODULE_CFLAGS) \ $(PLATFORM_CFLAGS) libthunarx_2_la_LDFLAGS = \ -export-dynamic \ -export-symbols-regex "^[^_].*" \ + -no-undefined \ -version-info $(THUNARX_VERINFO) \ $(PLATFORM_LDFLAGS) libthunarx_2_la_LIBADD = \ $(GLIB_LIBS) \ + $(GMODULE_LIBS) \ $(GIO_LIBS) \ $(GTK_LIBS) diff -Nru thunar-1.2.3/thunarx/Makefile.in thunar-1.6.10/thunarx/Makefile.in --- thunar-1.2.3/thunarx/Makefile.in 2011-09-20 20:28:17.000000000 +0000 +++ thunar-1.6.10/thunarx/Makefile.in 2015-05-22 20:47:32.000000000 +0000 @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.14.1 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. +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,11 +14,54 @@ @SET_MAKE@ -# $Id$ - VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -40,15 +82,16 @@ host_triplet = @host@ target_triplet = @target@ subdir = thunarx -DIST_COMMON = $(libthunarx_include_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/thunarx-2.pc.in \ - $(srcdir)/thunarx-config.h.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(srcdir)/thunarx-2.pc.in $(srcdir)/thunarx-config.h.in \ + $(top_srcdir)/depcomp $(libthunarx_include_HEADERS) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = thunarx-2.pc thunarx-config.h CONFIG_CLEAN_VPATH_FILES = @@ -73,12 +116,19 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ "$(DESTDIR)$(libthunarx_includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libthunarx_2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am__objects_1 = am_libthunarx_2_la_OBJECTS = $(am__objects_1) \ libthunarx_2_la-thunarx-config.lo \ @@ -94,13 +144,26 @@ libthunarx_2_la-thunarx-renamer.lo \ libthunarx_2_la-thunarx-renamer-provider.lo libthunarx_2_la_OBJECTS = $(am_libthunarx_2_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = libthunarx_2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libthunarx_2_la_CFLAGS) $(CFLAGS) $(libthunarx_2_la_LDFLAGS) \ $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -111,30 +174,223 @@ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(libthunarx_2_la_SOURCES) DIST_SOURCES = $(libthunarx_2_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac DATA = $(pkgconfig_DATA) HEADERS = $(libthunarx_include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -194,6 +450,10 @@ GLIB_LIBS = @GLIB_LIBS@ GLIB_REQUIRED_VERSION = @GLIB_REQUIRED_VERSION@ GLIB_VERSION = @GLIB_VERSION@ +GMODULE_CFLAGS = @GMODULE_CFLAGS@ +GMODULE_LIBS = @GMODULE_LIBS@ +GMODULE_REQUIRED_VERSION = @GMODULE_REQUIRED_VERSION@ +GMODULE_VERSION = @GMODULE_VERSION@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ @@ -201,11 +461,7 @@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTHREAD_REQUIRED_VERSION = @GTHREAD_REQUIRED_VERSION@ GTHREAD_VERSION = @GTHREAD_VERSION@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -GTKDOC_MKPDF = @GTKDOC_MKPDF@ -GTKDOC_REBASE = @GTKDOC_REBASE@ GTK_CFLAGS = @GTK_CFLAGS@ -GTK_DOC_EXTRA_CFLAGS = @GTK_DOC_EXTRA_CFLAGS@ GTK_LIBS = @GTK_LIBS@ GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@ GTK_VERSION = @GTK_VERSION@ @@ -213,7 +469,7 @@ GUDEV_LIBS = @GUDEV_LIBS@ GUDEV_REQUIRED_VERSION = @GUDEV_REQUIRED_VERSION@ GUDEV_VERSION = @GUDEV_VERSION@ -HTML_DIR = @HTML_DIR@ +HELPER_PATH_PREFIX = @HELPER_PATH_PREFIX@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -225,6 +481,10 @@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ @@ -236,10 +496,6 @@ LIBSM_CFLAGS = @LIBSM_CFLAGS@ LIBSM_LDFLAGS = @LIBSM_LDFLAGS@ LIBSM_LIBS = @LIBSM_LIBS@ -LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@ -LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@ -LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@ -LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@ LIBTOOL = @LIBTOOL@ LIBX11_CFLAGS = @LIBX11_CFLAGS@ LIBX11_LDFLAGS = @LIBX11_LDFLAGS@ @@ -259,6 +515,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ @@ -301,7 +558,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -TDB_U32_TYPE = @TDB_U32_TYPE@ THUNARX_VERINFO = @THUNARX_VERINFO@ THUNARX_VERSION_API = @THUNARX_VERSION_API@ THUNAR_VERSION_MAJOR = @THUNAR_VERSION_MAJOR@ @@ -309,12 +565,13 @@ THUNAR_VERSION_MINOR = @THUNAR_VERSION_MINOR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +XFCONF_CFLAGS = @XFCONF_CFLAGS@ +XFCONF_LIBS = @XFCONF_LIBS@ +XFCONF_REQUIRED_VERSION = @XFCONF_REQUIRED_VERSION@ +XFCONF_VERSION = @XFCONF_VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_ARGS = @XGETTEXT_ARGS@ XMKMF = @XMKMF@ -XML2PO = @XML2PO@ -XMLLINT = @XMLLINT@ -XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -352,6 +609,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -376,7 +635,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xfconf_query_found = @xfconf_query_found@ -INCLUDES = \ +AM_CPPFLAGS = \ -I$(top_srcdir) \ -DG_LOG_DOMAIN=\"thunarx\" \ -DTHUNARX_COMPILATION \ @@ -426,16 +685,19 @@ $(GLIB_CFLAGS) \ $(GIO_CFLAGS) \ $(GTK_CFLAGS) \ + $(GMODULE_CFLAGS) \ $(PLATFORM_CFLAGS) libthunarx_2_la_LDFLAGS = \ -export-dynamic \ -export-symbols-regex "^[^_].*" \ + -no-undefined \ -version-info $(THUNARX_VERINFO) \ $(PLATFORM_LDFLAGS) libthunarx_2_la_LIBADD = \ $(GLIB_LIBS) \ + $(GMODULE_LIBS) \ $(GIO_LIBS) \ $(GTK_LIBS) @@ -455,7 +717,7 @@ all: all-am .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -490,9 +752,9 @@ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ thunarx-config.h: $(top_builddir)/config.status $(srcdir)/thunarx-config.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ @@ -500,6 +762,8 @@ else :; fi; \ done; \ test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } @@ -515,13 +779,16 @@ clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libthunarx-2.la: $(libthunarx_2_la_OBJECTS) $(libthunarx_2_la_DEPENDENCIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libthunarx-2.la: $(libthunarx_2_la_OBJECTS) $(libthunarx_2_la_DEPENDENCIES) $(EXTRA_libthunarx_2_la_DEPENDENCIES) $(AM_V_CCLD)$(libthunarx_2_la_LINK) -rpath $(libdir) $(libthunarx_2_la_OBJECTS) $(libthunarx_2_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -546,122 +813,107 @@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libthunarx_2_la-thunarx-config.lo: thunarx-config.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-config.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-config.Tpo -c -o libthunarx_2_la-thunarx-config.lo `test -f 'thunarx-config.c' || echo '$(srcdir)/'`thunarx-config.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-config.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-config.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-config.c' object='libthunarx_2_la-thunarx-config.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-config.c' object='libthunarx_2_la-thunarx-config.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-config.lo `test -f 'thunarx-config.c' || echo '$(srcdir)/'`thunarx-config.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-config.lo `test -f 'thunarx-config.c' || echo '$(srcdir)/'`thunarx-config.c libthunarx_2_la-thunarx-file-info.lo: thunarx-file-info.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-file-info.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-file-info.Tpo -c -o libthunarx_2_la-thunarx-file-info.lo `test -f 'thunarx-file-info.c' || echo '$(srcdir)/'`thunarx-file-info.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-file-info.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-file-info.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-file-info.c' object='libthunarx_2_la-thunarx-file-info.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-file-info.c' object='libthunarx_2_la-thunarx-file-info.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-file-info.lo `test -f 'thunarx-file-info.c' || echo '$(srcdir)/'`thunarx-file-info.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-file-info.lo `test -f 'thunarx-file-info.c' || echo '$(srcdir)/'`thunarx-file-info.c libthunarx_2_la-thunarx-menu-provider.lo: thunarx-menu-provider.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-menu-provider.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-menu-provider.Tpo -c -o libthunarx_2_la-thunarx-menu-provider.lo `test -f 'thunarx-menu-provider.c' || echo '$(srcdir)/'`thunarx-menu-provider.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-menu-provider.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-menu-provider.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-menu-provider.c' object='libthunarx_2_la-thunarx-menu-provider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-menu-provider.c' object='libthunarx_2_la-thunarx-menu-provider.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-menu-provider.lo `test -f 'thunarx-menu-provider.c' || echo '$(srcdir)/'`thunarx-menu-provider.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-menu-provider.lo `test -f 'thunarx-menu-provider.c' || echo '$(srcdir)/'`thunarx-menu-provider.c libthunarx_2_la-thunarx-preferences-provider.lo: thunarx-preferences-provider.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-preferences-provider.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-preferences-provider.Tpo -c -o libthunarx_2_la-thunarx-preferences-provider.lo `test -f 'thunarx-preferences-provider.c' || echo '$(srcdir)/'`thunarx-preferences-provider.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-preferences-provider.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-preferences-provider.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-preferences-provider.c' object='libthunarx_2_la-thunarx-preferences-provider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-preferences-provider.c' object='libthunarx_2_la-thunarx-preferences-provider.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-preferences-provider.lo `test -f 'thunarx-preferences-provider.c' || echo '$(srcdir)/'`thunarx-preferences-provider.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-preferences-provider.lo `test -f 'thunarx-preferences-provider.c' || echo '$(srcdir)/'`thunarx-preferences-provider.c libthunarx_2_la-thunarx-private.lo: thunarx-private.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-private.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-private.Tpo -c -o libthunarx_2_la-thunarx-private.lo `test -f 'thunarx-private.c' || echo '$(srcdir)/'`thunarx-private.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-private.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-private.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-private.c' object='libthunarx_2_la-thunarx-private.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-private.c' object='libthunarx_2_la-thunarx-private.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-private.lo `test -f 'thunarx-private.c' || echo '$(srcdir)/'`thunarx-private.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-private.lo `test -f 'thunarx-private.c' || echo '$(srcdir)/'`thunarx-private.c libthunarx_2_la-thunarx-property-page.lo: thunarx-property-page.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-property-page.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-property-page.Tpo -c -o libthunarx_2_la-thunarx-property-page.lo `test -f 'thunarx-property-page.c' || echo '$(srcdir)/'`thunarx-property-page.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-property-page.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-property-page.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-property-page.c' object='libthunarx_2_la-thunarx-property-page.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-property-page.c' object='libthunarx_2_la-thunarx-property-page.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-property-page.lo `test -f 'thunarx-property-page.c' || echo '$(srcdir)/'`thunarx-property-page.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-property-page.lo `test -f 'thunarx-property-page.c' || echo '$(srcdir)/'`thunarx-property-page.c libthunarx_2_la-thunarx-property-page-provider.lo: thunarx-property-page-provider.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-property-page-provider.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-property-page-provider.Tpo -c -o libthunarx_2_la-thunarx-property-page-provider.lo `test -f 'thunarx-property-page-provider.c' || echo '$(srcdir)/'`thunarx-property-page-provider.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-property-page-provider.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-property-page-provider.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-property-page-provider.c' object='libthunarx_2_la-thunarx-property-page-provider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-property-page-provider.c' object='libthunarx_2_la-thunarx-property-page-provider.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-property-page-provider.lo `test -f 'thunarx-property-page-provider.c' || echo '$(srcdir)/'`thunarx-property-page-provider.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-property-page-provider.lo `test -f 'thunarx-property-page-provider.c' || echo '$(srcdir)/'`thunarx-property-page-provider.c libthunarx_2_la-thunarx-provider-factory.lo: thunarx-provider-factory.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-provider-factory.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-provider-factory.Tpo -c -o libthunarx_2_la-thunarx-provider-factory.lo `test -f 'thunarx-provider-factory.c' || echo '$(srcdir)/'`thunarx-provider-factory.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-provider-factory.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-provider-factory.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-provider-factory.c' object='libthunarx_2_la-thunarx-provider-factory.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-provider-factory.c' object='libthunarx_2_la-thunarx-provider-factory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-provider-factory.lo `test -f 'thunarx-provider-factory.c' || echo '$(srcdir)/'`thunarx-provider-factory.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-provider-factory.lo `test -f 'thunarx-provider-factory.c' || echo '$(srcdir)/'`thunarx-provider-factory.c libthunarx_2_la-thunarx-provider-module.lo: thunarx-provider-module.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-provider-module.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-provider-module.Tpo -c -o libthunarx_2_la-thunarx-provider-module.lo `test -f 'thunarx-provider-module.c' || echo '$(srcdir)/'`thunarx-provider-module.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-provider-module.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-provider-module.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-provider-module.c' object='libthunarx_2_la-thunarx-provider-module.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-provider-module.c' object='libthunarx_2_la-thunarx-provider-module.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-provider-module.lo `test -f 'thunarx-provider-module.c' || echo '$(srcdir)/'`thunarx-provider-module.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-provider-module.lo `test -f 'thunarx-provider-module.c' || echo '$(srcdir)/'`thunarx-provider-module.c libthunarx_2_la-thunarx-provider-plugin.lo: thunarx-provider-plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-provider-plugin.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-provider-plugin.Tpo -c -o libthunarx_2_la-thunarx-provider-plugin.lo `test -f 'thunarx-provider-plugin.c' || echo '$(srcdir)/'`thunarx-provider-plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-provider-plugin.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-provider-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-provider-plugin.c' object='libthunarx_2_la-thunarx-provider-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-provider-plugin.c' object='libthunarx_2_la-thunarx-provider-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-provider-plugin.lo `test -f 'thunarx-provider-plugin.c' || echo '$(srcdir)/'`thunarx-provider-plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-provider-plugin.lo `test -f 'thunarx-provider-plugin.c' || echo '$(srcdir)/'`thunarx-provider-plugin.c libthunarx_2_la-thunarx-renamer.lo: thunarx-renamer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-renamer.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-renamer.Tpo -c -o libthunarx_2_la-thunarx-renamer.lo `test -f 'thunarx-renamer.c' || echo '$(srcdir)/'`thunarx-renamer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-renamer.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-renamer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-renamer.c' object='libthunarx_2_la-thunarx-renamer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-renamer.c' object='libthunarx_2_la-thunarx-renamer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-renamer.lo `test -f 'thunarx-renamer.c' || echo '$(srcdir)/'`thunarx-renamer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-renamer.lo `test -f 'thunarx-renamer.c' || echo '$(srcdir)/'`thunarx-renamer.c libthunarx_2_la-thunarx-renamer-provider.lo: thunarx-renamer-provider.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -MT libthunarx_2_la-thunarx-renamer-provider.lo -MD -MP -MF $(DEPDIR)/libthunarx_2_la-thunarx-renamer-provider.Tpo -c -o libthunarx_2_la-thunarx-renamer-provider.lo `test -f 'thunarx-renamer-provider.c' || echo '$(srcdir)/'`thunarx-renamer-provider.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libthunarx_2_la-thunarx-renamer-provider.Tpo $(DEPDIR)/libthunarx_2_la-thunarx-renamer-provider.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thunarx-renamer-provider.c' object='libthunarx_2_la-thunarx-renamer-provider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thunarx-renamer-provider.c' object='libthunarx_2_la-thunarx-renamer-provider.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-renamer-provider.lo `test -f 'thunarx-renamer-provider.c' || echo '$(srcdir)/'`thunarx-renamer-provider.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libthunarx_2_la_CFLAGS) $(CFLAGS) -c -o libthunarx_2_la-thunarx-renamer-provider.lo `test -f 'thunarx-renamer-provider.c' || echo '$(srcdir)/'`thunarx-renamer-provider.c mostlyclean-libtool: -rm -f *.lo @@ -670,8 +922,11 @@ -rm -rf .libs _libs install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) - test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -685,13 +940,14 @@ @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) install-libthunarx_includeHEADERS: $(libthunarx_include_HEADERS) @$(NORMAL_INSTALL) - test -z "$(libthunarx_includedir)" || $(MKDIR_P) "$(DESTDIR)$(libthunarx_includedir)" @list='$(libthunarx_include_HEADERS)'; test -n "$(libthunarx_includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libthunarx_includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libthunarx_includedir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -705,30 +961,17 @@ @$(NORMAL_UNINSTALL) @list='$(libthunarx_include_HEADERS)'; test -n "$(libthunarx_includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(libthunarx_includedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(libthunarx_includedir)" && rm -f $$files - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS + dir='$(DESTDIR)$(libthunarx_includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ + $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ @@ -740,15 +983,11 @@ $$unique; \ fi; \ fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique @@ -757,101 +996,187 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ else \ - skipped="($$skip tests were not run)"; \ + color_start= color_end=; \ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +abicheck.sh.log: abicheck.sh + @p='abicheck.sh'; \ + b='abicheck.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -904,11 +1229,19 @@ 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 + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) @@ -995,22 +1328,22 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-generic clean-libLTLIBRARIES clean-libtool ctags \ - dist-hook distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-libLTLIBRARIES \ +.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ + clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \ + ctags ctags-am dist-hook distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-libLTLIBRARIES \ install-libthunarx_includeHEADERS install-man install-pdf \ install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-libLTLIBRARIES uninstall-libthunarx_includeHEADERS \ - uninstall-pkgconfigDATA + pdf pdf-am ps ps-am recheck tags tags-am uninstall \ + uninstall-am uninstall-libLTLIBRARIES \ + uninstall-libthunarx_includeHEADERS uninstall-pkgconfigDATA # required for gtk-doc diff -Nru thunar-1.2.3/thunarx/thunarx-config.c thunar-1.6.10/thunarx/thunarx-config.c --- thunar-1.2.3/thunarx/thunarx-config.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-config.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-config.h thunar-1.6.10/thunarx/thunarx-config.h --- thunar-1.2.3/thunarx/thunarx-config.h 2011-09-20 20:28:32.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-config.h 2015-05-22 20:47:35.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -30,8 +30,8 @@ G_BEGIN_DECLS; #define THUNARX_MAJOR_VERSION 1 -#define THUNARX_MINOR_VERSION 2 -#define THUNARX_MICRO_VERSION 3 +#define THUNARX_MINOR_VERSION 6 +#define THUNARX_MICRO_VERSION 10 #define THUNARX_CHECK_VERSION(major,minor,micro) \ (THUNARX_MAJOR_VERSION > (major) \ diff -Nru thunar-1.2.3/thunarx/thunarx-config.h.in thunar-1.6.10/thunarx/thunarx-config.h.in --- thunar-1.2.3/thunarx/thunarx-config.h.in 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-config.h.in 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-file-info.c thunar-1.6.10/thunarx/thunarx-file-info.c --- thunar-1.2.3/thunarx/thunarx-file-info.c 2010-10-04 14:18:48.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-file-info.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -418,16 +418,16 @@ GList* thunarx_file_info_list_copy (GList *file_infos) { - GList *list = NULL; - GList *lp; +#if GLIB_CHECK_VERSION (2, 34, 0) + return g_list_copy_deep (file_infos, (GCopyFunc) g_object_ref, NULL); +#else + GList *copy; - if (file_infos != NULL) - { - for (lp = g_list_last (file_infos); lp != NULL; lp = lp->prev) - list = g_list_prepend (list, g_object_ref (G_OBJECT (lp->data))); - } + copy = g_list_copy (file_infos); + g_list_foreach (copy, (GFunc) g_object_ref, NULL); - return list; + return copy; +#endif } @@ -443,9 +443,5 @@ void thunarx_file_info_list_free (GList *file_infos) { - if (file_infos != NULL) - { - g_list_foreach (file_infos, (GFunc) g_object_unref, NULL); - g_list_free (file_infos); - } -} + g_list_free_full (file_infos, g_object_unref); +} diff -Nru thunar-1.2.3/thunarx/thunarx-file-info.h thunar-1.6.10/thunarx/thunarx-file-info.h --- thunar-1.2.3/thunarx/thunarx-file-info.h 2009-09-10 16:49:47.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-file-info.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * Copyright (c) 2009 Jannis Pohlmann @@ -38,14 +38,18 @@ **/ #define THUNARX_FILE_INFO_NAMESPACE \ "access::*," \ - "id::*," \ - "mountable::*," \ + "id::filesystem," \ + "mountable::can-mount,standard::target-uri," \ "preview::*," \ - "standard::*," \ + "standard::type,standard::is-hidden,standard::is-backup," \ + "standard::is-symlink,standard::name,standard::display-name," \ + "standard::size,standard::symlink-target," \ "time::*," \ - "thumbnail::*," \ "trash::*," \ - "unix::*" + "unix::gid,unix::uid,unix::mode," \ + "metadata::emblems" + + /** * Filesystem information namespaces available in the #GFileInfo diff -Nru thunar-1.2.3/thunarx/thunarx.h thunar-1.6.10/thunarx/thunarx.h --- thunar-1.2.3/thunarx/thunarx.h 2011-04-14 22:27:24.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-menu-provider.c thunar-1.6.10/thunarx/thunarx-menu-provider.c --- thunar-1.2.3/thunarx/thunarx-menu-provider.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-menu-provider.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -73,8 +73,7 @@ * The caller is responsible to free the returned list of actions using * something like this when no longer needed: * - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * Return value: the list of #GtkActions that @provider has to offer @@ -129,8 +128,7 @@ * The caller is responsible to free the returned list of actions using * something like this when no longer needed: * - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * Return value: the list of #GtkActions that @provider has to offer @@ -190,8 +188,7 @@ * The caller is responsible to free the returned list of actions using * something like this when no longer needed: * - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * Return value: the list of #GtkActions that @provider has to offer diff -Nru thunar-1.2.3/thunarx/thunarx-menu-provider.h thunar-1.6.10/thunarx/thunarx-menu-provider.h --- thunar-1.2.3/thunarx/thunarx-menu-provider.h 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-menu-provider.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-preferences-provider.c thunar-1.6.10/thunarx/thunarx-preferences-provider.c --- thunar-1.2.3/thunarx/thunarx-preferences-provider.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-preferences-provider.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -72,8 +72,7 @@ * The caller is responsible to free the returned list of actions using * something like this when no longer needed: * - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * Return value: the list of #GtkActions that @provider has diff -Nru thunar-1.2.3/thunarx/thunarx-preferences-provider.h thunar-1.6.10/thunarx/thunarx-preferences-provider.h --- thunar-1.2.3/thunarx/thunarx-preferences-provider.h 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-preferences-provider.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-private.c thunar-1.6.10/thunarx/thunarx-private.c --- thunar-1.2.3/thunarx/thunarx-private.c 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-private.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-private.h thunar-1.6.10/thunarx/thunarx-private.h --- thunar-1.2.3/thunarx/thunarx-private.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-private.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -29,11 +29,7 @@ G_BEGIN_DECLS; -#if GLIB_CHECK_VERSION(2,9,0) #define I_(string) (g_intern_static_string ((string))) -#else -#define I_(string) (g_quark_to_string (g_quark_from_static_string ((string)))) -#endif G_GNUC_INTERNAL void thunarx_object_list_take_reference (GList *object_list, diff -Nru thunar-1.2.3/thunarx/thunarx-property-page.c thunar-1.6.10/thunarx/thunarx-property-page.c --- thunar-1.2.3/thunarx/thunarx-property-page.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-property-page.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -204,7 +204,7 @@ { GtkBin *bin = GTK_BIN (widget); - if (G_LIKELY (bin->child != NULL && GTK_WIDGET_VISIBLE (bin->child))) + if (G_LIKELY (bin->child != NULL && gtk_widget_get_visible (bin->child))) { gtk_widget_size_request (bin->child, requisition); } @@ -231,7 +231,7 @@ widget->allocation = *allocation; /* apply the child allocation if we have a child */ - if (G_LIKELY (bin->child != NULL && GTK_WIDGET_VISIBLE (bin->child))) + if (G_LIKELY (bin->child != NULL && gtk_widget_get_visible (bin->child))) { /* calculate the allocation for the child widget */ child_allocation.x = allocation->x + GTK_CONTAINER (bin)->border_width + widget->style->xthickness; diff -Nru thunar-1.2.3/thunarx/thunarx-property-page.h thunar-1.6.10/thunarx/thunarx-property-page.h --- thunar-1.2.3/thunarx/thunarx-property-page.h 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-property-page.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-property-page-provider.c thunar-1.6.10/thunarx/thunarx-property-page-provider.c --- thunar-1.2.3/thunarx/thunarx-property-page-provider.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-property-page-provider.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -94,8 +94,7 @@ * something like this when no longer needed: * * g_list_foreach (list, (GFunc) g_object_ref_sink, NULL); - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * Return value: the list of #ThunarxPropertyPages that @provider has to offer diff -Nru thunar-1.2.3/thunarx/thunarx-property-page-provider.h thunar-1.6.10/thunarx/thunarx-property-page-provider.h --- thunar-1.2.3/thunarx/thunarx-property-page-provider.h 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-property-page-provider.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-provider-factory.c thunar-1.6.10/thunarx/thunarx-provider-factory.c --- thunar-1.2.3/thunarx/thunarx-provider-factory.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-provider-factory.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-206 Benedikt Meurer * @@ -31,8 +31,8 @@ -/* "provider cache" cleanup interval (in ms) */ -#define THUNARX_PROVIDER_FACTORY_INTERVAL (45 * 1000) +/* "provider cache" cleanup interval (in seconds) */ +#define THUNARX_PROVIDER_FACTORY_INTERVAL (45) @@ -63,7 +63,7 @@ ThunarxProviderInfo *infos; /* provider types and cached provider references */ gint n_infos; /* number of items in the infos array */ - gint timer_id; /* GSource timer to cleanup cached providers */ + guint timer_id; /* GSource timer to cleanup cached providers */ }; @@ -101,7 +101,7 @@ gint n; /* stop the "provider cache" cleanup timer */ - if (G_LIKELY (factory->timer_id > 0)) + if (G_LIKELY (factory->timer_id != 0)) g_source_remove (factory->timer_id); /* release provider infos */ @@ -277,8 +277,7 @@ * The caller is responsible to release the returned * list of providers using code like this: * - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * Return value: the of providers for @type. @@ -300,9 +299,9 @@ modules = thunarx_provider_factory_load_modules (factory); /* start the "provider cache" cleanup timer */ - factory->timer_id = g_timeout_add_full (G_PRIORITY_LOW, THUNARX_PROVIDER_FACTORY_INTERVAL, - thunarx_provider_factory_timer, factory, - thunarx_provider_factory_timer_destroy); + factory->timer_id = g_timeout_add_seconds_full (G_PRIORITY_LOW, THUNARX_PROVIDER_FACTORY_INTERVAL, + thunarx_provider_factory_timer, factory, + thunarx_provider_factory_timer_destroy); } /* determine all available providers for the type */ @@ -331,6 +330,8 @@ for (lp = modules; lp != NULL; lp = lp->next) if (!thunarx_provider_plugin_get_resident (lp->data)) g_type_module_unuse (G_TYPE_MODULE (lp->data)); + + g_list_free (modules); } return providers; diff -Nru thunar-1.2.3/thunarx/thunarx-provider-factory.h thunar-1.6.10/thunarx/thunarx-provider-factory.h --- thunar-1.2.3/thunarx/thunarx-provider-factory.h 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-provider-factory.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-provider-module.c thunar-1.6.10/thunarx/thunarx-provider-module.c --- thunar-1.2.3/thunarx/thunarx-provider-module.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-provider-module.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * @@ -184,7 +184,7 @@ /* check if the load operation was successfull */ if (G_UNLIKELY (module->library == NULL)) { - g_warning ("Failed to load plugin `%s': %s", type_module->name, g_module_error ()); + g_printerr ("Thunar :Failed to load plugin `%s': %s\n", type_module->name, g_module_error ()); return FALSE; } @@ -193,7 +193,7 @@ || !g_module_symbol (module->library, "thunar_extension_initialize", (gpointer) &module->initialize) || !g_module_symbol (module->library, "thunar_extension_list_types", (gpointer) &module->list_types)) { - g_warning ("Plugin `%s' lacks required symbols.", type_module->name); + g_printerr ("Thunar :Plugin `%s' lacks required symbols.\n", type_module->name); g_module_close (module->library); return FALSE; } diff -Nru thunar-1.2.3/thunarx/thunarx-provider-module.h thunar-1.6.10/thunarx/thunarx-provider-module.h --- thunar-1.2.3/thunarx/thunarx-provider-module.h 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-provider-module.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-provider-plugin.c thunar-1.6.10/thunarx/thunarx-provider-plugin.c --- thunar-1.2.3/thunarx/thunarx-provider-plugin.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-provider-plugin.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-provider-plugin.h thunar-1.6.10/thunarx/thunarx-provider-plugin.h --- thunar-1.2.3/thunarx/thunarx-provider-plugin.h 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-provider-plugin.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-renamer.c thunar-1.6.10/thunarx/thunarx-renamer.c --- thunar-1.2.3/thunarx/thunarx-renamer.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-renamer.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -639,8 +639,7 @@ * The caller is responsible to free the returned list using something * like the following: * - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * As a special note, this method automatically takes a reference on the diff -Nru thunar-1.2.3/thunarx/thunarx-renamer.h thunar-1.6.10/thunarx/thunarx-renamer.h --- thunar-1.2.3/thunarx/thunarx-renamer.h 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-renamer.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx-renamer-provider.c thunar-1.6.10/thunarx/thunarx-renamer-provider.c --- thunar-1.2.3/thunarx/thunarx-renamer-provider.c 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-renamer-provider.c 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * @@ -78,8 +78,7 @@ * The caller is responsible to free the returned list of renamers using * something like this when no longer needed: * - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * * * Return value: the list of #ThunarxRenamers provided by the diff -Nru thunar-1.2.3/thunarx/thunarx-renamer-provider.h thunar-1.6.10/thunarx/thunarx-renamer-provider.h --- thunar-1.2.3/thunarx/thunarx-renamer-provider.h 2009-08-19 02:12:54.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx-renamer-provider.h 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer * diff -Nru thunar-1.2.3/thunarx/thunarx.symbols thunar-1.6.10/thunarx/thunarx.symbols --- thunar-1.2.3/thunarx/thunarx.symbols 2010-01-07 19:46:19.000000000 +0000 +++ thunar-1.6.10/thunarx/thunarx.symbols 2015-05-22 20:31:54.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id$ */ +/* vi:set et ai sw=2 sts=2 ts=2: */ /*- * Copyright (c) 2005-2006 Benedikt Meurer . * Copyright (c) 2009 Jannis Pohlmann .